Я использую свой собственный широковещательный приемник следующим образом для отслеживания параметров UTM.
<receiver
android:name = ".services.CustomInstallListener"
android:exported = "true">
<intent-filter>
<action android:name = "com.android.vending.INSTALL_REFERRER" />
</intent-filter>
</receiver>
public class CustomInstallListener extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
if (intent.hasExtra("referrer")) {
String data = intent.getStringExtra("referrer");
String referrers[] = data.split("&");
for (String referrerValue : referrers) {
String keyValue[] = referrerValue.split(" = ");
if (keyValue.length > 0) {
if (keyValue[0].equalsIgnoreCase("utm_campaign")) {
... something
}
}
}
}
Я также реализовал УстановитьReferralClient следующим образом.
referrerClient.startConnection(new InstallReferrerStateListener() {
@Override
public void onInstallReferrerSetupFinished(int responseCode) {
switch (responseCode) {
case InstallReferrerClient.InstallReferrerResponse.OK:
ReferrerDetails response = null;
try {
response = referrerClient.getInstallReferrer();
} catch (RemoteException e) {
e.printStackTrace();
}
}
}
@Override
public void onInstallReferrerServiceDisconnected() {
}
});
И я использовал Конструктор ссылок Google Play для создания этого URL.
Теперь я пробовал использовать как URL-адреса HTTP, так и https, а также пробовал некоторые другие решения после некоторых других вопросов в StackOverflow, но, похоже, ничего не работает.
Для всех параметров UTM, переданных в URL-адресе магазина воспроизведения, я получаю значение (не%20установлено). Я также пытался использовать URL-адрес в глубокой ссылке из ветвь и динамические ссылки firebase, и я получаю ту же ошибку.
Но я уверен, что код, обрабатывающий это, правильный, поскольку он возвращает значение кампании и среднего значения как Google и органический соответственно при прямой установке из Play Store.
Скорее всего, вы вошли в управляемую учетную запись (например, рабочую электронную почту). Неважно, активна ли у вас личная учетная запись в Play Store. Play Store постоянно проверяет все учетные записи, в которые вы вошли на этом телефоне. Если какой-либо из них управляется предприятием, оно сбрасывает токен реферера. Вы можете проверить это, удалив указанную учетную запись и повторив попытку отправки токена.
Я не могу говорить с Зачем, это предполагаемое поведение, но, возможно, кто-то из Google может пролить свет.
Действительно это работает. Не могли бы вы поделиться какими-либо официальными документами Google по этому вопросу?
@Dmitry Salnikov, к сожалению, я не смог нигде официально найти это задокументировано. Просто узнал об этом поведении при тестировании.
В моем случае я пытался установить с другим utm_source, но всегда получаю utm_source = google-play utm_medium = Organic
Спасибо, сработало... Никогда бы не подумал, что так будет с этой проблемой.