2012-09-29 65 views
3

我測試過Appbrain SDK和Inmobi SDK。 我發現這個普通的接收器。我製作了定製的接收器。 我認爲,當在谷歌市場下載應用程序時,谷歌市場發送「引薦者」價值給我的應用程序。但我沒有收到任何東西。什麼問題?'action android:name =「com.android.vending.INSTALL_REFERRER」'是什麼?

//This is Appbrain's receiver 
<receiver android:exported="true" android:name="com.appbrain.ReferrerReceiver" > 
    <intent-filter> 
     <action android:name="com.android.vending.INSTALL_REFERRER" /> 
    </intent-filter> 
</receiver> 


//This is Inmobi's receiver 
<receiver android:name="com.inmobi.adtracker.androidsdk.IMAdTrackerInstallRefererReciever" android:exported="true" > 
    <intent-filter> 
     <action android:name="com.android.vending.INSTALL_REFERRER" /> 
     <action android:name="android.net.conn.CONNECTIVITY_CHANGE" /> 
    </intent-filter> 
</receiver> 


//This is My Custom receiver 
<receiver android:name="com.xgame.adproject2.TestReceiver" android:exported="true" > 
    <intent-filter> 
     <action android:name="com.android.vending.INSTALL_REFERRER" /> 
    </intent-filter> 
</receiver> 

// source 
public class TestReceiver extends BroadcastReceiver{ 

    public static final String TAG = "TEST"; 

    String referrerString = ""; 

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

     Log.e(TAG, "11111111"); 

     if(intent.getAction().equals("com.android.vending.INSTALL_REFERRER")) { 
      Bundle extras = intent.getExtras(); 
      referrerString = extras.getString("referrer"); 

      Log.e(TAG, "REFERRER: " + referrerString); 
     } 
    } 
} 

當關閉應用程序時,我在Android Web瀏覽器中輸入此URL。但下載應用程序後,我沒有收到referrer值。

https://play.google.com/store/apps/details?id=com.xgame.adproject2&referrer=utm_source%3Dcom.xgame.adproject2%26utm_medium%3Dgoogle%26utm_term%3Dbanner%26utm_campaign%3Dxgame

+1

您可以發佈您的接收器代碼。可能[重複](http://stackoverflow.com/q/4093150/1050058) –

回答

3

很久以前Android市場將通過您的市場頁面的引用字符串,導致您的安裝。谷歌在某個時候停止了這一點。 你可以在此看到一個線程在http://productforums.google.com/forum/#!topic/android-market/F5TO9uE3WSA

現在,只有在明確通過市場應用程序時纔會看到引用字符串。例如,如果應用程序A具有安裝應用程序B的按鈕,則可以傳遞引用者字符串 market:// details?id = B & referrer = A.主要用於廣告網絡,用於衡量應用廣告的有效性

+0

感謝您的解釋。 我是這個uri的請求。 'market:// details?id = com.xgame.adproject2&referrer = utm_source%3Dgoogle%26utm_medium%3Dgoogle%26utm_term%3Dbanner%26utm_campaign%3Dxgame' 併成功。 – netcleaner

+2

Android Market論壇鏈接不再有效。 –

4

需要注意的一件重要事情是,Android Market/Google Play只會將安裝推薦鏈接發送到您在清單中定義的第一個接收者。所以在這種情況下,只有AppLift接收器才能得到它。

有一種方法來「前進」作爲在JavaDoc描述從AppLift接收器事件:http://swisscodemonkeys.github.com/appbrain-sdk/javadoc/reference/com/appbrain/ReferrerReceiver.html

在你的情況,你的表現應該是這樣的:

//This is Appbrain's receiver 
<receiver android:exported="true" android:name="com.appbrain.ReferrerReceiver" > 
    <intent-filter> 
     <action android:name="com.android.vending.INSTALL_REFERRER" /> 
    </intent-filter> 
    <meta-data android:name="forward.inmobi" android:value="com.inmobi.adtracker.androidsdk.IMAdTrackerInstallRefererReciever" /> 
    <meta-data android:name="forward.custom" android:value="com.xgame.adproject2.TestReceiver" /> 
</receiver> 

// Keep the execution of InMobi on connectivity change 
<receiver android:name="com.inmobi.adtracker.androidsdk.IMAdTrackerInstallRefererReciever" android:exported="true" > 
    <intent-filter> 
     <action android:name="android.net.conn.CONNECTIVITY_CHANGE" /> 
    </intent-filter> 
</receiver> 

。注意,在Android問題追蹤器中,可能值得出演的相關錯誤是:http://code.google.com/p/android/issues/detail?id=24119(這是關於從有機應用發現中恢復引用字符串,如果他們修復了這個問題,希望他們也會在Play網站安裝時添加引用字符串) 。

+0

謝謝你的解釋。 – netcleaner

相關問題