Google Analytics(分析)V4广告系列衡量testing不起作用

我开始使用Google Analytics(分析)V4实施广告系列衡量,请参阅https://developers.google.com/analytics/devguides/collection/android/v4/链接。 在https://developers.google.com/analytics/solutions/testing-play-campaigns中提到的“testingCampign Measurement”时遇到问题。 每当我的日志显示“找不到活动数据”

我将Google Play服务(Rev​​:18)导入了我的工作区,并在我的项目中提到了它

在我的清单文件中添加下面的行

<uses-permission android:name="android.permission.INTERNET"></uses-permission> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission> <meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" /> <meta-data android:name="com.google.android.gms.analytics.globalConfigResource" android:resource="@xml/global_tracker" /> 

也在代码下面

 <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> 

稍后在res-> xml下创buildglobal_tracker.xml文件。 以下是我的xml文件

  <?xml version="1.0" encoding="utf-8" ?> <resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="TypographyDashes" > <integer name="ga_sessionTimeout">300</integer> <!-- Enable automatic Activity measurement --> <bool name="ga_autoActivityTracking">true</bool> <bool name="ga_debug">true</bool> <string name="ga_logLevel">verbose</string> <string name="ga_dryrun">true</string> <!-- The screen names that will appear in reports --> <!-- The following value should be replaced with correct property id. --> <string name="ga_trackingId">UA-xxxxxxx-1</string> </resources> 

用我的跟踪IDreplace了跟踪ID

在testing广告系列测量时,我首先通过adb安装将我的应用安装到了我的设备(Moto G(4.4.2))。 确保应用程序没有运行,并广播上述链接中提到的意图。 广播意图时,我获得了成功日志。

意图

 E:\xxxxxxx\adt-bundle-windows-x86_64-20140321\sdk\platform-tools >adb shell am broadcast -a com.android.vending.INSTALL_REFERRER -n <My Package name>/com.google.android.gms.analytics.CampaignTrackingReceiver --es "referrer" "utm_source=testsource" 

响应:

 Broadcasting: Intent { act=com.android.vending.INSTALL_REFERRER cmp=<My Package name> >/com.google.android.gms.analytics.CampaignTrackingReceiver (has extras) } Broadcast completed: result=0 

当我打开我的应用程序时,我总是得到“ I / GAV2(7342):线程[GAThread,5,main]:找不到任何活动数据

可以请别人让我知道为什么我没有获得运动数据? 我哪里去错了。

另外,为什么当我使用GAV4时在日志中显示“GAV2”

GA日志:

 07-09 12:59:26.542: W/GAV2(20502): Thread[main,5,main]: Need to call initialize() and be in fallback mode to start dispatch. 07-09 12:59:31.568: I/GAV2(20502): Thread[GAThread,5,main]: No campaign data found. 

注意:这是我第一次使用Google Analytics(分析)。 由于我想检查我是否收到广告系列数据,或者没有收到广告系列数据,因此我没有对GA执行任何跟踪

编辑:当我手动触发广播意图button点击我的应用程序。 当我重新启动我的应用程序时,我能够看到“发现的广告系列”日志。 但是,如上所述,使用“adb shell”命令触发意图时也不会发生这种情况。 我怀疑可能是意图没有达到我的设备。 有什么方法可以find是否收到意图?

请帮忙

1>好的初学者,你正在混合两件事情。 此链接适用于Google Analytics-v4 https://developers.google.com/analytics/devguides/collection/android/v4/和此链接https://developers.google.com/analytics/solutions/testing-play-campaigns不适用于v4(页面太旧了,这个页面发布的时候没有GAV4&#x3002;

2>检查物理设备(Google Play服务)的版本,并将其更新到5.0(如果尚未完成)。

3>你不需要下面提到的锅炉代码。 我认为这是GAV3而不是GAV4

 <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> 

为了更清晰的代码检查这个链接。 找不到任何广告系列数 使用Google Analytics(分析)v4

