概要
Measurement Protocol とは、ユーザーの利用状況に関するオフラインのデータを、GAサーバーに直接送信するための、データフォーマットである。Measurement Protocolで送信されたオフラインデータは、GA上のデータと結合し分析することが可能となる。ここで紐付けられたデータは、AdWordsでも利用でき、広告出稿の最適化(DCO: Display Campaigin Optimizer)にも活用することができる。
なお、Measurement Protocolでのデータ送信においては、Google Analytics等と異なり、Oauth2認証は必要でない。認証に必要なデータは、全て payloadに含まれている。
データ送信に必要な要素
# データ送信内容のサンプル
User-Agent: user_agent
POST https://www.google-analytics.com/collect
payload_data
簡単に利用する際に、必要な要素は大きく下記2点である。
- トランスポート
- ペイロード
トランスポートは、HTTPリクエストの方法とエンドポイントを決める。
ペイロードは送信するデータを決める。
トランスポートについて
Measurement Protocol におけるデータの送信方法は、GET,POSTが存在する。
基本的にはPOSTを使えば良いと思うので、ここではPOSTで話を進める。
なおPOSTに関しても、一件ずつデータを送信する場合と、一気に複数件データを送る場合で、
エンドポイントが異なる
# 一件ずつ
https://www.google-analytics.com/collect
# 複数件
https://www.google-analytics.com/batch
※ GETリクエストでデータを送信する場合
ペイロードについて
下記のフォーマットで送信することができる。
#ペイロードのフォーマット
v=1 // Protocol Version
&tid=UA-123456-1 // Tracking ID: データ送信先を識別するID
&cid=5555 // Client ID: ユーザー固有のもの
&t=pageview // Pageview hit type:
ペイロード
ペイロードとは、Measurement Protocolを使って、GA上で集計したいデータの塊。
# payload sample
v=1 // Version.
&tid=UA-XXXXX-Y // Tracking ID / Property ID.
&cid=555 // Anonymous Client ID.
&t=event // Event hit type
&ec=video // Event Category. Required.
&ea=play // Event Action. Required.
&el=holiday // Event label.
&ev=300 // Event value.
payloadのサンプルは上記の通り。
ここで、payloadの中身はヒットタイプに依存して変化する。
ヒットの種類
- pageview: 任意のユーザーが、特定のページを見たときとかに使う
- screenview: screenのトラッキングに利用
- event: ユーザーの行動を残す際に利用
- transaction: eコマースに利用
- item: eコマースに利用
- social: ソーシャルメディアの計上に利用.サイト内でイイねされた数の分析とか
- exception: 例外のトラッキングに利用
- timing: 速度の計測などに利用
ざざっと並べるとこんな感じ。
ここでは、event typeを使ってテストをしていく。
利用に必要な情報
- Tracking ID
- Client ID
Tracking ID が必要な人は、google analyticsに登録して取ってきて欲しい。
client ID の取得については、analytics.jsを使って取得する必要がある。
client IDの取得
client IDを取得するコードはこのようになる。
ga(function(tracker) {
var cid = tracker.get('clientId');
console.log(cid);
});
テストコードの作成
動作確認に使ったコードがこちら。
client_idは ↑のjsのコードで取ってきたものを入れてください。
require 'staccato'
client_id = 'xxx.xxx'
tracker = Staccato.tracker('UA-xxxx-Y', client_id)
hit = Staccato::Event.new(tracker, category: 'conversion', action: 'conversion')
response = hit.track!
puts response
テストコードの確認
注意点
- AdWordsに紐付けることができる期限は、該当するユーザーのcookie_idが生成されてから10日間。
- リクエストに問題があったとしても、Measurement Protocolから返されるレスポンスは2xx
参考URL
https://developers.google.com/analytics/devguides/collection/protocol/v1/devguide
https://developers.google.com/analytics/devguides/collection/analyticsjs/events?hl=ja