如何测试Android推荐跟踪?

问题描述 投票:98回答:8

我正在实施一些代码来对Android市场的下载进行自己的推荐跟踪。

请参阅Android referral tracking does not work,了解我的应用正在做什么。

如何在部署到公众之前测试此代码是否正常工作?

android google-analytics google-play referrer
8个回答
252
投票

最简单的方法是使用adb。您不必编写任何代码。

只需在终端中运行:

adb shell 
am broadcast -a com.android.vending.INSTALL_REFERRER -n <your.package>/.<path.up.until.your.BroadcastReceiver> --es "referrer" "utm_source=test_source\&utm_medium=test_medium\&utm_term=test_term\&utm_content=test_content\&utm_campaign=test_name"

这是我的确切行:

am broadcast -a com.android.vending.INSTALL_REFERRER -n net.lp.collectionista/.util.broadcast_receivers.FacadeBroadcastReceiver --es "referrer" "utm_source=test_source\&utm_medium=test_medium\&utm_term=test_term\&utm_content=test_content\&utm_campaign=test_name"

但你的BroadcastReceiver可能需要是AnalyticsReceiver,即

对于Google Analytics v2:

com.your.package / com.google.analytics.tracking.android.CampaignTrackingReceiver

对于Google Analytics v3:

com.your.package / com.google.android.apps.analytics.AnalyticsReceiver

对于Google Analytics v4:

com.your.package / com.google.android.gms.analytics.CampaignTrackingReceiver

正如Luigi所说,您也可以省略"-n"组件名部分,但随后您设备上的每个应用都将收到推荐。这可以是一个很好的额外测试,看看你是否可以找到你的BroadcastReceiver

我看到的输出(特别是最后一行很重要):

05-13 17:28:08.335: D/Collectionista FacadeBroadcastReceiver(8525): Receiver called
05-13 17:28:08.335: V/Collectionista FacadeBroadcastReceiver(8525): Receiver called with action: com.android.vending.INSTALL_REFERRER
05-13 17:28:08.365: D/GoogleAnalyticsTracker(8525): Stored referrer:utmcsr=test_source|utmccn=test_name|utmcmd=test_medium|utmctr=test_term|utmcct=test_content

16
投票

没有!你有几种方法来测试它以这种形式的意图手动发送广播

    Intent i = new Intent("com.android.vending.INSTALL_REFERRER");
    //Set Package name
    i.setPackage("com.package.yourapp");
    //referrer is a composition of the parameter of the campaing
    i.putExtra("referrer", referrer);
    sendBroadcast(i);

8
投票

以上命令都不适合我。在尝试了很多命令之后,这里有一个对我有用的命令:

./adb shell am broadcast -a com.android.vending.INSTALL_REFERRER -n <your package>/<your package>.<your BroadcastReceiver> --es "referrer" "utm_medium%3Dpartner%26utm_campaign%3Dpartner_name"

注意:引荐来源应该是url编码的。


4
投票

找到了一个很好的开源工具,可以让你扫描生成here的引用qrcode,并发送一个包含所有正确信息的广播意图。

https://github.com/giago/referraltester


2
投票

pjv的答案适用于AndroidManifest.xml中的包名与build.gradle中的applicationId匹配的情况。如果不匹配,请执行以下操作: 鉴于: applicationId是com.my.app.debug 包是com.package.app 接收器是path.to.MyReceiver 然后广播到com.my.app.debug/com.package.app.path.to.MyReceiver 详细信息:https://groups.google.com/forum/#!topic/adt-dev/PjTHX79Iomw


0
投票

对于我来说,只有在添加“-e”而不是“--es”时添加了意图。可能是我的广告版本问题。所以我的命令是./adb shell am broadcast -a com.android.vending.INSTALL_REFERRER -n <your package>/<your package>.<your BroadcastReceiver> -e "referrer" "utm_medium%3Dpartner%26utm_campaign%3Dpartner_name"


0
投票

Goople Play收到APP链接并要求用户点击下载,Google Play会在下载完成后发送广播。 APP链接通常会采用一些参数(例如以下示例)让Google Play和APP知道来源的来源。

Https://play.google.com/store/apps/details?id=com.example.application
& Referrer = utm_source% 3Dgoogle
% 26utm_medium% 3Dcpc
% 26utm_term% 3Drunning% 252Bshoes
% 26utm_content% 3Dlogolink
% 26utm_campaign% 3Dspring_sale

因此,我们可以使用adb来模拟来自Google Play的广播。

echo 'am broadcast \
    -a com.android.vending.INSTALL_REFERRER \
    -n "com.google.samples.quickstart.analytics/com.google.android.gms.analytics.CampaignTrackingReceiver" \
    --es "referrer" \
      "utm_source=test_sourceCampaignTrackingReceiver&utm_medium=referral&utm_term=test_term&utm_content=test_content&utm_campaign=test_name"; \
    exit' | adb shell

-1
投票

https://github.com/rogerbinns/referraltester这是一个很棒的应用程序,用于启动“com.android.vending.INSTALL_REFERRER”广播。你也可以输入参数。

© www.soinside.com 2019 - 2024. All rights reserved.