我在测试应用程序的install_referrer时遇到了一些问题,这是在发布到Google Play Store之前我所做的步骤。如果你发现任何错误或漏洞,请告诉我!
下面是更新后的Android清单:
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<service android:name="com.google.analytics.tracking.android.CampaignTrackingService" />
<receiver android:name="com.google.analytics.tracking.android.CampaignTrackingReceiver" android:exported="true" >
<intent-filter>
<action android:name="com.android.vending.INSTALL_REFERRER" />
</intent-filter>
</receiver>
之后我创建了 /res/analytics.xml 文件:
<?xml version="1.0" encoding="utf-8" ?>
<resources>
<string name="ga_trackingId">TRACKING ID FROM GOOGLE ANALYTICS ACCOUNT<string>
<bool name="ga_autoActivityTracking">true </bool>
<bool name="ga_reportUncaughtExceptions">true</bool>
</resources>
我在MainActivity文件中添加了这两个方法:
@Override
public void onStart() {
super.onStart();
EasyTracker.getInstance(this).activityStart(this); // Add this method.
}
@Override
public void onStop() {
super.onStop();
EasyTracker.getInstance(this).activityStop(this); // Add this method.
}
然后(我正在使用Ubuntu),我打开了终端(我认为错误就在这里):
PATH_ADB_TOOL shell am broadcast -a com.android.vending.INSTALL_REFERRER
-n MY_PACKAGE_NAME/com.google.analytics.tracking.android.CampaignTrackingReceiver--es "referrer"
"utm_source=testSource&utm_medium=testMedium&utm_term=testTerm&utm_content=testContent&utm_campaign=testCampaign"
之后,它显示:
Broadcasting: Intent { act=com.android.vending.INSTALL_REFERRER pkg=referrer cmp=MY_PACKAGE_NAME/com.google.analytics.tracking.android.CampaignTrackingReceiver--es }
Broadcast completed: result=0
当我从Eclipse启动我的应用到我的Nexus 7上时,我在logcat中发现了以下内容:
05-22 11:05:39.461: W/GAV2(15255): Thread[GAThread,5,main]: Service unavailable (code=1), will retry.
05-22 11:05:39.461: W/ActivityManager(515): Unable to start service Intent { act=com.google.android.gms.analytics.service.START cmp=com.google.android.gms/.analytics.service.AnalyticsService (has extras) } U=0: not found
05-22 11:05:39.471: I/GAV2(15255): Thread[GAThread,5,main]: No campaign data found.
编辑
最终成功了。问题很傻:由于我使用的是Eclipse,我以为只需要插入要安装应用程序的设备并调试Android项目,然后从设备关闭应用程序。
我的错误:我必须通过ADB INSTALL来安装应用程序,然后从设备启动它,并在Eclipse上检查logcat。
在Google的教程中,它说:
如果收到了活动数据,则可以期望看到SDK使用类似于以下内容的logcat打印调试消息:
Thread[GAThread,5,main]: Campaign found: utm_source=testSource&utm_medium=testMedium&utm_term=testTerm&utm_content=testContent&utm_campaign=testCampaign
但是我得到了:
05-24 14:42:19.303: I/GAV3(30436): Thread[GAThread,5,main]: Campaign found: utm_source=testSource
它说相似,但我自己在想,为什么它不是一样的。有人可以帮助我吗?