Установка реферера не отслеживается на Android Market

При установке приложения через приложение Market на телефон, приложение будет правильно получать переданную ему информацию о реферере (как описано здесь:http://code.google.com/mobile/analytics/docs/android/#android-market-tracking).

Однако при установке того же приложения с тем же самым реферером через Интернет-магазин Маркетинг информация о реферере удаляется и не принимается приложением. Это делает невозможным отслеживание кампаний, ориентированных на ваше приложение из Интернета.

Можно ли отслеживать установку реферера через Android Market?

Ответы на вопрос(2)

немного поздно здесь. К счастью, это работает для нас, чтобы отслеживать установки, которые приходят из интернет-магазина.

класс приемника:

public class OwnReceiver extends BroadcastReceiver {

public static final String ACTION_UPDATE_DATA = "ACTION_UPDATE_DATA";
private static final String ACTION_INSTALL_REFERRER = "com.android.vending.INSTALL_REFERRER";
private static final String KEY_REFERRER = "referrer";

public OwnReceiver() {
}

@Override
public void onReceive(Context context, Intent intent) {
    if (intent == null) {
        Log.e("ReferrerReceiver", "Intent is null");
        return;
    }
    if (!ACTION_INSTALL_REFERRER.equals(intent.getAction())) {
        Log.e("ReferrerReceiver", "Wrong action! Expected: " + ACTION_INSTALL_REFERRER + " but was: " + intent.getAction());
        return;
    }
    Bundle extras = intent.getExtras();
    if (intent.getExtras() == null) {
        Log.e("ReferrerReceiver", "No data in intent");
        return;
    }

    MyApplication.setReferrerDate(context.getApplicationContext(), new Date().getTime());
    //Contro.setReferrerData(context.getApplicationContext(), (String) extras.get(KEY_REFERRER));
    MyApplication.setReferrerData(context.getApplicationContext(), (String) extras.get(KEY_REFERRER));
    LocalBroadcastManager.getInstance(context).sendBroadcast(new Intent(ACTION_UPDATE_DATA));
}
}

использование в MainActivity:

private final BroadcastReceiver mUpdateReceiver = new BroadcastReceiver() {
    @Override
    public void onReceive(Context context, Intent intent) {
       someMethod(); //send received data to your method and use it your way
    }
};

Некоторые методы, где вы получаете данные:

 private void someMethod(){
    String referrerDataRaw = MyApplication.getReferrerDataRaw(getApplicationContext());

    if(referrerDataRaw.toLowerCase().contains(matchx.toLowerCase())){        
        Log.i("true",referrerDataRaw);
        Toast.makeText(getBaseContext(),"Install referrer found",Toast.LENGTH_SHORT).show();
        //postBack();
    }
    else {
        Log.i("false","no referrer found");
        Toast.makeText(getBaseContext(),"no referrer found",Toast.LENGTH_SHORT).show();
    }

}

Bonus Этот, если вы отправляете постбэки

public void postBack() {
   // String postTest = "https://play.google.com/store/apps/details?id=com.neon.myApp&referrer=utm_source=someOne&utm_medium=cpr&utm_term=testytest";
    String referrerDataRaw = MyApplication.getReferrerDataRaw(getApplicationContext());

   // Toast.makeText(this, "raw : " + postTest, Toast.LENGTH_SHORT).show();
    String[] split  = referrerDataRaw.split("=");
    String end = split[split.length - 1];

    Toast.makeText(this,  AppConstant.lin + end, Toast.LENGTH_SHORT).show();

    StringRequest strReq = new StringRequest(Request.Method.POST,
            AppConstant.lin + end, new Response.Listener<String>() {

        @Override
        public void onResponse(String response) {
            Toast.makeText(getBaseContext(),"postback sent",Toast.LENGTH_SHORT).show();

        }
    }, new Response.ErrorListener() {

        @Override
        public void onErrorResponse(VolleyError error) {

        }
    });

    // Adding request to request queue
    MyApplication.getInstance().addToRequestQueue(strReq, tag_string_req);
}

Получил большую часть помощи от этой доброй души на GitHubhttps://github.com/SimonMarquis/Android-InstallReferrer

Решение Вопроса

отследить установку реферера из интернет-магазина Google Play невозможно. Этоизвестная проблема с последним SDK.

Google Play Campaign Tracking does not currently support web-to-device installs initiated from the web Play Store.

 12 дек. 2014 г., 08:20
Ссылка на документацию и "известные проблемы" раздел для legacy v2. Начиная с более поздней версии, все "известные проблемы" раздел отсутствует. Итак, должна ли функция работать сейчас? Мне кажется, что это не оригинал, т.е. «нет реферрала через веб-маркет». проблема все еще существует.
 31 янв. 2014 г., 13:56
Кто-нибудь может предложить какую-нибудь работу вокруг?

Ваш ответ на вопрос