最近、
実装時に、
注意点
Hit Builder を
使って、 Query を 作成して、 テスト送信する
Measurement Protocol のQuery を 作成、 テスト送信が できる Hit Builder — Google Analytics Demos & Tools と いう ツールが あります。 プログラム側で 送信しようと している Query が Google Analytics に 記録されるか チェックできます。
ここで送信して、 記録されない クエリは、 プログラムから 送信しても 記録できません。 Hit Builder での
検証が 完了したら、 ヒットの 検証を する
ヒットの検証 - Measurement Protocol | アナリティクス Measurement Protocol | Google Developers に 記載が ありますが、 https://www.google-analytics.com/debug/collect
にMeasurement Protocol を 送信すると、 送信内容の 検証が できます。 検証結果が 返却されますので、 エラー、 警告が 出ていないか 確認できます。
python request を使用しているのであれば、 以下で、 検証結果を、 標準出力できます。 # Measurement Protocol に 送付するパラメータを生成 payload = {"v": "1", "t": "event", "tid": "UA-XXXXXXXX-X", "cid": cid, "ni": "1", "dl": json_dict.get("document-uri", ""), "ec": "CSPReport", "ea": json_dict.get("violated-directive", ""), "el": json_dict.get("blocked-uri", ""), "ua": request.META.get('HTTP_USER_AGENT', ''), "z": random.randint(0, 99999), "ds": "WebApp", "ul": request.LANGUAGE_CODE } r = requests.post("https://www.google-analytics.com/dubug/collect", payload) print(r.text)
ClientID が、
取得できない 場合は、 uuid で 生成する
Google アナリティクスのデータ収集上限 | Google Developers に データ収集上限が 記載されていますが、 セッション 1 回 あたり 500 イベントまでの 上限が あります。 通常この 制限を 超える ことは 稀かと 思いますが、 Measurement Protocol で 同一の ClientID を 使用している 場合は、 この 制限に 抵触します。
Cookie からClientID が 取得できる 場合は、 値を 取得できない 場合は。 uuid を 生成して 設定するのが よいかと 思います。 User Agent を
設定する 場合は 形式を 確認する
Measurement Protocol のパラメータ リファレンス | アナリティクス Measurement Protocol | Google Developers に 記載が ありますが、 独自形式の ユーザーエージェントが 設定していると、 記録されない 場合が あるようです。
python のrequests の ユーザーエージェントは、 python-requests/1.2.0
のような形式で、 そのまま 使用すると、 Measurement Protocol の 求める ユーザーエージェントの 形式ではない 可能性が あります。
試しに送付してみて、 記録されないようであれば、 ユーザーエージェントの 文字列を 変更してみましょう。 Google Analytics の
フィルターの 除外設定と 合致する リクエストに なっていないか?
これに気づかずに、 しばらく 悩んでしまいました。
Google Analytics 側のフィルター設定に 合致すると、 その フィルターが Measurement Protocol にも 適用されます。
リファラーの値で 除外していたり、 ユーザーエージェントで 除外していたりすると、 除外設定に ヒットして 記録されなくなります。
フィルターをかけない VIEW で 送信確認は 行った ほうが いいかもしれません。
参考
記事上に
- happy-scraping/fake-useragent at master · TakesxiSximada/happy-scraping
- universal analytics - How to post to Measurement Protocol using Ruby - Stack Overflow
以上です。
コメント