【发布时间】:2019-11-04 13:10:10
【问题描述】:
我正在使用我的自定义广播接收器来跟踪 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 URL,并在 StackOverflow 上的一些其他问题之后尝试了其他一些解决方案,但似乎没有任何效果。
对于在 URL 中传递给 play store 的所有 UTM 参数,我将 (not%20set) 作为值。我还尝试在 branch 和 firebase 动态链接 的深层链接中使用 URL,但我遇到了同样的错误。
但我确信处理此问题的代码是正确的,因为当直接从 Play 商店安装时,它分别以 Google 和 organic 的形式返回广告系列和中等价值。 p>
【问题讨论】:
标签: android google-play broadcastreceiver google-analytics-sdk install-referrer