文章目录[隐藏]
更新日時: 2025年6月23日
GA4 のすべての指標が実際の数値に基づいて計算されるわけではなく、一部は推定値に基づいています。
なぜ推定指標が存在するのですか?
大規模なデータセットの正確な個別カウント数(カーディナリティ)を測定するには、大量のメモリが必要となり、パフォーマンスに影響を及ぼします。GA4 は、セッション数、アクティブユーザー数、合計ユーザー数など、最もよく使用される指標のカーディナリティを推定するために、HyperLogLog++ (HLL++) アルゴリズムを使用しています。
推定指標の影響
推定指標には主に2つの影響があります。
- 推定指標は実際の指標と異なる
- 同じ指標であっても、異なるレポートでは値が異なる場合があります。
推定指標の概要
GA4 の推定指標には、セッション数、アクティブユーザー数、合計ユーザー数が含まれます。
セッション数
GA4 は、サイトまたはアプリで発生したセッション数を、ユニークなセッション ID の数を推定することで計算します。
BigQuery での計算:ga_session_id イベントパラメータは、各ユーザーの個々のユニークセッションを識別します。user_pseudo_id と ga_session_id の組み合わせは、ユニークセッションのデータセット全体で一意になります。これは、Google アナリティクス 4 プロパティでセッションをカウントする標準的な方法です。セッションの場合、精度は 12 です。
SELECT HLL_COUNT.EXTRACT( HLL_COUNT.INIT( CONCAT( user_pseudo_id, (SELECT `value` FROM UNNEST(event_params) WHERE key = 'ga_session_id' LIMIT 1).int_value), 12)) AS session_count, FROM `table.events_*`
アクティブユーザー数
アクティブユーザー数は概算です。Google アナリティクス 4 のサーフェスによって異なる場合があります。
BigQuery での計算: BigQuery イベント エクスポート テーブルからアクティブ ユーザー数を計算するには、まずアクティブ ユーザーのみのイベントをフィルタリングする必要があります。
WITH ActiveUsers AS ( SELECT user_pseudo_id FROM `table.events_*` WHERE (SELECT value.int_value FROM UNNEST(event_params) WHERE key = 'engagement_time_msec') > 0 OR (SELECT value.string_value FROM UNNEST(event_params) WHERE key = 'session_engaged') = '1' GROUP BY user_pseudo_id ) ) SELECT HLL_COUNT.EXTRACT(HLL_COUNT.INIT(user_pseudo_id, 14)) AS active_user_count, FROM ActiveUsers
総ユーザー数
総ユーザー数も推定値です。
BigQuery での計算:
SELECT HLL_COUNT.EXTRACT(HLL_COUNT.INIT(user_pseudo_id, 14)) AS total_user_count, FROM `table.events_*`