使用 Branch 创建用户邀请码的正确方法是什么?

2024-02-22

我一直在梳理 Branch.io Android 文档,但还没有想出如何创建用户邀请代码。我已经让基本的 Branch 推荐系统正常工作,但我想为每个用户分配一个自定义邀请代码,类似于您在 Uber 和 Airbnb 中看到的邀请代码。

我当前的实现如下所示:

    mSmsBranchUniversalObject = new BranchUniversalObject()
            .setCanonicalIdentifier("invite/sms")
            .setTitle(getString(R.string.simple_share_title))
            .setContentDescription(getString(R.string.default_share_desc))
            .addContentMetadata("userId", mUserId);

    mSmsLinkProperties = new LinkProperties()
            .setChannel("sms")
            .setFeature("sharing");

    mSmsBranchUniversalObject.generateShortUrl(getActivity(), mSmsLinkProperties, new Branch.BranchLinkCreateListener() {
        @Override
        public void onLinkCreate(String url, BranchError error) {
            if (error == null) {
                mSmsShareLink = url;
            }
        }
    });

@OnClick(R.id.iv_sms)
public void smsShare() {
    Branch.getInstance(getActivity()).userCompletedAction(BranchEvent.SHARE_STARTED);
    Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("sms:"));
    intent.putExtra("sms_body", getString(R.string.share_sms, mSmsShareLink));
    startActivity(intent);
}

以下实现为我提供了一个看起来像这样的链接:

https://mydomain.app.link/A1BCdEf2gH

但我想分享一些类似的内容:ADAM98(参见上面的屏幕截图),并让用户在结帐等时输入它。

现在,为每个用户手动创建邀请代码并不需要太多工作,我可以获取用户用户名的前四个字符,并向其附加一些随机字符。但那我该怎么办呢?我假设我只需要将此代码传递给.setAlias(mUserInviteCode) on mSmsLink 属性.

我走在正确的轨道上吗?实施此操作的正确流程是什么?安装时收到邀请码后如何处理?


来自 Branch.io 的 Alex 在这里。

我们实际上曾经提供推荐code功能与您所描述的完全一样,但不久前已弃用它以支持推荐link系统。原因实际上很有趣:我们的合作伙伴应用程序发现代码是不必要的,并且需要做很多额外的工作。 Branch 处理推荐的方式完全不同,并且更加用户友好,因此您实际上根本不需要让用户输入代码。

传统应用程序推荐流程

  1. Inviting User得到一个代码
  2. Inviting User向朋友提供代码(Invited User)并说“去下载这个应用程序并输入我的代码!”
  3. Invited User希望下载该应用程序,希望找到如何输入代码,希望正确输入代码
  4. Inviting User得到奖励

正如您所看到的,该过程有很多地方可能会出错。

分行转介流程

  1. Inviting User得到一个链接
  2. Inviting User将链接发送给朋友(Invited User)
  3. Invited User单击链接,直接发送到 Play 商店,下载应用程序,然后自动触发推荐兑换逻辑,无需任何手动操作
  4. Inviting User得到奖励

这是有效的,因为 Branch 会跟踪最初创建链接的用户,并且当新用户在打开链接后第一次成功下载/购买/其他任何内容时可以报告该情况。这是一个更简单、更无缝的流程,而且 Branch 推荐基础设施非常可靠,可以“正常工作”。

这是用于设置此功能的文档页面:https://dev.branch.io/features/referral-programs/ https://dev.branch.io/features/referral-programs/

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

