我开始通过引用Google Analytics(分析)V4来实现广告系列衡量
https://developers.google.com/analytics/devguides/collection/android/v4/
https://developers.google.com/analytics/solutions/testing-play-campaigns中所述,在测试Campign Measurement时面临一个问题。每当我的日志显示“未找到广告系列数据”时

我将google Play服务(Rev​​:18)导入到我的工作区中,并在我的项目中将其引用

在 list 文件中的以下行中添加了

<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下创建了global_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>

用我的跟踪ID替换了跟踪ID

在测试广告系列衡量指标时,我首先通过adb install将我的应用安装到了我的设备(Moto G(4.4.2))上。确保该应用程序未运行,并按照上述链接中的说明广播了该 Intent 。广播 Intent 时,我获得了成功日志。

意向
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]:找不到 Activity 数据。”错误。

能否让别人让我知道为什么我没有获得Campaign数据?我要去哪里错了。

另外,当我使用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(分析)。由于我想先检查是否正在接收Campaign数据,因此我没有对GA实现任何跟踪器

编辑:当我手动触发按钮上的“广播 Intent ”时,在我的应用程序中单击。重新启动我的应用程序后,我能够看到“找到广告系列”日志。但是,如上所述,当使用“adb shell”命令触发 Intent 时,不会发生同样的事情。我怀疑可能无法到达我的设备。有什么方法可以确定是否收到了 Intent ?

请帮忙

最佳答案

1>对于初学者来说,您正在混合两件事。
该链接适用于Google Analytics-v4 https://developers.google.com/analytics/devguides/collection/android/v4/
并且此链接https://developers.google.com/analytics/solutions/testing-play-campaigns不适用于v4(页面太旧,发布此页面时没有GAV4。

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>

有关代码的更多信息,请检查此链接。 No campaign data found. Using Google Analytics v4

4>专门针对GAV4(有我自己的经验),可以看到错误“找不到 Activity 数据”。尝试以详细模式运行代码,您将看到GAV4正在与其主机建立连接。
GoogleAnalytics.getInstance(this).getLogger().setLogLevel(LogLevel.VERBOSE);

5>不要打开dry_run,您将不会在Google Analytics(分析)上看到数据。默认情况下,此功能处于关闭状态。

6>最后,在Google Analytics(分析)内部,请在“实时”下查看实时匹配。

希望这可以帮助。

10-07 19:30
查看更多