正确跟踪 Play 商店上的安装推荐

2024-02-29

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

我做了什么:我创建了一个带有额外参数的链接referrer并将其附加到邀请链接中。当它打开时,javascript检测浏览器是否是Android手机浏览器,然后准备一个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);
    }
}

所以,我期望得到的值是referrer is 4基于以上intent。但我得到的值是这个字符串utm_source=google-play&utm_medium=organic

我做错了什么以及如何修复它以获得正确的值referrer field?

Edit

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

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

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


您需要正确测试它,我发布了我的用例,希望它能解决您的问题:)

推荐网址 -

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 "";
}

现在最重要的部分是测试。您可以在本地测试推荐。只需连接手机,使用以下命令打开 shell 提示符adb 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"

额外的 -

推荐人=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 的第一个点上放置一个调试点,在调试模式下启动,然后触发我发布的命令序列,你将在“referrer”标签后获得所有数据。因此,您可以决定在创建引用链接时需要添加哪些数据。

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

正确跟踪 Play 商店上的安装推荐 的相关文章

随机推荐