CampaignTrackingReceiver未注册 - Google Analytics v4

pix*_*een 14 android google-analytics

我在我的Android应用程序中使用谷歌分析v4.安装跟踪工作正常几天,我的广播接收器突然没有注册.

Logcat说:CampaignTrackingReceiver未注册,未导出或已禁用.无法安装广告系列跟踪.有关说明,请参阅http://goo.gl/8Rd3yj.

这是我在Manifest应用程序标记中所做的:

    <service android:name="com.google.android.gms.analytics.CampaignTrackingService"
        android:enabled="true"
     android:exported="false" />
    <receiver
        android:name="my.package.CustomCampaignTrackingReceiver"
        android:exported="true" >
        <intent-filter>
            <action android:name="com.android.vending.INSTALL_REFERRER" />
        </intent-filter>
    </receiver>
Run Code Online (Sandbox Code Playgroud)

我的自定义广告系列跟踪接收器如下所示:

public class CustomCampaignTrackingReceiver extends BroadcastReceiver {

  @Override
  public void onReceive(Context context, Intent intent) {

    // When you're done, pass the intent to the Google Analytics receiver.
        new CampaignTrackingReceiver().onReceive(context, intent);

        Log.v("ReferralReceiver", " " + intent.getAction());
        Log.v("ReferralReceiver", " " + intent.getDataString());
        Log.v("ReferralReceiver", " " + intent.toString());
        Log.v("ReferralReceiver", " " + intent.getStringExtra("referrer"));

        //call to other referrers

  }
}
Run Code Online (Sandbox Code Playgroud)

我无法弄清楚事情的发展方向.我在清单中只使用了一个INSTALL_REFERRER过滤器.

Nic*_* Ng 14

我猜你没有实施AnalyticsService和AnalyticsReceiver?这就是我做的工作

    <!-- Google Analytics --> 
    <receiver android:name="com.google.android.gms.analytics.CampaignTrackingReceiver"
              android:enabled="true"
              android:exported="true">
        <intent-filter>
            <action android:name="com.android.vending.INSTALL_REFERRER" />
        </intent-filter>
    </receiver>
    <service android:name="com.google.android.gms.analytics.CampaignTrackingService" />
    <receiver android:name="com.google.android.gms.analytics.AnalyticsReceiver"
              android:enabled="true">
        <intent-filter>
            <action android:name="com.google.android.gms.analytics.ANALYTICS_DISPATCH" />
        </intent-filter>
    </receiver>
    <service android:name="com.google.android.gms.analytics.AnalyticsService"
             android:enabled="true"
             android:exported="false"/>
Run Code Online (Sandbox Code Playgroud)


Tje*_*rkW 7

我对所有答案感到困惑.但是通过调试和记录找出它是什么.

基本上:此警告是在谷歌分析启动时完成的.它只是警告您,您没有在清单中注册CampaignTrackingReceiver.但那没关系!因为你有自己的跟踪接收器.只需在调试应用程序时通过执行此类操作来测试接收器:

echo 'am broadcast \
-a com.android.vending.INSTALL_REFERRER \
-n "com.my.app/com.my.app.CustomInstallTrackerReceiver" \
--es "referrer" \
  "utm_source=promo_mail&utm_medium=emaeil&utm_term=test_term&utm_content=content&utm_campaign=derp"; \
exit' | adb shell
Run Code Online (Sandbox Code Playgroud)

要检查其真正有效,您可以查看谷歌分析的日志:

adb shell setprop log.tag.GAv4 DEBUG
adb logcat -s GAv4
Run Code Online (Sandbox Code Playgroud)

我看到的是以下内容:

12-07 11:32:54.678  6993  7011 W GAv4    : CampaignTrackingReceiver is not registered, not exported or is disabled. Installation campaign tracking is not possible. See http : // goo.gl/8Rd3yj for instructions.
12-07 11:33:14.048  6748  6827 D GAv4    : Received installation campaign: content=content, keyword=test_term, medium=emaeil, name=derp, source=promo_mail
12-07 11:33:14.048  6748  6827 D GAv4    : Sending installation campaign to: UA-SECRET, content=content, keyword=test_term, medium=emaeil, name=derp, source=promo_mail
12-07 11:33:14.068  6748  6827 D GAv4    : Hit delivery requested: ht=1481106771894, _s=3, _v=ma9.4.52, adid=xxx, aid=com.my.app, an=Tiqets, ate=1, av=1.6.61.g785cc1e, cc=content, cid=xxx, ck=test_term, cm=emaeil, cn=derp, cs=promo_mail, ni=1, sr=1440x2560, t=data, tid=UA-SECRET, ul=nl-nl, v=1
12-07 11:33:14.098  6748  6827 D GAv4    : Hit sent to the device AnalyticsService for delivery
Run Code Online (Sandbox Code Playgroud)

虽然它仍然抱怨.它仍然跟踪它.