我在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>
我的自定义活动跟踪接收器看起来像这样:
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
}
}
我不知道事情会在哪里失控。我在清单中只使用了一个INSTALL_REFERRER过滤器。
我猜您没有实现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"/>
我被所有的答案弄糊涂了。但通过调试和日志记录发现了它是什么。
基本上:这个警告是在谷歌分析启动时发出的。它只是警告您没有在清单中注册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
要检查它是否真的有效,你可以查看谷歌分析的日志:
adb shell setprop log.tag.GAv4 DEBUG
adb logcat -s GAv4
我看到的是:
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
当它还在抱怨的时候。它仍然跟踪它。
如果您只针对启用播放服务的设备,则可以忽略警告,并且不需要添加AnalyticsReceiver和AnalyticsService。检查https://developers.google.com/analytics/devguides/collection/android/v4/dispatch#manual详细信息。
只要我们添加
implementation 'com.google.android.gms:play-services-analytics:15.0.1
并检索分析实例以设置类似的跟踪器
analytics = GoogleAnalytics.getInstance(this);
Tracker t = analytics.newTracker("UA-AnalyticsContainerID");
我们只需要在清单中设置CampaignTrackingReceiver:
<receiver
android:name="com.google.android.gms.analytics.CampaignTrackingReceiver"
android:enabled="true"
android:permission="android.permission.INSTALL_PACKAGES">
<intent-filter>
<action android:name="com.android.vending.INSTALL_REFERRER" />
</intent-filter>
</receiver>
CampaignTrackingService已弃用,不应使用。最后,你可以尝试测试你的选项,从adb发送广播消息,就像android开发者文档中建议的那样——如果你在日志中看到一个点击事件,几分钟后它应该也会在分析网络中可见。
这是因为您正在使用清单文件中显示的自定义活动跟踪接收器。但是,您确实通过调用将其重定向到CampaignTrackingReceiver
new CampaignTrackingReceiver((.onReceive(context,intent(;
在您的onReceive上。
您可能还需要发送((活动数据
mTracker.send(new HitBuilders.ScreenViewBuilder((.setCampaignParamsFromUrl(campaignData(.build(();
Follow this tutorial for complete setup and understanding of Google Campaign tracking -
to set up install referrer first you need to add Google Services to your android app. Go to your build.gradle(Project level) and add -
google-services plugin to your build.gradle file:
dependencies {
classpath 'com.google.gms:google-services:4.3.3'
// ...
}
And then add Google Analytics dependency to your app level build.gradle file.
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support:appcompat-v7:27.0.2'
compile 'com.google.android.gms:play-services-analytics:11.8.0'
}
apply plugin: 'com.google.gms.google-services'
After adding dependencies we need to set up our AndroidManifest.xml. See below for tested code of AndroidManifest.xml.
<application>
<service android:name="com.google.android.gms.analytics.CampaignTrackingService"
android:permission="android.permission.WAKE_LOCK"
android:enabled="true"
android:exported="true">
</service>
<receiver android:name="com.google.android.gms.analytics.CampaignTrackingReceiver"
android:enabled="true"
android:exported="true"
android:permission="android.permission.INSTALL_PACKAGES">
<intent-filter>
<action android:name="com.android.vending.INSTALL_REFERRER" />
</intent-filter>
</receiver>
<receiver android:name=".UtmReceiver"
android:enabled="true"
android:exported="true"
android:permission="android.permission.INSTALL_PACKAGES">
<intent-filter>
<action android:name="com.android.vending.INSTALL_REFERRER" />
</intent-filter>
</receiver>
<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"/>
</application>
有关详细信息,您可以点击此链接-
http://www.digitstory.com/install-referrer-android-campaign-track/