Google Analytics APIで2016年9月以前のデータを取得した際にサンプリングが発生する

Google Analytics APIを使ってデータを取得していたところ、管理画面上の数値とずれることがあったのでメモ。

実装

Googleスプレッドシートで用意されているGoogleアナリティクスのアドオンを使って試してみます。
アドオンのインストールがまだの場合、以下の記事を参照ください。
Googleスプレッドシートのアドオンを使ってGoogleアナリティクスのレポートを作成する

アドオンのインストール後、アドオン > Google Analytics > Create new report を選択します。

レポート名とアカウントの設定を行います。
今回レポート名はtestとしました。

MetricsとDimensionsの設定を行います。
Metricsにはga:users,ga:sessions,ga:pageviews、Dimensionsにはga:year,ga:monthを設定しました。
設定完了後、Create Reportをクリックします。

シートが生成されるので、Start DateとEnd Dateを設定します。
データを取得したい月から過去2年分のデータを取得したかったので、データを取得する月を2018年6月として、Start Dateを2016-07-01、End Date2018-06-30としました。

アドオン > Google Analytics > Run reportsを選択します。

しばらく待つとレポートが作成されました。

2018年6月分のデータを管理画面上で確認すると、APIで取得した値とずれていることが確認できました。

原因と対策

最初はデータ量が多いことによるサンプリングが原因かと思ったのですが、サンプリングはセッション数が50万件以上の場合などの条件があるため、今回はサンプリングの条件には当てはまりませんでした(今回は2年分で17万件程度)。

色々と調べていたところ、公式のヘルプで以下のような記述を見つけました。

アナリティクスでは新しいレポートが定期的に追加され、指標の計算方法に変更が加えられることがあります。レポートの対象期間に、新しいレポートが追加される前、または指標の計算方法が変更される前の期間が含まれる場合、アナリティクスはアドホック クエリを発行してデータをサンプリングすることがあります。

「ユーザー数」指標と「アクティブ ユーザー」指標を含むレポートに 2016 年 9 月以前のデータが含まれている場合は、データのサンプリングが行われます。
引用 – アナリティクス ヘルプ

今回は過去2年分で2016年9月以前のユーザー数を取得しているため、これが原因でサンプリングが行われていたようです。

試しに過去2年分ではなく、2016年9月~2018年6月と2016年8月~2018年6月の二つで出力を試してみます。
2016年9月~2018年6月で試してみると、サンプリングが発生しませんでした。

2016年8月~2018年6月の場合はまだサンプリングが発生していました。

「2016年9月以前」だと2016年9月のデータを含んでいてもサンプリングが発生しそうな気がしますが、試してみた分には2016年8月のデータが入っていると駄目なようでした。

今回は過去2年分のデータを取得するようにしたかったので、2年分をまとめて取得するのではなく、2年分を1ヶ月毎に取得する方法で対応しました。
 

【参考サイト】

 

このエントリーをはてなブックマークに追加

関連記事

コメントを残す

メールアドレスが公開されることはありません。
* が付いている欄は必須項目です

CAPTCHA


コメントが承認されるまで時間がかかります。

2024年12月
1234567
891011121314
15161718192021
22232425262728
293031