使用 Branch 创建用户邀请码的正确方法是什么? 的相关文章

  • 在解决依赖关系之前运行 gradle 任务

    我想运行一个 gradle 任务 在 gradle 尝试解决依赖关系之前获取其他源并设置它们 在 build gradle 中有一个任务 用于获取子项目的源代码 该任务需要在 Gradle 尝试解决依赖关系之前运行 因为子项目是依赖关系的一
  • ImageView Android 内存

    我原来的后续question https stackoverflow com questions 5339883 android app ram usage 有没有一种方法可以在 Android 应用程序中使用 ImageViews 而不使
  • 读取 Android 4.2 中的 APN?

    我有个问题阅读 APN在安卓v4 2中 是读 不是写APNS 它抛出一个安全异常 没有写入 APN 设置的权限 用户 10068 和当前用户都没有权限 进程有 android permission WRITE APN SETTINGS 相同
  • 在Android中打开浮动菜单(上下文菜单)?

    我创建了一个新菜单 名为 drmenu xml 当我按下菜单按钮时它可以正常工作 但是当用户按下按钮时我需要打开上下文菜单 下面的代码按钮只显示一个吐司 这是我的 xml 布局
  • Android 和 iOS 中的应用程序文件大小差异

    通过使用两个应用程序分发服务 Android 市场和 Apple 应用程序商店 我发现了一个谜团 Apple 应用程序的文件大小通常大于 Android 应用程序 我似乎找不到任何对这些差异的解释 而且这似乎是一个未触及的主题 我尝试过分配
  • Android 上 Java 库中的代码出现 NoClassDefFoundError

    我的用户经常遇到错误 应用程序在启动期间崩溃 当应该加载 MainActivity 时 VM 显然找不到该类 我不明白为什么 该应用程序的架构是 我的免费版和专业版都使用一个通用项目 不知道是否相关 请参阅下面的堆栈跟踪 有什么想法吗 ja
  • 不同风格的模块文件

    我正在尝试在同一个应用程序中实现播放服务和华为服务 但希望能够按风格配置使用哪一个 每种风格都使用自己的 applicationIdSuffix 因此 对于每种不同的风格 华为插件都会失败 我无法编译 我的应用程序模块包含agconnect
  • 如何修复运行 Android 模拟器时出现 GPU Driver Issue 错误

    我的 Android 模拟器几周前运行良好 但现在出现错误 当我运行代码时 GPU 驱动程序问题错误对话框与模拟器一起弹出 当我单击 确定 时 Android 模拟器不会按预期运行应用程序 错误如下 Your GPU driver info
  • 在一个react-native项目中使用谷歌地图和FCM

    I want to use google map and FCM in one react native project first I added FCM in project everything was okay but when I
  • Eclipse Android 模拟器 - 键盘不工作

    我刚刚更新到最新的 SDK 版本 16 使用最新版本的 API 16 创建了新版本的 AVD 并且我的硬件键盘在模拟器上不再工作 甚至我的其他 avd 使用旧版本的 sdk 任何想法如何解决这一问题 您的 AVD 的 键盘支持 硬件属性是否
  • android device.getUuids 返回 null

    我正在尝试使用低功耗蓝牙 BLE 通过 Android 应用程序连接到 Arduino Uno 我正在 Android Studio 上进行开发 使用 Samsung Galaxy S4 和 Android 版本 5 0 1 进行测试我点击
  • 拥有可重用对话框的最佳方法是什么?

    在 Android 中创建可重用对话框的最佳方法是什么 阅读通过对话框开发指南 http developer android com guide topics ui dialogs html 我知道我可以使用AlertDialog Buil
  • 可下载字体例外

    我决定使用可下载字体 https developer android com guide topics ui look and feel downloadable fonts html在我的项目中 IS 按照指南中的建议实施了所有内容 当我
  • 谷歌的Json解析Gson库:JsonElement和JsonObject有什么区别?

    public abstract class JsonElement extends Object 表示 Json 元素的类 它可以是 JsonObject JsonArray JsonPrimitive 或 JsonNull public
  • 如何根据受保护的 String doInBackground 方法中 AsyncTask 的结果调用 Toast.makeText() ?

    我从 AsyncTask 中的数据库中获取数据 如果它为空 我想吐司一个警告文本 我在 AsyncTask 中尝试过 但我了解到它不是在工作线程中调用的 这是我的 doInBackground 方法 protected String doI
  • 使用Android Camera API,拍摄照片的方向始终未定义

    我使用相机API 拍摄的照片总是旋转90度 我想旋转它 所以首先我想知道图片的方向 这一点我被卡住了 我总是以两种方式得到未定义的方向 这是代码 Override public void onPictureTaken byte data C
  • 当应用程序从最近的应用程序中滑动时,前台服务会被终止,通知也会被删除

    我有一个foreground service有通知 当应用程序从最近的应用程序托盘中滑出时 服务将被终止 通知也会被删除 这是我的服务的代码VoiceService class Override public IBinder onBind
  • 如何以相同的意图从相机获取全尺寸图片和缩略图

    我一直需要找到这个问题的解决方案 我已经从这个社区搜索并测试了许多解决方案 但任何人都适合帮助我 我有两个活动 第一个活动拍摄一张照片并将其发送到另一个活动 该活动有一个 ImageView 来接收该照片 直到这里我遇到问题 以及一个在数据
  • 如何为部分 Android 活动创建通用代码?

    我的申请中有 14 项活动 这 9 个活动中包含自定义标题栏和选项卡窗格 所以在这里我需要在一个地方编写这个通用代码 而不是在每个包含自定义标题栏和选项卡窗格代码的活动中编写冗余代码 即布局及其活动特定代码 有哪些可能的方法可以做到这一点
  • 带有包含布局的导航抽屉布局

    我认为我的问题实际上很简单 但我不知道如何解决 有一个工作导航抽屉 代码如下

