7

我参考链接https://developers.google.com/analytics/devguides/collection/android/v4/开始使用 Google Analytics V4 实施营销活动测量 。如https://developers.google.com/analytics/solutions/testing-play-campaigns中所述,在测试 Campign 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 下创建了 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)) 上。确保应用程序没有运行并广播上述链接中提到的意图。广播意图时我得到了成功日志。

意图

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): Thread[GAThread,5,main]: No Campaign data found. ”错误。

有人可以让我知道为什么我没有收到广告系列数据吗?我哪里出错了。

另外,为什么当我使用 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 实施任何跟踪器

编辑:当我在我的应用程序中手动触发按钮单击时的广播意图时。当我重新启动我的应用程序时,我能够看到“找到的活动”日志。但是,当使用上面提到的“adb shell”命令触发意图时,同样的情况不会发生。我怀疑可能是没有达到我的设备的意图。有没有办法确定是否收到了意图?

请帮忙

4

6 回答 6

6

1> ok for the starters you are mixing two things. this link is for Google Analytics-v4 https://developers.google.com/analytics/devguides/collection/android/v4/ and this link https://developers.google.com/analytics/solutions/testing-play-campaigns is not for v4( the page is too old, there was no GAV4 when this page was published.

2> Check the physical-device(Google play services) version and update it to 5.0, if not already done.

3> you dont need the boiler plate code mentioned below. I think this is for GAV3 and not 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>

for more clarity on code check this link. No campaign data found. Using Google Analytics v4

4> Specifically for GAV4(with my own exprience), its ok to see the error "No Campaign data found". try to run the code in verbose mode and you will see that GAV4 is making connections to its host.

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

5> Do not turn on the dry_run, you will not see the data on Google Analytics. By default this is off.

6> finally, inside Google Analytics see under "Real-time" for live hits.

hope this helps.

于 2014-07-16T06:23:23.937 回答
1

我有时会遇到与 ClassNotFound 的额外错误相同的问题。

首先,我建议查看 Nishant 的回复,这里还有几件事可以检查他们是否解决了您的问题:

1) 如果您有多个 BroadcastReceiver:

1.1) 确保你不这样做!只保留一个并将意图过滤器添加到那个:

    <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 结束时将意图发送到正确的接收器:

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

  //Do your code for the other intents


  new CampaignTrackingReceiver().onReceive(context, intent);  

}

2) 在阅读 Google 的教程时调用正确的 Analytics 版本也是一个问题,因为某些链接始终会将您重定向到旧版本的库。如果您使用的是 v4,则:

2.1) 确保不包含 libGoogleAnalyticsV2.jar

2.2) 仔细检查您是否一直在编写com.google.android.gms.analytics .CampaignTrackingService 并针对所有导入。

3)当使用亚行检查其工作是否验证了前面的几点。在上面的示例中,调用 ADB 的正确行是:

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"
于 2014-11-05T11:08:36.863 回答
0

为此,在 GoogleAnalyticsv4 中制作 CustomReceiver 并从该发送意图到 google CampaignTrackingReceiver。

这样,您将在日志中获得CampaignFound

public class CustomCampaignTrackingReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {

    new CampaignTrackingReceiver().onReceive(context, intent);
}
}
于 2015-03-13T10:01:15.017 回答
0

将 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 接收器。

检查日志猫。Campaign Found 消息应该在那里。确保在发送引荐来源网址时应用程序未运行。该应用程序应仅在完成后启动。

于 2015-06-23T10:20:21.517 回答
0

可能对某人有用......我得到了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_trackerstring.ga_trackingId的区别!

使用xml.app_tracker配置文件!

于 2015-10-22T00:47:45.560 回答
0

正如我在上次实施中检查的那样。也许日志可以被破坏。我在日志中收到“未找到活动数据”,但我在 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" />

祝你好运

于 2015-12-01T16:34:08.563 回答