Google Analyticsはコンソールから設定するだけで、簡単にBigQueryへのエクスポートが可能です。BigQueryにエクスポートすることで正確に集計できるだけではなく、新規ユーザーや独自のパラメータでの条件なども正確に設定可能になります。
この記事ではBigQueryで集計する際に、知っておくべき注意点などをまとめていきます。
気をつけること
基本的に数値は一致しない
BigQueryで集計した結果は、Google Analyticsのコンソールの数値と完全に一致することはほぼありません。これはBigQueryや集計の問題ではなく、Google Analytics 4(以下GA4)のコンソールの仕組みのためです。
GA4ではコンソールに表示する際に以下の2つの仕組みが働いています。
推定値はその仕組みからPVやユーザー数が多いサービスほど差が大きくなりますし、フィルタリングはデータが少ない場合に適用されるものになるため、ほとんどのサービスが影響を受けることになるかと思います。
公式ドキュメントにも
元データからより正確な結果を取得したい場合は、BigQuery で結果を確認してください。
と記述されていることからBigQueryのデータを信じるべきなようです。他のページでも2-5%ほどのずれは存在すると言われているので、以下のページを参考にBigQueryの集計を検証しましょう。
[GA4] アナリティクス レポートと BigQuery にエクスポートされたデータを比較する
ユーザー関連のデータが抜け落ちる
具体的にはユーザーの新規アクセスの情報と、性別などの個人の情報が減ることになります。
こちらはGoogleシグナルという仕組みがBigQueryでは使えないことが原因です。
GoogleシグナルとはGoogleアカウントと紐付けて分析が行える機能で以下のようなメリットがあります。
- 複数のデバイスやブラウザでのアクセスも、同一のユーザーとして認識できる
- 性別や年齢などの個人情報を正確に把握できる
しかしこれらは前項でも述べたプライパシーの観点から、BigQueryにはエクスポートされない情報となります。ですのでBigQueryの集計結果では新規ユーザー数が増える可能性が高いです。
解決するには独自でユーザーのIDを設定したり、性別などの情報を集めることになります。Google Analyticsのコンソールと一致させることが重要であれば、Googleシグナルの機能をOFFにすることも考えられます。しかし後で有効にすると整合性の問題もありそうなので、以下のページを確認してからOFFにしてください。
[GA4] Google アナリティクス 4 プロパティで Google シグナルを有効化する
テーブルの違いとタイミング
エクスポートされるデータは速報のテーブルと確定後のテーブルの2種類が存在します。
GA4のコンソールのデータは反映されるまで時間がかかりますが、速報のストリーミングテーブルはほぼリアルタイムでデータが蓄積されるため、当日のデータをすぐに確認したい場合に適していると言えます。
具体的な違いは公式ドキュメントから確認できます。注意点を抜粋すると下記となります。
速報テーブル (events_intraday_YYYYMMDD)
- 新規ユーザーの場合、流入元のデータが存在しない
- データが漏れている可能性がある
確定テーブル(events_YYYYMMDD)
- 反映まで最大72時間かかる
反映のタイミングを気にしなければ確定テーブルを利用することが推奨です。実際に利用していると次の日の夕方ごろまでには生成される感覚ですが、日によるブレが大きく段々と長くなっている印象です。(2023/12時点)
まとめ
全て公式ドキュメントに記述されていることにはなりますが、情報が散らばっており筆者は苦戦しました。事前に知っておかないと要件を満たせない可能性もありそうなので、これから移行を考えている方の助けになれば幸いです。
ZOZO NEXTではエンジニアを募集中です。新しい技術を活用した開発にどんどんチャレンジできる環境ですので、興味がある方はカジュアルに応募いただければと思います。