随机推荐

  • 如何重构这个?

    我试图重构这个 class AClass string Property1 get set string Property2 get set string Property3 get set void AMethod AClass othe
  • symfony2主义选择IFNULL

    好的 我有这个代码 SELECT IFNULL s2 id s1 id AS effectiveID IFNULL s2 status s1 status AS effectiveStatus IFNULL s2 user id s1 us
  • dplyr: case_when 涉及很多情况

    我有两个数据框 set seed 002 data1 lt data frame cbind a1 sample letters 8 replace TRUE a2 rpois 8 10 stringsAsFactors FALSE dat
  • 复选框已全部单击

    我想在单击任何子项时选择父项 这段代码正在检查和检查 function child on click function parent this prevAll parent if this is checked parent prop ch
  • 如何避免 Java 中的 switch-case 语句[重复]

    这个问题在这里已经有答案了 我有一个 TriggerType 枚举 可以在其中添加不同的触发器 public enum TriggerType meta data list toggle 这些触发器类型在不同的处理程序 例如组件 仪表板等
  • 如何为 Facebook 应用程序设置画布 url?

    这个问题之前已经被问过很多次了 但是最近 Facebook 开发者网站显然发生了变化 因此该解决方案在任何地方都找不到 Here s what the problem looks like 抱歉 您使用的应用程序配置错误 请稍后重试 Now
  • 以编程方式在音频元素上设置当前时间属性会导致事件侦听器无限期地触发

    正如标题所述 当设置currentTime以编程方式指定音频元素的属性 设置该值后 事件侦听器将无限期地反复触发 音频将尝试播放 但由于正在进行太多处理 音频将跳过 我的浏览器将开始变得无响应 我通过删除对的绑定解决了这个问题current
  • Crypto.Signature.PKCS1_v1_5 和 Crypto.Signature.pkcs1_15 有什么区别?

    我想知道两者之间有什么区别Crypto Signature PKCS1 v1 5 and Crypto Signature pkcs1 15 In the 文档 https www pycryptodome org en latest sr
  • 为什么位图数据没有通过Flash发布到服务器端?

    这是我用来将位图数据发布到服务器端的代码 PHP private function savePicToServer bmpData BitmapData void trace in savePicToServer trace bmpData
  • 正则表达式在数字之间替换

    我想要替换以下时间码 00 04 02 01 gt 00 04 02 01 如何用冒号替换两个数字之间的空格 我想出了 d s d 但这显然也包括数字 捕获您的数字 然后在替换时使用它们 d s d 用 来代替 1 以下示例使用 JavaS
  • 在 Swift 中添加视图控制器作为子视图

    我正在尝试使用 swift 构建一个简单的计算器应用程序 我创建了两个具有基本和高级选项的视图控制器 早些时候在 Obj C 中曾经这样做过 AViewController alloc initWithNibName nibName bun
  • C++ - 重载 [] 运算符

    我有一个模板类数组 template
  • Doctrine2 的查询构建器子字符串帮助器方法的正确语法

    好吧 这个问题可能是由于我对查询生成器帮助器方法的理解模糊 但我一生都找不到使用子字符串方法的正确方法 我试图返回以指定字母数字值开头的所有结果 下面的代码不会引发任何错误 但也不会返回任何结果 我已经搜索过谷歌 但显然几乎没有任何内容显示
  • 如何编写特定于浏览器的 JavaScript 代码? [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 如何编写特定于浏览器的 JavaSc
  • FPDF:使用 AJAX 输出 PDF

    我有一个 PHP 文件 我在其中使用 FPDF 生成 PDF 文件 如果我执行该文件 它会在浏览器上生成并加载 pdf 文件 但是 当我尝试使用按钮并使用 AJAX 生成 PDF 文件时 它不起作用 我正在使用 AJAX 因为我需要将一些变
  • subject.asObservable 有什么用?

    为什么需要RxJavaasObservable 从技术上讲 每个主题都已经是一个可观察的 它比仅仅铸造它有什么优势 Observable obs subject 如果你只是投Subject to an Observable那么你仍然可以使用
  • java中变量的继承

    谁能给我澄清一下 这里实例方法被覆盖 但变量没有 输出是 B 10 class A int i 10 public void name System out println A class B extends A int i 20 publ
  • 如何使 JQuery 屏蔽输入插件在 asp.net Ajax 更新面板中的 AsyncPostback 之后工作?

    我有一个简单的 aspx页面和一个我想使用的文本框jquery maskedinput 1 3 js我的页面 aspx 代码如下 问题出在第一页加载时 我的文本框被屏蔽 但在 asyncPostback 之后 屏蔽输入插件无法工作 如何使屏
  • 我可以为 Azure Functions 应用程序设置特定时区吗?

    请让我听听您的建议 我在 azure web 应用程序中将服务器时区的设置从 UTC 更改为特定时区 效果很好 并且按照我预期的特定时区进行了更改 进程 应用程序设置 WEBSITE TIME ZONE 东京标准时间 现在 我想在函数应用程
  • 使用 Branch 创建用户邀请码的正确方法是什么?

    我一直在梳理 Branch io Android 文档 但还没有想出如何创建用户邀请代码 我已经让基本的 Branch 推荐系统正常工作 但我想为每个用户分配一个自定义邀请代码 类似于您在 Uber 和 Airbnb 中看到的邀请代码 我当