LoginSignup
0
0

More than 5 years have passed since last update.

GoogleAnalyticsのscreenviewをruby/staccatoから送る

Last updated at Posted at 2017-11-06

この記事は

  • GoogleAnalyticsへのhitを生成するrubyのgemライブラリにstaccatoというものがあります
  • このライブラリからscreenviewのhitを送出するのが最初うまくいかなかったのでメモです

screenview

  • GoogleAnalyticsへの記録全般はhitと呼ばれます
  • hitには種類がありもっとも一般的なのはpageviewというWebページを開いた時を示すもので、他にもボタンが押されたなどの動きを示すeventなどがよく使われます
  • screenviewはhitの一種ですが、上記とは異なりスマホアプリ内での画面表示を示します
  • 通常PCからscreenviewを飛ばすことは少ないのですが、コンバージョンの都合上どうしてもscreenviewを飛ばす必要が出てくる場合があります

staccatoのscreenview(失敗)

  • はじめこのあたりを見ていたら普通にscreenviewに対応しているメソッドが準備されていたのでこれは余裕だと踏んでいました
  • が、実際には呼び出してもうんともすんとも言わず。。200が返ってきてるけど。。
tracker = Staccato.tracker('UA-xxxxxxxxxx-x', nil, ssl:true)
tracker.screenview({screen_name: 'xxxx'})
#=> #<Net::HTTPOK 200 OK readbody=true>

デバッグ

  • READMEを見ていたらどうもstaccatoにはアダプタという機構があって、そこでリクエストが正常かチェックできるみたいです
  • なのでその機構を使ってエラーを出力してみました。
tracker = Staccato.tracker('UA-xxxxxxzxx-x') do |c|
  c.adapter = Staccato::Adapter::Validate.new  
end
tracker.screenview({screen_name: 'xxx'})

#=> "{\n  \"hitParsingResult\": [ {\n    \"valid\": false,\n    \"parserMessage\": [ {\n      \"messageType\": \"ERROR\",\n      \"description\": \"A value is required for parameter 'an'. Please see http://goo.gl/a8d4RP#an for details.\",\n      \"messageCode\": \"VALUE_REQUIRED\",\n      \"parameter\": \"an\"\n    } ],\n    \"hit\": \"/debug/collect?v=1\\u0026tid=UA-xxxxxxxxxxx-x\\u0026cid=e2c41d47-e335-403a-bc7c-e7a868875f54\\u0026t=screenview\\u0026cd=xxx\"\n  } ],\n  \"parserMessage\": [ {\n    \"messageType\": \"INFO\",\n    \"description\": \"Found 1 hit in the request.\"\n  } ]\n}\n"

修正

# app_nameというオプションでanパラメータを渡せる様に拡張
Staccato::Screenview::FIELDS[:app_name] = 'an'

tracker = Staccato.tracker('UA-xxxxxxzxx-x') do |c|
  c.adapter = Staccato::Adapter::Validate.new  
end
tracker.screenview({screen_name: 'xxx', app_name: 'app1'})

#=> "{\n  \"hitParsingResult\": [ {\n    \"valid\": true,\n    \"parserMessage\": [ ],\n    \"hit\": \"/debug/collect?v=1\\u0026tid=UA-xxxxxxxxxx-x\\u0026cid=e2c41d47-e335-403a-bc7c-e7a868875f54\\u0026t=screenview\\u0026cd=xxx\\u0026an=app1\"\n  } ],\n  \"parserMessage\": [ {\n    \"messageType\": \"INFO\",\n    \"description\": \"Found 1 hit in the request.\"\n  } ]\n}\n"
  • おお!うまくいきました!

終わりに

  • これバグか仕様変更に追随できないかどっちかっぽいですね
  • そのうちプルリク出しときます
0
0
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0