レポートデータの期待値

このガイドでは、Google Analytics Data API を使用して生成されたレポートに表示されるデータに関する重要な情報について説明します。API(特に runReport メソッド)から返されるデータと、Google アナリティクスの UI に表示されるデータに不一致が生じることがよくあります。

サンプリングと集計

Google Analytics Data API の runReport メソッドは、特に大規模なデータセットや複雑なクエリの場合に、サンプリング データを返すことがあります。Google アナリティクス UI でもサンプリングが適用されますが、特定のしきい値とアルゴリズムが異なるため、レポートされる値にわずかな違いが生じることがあります。

レポートの結果が利用可能なデータのサブセットに基づいているかどうかを把握するには、ResponseMetaData オブジェクトの samplingMetadatas フィールドを調べます。レポートの結果がサンプリングされている場合、このフィールドには、このレポートで使用されたイベントの割合が示されます。

Google Analytics Data API の特定のレポート メソッドでは、必要なサンプリング レベルを指定できます。properties.reportTasks.create メソッドの samplingLevel フィールドを使用すると、レポートのサンプリング レベルを制御できます。

この機能により、Google アナリティクス 360 プロパティでは、サンプリング上限が 10 億イベントに引き上げられます。また、サンプリングの上限を UNSAMPLED に設定すると、イベント数が多い場合にサンプリングされていない結果を使用できます。

詳しくは、データ サンプリングについてをご覧ください。

ユニーク カウントの近似値

Google Analytics Data API は、HyperLogLog++(HLL++)アルゴリズムを使用して、アクティブ ユーザー数やセッション数などの指標のユニーク数を推定します。このアプローチは、API と Google アナリティクス UI でパフォーマンスを向上させ、大規模なデータセットを効率的に管理するために使用されます。つまり、結果は正確な数ではなく近似値になります。

詳しくは、Google アナリティクスにおけるユニーク カウントの近似値とユーザー数の違いをご覧ください。

データのしきい値

Google アナリティクスでは、ユーザー属性やインタレスト カテゴリなど、データに含まれるシグナルに基づいて個々のユーザーが特定されないように、レポートにデータのしきい値が適用される場合があります。

レポートの行に含まれるユーザー数が少ない場合、その行は結果から除外されることがあります。これは、高基数ディメンションまたはカスタム ディメンションを含むレポートでよく見られます。

このレポートがしきい値の対象かどうかを確認するには、ResponseMetaData オブジェクトの subjectToThresholding フィールドを調べます。

詳しくは、データのしきい値をご覧ください。

(other) 行

ディメンションの基数が高い場合、Google アナリティクスでは、一般的でない値が (other) というラベルの行にまとめられることがあります。これは、1 日あたりの固有の値の数が 500 を超えるディメンションを含むレポートでよく見られます。

Data API でフィルタを使用する場合、フィルタは (other) 行内を検索せず、データが集計されて (other) 行が生成された後に適用されます。

レポートに (other) 行にロールアップされたデータが含まれているかどうかを確認するには、ResponseMetaData オブジェクトの dataLossFromOtherRow フィールドを調べます。

詳しくは、Google アナリティクスの「(その他)」行をご覧ください。

レポート ID

レポート用識別子によって、レポートでユーザーの重複除去を行う方法が決まります。ID 設定(「ハイブリッド」や「デバイスベース」など)が異なると、同じ期間でもユーザー数が異なる場合があります。

Google アナリティクスの管理画面と Data API の両方で、プロパティに同じレポート用識別子の設定が使用されます。この設定を変更すると、UI と API の両方のレポートに影響します。UI でレポートを実行してから API でレポートデータを取得するまでの間に設定が変更された場合、同じ期間の 2 つのレポートでユーザー数が異なることがあります。

クエリの具体性

不一致を最小限に抑えるには、API リクエストの次のパラメータが Google アナリティクス UI レポートの設定と正確に一致していることを確認してください。

  • 期間: 開始日と終了日が同じであることを確認します。
  • ディメンションと指標: API リクエストのディメンションと指標が、Google アナリティクス UI レポートのディメンションと指標と同じであることを確認します。
  • フィルタ: API リクエストに適用されているディメンション フィルタまたは指標フィルタが、UI で使用されているフィルタと一致していることを確認します。

レポートにディメンションを追加すると、計算に使用されるイベント数が少なくなることがあります。リクエストされたディメンションのデータを含むイベントのみがレポートに含まれます。そのため、クエリにディメンションを追加すると、レポートの指標の集計値が変更されることがあります。

データの鮮度

Google アナリティクスでイベントデータの処理と集計を行うには、ある程度の時間が必要です。最新のデータを扱う場合、データ取得の間に時間差があると、レポート間でわずかな違いが生じることがあります。たとえば、UI でレポートを表示し、数分後に同じレポートを API でクエリすると、処理と集計が継続しているため、データが変更されている可能性があります。

詳しくは、データの更新頻度をご覧ください。

非サンプリング データの代替手段

ユースケースで、サンプリングされていない完全なイベントレベルのデータが必要な場合は、次の代替手段の使用を検討してください。

  • BigQuery Export: Google アナリティクスの BigQuery Export

    は、未加工のイベントデータを高度に分析する場合に推奨される方法です。

  • アナリティクス 360: アナリティクス 360 ライセンスを持つプロパティでは、サンプリング上限が引き上げられ、より詳細なレポート機能にアクセスできます。