如何在Android和iPhone的移动应用程序中实现推荐计划

时间:2014-02-25 06:47:46

标签: android ios iphone install tracking

我们有一个可在Google Play商店和Apple AppStore中使用的移动应用,我们希望实施推荐计划,以吸引更多用户安装和使用我们的应用。

以下是用户故事:

  • 每位新用户(例如John)都会获得一个独特的推荐链接,他/她可以在这里分享到FB / TW /电子邮件或短信。
  • 当John的朋友点击该链接时,他们将被定向到他们设备上的相应AppStore基地。
  • John的朋友安装应用程序并打开应用程序的那一刻,我们的服务器应该得到通知,我们将知道推荐来自John,John会得到相应的奖励。

我们已经评估了许多移动应用安装跟踪工具,大多数工具都是发布商/移动广告中的最佳用途。

感谢任何意见和建议

干杯 詹姆斯

7 个答案:

答案 0 :(得分:66)

我们正在我们的应用程序中执行类似类型的推荐系统,在新用户成功安装应用程序(收到链接的用户)成功安装应用程序时,向推荐人(实际共享应用程序链接的人)提供一定数量的奖励积分)。

我将尝试使用您的方案解释我们的实现: 所以根据你的用户故事:

  • 每位新用户(例如约翰逊)都会获得一个独特的推荐链接,他/她可以使用FB / TW /电子邮件或短信将其分享给他的朋友。

  • 当John的朋友点击链接时,他首先被重定向到Servlet,最终根据他的平台(Android / iPhone)将他重定向到相应的AppStore以下载应用程序。

  • 请注意,我们可以找到使用Servlet点击链接的用户的IP地址,用户代理和设备型号。

  • 我们已经知道推荐链接属于John,因此servlet将John的朋友的IP地址,用户代理和/或设备模型映射到John在数据库中的条目。

  • 当John的朋友安装应用程序并打开应用程序时,应用程序会将IP地址,用户代理和/或设备模型发送到服务器。

  • 服务器检查所有用户的条目以找到引荐来源,如果找到了他,在我们的案例中约翰,约翰会得到相应的奖励。

多数民众赞成。我们在上个月实现了这一点,它确实提高了我们的下载量。 如果这有用,请告诉我。

答案 1 :(得分:5)

<强>的Android

在Android上你可以创建一个安装广播监听器,在那里你可以获得并保存链接的referrer部分到SharedPreferences

  

https://play.google.com/store/apps/details?id=com.example.app&referrer=example_referral_code_here

对于此检查
Android - Is it possible to get install referrer programmatically

Get referrer after installing app from Android Market

https://developer.android.com/google/play/installreferrer/library.html

<强>的iOS

目前(2016年1月)无法在您的应用中获取安装引荐来源代码,例如Android。

我对ios的选择是:

  1. 用户框架/第三方服务,如alau.me
  2. 使用指纹识别的解决方法,类似于Puru Pawar所建议的
  3. 只需让用户在您的应用中输入引荐代码

答案 2 :(得分:3)

如果有人还在寻找这个问题的解决方案。我为同样的问题阅读了很多博客和文档,并得出以下结论: -

IP地址+用户代理+设备型号不足以唯一地识别设备。 所以,我认为使用动态链接会更好。您可以创建包含唯一ID的动态链接。并且该数据将在网址重定向到应用商店后继续存在,即使在安装后,您的应用也可以从动态链接中获取唯一ID .Google的firebase可用于创建动态链接: -

  

https://firebase.google.com/docs/dynamic-links/

或者如果您想使用现成的解决方案,那么您可以参考branch.io

答案 3 :(得分:1)

成绩文件

 implementation 'com.android.installreferrer:installreferrer:1.0'

在需要接收参考代码的活动中输入代码

 InstallReferrerClient mReferrerClient;

 mReferrerClient = InstallReferrerClient.newBuilder(this).build();

 mReferrerClient.startConnection(new InstallReferrerStateListener() {
 @Override
 public void onInstallReferrerSetupFinished(int responseCode) {
            switch (responseCode) {
                case InstallReferrerClient.InstallReferrerResponse.OK:
                    // Connection established
                    try {
                        ReferrerDetails response = 
 mReferrerClient.getInstallReferrer();
                        if (!response.getInstallReferrer().contains("utm_source"))
                            edtPRferelCode.setText("" + 
 response.getInstallReferrer());
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                    mReferrerClient.endConnection();
                    break;
                case 
 InstallReferrerClient.InstallReferrerResponse.FEATURE_NOT_SUPPORTED:
                    // API not available on the current Play Store app
                    break;
                case 
 InstallReferrerClient.InstallReferrerResponse.SERVICE_UNAVAILABLE:
                    // Connection could not be established
                    break;
            }
        }

        @Override
        public void onInstallReferrerServiceDisconnected() {
            // Try to restart the connection on the next request to
            // Google Play by calling the startConnection() method.
        }
    });

分享链接示例

https://play.google.com/store/apps/details?id=com.yourpackage&referrer=9BE46300

答案 4 :(得分:1)

免责声明:对于最初接受的答案不满意,我提供了一种替代解决方案,以解决该“受欢迎”的问题。

Android 上,这根本不是问题。 Google将允许您访问registering a receiver在安装时发送的引荐来源网址参数,也可以利用其install referrer API

对于 iOS ,此操作有点棘手,因为它不受官方支持。如建议的here一样,您可以进行指纹识别,但是这样做很麻烦,并且存在高度的准确性。我遇到了另外两种优雅的解决方案:

  1. 基于Cookie的跟踪,详细说明here
  2. URL复制到剪贴板(Firebase似乎同时使用剪​​贴板和cookie方法,但这是基于个人观察-尚无官方消息)。
    • 当用户访问您的网页(例如:example.com/invite/123)时,请先显示网页,然后再重定向到App Store。
    • 在该页面上,让用户按下按钮,以便在通过document.execCommand('copy')和{{3选择隐藏输入中的某些字符串之后,您可以使用focus()将字符串复制到剪贴板/粘贴板}}
    • 安装后,当用户登陆应用程序时,您可以做两件事:
      1. 通过UIPasteboard.general.string(快速)捕获剪贴板/粘贴板内容,并进行一些解析或API调用
      2. 在与初始链接(即:mydomain.com/retrieve)相同的域中的页面上,将用户重定向回(通过其默认浏览器,以避免不存在Cookie),以便该页面将收到初始设置的cookie(在步骤1.)中由浏览器在访问后轻轻共享。然后,您可以在安装该应用程序后将用户重定向回您的原始链接,并且Universal Linking现在可以按预期运行。

答案 5 :(得分:0)

可以使用Google Campaign Measurement来完成,其中utm_source只为每个用户提供唯一的数字/字符串,当用户的朋友安装应用时,您将收到该数据/字符串,因为安装后Google Play商店会broadcast 。 请参阅this question

答案 6 :(得分:-1)

另一种方法是让您当前的用户创建一个唯一的代码,例如David123或HenryABC。他们分享他们的代码(这很容易记住,因为它是个人的)。在您的应用中,您提供了一个推介框,新用户可以输入代码来解锁其他功能。这样您就可以跟踪并且不必担心指纹。指纹方法的一个大问题是iOS不够独特,移动网络共享IP地址。因此,伦敦EE上有iPhone 6s的人很可能拥有与其他人100个相同的指纹。