gpt4 book ai didi

android - 正确跟踪 Play 商店中的安装引荐

转载 作者:可可西里 更新时间:2023-11-01 19:06:10 26 4
gpt4 key购买 nike

我有一个简单的任务:我想跟踪应用安装的推荐 ID 并将其传递给后端。

我做了什么:我创建了一个带有额外参数 referrer 的链接,并将其附加到邀请链接中。打开时,javascript 检测浏览器是否为 Android 移动浏览器,然后准备一个 intent 并发出指向该 intent 的重定向。在准备 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);
}
}

因此,根据上述 intent,我期望得到的 referrer 的值为 4。但是我得到的值是这个字符串 utm_source=google-play&utm_medium=organic

我做错了什么,我该如何解决它以获得 referrer 字段的正确值?

编辑

安装应用程序后,我在创建 url 或从 referrer 字段中提取值时没有任何问题。

一旦通过任何按钮单击或直接在移动浏览器中打开邀请链接,我将使用上面的方法“打开应用程序(如果已安装)或在 Play 商店应用程序上打开应用程序页面供用户安装它”。

问题是,我应该如何通过上述 Intent 将邀请链接中的 referrer 字段的值传递给 Play Store 应用程序,以便 Play Store 接收此值并在安装应用程序时将其传递给应用程序。

最佳答案

您需要对其进行适当的测试,我正在发布我的用例,希望它能解决您的问题:)

推荐网址 -

https://play.google.com/store/apps/details?id=com.mypackage&referrer=utm_source%3Dmobisoc%26utm_content%3D{transaction_id}%26utm_campaign%3D1

接收推荐的代码 -

public static final String KEY_UTM_SOURCE = "utm_source";
public static final String KEY_UTM_CONTENT = "utm_content";
public static final String KEY_UTM_CAMPAIGN = "utm_campaign";
public void onReceive(Context context, Intent intent) {
Utils.log("Referral Received");
try {
String referrer = intent.getStringExtra("referrer");
if (referrer != null && !referrer.equals("")) {
Utils.log("Referral Received - " + referrer);
String[] referrerParts = referrer.split("&");
String utmSource = getData(KEY_UTM_SOURCE, referrerParts);
String utmContent = getData(KEY_UTM_CONTENT, referrerParts);
String utmCampaign = getData(KEY_UTM_CAMPAIGN, referrerParts);
if (utmSource != null && utmSource.equals("mobisoc")) {
sendLogToMobisocServer(context, utmContent);
} else if (utmSource != null && utmSource.equals("app_share")) {
RawStorageProvider.getInstance(context).dumpDataToStorage(RaghuKakaConstants.REFFERAL_FOR, utmContent);
}
updateRKServerForReferral(context, utmSource, utmCampaign, utmContent);
}
} catch (Exception e) {
e.printStackTrace();
}
}

private String getData(String key, String[] allData) {
for (String selected : allData)
if (selected.contains(key)) {
return selected.split("=")[1];
}
return "";
}

现在是最重要的部分测试。您可以在本地测试推荐。只需连接手机,使用 adb shell 打开 shell 提示符。并广播推荐数据。以下是命令序列示例 -

C:\Users\Neo\Desktop>adb shell
$ am broadcast -a com.android.vending.INSTALL_REFERRER -n com.mypackage/<className of your ReferralReceiver with package> --es "referrer" "utm_source%3Dmobisoc%26utm_content%3D{transaction_id}%26utm_campaign%3D1"

附加-

https://play.google.com/store/apps/details?id=com.mypackage& referrer=utm_source%3Dmobisoc%26utm_content%3D{transaction_id}%26utm_campaign%3D1

请看我的链接。如果用户将通过该链接转到 Playstore,并安装该应用程序。然后,当应用程序第一次启动时,您的 onReceive 方法将自动触发,您将获得 referrer= 之后的所有数据。

广播 -

$ am broadcast -a com.android.vending.INSTALL_REFERRER -n com.mypackage/<className of your ReferralReceiver with package> --es "referrer" "utm_source%3Dmobisoc%26utm_content%3D{transaction_id}%26utm_campaign%3D1"

为了测试它,你不需要在 playstore 上发布你的应用程序,只需在 onReceive 的第一个点上放置一个调试点,以 Debug模式启动,并触发我发布的命令序列,你将获得“referrer”之后的所有数据“标签。因此,您可以决定在创建引荐链接时需要添加哪些数据。

如果您需要更多说明,请告诉我 :)

关于android - 正确跟踪 Play 商店中的安装引荐,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38075072/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com