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