LoginSignup
3
0

More than 1 year has passed since last update.

ReactでGTMを使った計測方法(GA4)

Posted at

備忘録
※筆者は本格的にフロントを触り始めてまだ3ヶ月目なので、間違っている可能性が高いです。

使用Ver

    "react": "^17.0.0",
    "react-dom": "^17.0.0",
    "react-gtm-module": "^2.0.11",
    "react-redux": "^8.0.2",
    "react-router-dom": "^5.3.0"
    .
    .
    .
npm install react-gtm-module

ページビュー取得方法

GTM側でタグを作成

スクリーンショット 2022-08-31 18.07.55.png

usePageTracking.js
import { useEffect } from "react";
import TagManager from "react-gtm-module";
import { useLocation } from "react-router-dom";

const usePageTracking = () => {
  const location = useLocation();

  const tagManagerArgs = {
    gtmId: process.env.REACT_APP_GTM_ID,
  };

  useEffect(() => {
    TagManager.initialize(tagManagerArgs);
  }, [location]);
};

export default usePageTracking;

App.jsx
import { useLocation } from "react-router-dom";
import { useEffect } from "react";
import usePageTracking from "../helpers/useTracking";

export const Top = () => {
  // やり方①(単純にこのページに到達した時にページビューを発火させる)
  usePageTracking();
  // やり方②(useLocationを使って、現在ユーザーがいるページ情報を取得して、変更があった際にページビューを発火させる)
  const location = useLocation();
  useEffect(() => {
      usePageTracking();
  }, [location])  
  return (
    <div>
      AppPage
    </div>
  );
};

カスタムトリガー作成(クリックイベント)

トリガー作成

トリガー名は自分がわかりやすい名前にしておく
トリガーのタイプはクリックすべての要素
このトリガーの発生場所は、どこで発火させたいのかという部分のなので、各々設定
今回自分はClickした要素のIDが一致していたら発火するように設定しています。
スクリーンショット 2022-08-31 18.10.24.png

タグを作成

設定タグにページビュー取得方法で作ったタグを選択
イベント名とタグ名は自分のわかりやすい名前にしておく
トリガーは上で作成したものを選択して紐づける
スクリーンショット 2022-08-31 18.10.38.png

発火方法


export const Button = () => {
  return (
    <a id="more_">
        発火テスト
    </a>
  );
};

これで、ページビュー取得とクリックイベント発火できました。
今回ほぼ初めてフロントを触って、GA,GTM周りも初めて触っているので、諸々おかしい点があるかもしれませんが、参考になる方がいれば

3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0