このガイドでは、Google アナリティクス Data API を使用して生成されたレポートに表示されるデータに関する重要な情報について説明します。ユーザーは、API(特に runReport メソッド)から返されるデータと Google アナリティクス UI に表示されるデータとの間に差異が生じることがよくあります。
サンプリングと集計
Google アナリティクス Data API の runReport メソッドは、特に大規模なデータセットや複雑なクエリの場合、サンプリング データ を返すことがあります。Google アナリティクス UI でもサンプリングが適用されますが、具体的なしきい値やアルゴリズムが異なるため、レポートの値にわずかな違いが生じることがあります。
レポートの結果が利用可能なデータのサブセットに基づいているかどうかを確認するには、
samplingMetadatas
フィールドの ResponseMetaData オブジェクトを調べます。レポートの結果がサンプリングされている場合、このフィールドにはレポートで使用されたイベントの割合が表示されます。
Google アナリティクス Data API の特定のレポート作成方法では、必要なサンプリング レベルを指定できます。プロパティの properties.reportTasks.create メソッドの
samplingLevel
フィールドを使用して、レポートのサンプリング レベルを制御できます。
この機能により、Google アナリティクス 360 プロパティでは、サンプリングの上限が 10 億イベントに引き上げられます。また、サンプリングの上限を UNSAMPLED に設定して、イベント数が多くても非サンプリングの結果を使用することもできます。
詳細については、データ サンプリングについてをご覧ください。
ユニーク カウントの近似値
Google Analytics Data API は、HyperLogLog++(HLL++)アルゴリズムを使用して、アクティブ ユーザー数やセッション数などの指標のユニーク カウントを推定します。この方法は、API と Google アナリティクス UI で使用され、パフォーマンスの向上と大規模なデータセットの効率的な管理を実現します。つまり、結果は正確なカウントではなく近似値となります。
詳細については、Google アナリティクスにおける ユニーク カウントの近似値 と ユーザー数の違いをご覧ください。
データのしきい値
Google アナリティクスでは、データに含まれるユーザー属性、インタレスト カテゴリなどのシグナルに基づいて個々のユーザーが特定されないようにするため、レポートにデータのしきい値を適用することがあります。
レポートの行に含まれるユーザー数が少ない場合、その行は結果から除外されることがあります。これは、カーディナリティの高いディメンションやカスタム ディメンションを含むレポートでよく見られます。
このレポートにしきい値が適用されているかどうかを確認するには、
subjectToThresholding
フィールドの ResponseMetaData オブジェクトを調べます。
詳細については、データのしきい値をご覧ください。
(other) 行
ディメンションのカーディナリティが高い場合、Google アナリティクスは使用頻度の低い値を (other) というラベルの行にグループ化することがあります。これは、1 日あたりの固有の値の数が 500 を超えるディメンションを含むレポートでよく見られます。
Data API でフィルタを使用する場合、フィルタは (other) 行の中を検索せず、データの集計と (other) 行の生成が完了した後に適用されることに注意してください。
レポートに (other) 行にロールアップされたデータが含まれているかどうかを確認するには、
dataLossFromOtherRow
オブジェクトの ResponseMetaData フィールドを調べます。
詳細については、Google アナリティクス 4 の [(other)] 行をご覧ください。
レポート用識別子
レポート用識別子は、レポートでユーザーの重複除去を行う方法を決定します。ID の設定(「ブレンド」や「デバイスベース」など)が異なると、同じ期間でもユーザー数が異なる場合があります。
Google アナリティクス UI と Data API では、プロパティに同じレポート用識別子設定が使用されます。この設定を変更すると、UI と API の両方のレポートに影響します。UI でレポートを実行してから API でレポートデータを取得するまでの間に設定が変更された場合、同じ期間でも 2 つのレポートでユーザー数が異なることがあります。
クエリの特異性
差異を最小限に抑えるには、API リクエストの次のパラメータが Google アナリティクス UI レポートの設定と正確に一致していることを確認してください。
- 期間: 開始日と終了日が同じであることを確認します。
- ディメンションと指標: API リクエストのディメンションと指標が、Google アナリティクス UI レポートのディメンションと指標と同じであることを確認します。
- フィルタ: API リクエストに適用されているディメンション フィルタまたは指標フィルタが、UI で使用されているフィルタと一致していることを確認します。
レポートにディメンションを追加すると、計算に使用されるイベント数が少なくなることがあります。レポートには、リクエストされたディメンションのデータを含むイベントのみが含まれます。そのため、クエリにディメンションを追加すると、レポートの指標の集計値が変わることがあります。
データの更新速度
Google アナリティクスでは、イベントデータの処理と集計に時間がかかります。最新のデータを扱う場合、データの取得に時間差があると、レポート間にわずかな違いが生じることがあります。たとえば、UI でレポートを表示してから数分後に同じレポートのクエリを API で実行すると、処理と集計が進行中のため、データが変更されている可能性があります。
詳細については、 データの更新頻度をご覧ください。
非サンプリング データの代替手段
ユースケースで完全な非サンプリングのイベントレベルのデータが必要な場合は、次の代替手段の使用を検討してください。
BigQuery Export: Google アナリティクスの BigQuery Export
は、生イベントデータの高度な分析に推奨される方法です。
Google アナリティクス 360: Google アナリティクス 360 ライセンスをお持ちのプロパティでは、サンプリングの上限が高く、より詳細なレポート機能を利用できます。