У меня простая задача: я хочу отследить реферальный идентификатор установки приложения и передать его серверной части.
Что я сделал: создал ссылку с дополнительным параметром referrer
и добавил ее к ссылке-приглашению. Когда он открывается, javascript
определяет, является ли браузер мобильным браузером Android, а затем подготавливает intent
и выполняет перенаправление на это намерение. При подготовке намерения поле referrer
извлекается из URL-адреса и добавляется к intent
следующим образом:
intent://scan/#Intent;scheme=com.example.android;package=com.example.android&referrer=4;end
А вот мой код для BroadCastReceiver
:
public class InstallReferrerReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
TinyDB tinyDB = new TinyDB(context);
String referrer = intent.getStringExtra("referrer");
tinyDB.putString(AppConstants.REFERRAL_ID, referrer);
tinyDB.putBoolean(AppConstants.REFERRAL_SENT, false);
}
}
Итак, то, что я ожидаю получить здесь, поскольку значение referrer
равно 4
на основе приведенного выше intent
. Но значение, которое я получаю, это строка utm_source=google-play&utm_medium=organic
Что я делаю неправильно и как это исправить, чтобы получить правильное значение для поля referrer
?
Изменить
У меня нет проблем с созданием URL-адреса или извлечением значений из поля referrer
после установки приложения.
После того, как ссылка-приглашение нажата любой кнопкой или открыта непосредственно в мобильном браузере, я использую вышеизложенное, чтобы «либо открыть приложение, если оно уже установлено, либо открыть страницу приложения в приложении Play Store, чтобы пользователи могли его установить».
Проблема в том, как мне передать значение поля реферера из ссылки-приглашения в приложение Play Store с помощью вышеуказанного намерения, чтобы Play Store получил это значение и передал его приложению при его установке.
referrer
, которое я пытаюсь отправить из внешнего интерфейса, и это не то, что я ожидал. - person Amit Tiwari   schedule 07.07.2016