Ruby を使用して Google Measurement Protocol に投稿しようとしています。
uri = URI.parse("http://www.google-analytics.com/collect")
params = {"v"=>"1", "tid"=>"UA-XXXXXXXX-X", "cid"=>"XXXXXXXXX.XXXXXXXXX", "t"=>"event", "ec"=>"200", "ea"=>"John"}
result = Net::HTTP.post_form(uri, params) #<Net::HTTPOK 200 OK readbody=true>
result.body # "GIF89a\x01\x00\x01\x00\x80\xFF\x00\xFF\xFF\xFF\x00\x00\x00,\x00\x00\x00\x00\x01\x00\x01\x00\x00\x02\x02D\x01\x00;"
また、POST の代わりに GET リクエストを送信しようとしました:
RestClient.get("http://www.google-analytics.com/collect", params: params, timeout: 4, open_timeout: 4) # "GIF89a\x01\x00\x01\x00\x80\xFF\x00\xFF\xFF\xFF\x00\x00\x00,\x00\x00\x00\x00\x01\x00\x01\x00\x00\x02\x02D\x01\x00;"
そして、イベントは追跡されていません:
Chromeに入力するだけで同じパラメーターを送信しようとしました:
出来た:
Rubyを使用してManagement Protocolにリクエストを送信しているときに、ヘッダーなどが欠落していると思います。しかし、私は何が欠けているのか分かりません。