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


71

我们在Google Play商店和Apple AppStore中都提供了一个移动应用程序,我们希望实现一个引荐计划,以吸引更多用户安装和使用我们的应用程序。

这是用户故事:

  • 每个新用户(例如John)都会获得一个唯一的引荐链接,他/她可以在其中共享到FB / TW / Email或SMS。
  • 当John朋友单击链接时,他们将被定向到其设备上相应的AppStore。
  • 当约翰的朋友安装该应用并打开该应用时,我们的服务器应收到通知,我们将知道推荐来自约翰,约翰将因此受到奖励。

我们已经评估了许多移动应用安装跟踪工具,其中大多数工具最适合在发布商/移动广告中使用。

感谢任何评论,建议

干杯詹姆斯


Branch.io指标可能有用。该文档是穷人,但服务是一个体面的推荐码服务
portfoliobuilder

@portfoliobuilder我正在尝试实现它,但似乎无法正确实现,您有一个有效的示例吗?或者,您可以看看我的问题吗?stackoverflow.com/questions/39181681/…–
约翰·萨丁尼亚

Answers:


88

我们正在我们的应用程序中执行类似类型的引荐系统,该系统会在新用户(成功获得链接)成功安装应用程序后,为引荐来源地址(实际共享指向应用程序的链接)提供一定数量的奖励积分。

我将尝试使用您的方案来解释我们的实现:因此,根据您的用户案例:

  • 每个新用户(例如John)都会获得一个唯一的引荐链接,他/她可以使用FB / TW / Email或SMS将其分享给他的朋友。

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

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

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

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

  • 服务器针对所有用户检查条目,以找到推荐人,如果找到了推荐人,在我们的案例中为约翰,约翰将得到相应的奖励。

而已。我们在上个月本身实现了这一点,并且确实增加了下载量。让我知道是否有帮助。


3
嗨,Puru谢谢您的回答,我对第3点很感兴趣,您在某种程度上实现了“设备指纹识别方法”,但问题是IP地址+用户代理+设备模型是否足以识别唯一设备?
James Khoo 2014年

12
如果IP地址更改,会发生什么?例如,如果有人在3G上单击了引荐链接,但稍后在WiFi上第一次运行该应用程序?
jowie 2014年

15
Branch-branch.io-已端到端构建了此解决方案,并免费提供了该解决方案。他们甚至建立了信用奖励系统,使您可以根据引荐人采取的措施向引荐人和裁判员授予积分。

1
您可以在此处阅读有关指纹准确性和边缘情况的信息。dev.branch.io/recipes/matching_accuracy-可让您根据所需的准确性(例如修改指纹到期前的时间)自定义指纹体验。@JamesKhoo
acingersoll 2015年

1
由于此答案于2014年发布,我们还有其他选择吗,苹果可能为应用商店提供了更好的解决方案。
莎拉德·帕格达

10

如果有人还在寻找解决这个问题的方法。我读了很多关于同一问题的博客和文档,得出以下结论:

IP地址+用户代理+设备型号不足以唯一地标识设备。因此,我认为使用动态链接会更好。您可以创建包含唯一ID的动态链接。而且这些数据将在URL重定向到应用程序商店后仍然存在,甚至在安装后,您的应用程序也可以从动态链接获取唯一ID。

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

或者,如果您想使用现成的解决方案,则可以引用branch.io


你有样品吗?请分享一下。
Vishnu Prabhu

我们使用branch.io作为解决方案。在应用程序端处理。Firebase文档说它仅适用于google登录。
Chandan Kumar

能否请您分享链接,该链接表示仅适用于Google登录名。这将帮助我说服经理。另外Branch.io是免费的还是付费的?
Vishnu Prabhu

2
Firebase正在处理一些极端情况。你可以看到更多细节的文档firebase.google.com/docs/dynamic-links/use-cases/... 而branch.io是免费提供多达一定数量的用户,然后它的支付
CHANDAN库马尔

Firebase似乎是唯一已知的具有此类功能的SDK
Umar Farooque

6

安卓

在android上,您可以创建一个安装广播侦听器,您可以在其中获取并保存指向SharedPreferences的链接的引荐来源

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

对于此检查,
Android-是否可以通过编程方式获取安装引荐来源网址
以及
从Android Market安装应用后获取引荐来源网址

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

的iOS

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

我为ios选择的选项是:

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

4

摇篮文件

 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


1
我找到的最简单的答案。简单,没有任何问题。这对我很有帮助。谢谢。
鲁米特·帕特尔

我该如何测试
Yogesh Paliyal

1

免责声明:对最初接受的答案不满意,我提供了替代此“流行”线程的方法。

Android上,这根本不是问题。Google将允许您通过注册接收方来访问安装时发送的引荐来源网址参数,也可以利用其安装引荐来源网址API

对于iOS,这并不复杂,因为它不受官方支持。如此处所建议的您可以进行指纹识别,但是这很麻烦,并且存在高度的准确性。我遇到了两个更优雅的解决方案:

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

0

可以使用Google Campaign Measurement来完成,其中utm_source中仅为每个用户提供唯一的编号/字符串,当用户的朋友安装该应用程序时,您将收到该编号/字符串,因为Google Play商店会在安装后广播该应用程序。参考这个问题


0

一种替代方法是让您当前的用户编写一个唯一的代码,例如,David123或HenryABC。他们共享他们的代码(这很容易记住,因为它是个人的)。在您的应用程序中,您提供了一个引荐框,新用户可以输入密码来解锁其他功能。通过这种方式,您可以跟踪并且不必担心指纹。指纹方法的最大问题是iOS不够独特,移动网络共享IP地址。因此,在伦敦使用EE的iPhone 6s的用户可能会与其他100人的指纹相同。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.