6

我正在使用我的自定义广播接收器来跟踪 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。

https://play.google.com/store/apps/details?id=com.myapp&referrer=utm_source%3Dweb%26utm_medium%3Dlogo-click%26utm_term%3Dnew-install%26utm_content%3Dworld-cup%26utm_campaign%3Dworld-cup

现在我尝试了 HTTP 和 https URL,并在 StackOverflow 上的一些其他问题之后尝试了其他一些解决方案,但似乎没有任何效果。

链接1链接2链接3

对于在 URL 中传递给播放商店的所有 UTM 参数,我将(not%20set)作为值。我还尝试在分支firebase 动态链接的深层链接中使用 URL,但我遇到了同样的错误。

但我确信处理此问题的代码是正确的,因为它在直接从 Play 商店安装时分别返回作为Google有机的广告系列和中等价值。

4

1 回答 1

7

您很可能已登录到托管帐户(例如工作电子邮件)。如果您的个人帐户在 Play 商店中处于活动状态,这并不重要。Play 商店会始终检查您在该手机上登录的所有帐户。如果其中任何一个由企业管理,则它会重置推荐人令牌。您可以通过删除所述帐户并重试发送令牌来验证这一点。

我无法解释为什么这是预期的行为,但也许谷歌的某个人可以发光。

于 2019-07-21T02:14:49.087 回答