我正在尝试注册一个广播接收器,它捕获Android从市场安装应用程序后启动的"com.android.vending.INSTALL_REFERRER"意图.
我在此处详细了解:http://code.google.com/mobile/analytics/docs/android/#referrals
但是,我无法使用Google Analytics,因此我创建了自己的解决方案.我在清单文件中添加了以下内容:
<receiver android:name="com.test.Receiver" android:exported="true">
<intent-filter>
<action android:name="com.android.vending.INSTALL_REFERRER" />
</intent-filter>
</receiver>
Run Code Online (Sandbox Code Playgroud)
并创建了一个基本的BroadcastReceiver类:
public class Receiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Bundle extras = intent.getExtras();
String referrerString = extras.getString("referrer");
Log.w("TEST", "Referrer is: " + referrerString);
}
}
Run Code Online (Sandbox Code Playgroud)
然而,当安装应用程序时,接收器似乎没有捕获Intent(如果Intent甚至广播?)并且我没有记录输出.
我在某个地方出错了还是市场在安装应用程序时不再启动这些Intent?
我注意到浏览器中的某些Google Play应用链接具有referrer=属性,这显然告诉推荐人将您发送到Google Play中的应用页面.
是否可以在我的应用程序的代码中看到引用者(如果有的话)?如果没有,在任何地方都可以看到它?
我正在尝试让Android推荐跟踪工作.我正在关注我在此处找到的唯一文档http://code.google.com/mobile/analytics/docs/android/#referrals 我在我的android清单文件中有以下内容
<receiver
android:name="com.google.android.apps.analytics.AnalyticsReceiver"
android:exported="true">
<intent-filter>
<action android:name="com.android.vending.INSTALL_REFERRER" />
</intent-filter>
</receiver>
<receiver android:name="com.package.Receiver" android:exported="true">
<intent-filter>
<action android:name="com.android.vending.INSTALL_REFERRER" />
</intent-filter>
</receiver>
<uses-sdk android:minSdkVersion="4"/>
Run Code Online (Sandbox Code Playgroud)
com.package.Receiver以:
public void onReceive(Context paramContext, Intent paramIntent) {
String str1 = paramIntent.getStringExtra("referrer");
Log.i("myapp", "action: '" + paramIntent.getAction() + "'
referrer string: '" + str1 + "'");
Run Code Online (Sandbox Code Playgroud)
还有一点反编译com.google.android.apps.analytics.AnalyticsReceiver中包含以下代码:
public void onReceive(Context ctx, Intent intent)
/* */ {
/* 24 */ String referrer = intent.getStringExtra("referrer");
/* */
/* 26 */ if ((!
("com.android.vending.INSTALL_REFERRER".equals(intent.getAction())))
|| (referrer == null))
/* */ …Run Code Online (Sandbox Code Playgroud) 我有一个应用程序链接到(通过Android Market URL)在几个不同的网站上.我需要实现的是一种确定用户来自何处的方法.有没有办法确定用户通过Android电子市场下载我的应用程序所遵循的引用URL?
例如,用户A浏览网站xyz.com并单击该链接以在Android Market上查看我的应用,然后继续下载.一旦安装,我可以"programmaticaly"查看用户来自哪里(xyz.com)?
我需要自己(在应用程序内)实现这一点,而不是依赖外部工具或服务.
我花了很多时间在这上面,现在我把头发拉了出来.我使用的是Google Analytics Android SDK v2.我已经使用了几个月,并使用了收集数据EasyTracker.没问题.
我最近尝试实施广告系列跟踪,一切似乎都没问题,但在市场上连续数周的推介下载后,我看到没有数据.我最近研究了如何测试并找到了这个: stackoverflow.com/questions/5890914/how-to-test-android-referral-tracking
我正在使用v2服务,所以在我的AndroidManifest.xml中,我添加了这个:
<!-- Used for install referral measurement -->
<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>
Run Code Online (Sandbox Code Playgroud)
来源:https://developers.google.com/analytics/devguides/collection/android/v2/
我没有其他接收器INSTALL_REFERRER.
当我从亚行运行测试时,我的应用程序中没有任何类型的日志.当我只是安装应用程序并观察Logcat时,我看到以下内容,这似乎表明某些内容至少已经联系起来:
03-22 16:11:10.412: W/GAV2(12444): Thread[GAThread,5,main]: Service unavailable (code=1), will retry.
03-22 16:11:10.443: I/GAV2(12444): Thread[GAThread,5,main]: No campaign data found.
03-22 16:11:15.420: W/GAV2(12444): Thread[Service Reconnect,5,main]: Service unavailable (code=1), using local store.
Run Code Online (Sandbox Code Playgroud)
请帮我弄清楚我在这里缺少什么.这似乎是很多困难比它应该是.谢谢!
我想向用户提供奖金如何与我的Android应用程序共享链接.如何在Android市场中为app用户实施推荐计划?
目前我不明白如何确定谁向用户提供了android市场链接的参考资料.
有任何想法吗?