2012-09-29 5 views
3

Appbrain SDK와 Inmobi SDK를 테스트했습니다. 그리고이 공통 수신기를 발견했습니다. 그리고 나는 주문 수신기를 만들었다. Google 시장에서 앱을 다운로드 할 때 Google Market이 내 앱에 'referer'값을 전송한다고 생각했습니다. 하지만 아무것도받지 못했습니다. 무슨 일 이니?'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); 
     } 
    } 
} 

응용 프로그램이 다운되면 안드로이드 웹 브라우저에서이 URL을 입력했습니다. 하지만 앱 다운로드 후, 리퍼러 값을받지 못했습니다.

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

오래 전 안드로이드 시장은 당신에게 설치하려면 주도 시장 페이지의 참조 자 문자열을 전달한다. 어떤 시점에서 Google은이를 중단했습니다. http://productforums.google.com/forum/#!topic/android-market/F5TO9uE3WSA

에서 스레드를 볼 수 있습니다. 이것을 열면 명시 적으로 시장 앱으로 전달하는 경우에만 참조 문자열을 받게됩니다. 예를 들어 앱 A에 앱 B를 설치하는 버튼이있는 경우 리퍼러 문자열 market : // details? id = B & referrer = A를 전달할 수 있습니다. 앱의 광고 효과를 측정하려는 광고 네트워크에 주로 유용합니다.

+0

설명해 주셔서 감사합니다. 나는이 uri로 요청을 받았습니다. '시장 : // details? id = com.xgame.adproject2 & referrer = utm_source % 3Dgoogle % 26utm_medium % 3Dgoogle % 26utm_term % 3Dbanner % 26utm_campaign % 3Dxgame' 그리고 성공했습니다. – netcleaner

+2

Android 마켓 포럼 링크는 더 이상 유효하지 않습니다. –

4

중요한 점은 Android 마켓/Google Play는 설치 리퍼러를 매니페스트에 정의한 첫 번째 수신자에게만 보냅니다. 따라서이 경우에는 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> 

참고 • 그래도

에 "앞으로"방법 JavaDoc을에 설명 된대로 AppLift 수신기에서 이벤트가있다 출품 할 가치가있는 Android 문제 추적기의 관련 버그는 다음과 같습니다 http://code.google.com/p/android/issues/detail?id=24119 (유기농 앱 검색의 참조 문자열을 다시 가져 오는 것과 관련하여 Play 웹 사이트에서 설치가 시작될 때 참조 문자열이 추가되기를 바랍니다) .

+0

설명해 주셔서 감사합니다. – netcleaner