サンプリングとは何か
サンプリングとは、母集団から偏りがない状態で一部の個体(標本)をランダムで抽出し、そこから母集団の性質を統計学的に推定することを意味します。
これをGoogle アナリティクスに置き換えてみます。まず集計対象全体のセッションデータからランダムに約25万件が抽出されます。そこから集計対象全体の傾向を推定しているのが、サンプリングされた結果のデータとなります。
なお、ランダムに抽出されたセッションデータはリクエストごとに毎回ランダムに選択されるわけではありません。特定のセッションデータが常に抽出されるため、サンプリングされたデータがリクエストごとに毎回変動することはありません。
サンプリングされたレポート結果には画面右上に黄色い帯で上記のように表示されます。例えば上記のメッセージが表示された場合、指定期間に100万件のセッションが存在し、標準状態(約25万件)が集計対象となる場合は「25万÷100万=0.25(25%)」となることを意味しています。
サンプリングが発生する条件
Google アナリティクスではセッションデータが50万件を越えた場合、かつ下記2つのうちいずれかの条件を満たした場合、サンプリングが発生します。
- アドバンスセグメント/セカンダリディメンションを使用した時
- カスタムレポート/APIで標準レポートにない指標とディメンションの組み合わせを設定した時
なお、フローレポート(ユーザーフロー、ゴールフロー、イベントフロー)はセッションデータが10万件を越えた場合に、マルチチャネル レポートではコンバージョン数が100万件を越えた場合にサンプリングが発生します。
Google アナリティクスは何故サンプリングを行うのか
標準レポートにおいては、事前処理された結果を使用することでサンプリングされていない結果を出力することができます。しかしアドバンスセグメントやセカンダリディメンションを適用した場合や、カスタムレポート/APIにおいて標準レポートにない組み合わせを選択した場合など、事前に集計されていないデータが要求された場合は、サーバに蓄積されているセッションデータ(生データ)を使って一から集計しなおす必要があります。
大量のセッションが保存されている場合に全件を処理対象としたら、集計結果を表示するまでに膨大な時間が掛かってしまいます。ユーザーにストレスなくレポート画面を使ってもらうため、Google アナリティクスでは「セッションサンプリング」という手法を利用しているのです。
速度を取るか、精度を取るか、ユーザー側で調整できる
サンプリングサイズ(集計対象となるセッションの件数)は、レポート画面右上のスライドバーで調整ができます。レポートの表示速度を優先する場合には集計対象が最小で約千件となるため、サンプリングされたデータの精度は下がります。データの精度を優先する場合には、集計対象を最大で約50万件まで増やすことが出来ますが、レポートの表示速度が遅くなります。
サンプリングサイズは標準レポートとカスタムレポートでのみ調整が可能となります。しかしAPIの場合はサンプリングサイズを調整することばできず、最大値である約50万件が固定となります。