大多数浏览器和
Developer App 均支持流媒体播放。
-
用优惠代码助力你的订阅推广
订阅优惠代码可以帮助你获取新用户、留存现有用户、并赢回已经退订的订阅用户,为你的业务发展添砖加瓦。了解不同配置选择、用户体验和如何评估兑换表现。我们会为你介绍如何在 App Store Connect 中设置用户资格、地区、定价和有效期,如何管理你所提供的优惠、评估表现,及如何与你的 app 和后台系统整合。
资源
- App Store Server Notifications
- Implementing offer codes in your app
- Learn more about setting up offer codes
- Leveraging server to server receipt validation
- Offer codes overview
相关视频
Tech Talks
-
下载
(订阅优惠代码讨论) 感谢各位收看今天的讲座 我们非常高兴能为大家介绍订阅优惠代码 为各位在 App Store 上的自动续订 提供增长新订阅用户的机会 (我们是谁) 首先 让我们自我介绍一下 我叫 Bryan Eisenstadt 我来自 App Store Monetization 团队 大家好 我叫 David Wendland 我是来自 App Store Commerce 团队的 全球技术倡导人 我叫 Kenny Elmor 我来自 App Store Operations 团队 今天我会先为大家简单介绍优惠代码 随后 David 会进行这一功能的技术分享 最后 Kenny 将为大家介绍 如何在 App Store Connect 中设置推广 及评估优惠代码的表现 (优惠代码介绍) 我们先开始第一部分 我将会为大家介绍订阅优惠代码 订阅优惠代码是如何使用的 及如何使用它来实现 业务增长和用户留存 我们很高兴能够宣布优惠代码已经上线 大家可以开始 在 App Store Connect 编写代码了 和大家已经熟知的其他优惠功能相比 优惠代码能够搭配使用 而且可以提供更高的灵活度 让你可以在 app 之外提供订阅优惠
优惠代码可以帮助你获得新用户 留下老客户 甚至赢回离开的客户 优惠代码是独一无二 供单次使用的数字码 可以通过线上或线下的渠道发放 发放后 用户可轻松在 App Store 兑换 在使用了 StoreKit API 的情况下 还可直接在 app 内兑换 David 稍后会详细为大家介绍 在优惠期结束后 会自动以标准价格自动续订 除非是订阅用户取消订阅或关闭自动续订 使用优惠代码的方式有很多种 可根据自己的喜好自由选择如何发放 可以通过邮件这样的电子营销渠道 发放优惠代码来获得新用户或赢回老用户 比如说 体育联盟可以给季票用户发邮件 给他们发放延长免费试用期的优惠代码 或者是可以作为增值服务 在用户购买了实体商品或服务时附赠 比如说 运动单车公司 可以在每销售一台运动单车时 附赠一张延长网课试用期的兑换券 在实体零售店、活动现场 包括行业会议时 如 音乐服务商可以在演唱会或音乐节上 现场发放附有优惠代码的传单 通过与三方合作伙伴合作营销活动 和合作伙伴自家营销活动发放 移动运营商可以通过邮件 给用户发放视频直播服务的优惠代码
优惠代码可以由客服团队发放 为遇到服务问题的客户 发放免费使用或打折兑换券 而不是让客户前往 AppleCare 退款 (配置与限制) 大家在 App Store Connect 中创建代码 可以为新用户、现用户和前用户 配置不同的优惠代码活动 每个订阅最小库存单位中 最多可有 10 个有效优惠 可以多组 500 至 25000 行代码 单个 app 一季度最多可以到 150000 行 你可以选择每行代码的失效日期 最高可设置到代码创建后 6 个月
将优惠代码配置完毕进行发放之后 用户可以直接在 App Store 账户页面中的兑换礼品卡流进行兑换 或在 app 内 通过 Apple 提供的用户界面兑换 Apple 用户界面处理整套兑换体验 如果还没有安装 app 会先提醒用户先下载 app 让我们再仔细看一看用户的流程 如果是通过线下发放的优惠代码 无论是通过活动还是实体商品 只要使用 presentCodeRedemptionSheet 用户即可轻松在 app 里兑换优惠代码 像这个例子一样 大家可以考虑在 app 的收费墙上 加一个优惠代码按钮
用户点击兑换按钮后 系统会自动显示一系列优惠代码界面 首先是优惠代码输入界面 用户输入有效优惠代码后 优惠详情页就会出现 若优惠代码无效 用户就能看到一个清晰的错误信息 解释为什么优惠代码不能使用
如果优惠代码是通过线上渠道发放 如电子邮件 每个优惠代码 都有一个关联的深度链接 URL 方便通过线上渠道发放
你可以使用一个独特的 URL 将用户从邮件无缝深度链接到兑换流 在这个示例中 Ocean Journal 通过电子邮件 提供一个月的免费试用 当用户点击“现在试试”时 就深度链接到了兑换流
如果用户没有安装 app 则先会提醒用户下载 app
app 下载完毕后 优惠详情页将出现 用户可以兑换并订阅 大家可能会注意到 输入验证码这一步并不是必须的 因为优惠代码就是 URL 的一部分 无论大家选择使用哪种方式发放优惠代码 我们建议在营销材料中 说明优惠代码有效期 及其他使用条例和限制 优惠代码还可用于跨 app 宣传订阅服务 在这个示例中 这个 app 使用了优惠代码 来帮助将准备停止服务的 app 的用户 迁移到新的 app 上 ZenWell 清楚地说明了自己即将关闭 目前用户的订阅将失效 ZenWell 随后提供了一个 优惠代码深度链接 给用户提供了 一个新的 app Serenely 的折扣 因为用户使用的是 与兑换一一对应的深度链接 URL 用户可轻松下载新的 app 兑换并订阅
此外 优惠代码还可用于活动或行业会等 线下场景 在这个示例中 印在传单上的优惠代码是独一无二的 传单在一个音乐节上发放 给参与者提供了一家音乐播放服务商 三个月免费订阅 之后 同一个 app 给已经退订的用户 发送了一封含有优惠代码的电子邮件 提供一个月的免费订阅 (入门优惠) (宣传优惠 优惠代码) 优惠代码能够搭配其他优惠使用 而且可以提供更高的灵活度 每种优惠类型都有自己独特的用例
我们快速总结一下三种不同的优惠类型 优惠代码可以用于获得新用户 留存现有用户、和赢回老用户 优惠代码让大家可以在 app 之外 通过线上和线下渠道提供订阅优惠 以及无缝衔接的客户体验
每种订阅可以配置 10 个有效优惠 单个 app 一季度 最高可达 150000 行代码
单个有效优惠 每个用户只能兑换一次
优惠代码目前已经上线 我们迫不及待想要看到 大家会如何使用这一新功能 来获取并留存订阅用户 (实现) 接下来 我的同事 David 和 Kenny 将为大家介绍优惠代码兑换流实现的细节 和如何在 App Store Connect 中 设置优惠代码 我将时间交给我的同事 David 由他来介绍优惠代码的技术细节
谢谢 Bryan 大家好 我叫 David Wendland 是一位来自 App Store Commerce 团队的 全球技术倡导人 我在库比蒂诺市工作 今天 我将为大家介绍优惠代码 及在大家的产品、应用和后台系统中 策划与实现优惠代码时需要考虑的事项 我将从以下三个方面介绍 配置优惠代码 兑换体验和需要考虑事项 及用优惠代码更新订阅用户状态 我们先从配置优惠代码开始 我们首先来看一看 可用的配置都有哪些 左边这一栏列出了产品持续时长 对应的可选优惠期限在右边 随用随付、提前支付和免费试用 这些选项应该大家都很熟悉 这些和入门优惠和推广优惠都是一样的 比如说 如果提供的是按月订阅 则可以配置随用随付优惠 有效期为 1 到 12 个月 或者可以选择提前支付或免费试用 有效期可以任选列出的选项
优惠代码独有的配置是 可以根据用户类型限制兑换条件 用户类型有新用户、现用户和前用户 这里需要特别注意的是 不同用户类型只是针对单个订阅组 意思是 程序只会验证某个用户 在优惠代码相对应的特定订阅组中 是新用户、现用户还是前用户
这是使用现有的产品和用户组的最佳方式 通过充分利用现有基础达到长期效果
最后 配置优惠时 我们会问是否希望用户 在兑换优惠代码时收到入门优惠 若是的话 入门优惠将立即生效 之后才是优惠代码所提供的优惠 如选择了否 订阅用户则立刻开始享受 优惠代码所提供的优惠 如你设计的一样 但这些用户还是可以获得一个入门优惠 我稍后会给大家详细解释一下这一行为 这样大家在做选择的时候能够更加全面
大家注意 这个配置只对符合入门优惠的 订阅用户有效 同一产品同一订阅用户组中 已经收到了一个入门优惠的用户 不会再收到第二次 必须是非当前订阅用户才可以 所以无论如何 能收到入门优惠的 只有新用户和前用户 我想要提醒大家的是 这一配置无法改变或还原 请记住 这也不会改变用户是否能收到入门优惠 它只决定了兑换时的行为 所以 用户还是有可能 在未来收到入门优惠
我们现在来聊一聊实现 我分成了四个小部分 首先 在App Store Connect 里 你将根据库存单元创建优惠活动 然后生成优惠代码 下载后发放给你的订阅用户 接下来是优惠代码管理 最为理想的情况是 能够使用一套系统来管理这些优惠代码 追踪发放的优惠代码是非常重要的 无论是线上还是线下 因为一旦优惠代码失去控制 就应该把它们视为已兑换 同时也可考虑使用一套实时发放的方式 这样只有在验证了用户的状态 或订阅用户符合发放条件后 才发放优惠代码 接下来是用户端应用 理想情况下 大家会优化自己的 app 支持 app 内兑换表 以其达到最佳的用户体验 同时保证 app 可以轻松处理外部交易 并提供入门引导 因为优惠代码可能在 app 之外进行兑换 在 app 启动时 发起 TransactionObserver 确保不会遗漏掉任何一笔交易 若有有效性逻辑 即为客户端和服务器 你手上的所有用户适应历程信息 都可成为逻辑的参考信息 如用户的优惠类型使用记录 或当前状态 这将决定向用户提供什么样的订阅选择 及其库存单位 才能给用户最好的体验 最后 在订阅用户的 app 收据中 可以查看优惠代码使用历史 这个数据可以用于 决定该用户是否能够使用未来优惠活动
我们来讨论几个兑换的问题 我将介绍几个大家需要注意的条件和限制 然后讨论兑换体验 及如何在大家的 app 上使用 随后 我将和大家聊一聊 入门优惠和优惠代码配置不同 所带来的不同客户体验
需要注意的一些限制是 订阅用户在单个优惠代码配置下 只能使用一个优惠代码 因为设置时在 App Store Connect 中 所起的名字不一样 所以每个优惠代码都是独一无二的
需要注意的是 若订阅用户无法兑换手中的优惠代码 用户将从目前使用的服务档位被降级 优惠代码只能用于兑换 更高一级的库存单元 或与当前订阅的同级 理想状态下 在确定优惠目标用户时 有效性逻辑就应当考虑到这一点
我们现在来讨论一下 优惠代码兑换的一些具体问题 用户使用的方式有三大类 最直接的一种是 订阅用户可以前往 App Store 兑换手中的优惠代码 这种情况就是外部交易 当 app 启动时 就需要监控支付队列 方能为入门指导 提供最佳的体验
另一种方式是通过大家刚刚看到的 app 内的兑换表 这是一个理想的体验 订阅用户可以直接在 app 里面 用 presentCodeRedemptionSheet 兑换 当 app 在前台运行时 这将是兑换时唯一的场景 因为兑换表会直接在 app 上面打开 大家注意 如果在 app 内部显示优惠代码 那么就会比较方便订阅用户复制粘贴
这就是我们说的兑换流 兑换按键放在 app 哪个位置都可以 我们这里是把它放在了登录按键的下边 点击之后 兑换表就会在 app 上面打开 订阅用户就可以输入优惠代码 点击输入
用户可以检查一下术语后进入 完成后 就可以在付款队列里 看到一个新交易
第三个兑换选择是兑换 URL 用订阅用户独有的优惠代码进行预填充 共由两个需要注意的值构成 ID 指的是 app ID 所以对每个 app 来说都是一个静态值
第二个值是优惠代码 在这里可以用订阅用户独有的数字值 来对 URL 进行动态填充 如果 URL 是嵌入在邮件里 点击之后就会转入 App Store 的页面 完成交易 需要注意的几点是 订阅用户在兑换流过程中 不会看到优惠代码 完成后 用户在打开 app 的时候 app 需要完成另一个外部交易
如上所述 兑换可以在 app 外部发生 所以需要在启动的时候就发起 TransactionObserver 对 Ask to Buy、PSD2 和优惠代码来说 这是一个最佳也是非常重要的实践方式 发起恰当 就不会错过任何交易 此外 finishTransaction 会将交易 从队列中移除 并告知我们 用户已经收到了物品或服务 以上两点如果操作正确 就可以为用户带来最佳的体验
我们再回到入门优惠和优惠代码配置上 上面说了 我想用其中一个设置 来把订阅用户体验视觉化
我们先来看一个简单的情景 我们有一个标准化的月度订阅 现在我们把它设置成一周免费试用的 入门优惠 并创建一个一周免费试用的优惠代码
现在来看看如果两个兑换都不允许的话 会发生什么 在订阅用户兑换优惠代码时 优惠代码马上生效
优惠期结束后 订阅会恢复到正常价格 订阅可能会在不久之后过期 如果重新订阅 因为符合入门优惠的条件 用户可以享受一周的免费试用 所以这个配置这是决定了 用户什么时间可以开始享受入门优惠 在创建针对某个特定群体的优惠时 可以留意一下这个体验
但如果选择允许兑换呢? 我们再用同一个例子试试
此时订阅用户在兑换优惠代码时 入门优惠首先生效 随后就开始使用优惠代码 然后订阅就会恢复到标准价格 我希望这样能够阐明 或者说让大家更清楚 从订阅用户体验的角度来看 这个配置的意义是什么 帮助大家决定 什么时候允许这种兑换行为
最后 给大家看一下针对优惠代码的 订阅用户状态更新 了解订阅用户状态的方式有两种: 通过 App 收据或者服务器实时通知 我们先来看看 app 收据 在 app 收据中可以看到这个新字段 offer_code_reference_name 这是加进 App Store Connect 中的 独一无二的字符串 而且在所有优惠代码中都会是独一无二的 只有在用我们的 verifyReceipt 服务来验证 app 收据时 才可以看到这个数据
我们再来讲讲服务器通知
如果大家对我们的服务器通知 不太了解的话 服务器通知就是在一个订阅事件 改变了自己的状态时 服务器直接发送给你的实时更新 大家可以在我们的开发者文档中 找到所有的支持性订阅事件 通知中的字段名都是一样的 offer_code_reference_name 在 unified_receipt.Latest _receipt_info 这一对象中可用
订阅用户在兑换优惠代码时 收到的通知类型是 INITIAL_BUY 这种通知会在首次订阅一个订阅组时发出 所以如果一个订阅用户兑换优惠代码后 开始了订阅 就会发出 INITIAL_BUY 这个通知类型 接下来是专门针对现用户的通知类型 如果现用户兑换了一个优惠代码之后 开始重新订阅或者进行升级 就会发出 INTERACTIVE_BUY 通知
最后 兑换优惠代码的订阅用户 在取消订阅后 会生成一个 DID_CHANGE_RENEWAL_STATUS 通知 因为这种兑换会激活 订阅用户的自动续订状态 现在就交给 Kenny 来进一步讲一下如何在 App Store Connect 中创建优惠代码
谢谢 David 大家好 我是 Kenny Elmore 是 App Store Operations 团队的 订阅设置分为两部分 一部分是在 App Store Connect 完成的 另一部分工作需要在后端完成 这其中包括了 David 上面提到的内容 比如服务器到服务器的通知 收据验证 还有使用正确 StoreKit API 的实现 我们今天重点要看的 是这个设置中 App Store Connect 的部分 需要的角色包括 账户持有人 管理员 app 管理器、开发者或者营销
优惠代码配置包括三个部分 首先要设定用户适用标准 可用区域 定价 以及 App Store Connect 中的入门优惠 适用标准 首先要创建一个优惠 然后生成批量代码 附在优惠上 分享给用户 最后需要下载代码 然后直接发给用户 或者再创建独一无二的兑换 URL 分享给用户
从我的 App 中选择你的 app
在边栏中 App 内购买的下方 点击管理
从列表中选择自动续订
在订阅价格中 点击“加”的图标
从下拉菜单中点击创建优惠代码
输入优惠的引用名 用这个引用名来管理 App Store Connect 中的优惠 以及在销售和趋势报告中找到 与优惠相关的销售额 首先 为优惠选择用户适用标准 可以选择新用户、现用户或前用户的 任意组合
新用户是从未在群组中 订阅过任何订阅产品的用户 现用户是目前正在订阅群组中 某个产品的用户 前用户是此前曾经订阅过 群组中某个产品 但目前订阅已经过期的用户
如果订阅服务有推广的话 该如何选择入门优惠呢?
如果你的订阅服务有入门优惠 可以选择以下其中一个选项 来决定兑换优惠代码的用户 应不应该有资格同时兑换一个优惠代码 和一个入门优惠 如果选择是 新用户就会先兑换 app 的入门优惠 然后对用优惠代码兑换的优惠 进行自动续订 如果选择否 新用户则会先兑换优惠代码 然后按正常订阅价格续订 不用入门优惠 如果用户取消了订阅后又重新订阅 还是可以有资格兑换入门优惠
选择优惠适用的相应区域后点击下一步
选择随用随付、提前支付和免费试用 然后选择合适的期限、货币和价格 Apple 会根据所选价格 自动计算所有区域的价格 但是还可以针对特定区域 设定不同价格 在这个例子当中 我们要创建一个免费的优惠
选择期限
点击创建
在配置好优惠后 需要为用户创建可以兑换的优惠代码 每个 app 可以每个季度可以创建 最高 15 万个新优惠代码 为了让用户能够进行兑换优惠代码 app 必须处于待售状态 在优惠旁边 点击创建优惠代码
在弹框中 选择想要创建的优惠代码数量 一次最少选 500 个 最多选 25000 个
选择过期日期 过期日期决定的是优惠代码的有效期 最少选一天 最多选六个月
如果需要的不止 25000 个优惠代码 可以在同一个优惠上创建多批优惠代码
创建之后 需要从 App Store Connect 下载 就可以分享给用户了 可以使用自己的渠道 比如说电子邮件或者线下营销活动
在右手边 在需要下载的批量优惠代码旁 点击下载 文件自动下载 用一个电子表格应用打开文件 可以直接把优惠代码发给用户 优惠代码可以通过 线上或线下渠道进行分发 比如说把优惠代码打印在一张卡上 在活动上分发出去
用户可以在 App Store 的账户设置中的 兑换礼品卡或优惠代码页面 来兑换优惠代码 如果你已经执行了 presentCodeRedemptionSheet API 也可以在 app 内兑换
优惠代码可以用来创建 独一无二的兑换 URL 用来直接分享给用户
用户点击 URL 后 会转到可以兑换优惠代码的页面
还没有安装 app 的用户 在兑换优惠代码前 会收到下载 app 的提醒 为创建 URL 需要复制优惠页面上的链接 将每个优惠代码添加到 URL 末尾
任何时候都可以在 App Store Connect 中停用优惠代码 用户将无法进行兑换 并收到错误报告 说明此优惠已经失效
选择需要停用的优惠代码 点击停用优惠代码 优惠代码会立即失效 已经兑换了优惠代码的订阅用户 不会受到影响
停用的优惠代码 会出现在过期优惠代码列表中 App Store Connect 中 每个订阅最小库存单位 一次最多可以 有 10 个有效优惠 如果 10 个不够 可以考虑停用 已经过期或不再需要的优惠代码
在右上角点击停用
停用的优惠会移动到失效优惠列表中 任何时候都可以查阅已经停用的优惠 以及下载与停用优惠相关的过期优惠代码
最多可以用 10 个有效优惠 每个都有自己相应的用户适用标准 适用区域、价格以及入门优惠堆叠行为
点击查看每个优惠的定价和期限
快速查看一下优惠代码 主要目的是获取、留存和赢回订阅用户
用户适用标准:新用户、现用户、前用户
用户兑换限制 每个用户只可享受一个有效优惠
App Store Connect 限制 每个订阅最多只能有 10 个有效优惠 每个 app 每个季度最多可以创建 15 万个优惠代码
优惠配置 在 App Store Connect 中 选择用户适用准则 时间、区域、定价和期限
兼容性 iOS 14 及更高版本 不支持 macOS
评估优惠表现
为评估优惠代码活动是否成功 可以在销售和趋势中查看报告 其中会包括订阅控制面板和报告 报告会体现出 通过优惠代码而获得的付费用户数量 从优惠代码到标准价格的转换率 以及兑换量最高的活动是哪个
订阅保留面板 会进行更新 包含优惠代码转换率 从而体现出过去 30 天中 所有优惠的转换率
这是过去 30 天 启用优惠代码之后 实际转为标准价格订阅的订阅数 除以启用优惠代码后 可以转为标准价格订阅的订阅数
此外 还在销售与趋势概览页面的底部 加入了一个最高优惠代码表格 可以轻松了解到哪些优惠的兑换次数最高
我们还要在总体销售报告中 把优惠代码引用名加入到 优惠代码相关的交易中 从而追踪兑换的优惠代码数量 并了解更多相关情况 比如说不同设备类型、地区等等 对兑换的影响
我们还把优惠代码引用名 加入到了订阅报告 订阅事件报告和订阅用户报告中 协助大家计算优惠代码转换率 和订阅取消率 现在再交由 Bryan 来对 今天的内容做一个总结
谢谢 Kenny 总结一下今天的内容 就是要考虑在 app 内实现兑换流 为用户带来最佳体验 只需要生成计划使用的优惠代码数量 因为没有兑换的优惠代码 也无法再次使用了 还要谨记创建的优惠代码六个月之后 就过期了
要阐明优惠细节、适用要求 以及如何兑换 比如用户只能在 iOS 14 或更高版本中 进行兑换等
谢谢观看 非常期待看到大家 通过优惠代码来发展业务 关于优惠代码的更多内容 请访问 Apple 开发者网站
-
-
正在查找特定内容?在上方输入一个主题,就能直接跳转到相应的精彩内容。
提交你查询的内容时出现错误。请检查互联网连接,然后再试一次。