GA4導入・設定
前提
- ECサイトに導入
- ユニバーサルアナリティクスのサポート終了に伴って、終了の7月に1年前になるこのタイミングでGA4を導入する。
GA4のプロパティ作成
まずはGA4のプロパティをアナリティクスの管理画面から作成
ひとまずGA4導入
GTM側でGA4をトラッキングできるようにひとまず設定
アナリティクスの管理画面でプロパティ-> データストリーム -> ウェブと進むと測定IDというのがあるので、それをGTMのタグのGA4に設定する。
※ 本番環境と検証環境を別々の測定IDを使っていて、それをGTMの設定1回でどちらも測定できるようにするために、Enviroonment Name
という既存の環境名の変数とルックアップテーブルという変数タイプを使って
、環境毎に測定IDの出し分けをしている。
↓環境名で環境を出し分け
↓出し分けた環境名を使ってルックアップテーブルで測定IDの出し分け
出し分けは実現できるんだけど、設定を公開していないプレビューの段階ではプレビュー用の環境名が使われるので環境名の出し分けに微調整が必要になる。(ここをなんとかしたい)
これで公開すればトラッキングできる状態になる
GA4のトリガー
GTMで設定する際のトリガーは、より確実な計測をするために「Initialization – All Pages」を使うとよいとのこと
レポート用識別子
これはブレンドで大丈夫そう。
GoogleシグナルはGoogleにログインしていればデバイスやブラウザなどをまたいでも同じユーザーとしてトラッキングできる。
設定画面のデータ設定->データ収集といけばGoogleシグナルのデータ収集をONにできる。
これにはプライバシーに関わるところなのでサイトのプライバシーポリシーも確認しておく。
モデリングは使えない(導入時点)。
データが貯れば使えそう & 利用可能になったらデフォルトで有効になるとのことだからほっておいても良さそう
内部トラフィックの除外
内部トラフィックのルール作成
社内だったり、テストツール(bot等)からのトラッキングを除外する。
データストリーム -> ウェブストリーム -> タグ付けの詳細設定と進むと、内部トラフィックの定義という項目があるので、そこで設定できる
traffic_type
をinternal
にして、IPアドレスを指定する。
UAだと正規表現で設定もできたけど、GA4だと無理そう?
内部トラフィックデータをフィルタリング
データ設定 -> データフィルタと進んで、フィルタを作成する。
traffic_type
がinternal
と設定し、フィルタの状態を有効にすると、イベントは除外される
SPAのページビュートラッキング
GTMから配信しているユニバーサルアナリティクスだと、ブラウザ履歴のイベントを別途設定しないとページビュートラッキングできない。
GA4だと管理 > プロパティ > データストリーム > 詳細 > 拡張計測機能と進むと、ページビュー数という項目があり、詳細設定を表示すると、「ブラウザ履歴イベントに基づくページの変更」というところにチェックがついていればOK
イベントの設定
GA4側では正規表現が使えないらしい。
GA4では演算子で正規表現を利用することができません。正規表現を利用したイベントを作成したい場合は、Google Tag Manager側で正規表現を利用して「トリガー」を作成し、GA4のイベントタグを設定する必要があります。その際にはGA4画面側でのイベント作成は必要ありません。
イベントの作成 – Google Analytics 4 ガイド
GA4でもGTM側でも設定できるから、設定するならどちらかに寄せたほうが良さそう
GTMでのカスタムイベント設定
※ ソースコード上からdataLayer
を使ってデータ送信してイベントトラッキングを想定
結論から言うと、1つのイベントを設定するときにタグとトリガーを1対1にして設定しないと実現できなさそう。
試したこととしては、タグとトリガーを一つずつ作成して、トリガーを発火させたときに、イベント名とパラメータをそれぞれ持っていて、それを変数にしてタグに認知させてイベントトラッキングできるか。
これならタグにdataLayer
の変数を渡すだけで、イベント名、パラメータを動的にできて運用は楽そうだなと思ったけど、実装して試してみたところトリガーが発火せず・・・。
タイムスタンプの計測
イベント単位でタイムスタンプを設定する
ディメンションの作成はプレビュー・デバッグ時だとイベントパラメーターという項目にタイムスタンプが出てこない。
これは運用し始めたら出てくるのか?
ユーザーIDのトラッキング
GA4にユーザーIDを渡す|nakamura.akila|note
dataLayer.push({
userId: 1111,
});
これの記述場所だが、GTMタグを読み込んだときにページビューイベントを発火させているため、GTMタグを読み込む前の部分に記述すると動作した。
add_to_cartイベント
GTMの設定
こんな感じで設定して、GA4の仕様以外の情報をセットしたいときはユーザープロパティに設定する。
ただ、配列やオブジェクトはセットしても使え無さそう(GA4側で展開されない)なので一つの項目で複数ある場合はカンマ区切りとかで渡すのが良さそう?
purchaseイベント
金額部分
- value
- item.price
などがあるが、value
はトータルで支払う税込み金額
item.price
は商品価格(税抜)
その他の費用はtax
やshipping
という項目があるのでそこにセットする
Google 広告連携
- ユニバーサルアナリティクスを使っている
- ユニバーサルアナリティクスでGoogle 広告を使っている
この2つを満たしていたら、GA4の設定アシスタントページで、「接続済みのユニバーサル アナリティクス プロパティから既存の Google 広告リンクをインポート」という部分があるから「使ってみる」というボタンを押すと連携できる
URLパラメーターを除外して計測
デフォルトで計測されているpage_location
にはパラメーター付きのURLが入っている。
これだと同じページでもパラメーターによって同一ではみなされなくなるので集計・計測が難しいらしい。
なので、パラメーターを除外したものも計測するようにする。
方法としてはトラッキング時にフィールドを追加する。
変数タイプはカスタムJavaScriptでこのように記載する。
function(){
return document.location.origin + document.location.pathname;
}
これでパラメーター付き、無しどちらも計測できるようになる。
そしてカスタムディメンションを設定しておけば、分析も時にも使えるようになる
BigQueryとの連携
↑このページを見れば設定できる
すでにGCPのアカウント・プロジェクトはあったので、GA4の管理画面からリンクするだけで接続できた
コストの設定
ざっくりだけど制限設けてみた
Merchant Center、Search Consoleとの連携
これは広告と同じ用にアカウント持ってたらリンクするだけで大丈夫そう
推奨イベントなどの実装する理由
購入のイベントの他にもイベントを実装したほうがいい理由としては、商品の表示・カートに追加などのデータを明示的に取得することでより商品購入までの分析が容易になるってことがありそう