Android 推荐跟踪不起作用 [英] Android referral tracking does not work

查看:19
本文介绍了Android 推荐跟踪不起作用的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试使用 Android 推荐跟踪功能.我正在关注我在此处找到的唯一文档 http://code.google.com/mobile/analytics/docs/android/#referrals 我的 android 清单文件中有以下内容

<接收器android:name="com.google.android.apps.analytics.AnalyticsReceiver"android:exported="true"><意图过滤器><action android:name="com.android.vending.INSTALL_REFERRER"/></意图过滤器></接收器><receiver android:name="com.package.Receiver" android:exported="true"><意图过滤器><action android:name="com.android.vending.INSTALL_REFERRER"/></意图过滤器></接收器><uses-sdk android:minSdkVersion="4"/>

com.package.Receiver 以:

开头

public void onReceive(Context paramContext, Intent paramIntent) {String str1 = paramIntent.getStringExtra("referrer");Log.i("myapp", "action: '" + paramIntent.getAction() + "'引用字符串:'" + str1 + "'");

还有一点点反编译 com.google.android.apps.analytics.AnalyticsReceiver 中有以下代码:

public void onReceive(Context ctx, Intent intent)/* */{/* 24 */String referrer = intent.getStringExtra("referrer");/* *//* 26 */如果 ((!("com.android.vending.INSTALL_REFERRER".equals(intent.getAction())))||(推荐人 == 空))/* */{/* 28 */返回;/* */}/* *//* 31 */String formattedReferrer = formatReferrer(referrer);/* *//* 33 */if (formattedReferrer != null) {/* 34 */PersistentEventStore store = new持久事件存储(ctx);/* 35 */store.setReferrer(formattedReferrer);/* 36 */Log.d("googleanalytics", newStringBuilder().append("存储推荐人:").append(formattedReferrer).toString());/*     */    } 别的 {/* 38 */Log.w("googleanalytics", "格式错误的引荐来源网址,被忽略");/* */}/* */}

请注意记录googleanalytics"的第 36 和 38 行两行我使用本文开头链接的谷歌页面生成了一个链接

http://www.google.com/url?sa=D&q=http://market.android.com/search%3Fq%3Dpname:com.package.app%26referrer%3Dutm_source%253Dgoogle%2526utm_medium%253Dcpc%2526utm_term%253Drunning%25252Bshoes%2526utm_content%253Dcontent1%2526utm_campaign%253Dslogan&usg=AFQ1CNFWhpwlwq

当我从该链接下载应用程序时,我将 logcat 附加到我的 Nexus One,但我没有看到来自googleanalytics"或myapp"的任何日志.谷歌分析库的其余部分确实适用于我的应用程序.IE.我在谷歌分析上看到关于页面点击等的记录.但是所有的流量来源都是直接流量".我不知道发生了什么.有没有人对我可能做错了什么有任何见解吗?

解决方案

通常情况下,我找到了自己的答案.我的问题出在我的 AndroidManifest.xml

我的清单中有以下内容:

<应用程序></应用程序><接收器></接收器><uses-sd/></清单>

接收器标签位于错误的位置.应该是这样的

<应用程序><接收器></接收器></应用程序><uses-sd/></清单>

我现在看到的是我安装应用程序时期望看到的日志.几个小时后,希望 Google Analytics(分析)也能获得这些数据.

I am attempting to get Android Referral tracking to work. I am following the only documentation I have found here http://code.google.com/mobile/analytics/docs/android/#referrals I have the following in my android manifest file

<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"/>  

com.package.Receiver starts with:

public void onReceive(Context paramContext, Intent paramIntent) {  
        String str1 = paramIntent.getStringExtra("referrer");  
        Log.i("myapp", "action: '" + paramIntent.getAction() + "'  
referrer string: '" + str1 + "'"); 

Also with a little bit of decompiling com.google.android.apps.analytics.AnalyticsReceiver has the following code in it:

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))  
/*     */     {  
/*  28 */       return;  
/*     */     }  
/*     */ 
/*  31 */     String formattedReferrer = formatReferrer(referrer);  
/*     */  
/*  33 */     if (formattedReferrer != null) {  
/*  34 */       PersistentEventStore store = new  
PersistentEventStore(ctx);  
/*  35 */       store.setReferrer(formattedReferrer);  
/*  36 */       Log.d("googleanalytics", new  
StringBuilder().append("Stored   
referrer:").append(formattedReferrer).toString());  
/*     */     } else {  
/*  38 */       Log.w("googleanalytics", "Badly formatted referrer, ignored");  
/*     */     }  
/*     */   }  

Note the two lines 36 and 38 that Log "googleanalytics" I have tried pushing the above app to the market, downloading it on my Nexus One (after uninstalling a previous version of the app). I have generated a link using the google page I linked to at the beginning of this post

http://www.google.com/url?sa=D&q=http://market.android.com/search%3Fq%3Dpname:com.package.app%26referrer%3Dutm_source%253Dgoogle%2526utm_medium%253Dcpc%2526utm_term%253Drunning%25252Bshoes%2526utm_content%253Dcontent1%2526utm_campaign%253Dslogan&usg=AFQjCNFctwqk1WgWl0bhiIBNVqy3U4OPRw

I attached logcat to my Nexus One while I download the app from that link, I do not see any logs from "googleanalytics" or "myapp". The rest of the google analytics library does work for my app. I.E. I see records on google analytics about pages hits etc. However all the traffic sources are "Direct Traffic". I am at a loss as to what is going on. Does anyone have any insight into what I might be doing wrong?

解决方案

As is often the case I found my own answer. My problem was in my AndroidManifest.xml

I had the following in my manifest:

<manifest>
    <application>
    </application>
    <receiver>
    </receiver>
    <uses-sd/>
 </manifest>    

The receiver tag was in the wrong spot. It should look like this

<manifest>
    <application>
        <receiver>
        </receiver>
    </application>
    <uses-sd/>
 </manifest>  

I am now seeing the logs I expect to when I install the app. In a few hours hopefully Google Analytics will have the data as well.

这篇关于Android 推荐跟踪不起作用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