4>特别是对于GAV4(我自己的经验),它可以看到错误“没有find活动数据”。 尝试在详细模式下运行代码,你会看到GAV4正在连接到它的主机。

 GoogleAnalytics.getInstance(this).getLogger().setLogLevel(LogLevel.VERBOSE); 

5>不要打开dry_run,您将无法在Google Analytics上看到数据。 默认情况下closures。

6>最后,在Google Analytics内部,请参阅“实时”下的实时点击。

希望这可以帮助。

有时我遇到了ClassNotFound的额外错误。

首先,我build议看看Nishant的回应,这里有几件事要检查他们是否解决了你的问题:

1)如果您有多个BroadcastReceiver:

1.1)确保你不要! 只保留一个,并将意图filter添加到该filter:

  <service android:name="com.google.android.gms.analytics.CampaignTrackingService"/> <receiver android:name="com.example.MyScheduleReceiver" android:exported="true"> <intent-filter > <action android:name="android.intent.action.ACTION_USER_PRESENT" /> <action android:name="android.intent.action.BOOT_COMPLETED" /> <action android:name="android.intent.action.ACTION_EXTERNAL_APPLICATIONS_AVAILABLE"/> <action android:name="android.intent.action.ACTION_SCREEN_OFF" /> <action android:name="android.intent.action.ACTION_SCREEN_ON" /> <action android:name="android.net.conn.CONNECTIVITY_CHANGE" /> <action android:name="com.android.vending.INSTALL_REFERRER" /> </intent-filter> </receiver> 

1.2)然后在BroadcastReceiver结束时将意图发送给正确的接收方:

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

  //Do your code for the other intents new CampaignTrackingReceiver().onReceive(context, intent); 

}

2)在阅读Google的教程时,调用正确的Google Analytics(分析)版本也是一个问题,因为一些链接始终将您redirect到旧版本的库。 如果您使用的是v4,那么:

2.1)确保不要包含libGoogleAnalyticsV2.jar

2.2)仔细检查你是否正在编写com.google.android.gms.analytics.CampaignTrackingService ,并且所有的导入。

3)在使用ADB检查其工作情况时是否validation前面的几点。 在上面的例子中,调用亚行的权利将是:

 adb shell am broadcast -a com.android.vending.INSTALL_REFERRER -n com.example/com.example.MyScheduleReceiver --es "referrer" "utm_source=testSource&utm_medium=testMedium&utm_term=testTerm&utm_content=testContent&utm_campaign=testCampaign" 

为此,使CustomReceiver从GoogleAnalyticsv4发送意图到谷歌CampaignTrackingReceiver。

通过这个,您将在日志中获得CampaignFound

 public class CustomCampaignTrackingReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { new CampaignTrackingReceiver().onReceive(context, intent); } } 

安装apk文件到你的设备。

 adb install filename.apk 

键入以下adb命令:

 ..\sdk\platform-tools>adb shell am broadcast -a com.android.vending.INSTALL_REFERRER -n your.package.name/com.google.android.gms.analytics.CampaignTrackingReceiver --es "referrer" "utm_source=testSource" 

请注意,此链接中给出的命令有一个V3接收器。

检查logcat。 Campaign Found消息应该在那里。 确保引用者正在发送时应用程序未运行。 该应用程序只有在完成后才能启动。

可能对某人有用…我正在获得GAv4: Discarding hit. Missing tracking id parameter GAv4: Discarding hit. Missing tracking id parameter因为不是:

 GoogleAnalytics.getInstance(context).newTracker(R.xml.app_tracker); 

我已经添加

 GoogleAnalytics.getInstance(context).newTracker(R.string.ga_trackingId); 

注意差异xml.app_tracker vs string.ga_trackingId

使用xml.app_trackerconfiguration文件!

当我检查我的最后实施。 也许日志可以被打破。 我在日志中收到“找不到任何活动数据”,但是我在Web控制台中看到了真实的数据。

我正在使用v4,我的清单看起来像这样:

 <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> <service android:name="com.google.android.gms.analytics.CampaignTrackingService" /> 

祝你好运