Получить реферер после установки приложения из Android Маркета

Я пытаюсь зарегистрировать широковещательный приемник, который ловит намерения «com.android.vending.INSTALL_REFERRER», запущенные Android после того, как приложение установлено с рынка.

Я читаю подробности здесь: http://code.google.com/mobile/analytics/docs/android/#referrals

Однако я не могу использовать Google Analytics, поэтому создал собственное решение. Я добавил в файл манифеста следующее:

<receiver android:name="com.test.Receiver" android:exported="true"> <intent-filter> <action android:name="com.android.vending.INSTALL_REFERRER" /> </intent-filter> </receiver> 

И создал базовый класс BroadcastReceiver:

 public class Receiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { Bundle extras = intent.getExtras(); String referrerString = extras.getString("referrer"); Log.w("TEST", "Referrer is: " + referrerString); } } 

Однако, когда приложение установлено, приемник, похоже, не улавливает намерение (если намерение даже транслируется?), И я не получаю выход в журнал.

Я где-то ошибаюсь или рынок больше не запускает эти намерения, когда приложение установлено?

Я постараюсь помочь тем, кто, как и я, не смог сделать работу install_referrer и кто не нашел ЛЮБОЙ полезной информации об этих функциях.

Заметки:

  1. Намерение com.android.vending.INSTALL_REFERRER будет обнаружено во время процесса установки, а не при первом запуске приложения.
  2. extras.getString("referrer")extras.getString("referrer") .. исправлен, но содержимое может быть любым строковым значением, которое соответствует синтаксису http get … referrer=thatsthevalue&thisisnot=xxx

Вышеприведенный код в порядке, просто некоторые пояснения для заполнения информации:

  1. Android Manifest. Теги <receiver> должны находиться внутри тегов <application> .
  2. Правильный URL-адрес для ссылки на рынок – это не результаты известных форм google в sdk

Но этот

http://market.android.com/details?id=your.application.package.name&referrer=my_referrer_finally_works_fine

Очевидно, что вам нужно следовать ссылке с мобильного устройства, и единственный способ для полного теста – опубликовать тестовое приложение на рынке.

И последнее и личное замечание.

Я не понимаю, почему эта информация полностью исключена, и я надеюсь, что Google будет действовать для ее подробного описания.

Это может быть немного запоздалым, но вы МОЖЕТЕ проверить установку реферера без использования Google Play, просто используйте ADB 🙂

Запустите это из adb.exe

 adb shell am broadcast -a com.android.vending.INSTALL_REFERRER -n your.package/path.to.your.BroadcastReceiver --es "referrer" "test_referrer=test" 

Если у вас есть настройка ведения журнала в вашем BroadcastReceiver, вы увидите его всплывающее окно в LogCat.

Надеюсь это поможет!

Хорошо, поэтому я нашел причину, по которой намерение не запускалось. По-видимому, вы ДОЛЖНЫ использовать те же имена параметров, что и здесь: http://code.google.com/mobile/analytics/docs/android/#referrals

Вы не можете использовать свои собственные имена параметров, как я делал: S

Я думаю, что эти ответы должны были быть написаны до Android 3.1 – потому что все изменилось одним способом импорта.

Система теперь отмечает, что приложение неактивно, когда они установлены, – они не будут получать INSTALL_REFERRER или любую другую трансляцию, пока пользователь явно не активирует приложение, запустив его (или разместив виджет).

Я согласен с тем, что документация Google не самая лучшая. Тем не менее, я только смог получить намерение уволить, фактически загрузив приложение на Market Place, а затем загрузив / установив его. Цель запускается сразу после загрузки / установки – пользователю не нужно запускать приложение. Я использую это, чтобы запустить фоновый сервис.

Обратите внимание, что это не первое намерение начать, а только намерение, связанное с рынком Android, которое отправляет мой Android-портал google. Если вы устанавливаете приложение через другой ресурс, чем на рынок Android, он не срабатывает.

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

 referrer = intent.getStringExtra("referrer"); Map<String, String> params = Toolbox.getQueryMap(referrer); 

PS Вам не нужно читать, чтобы читать deviceid / IMEI, чтобы сделать это, как это делают некоторые приложения. Вы не должны искать своих пользователей.

На самом деле могут быть любые ссылки, такие как market: // … или http: // market … либо работают нормально. Также не имеет значения, какие параметры будут в поле referrer. Он отлично работает с любым текстом.

Основная проблема в том, что это событие типа «com.android.vending.INSTALL_REFERRER» не отправляется по широковещательной передаче. Это событие выходит ТОЛЬКО в только что установленное приложение.

UPD: И есть только один способ проверить это – разверните приложение на рынок, а затем установите его на телефоне.

Intereting Posts