😽
HTTPリクエストでGoogle Analyticsイベントを発生させる方法
はじめに
- 開発中のWEBアプリで、Google Analytics(以下、GA)を利用してKPIを計測している
- フロントエンドはgtagsを使ってイベントデータを送信している
- バックエンドからもイベントデータを計測したくなった
- せっかくならGAにデータを集めたい→Measurement Protocolというものを使えばできそう
ということで、自分用にまとめつつ記事にしておくことにした。
前提
- バックエンドはnode.jsを利用
Measurement Protocolについて
公式記事はこちら:https://developers.google.com/analytics/devguides/collection/protocol/v1?hl=ja
- Measurement Protocolを利用すれば、HTTPリクエストでイベントデータを送信できる
- サーバサイドでもGAイベントを発生させたい場合にはMeasurement Protocolが便利
- フロントサイド、サーバサイドの両方の行動をUser-IDで結びつけることも可能
Measurement Protocolの使い方
-
例えばHTTPのPOSTメソッドを使う場合は次のように呼び出す
- メソッド:POST
- パス:http://www.google-analytics.com/collect
- ペイロード:v=1&tid=<トラッキングコード>&uid=xxx&t=event&ec=xxx&ea=xxx&el=xxx&cd1=xxx
const param_qs = new URLSearchParams({ "v": 1, "tid": tid, "uid": uid, "t": 'event', "ec":ec, "ea":ea, "el":el, "cd1":cd1, }); axios.post('http://www.google-analytics.com/collect', param_qs.toString()) .then(function (response) { console.log(response); }) .catch(function (response) { console.log(response); });
-
GETのエンドポイントもある
-
パラメータは公式ドキュメントにまとまっている:https://developers.google.com/analytics/devguides/collection/protocol/v1/parameters?hl=ja
Hit Builder
- 公式のHit Builderというサイトを使うとGUIでリクエストを組み立てられるので便利
- https://ga-dev-tools.appspot.com/hit-builder/?hl=ja
さいごに
- WEBアプリのモニタリングでGAを使っているなら、バックエンドのイベントモニタリングをMeasurement Protocolを使うと便利
補足情報
- 複数のイベントをまとめて送信する/batchエンドポイントもある(ただし、一回のリクエストあたり20ヒットまで、等の制限あり)
参考情報
- Measurement Protocol の概要 | アナリティクス Measurement Protocol https://developers.google.com/analytics/devguides/collection/protocol/v1?hl=ja
- Measurement Protocol을 이용하여 Google Analytics 적용하기 (feat. Lambda) - 완두블로그 https://wani.kr/posts/2020/03/16/measurement-protocol-google-analytics/
Discussion