AndroidのGoogleAnalyticsのCampaign計測テストで、adbコマンドを使ったときにうまくいかなかった。
公式ドキュメントによると、下記コマンドでテストができると書いている。
$ adb shell am broadcast -a com.android.vending.INSTALL_REFERRER
-n "com.example.gatestapp/com.google.android.gms.analytics.CampaignTrackingReceiver"
--es referrer "utm_source=testSource&utm_medium=testMedium&utm_term=testTerm&utm_content=testContent&utm_campaign=testCampaign"
そうすると、Logcatに次のように出力されるらしい。
Thread[GAThread,5,main]: Campaign found: utm_source=testSource&utm_medium=testMedium&utm_term=testTerm&utm_content=testContent&utm_campaign=testCampaign
しかしながら、パラメータを&でつなげると、utm_source=testSource
までしか出てこない。
adbの最新(1.0.32)でもバグがあるようである。
以前は=と&をエンコード文字列に置き換えれば動いたが、それもなぜか動かなくなっている。
そんな場合は下記の対応でいける。
一旦adb shell am〜〜〜でまとめてやるのでなく一旦shellを起動させてからam broadcastする。
$ adb shell // 一旦adb shellを起動する
$ am broadcast -a com.android.vending.INSTALL_REFERRER
-n "com.example.gatestapp/com.google.android.gms.analytics.CampaignTrackingReceiver"
--es referrer "utm_source=testSource&utm_medium=testMedium&utm_term=testTerm&utm_content=testContent&utm_campaign=testCampaign"