Google Analytics 4(GA4)のBigQuery連携データに差分が生じる理由
Google Analytics 4のBigQuery連携
WEBサイト運営で欠かせないものといえば、Google Analytics 4(以下GA4)ですよね。
皆さんはGA4のBigQuery連携を使っていますか?
GA4のBigQuery連携は、GA4で収集したデータをBigQueryで直接分析できるようにする機能です。
これにより、より高度なカスタムレポートを作成したり、他のデータセットと組み合わせて分析したりすることが可能になります。
やらなきゃいけない作業はBigQueryとの「リンク」を行うだけなので、とても手軽!ですよね。
繋ぎ込み方もとても簡単で、「設定」から「BigQueryのリンク」を選んでプロジェクトIDを設定するだけです。
(最近設定画面のUIが少し変わりました)
ですが、BigQueryでのデータをちゃんと見ていると実はユーザー数等に「ズレ」があることに気付きます。
今日はそんな「ズレ」の原因を探ります。
GA4の「ユーザー」を識別する仕組み
そもそもGA4で同一ユーザーを識別する方法はどのようになっているのでしょうか?
その仕組みはGoogle Analyticsのヘルプの「レポート用識別子」のページで確認出来ます。
ユーザー識別子の一覧
GA4で使用されるユーザー識別子は下記の通りです。
-
User-ID (user_id)
-
サイト側で付与する独自のID(会員ID等)です。
-
ユーザー特定においては間違いないものであることから、ログイン機能を有しているサイト等で可能であれば付与しておきたいところです。
-
実装方法はユーザー ID を送信する のページをご参照下さい。
-
-
Google シグナル
-
Googleにログインしているユーザーから得られるデータ、要するにGoogleアカウントに紐付くデータです。
-
有効化方法は [GA4] Google アナリティクス 4 プロパティで Google シグナルを有効化する のページをご参照下さい。
-
(追記) 2024年2月12日よりこちらの識別子はレポート用途に利用されなくなることが発表されていますのでご注意下さい!
-
-
デバイス ID (user_pseudo_id)
-
1st Party Cookie(クライアントサイド)に基づくデバイスIDです。Cookieの
_ga
で取得可能です。 -
定義は [GA4] デバイスID のページをご参照下さい。
-
-
モデル化データ
- Cookieも禁じられている場合に類似ユーザーのデータを使用して類推された結果です。
2023年11月現在、これら4つのデータを利用しています。
(追記)2024年2月12日以降はGoogleシグナルを除いた3つのデータとなる見込みです。
レポート用識別子の決定方法
上記の識別子の組み合わせによってGA4のレポート画面ではユーザーを識別します。
設定としては3通りあって、
-
ハイブリッド
- ハイブリッドでは、上記1〜4の順に利用可能な識別子を利用します。
-
計測データ
- 「ハイブリッド」から、「モデル化データ」を除いて利用します(Googleによる類推を利用しないということです)
-
デバイスベース
- 上記識別子のうち「3. デバイスID」のみを使用して識別します。
となっています。
レポート用識別子の設定方法
先ほどの「レポート用識別子」の設定確認は「設定」 → 「レポートID」から行えます。
(公式ドキュメントでは「レポート用識別子」となっていますが、「レポートID」の表記に変更になったようです)
設定画面は下記のようになっています。
「Googleシグナル」をONにしていない場合は、この画面から簡単にONに出来るのもなかなかに親切ですね。
また、「モデリング」についてはデータ量から利用可能になれば、ということかと思います。
ちなみに3つめの設定方法である「デバイスベース」については、右下の「すべて表示」を押さないと出てこないので気をつけましょう。(微妙なハマりどころ)
なぜBigQuery連携データとGA4の画面で値がズレるか
というわけで、本題です。なぜ、BigQuery連携データとGA4の画面で値がズレるのでしょうか。
BigQueryへ連携されるユーザー識別子の違い
上述の通り、GA4では 「User ID」「Google シグナル」「デバイス ID」「モデル化データ」の順に評価されるのですが、BigQueryに吐き出されるのは「User ID(user_id)」および「デバイス ID(user_pseudo_id)」のみです。
なので、Google シグナル分の差分が生じる可能性があります。(もちろんモデル化データによる差分もあるかもしれません)
というわけで、「ユーザー数」に関する差分を生み出す主な原因はここにあると見て良いと思います。
セッション数は実は推定値?
ユーザー数とは直接的に関係のない話ですが、少し面白い話として、「セッション数」は推定値に基づいて算出される、というのがあります。
これは [GA4] アナリティクスのセッションについて というページを参照いただけると
アナリティクスでは、ユニーク セッション ID の数を推定することで、サイトまたはアプリで発生したセッションの数を算出します。
と明記してあります。
さらに詳しい話は Google アナリティクスのユニークカウントの近似値 のページが興味深いです。
これはまた本ブログでも触れたいと思っています。
ベストプラクティスとしては、先ほどのページにあるとおり、下記のようになると思います。
元データからより正確な結果を取得したい場合は、BigQuery で結果を確認してください。
より効率的に結果を取得したい場合は、標準レポート、カスタム レポート、データ探索ツール、Looker Studio で結果を確認してください。
と、このように、「正確な値」を算出するためには別途計算が必須となるので、大まかな傾向としてはどちらの方法でも問題無く取得出来ることを加味してあまり細かい値にこだわらないことも重要かと思います。
ちなみにセッションに関する豆知識でいうと、GA4の旧バージョン(UA)では0時またぎでセッションが新しくなっていたのに対してGA4では必ず30分のタイムアウトでセッションが新しくなるようになった、という話もあったりします。
まとめ
今回はGA4画面上で確認出来るデータとBigQuery連携データの差分について扱いました。
今回の内容の通り、これらの2通りの見方をしたときには、なかなかピッタリ値を合わせるのは難しい、というか不可能かと思います。
ただ、そもそもWEBサイトの計測というのが何をもって正確な値とするのかも難しいところです。クライアントサイドの環境の問題等でたまたまアクセスログ用の通信が出来ないときもあるかもしれません。
GA4等を使ってアクセスログを分析する中でいったい何がしたいのかに立ち返り、あまり細かい値にこだわりすぎずに傾向を正しく掴んでいくのが良いかと思います。
一方で、「なぜ値が合わないか」などの理由を知っておくことも大切なので、こういったタイミングで正しく整理するのも大切ですね。