您需要正确测试它,我发布了我的用例,希望它能解决您的问题:)
推荐网址 -
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”标签后获得所有数据。因此,您可以决定在创建引用链接时需要添加哪些数据。
如果您需要更多说明,请告诉我:)