2013-11-21 20 views
1

我花了最近兩天試圖找到解決方法。分析v3中刪除了Android引薦?

我需要預先配置取決於介和自谷歌發揮我的應用程序播放在安裝應用時安裝參照意圖,我創建了自己的接收器這項任務。對艙單申報和接收器的編碼是:

艙單申報:

<receiver 
     android:name="my.package.CustomReceiver" 
     android:exported="true" > 
     <intent-filter> 
      <action android:name="com.android.vending.INSTALL_REFERRER" /> 
     </intent-filter> 
    </receiver> 

而且CustomReceiver的簡化代碼:

public class CustomReceiver extends BroadcastReceiver { 

private static final String CAMPAIGN_SOURCE_PARAM = "utm_source"; 

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

    Log.d("debug", "waking receiver"); 
    Uri uri = intent.getData(); 
    getReferrerMapFromUri(uri); 

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

void getReferrerMapFromUri(Uri uri) { 

    MapBuilder paramMap = new MapBuilder(); 

    // If no URI, return an empty Map. 
    if (uri == null) { 
     Log.d("debug", "intent null"); 

     return; 
    } 

    if (uri.getQueryParameter(CAMPAIGN_SOURCE_PARAM) != null) { 

     // MapBuilder.setCampaignParamsFromUrl parses Google Analytics 
     // campaign 
     // ("UTM") parameters from a string URL into a Map that can be set 
     // on 
     // the Tracker. 
     paramMap.setCampaignParamsFromUrl(uri.toString()); 

     Log.d("debug", paramMap.get(Fields.CAMPAIGN_SOURCE)); 

     // If no source parameter, set authority to source and medium to 
     // "referral". 
    } else if (uri.getAuthority() != null) { 

     paramMap.set(Fields.CAMPAIGN_MEDIUM, "referral"); 
     paramMap.set(Fields.CAMPAIGN_SOURCE, uri.getAuthority()); 

    } 
} 

} 

這就是全部。我使用adb shell命令發送廣播安裝意圖,但它根本沒有被激活。我正在使用谷歌分析v3。

預先感謝您!

回答

2

我試過這樣。而且它的工作(我也使用谷歌分析V3)

首先,在清單:

<!-- Used for Google Play Store Campaign 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> 

其次,添加CustomReceiver延伸廣播接收器 (在我而言,我只是複製和粘貼的所有從開發人員的代碼)

package com.example.testanalytics; 

import com.google.analytics.tracking.android.CampaignTrackingReceiver; 

import android.content.BroadcastReceiver; 
import android.content.Context; 
import android.content.Intent; 

public class CustomReceiver extends BroadcastReceiver 
{ 
@Override 
public void onReceive(Context context, Intent intent) 
{ 
    // Pass the intent to other receivers. 

    // When you're done, pass the intent to the Google Analytics receiver. 
    new CampaignTrackingReceiver().onReceive(context, intent); 
} 
} 

最後一步:在我的活動(我想將消息發送給谷歌分析) 創建一個意圖,並調用sendBroadcast(意向)如下:

Intent it = new Intent("com.android.vending.INSTALL_REFERRER"); 

it.setPackage("com.example.testanalytics"); 
it.putExtra("referrer", "utm_source%3Dyahoo%26utm_medium%3Dbanner+cpc%26utm_term%3Debook%26utm_content%3Dmy_content%26utm_campaign%3Dmy_campaign_name_2"); 

sendBroadcast(it); 

而只是得到它。 我希望這可以幫助你。