使用 Install Referrer 获取 (not%20set) UTM 参数- Android
Getting (not%20set) for UTM parameters with Install Referrer- Android
我如下使用我的自定义广播接收器来跟踪 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
}
}
}
}
我也实现了InstallReferralClient如下
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 Builder 生成了这个 URL。
现在我尝试使用 HTTP 和 https URLs 并在 Whosebug 上的一些其他问题后尝试了一些其他解决方案,但似乎没有任何效果。
, Link2,
对于在 URL 中传递给播放商店的所有 UTM 参数,我得到 (not%20set) 作为值。我也尝试在 branch 和 firebase dynamic links[=37= 的深层 link 中使用 URL ] 并且我遇到了同样的错误。
但我确信处理此问题的代码是正确的,因为它 returns 广告系列和中值 Google 和 直接从 Play 商店安装时分别为有机。
您很可能登录的是托管帐户(例如工作电子邮件)。您是否在 Play 商店中激活了个人帐户并不重要。 Play 商店会持续检查您在 phone 上登录的所有帐户。如果其中任何一个由企业管理,则它会重置引荐来源标记。您可以通过删除所述帐户并重试发送令牌来验证这一点。
我不能说 为什么 这是预期的行为,但也许来自 Google 的人可以发出一些光。
我如下使用我的自定义广播接收器来跟踪 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
}
}
}
}
我也实现了InstallReferralClient如下
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 Builder 生成了这个 URL。
现在我尝试使用 HTTP 和 https URLs 并在 Whosebug 上的一些其他问题后尝试了一些其他解决方案,但似乎没有任何效果。
对于在 URL 中传递给播放商店的所有 UTM 参数,我得到 (not%20set) 作为值。我也尝试在 branch 和 firebase dynamic links[=37= 的深层 link 中使用 URL ] 并且我遇到了同样的错误。
但我确信处理此问题的代码是正确的,因为它 returns 广告系列和中值 Google 和 直接从 Play 商店安装时分别为有机。
您很可能登录的是托管帐户(例如工作电子邮件)。您是否在 Play 商店中激活了个人帐户并不重要。 Play 商店会持续检查您在 phone 上登录的所有帐户。如果其中任何一个由企业管理,则它会重置引荐来源标记。您可以通过删除所述帐户并重试发送令牌来验证这一点。
我不能说 为什么 这是预期的行为,但也许来自 Google 的人可以发出一些光。