Android Analytics正确的接收器定义

时间:2014-12-12 04:37:16

标签: android google-analytics

我在我的应用上设置了Google Analytics,并且我一直在关注v4的Google文档。使用广告系列跟踪时,他们会说要添加以下“清单”

   <!-- Used for Google Play Store Campaign Measurement-->
    <service android:name="com.google.android.gms.analytics.CampaignTrackingService" />
    <receiver android:name="com.google.android.gms.analytics.CampaignTrackingReceiver"
        android:exported="true">
        <intent-filter>
            <action android:name="com.android.vending.INSTALL_REFERRER" />
        </intent-filter>
    </receiver>

这看起来很好但是当我使用shell和logcat与adb来验证所有工作时我发现没有找到广告系列数据。他们说在应用程序关闭的shell中运行的示例数据是

am broadcast -a com.android.vending.INSTALL_REFERRER
            -n com.mystraldesign.colorlib/com.google.analytics.tracking.android.CampaignTrackingReceiver
            --es  "referrer" "utm_source=testSource&utm_medium=testMedium&utm_term=testTerm&utm_content=testContent&utm_campaign=testCampaign"

每次产生相同的错误No Campaign Data found。我开始玩游戏并在Manifest中发现接收者名称

com.google.android.gms.analytics.CampaignTrackingReceiver

与使用

的测试代码不同

com.google.analytics.tracking.android.CampaignTrackingReceiver

所以我更改了测试代码以使用与应用程序相同的接收者名称,所以它现在看起来像这样

am broadcast -a com.android.vending.INSTALL_REFERRER
            -n com.mystraldesign.colorlib/com.google.android.gms.analytics.CampaignTrackingReceiver
            --es  "referrer" "utm_source=testSource&utm_medium=testMedium&utm_term=testTerm&utm_content=testContent&utm_campaign=testCampaign"

这会生成正确发送广告系列消息的正确logcat输出。

我的问题是哪个是正确的。我应该按原样离开清单接收者电话并假设Google没有更新他们的示例,还是应该更改清单以匹配示例?

1 个答案:

答案 0 :(得分:0)

如果您使用Google Play服务提供的最新v4 Google AnalyticsSDK,则正确的接收者是com.google.android.gms.analytics.CampaignTrackingReceiver。 Google Analytics v2接收器使用的是不同的类 - com.google.analytics.tracking.android.CampaignTrackingReceiver。检查您的应用是否使用Google Play服务jar中的Google Analytics,而不是独立的Google Analytics v2 SDK。