
在iOS 12.2中,Apple添加了一个很酷的新功能-促销优惠。 自动续订的订阅应用程序现在可以为现有或以前的客户提供个人折扣或额外的免费期限。 促销优惠适用于付费,付款,参与试用以及取消试用用户。 与介绍性报价不同,促销性报价可根据开发人员的意愿购买任意多次。 但是该实现需要服务器生成数字签名。
要创建新的促销优惠,请转到App Store Connect并打开包含您的订阅的页面。 点击订阅价格部分中的“ +” ,然后选择“创建促销优惠” :

说明促销活动的原始名称及其标识符- 产品代码 :

说明促销优惠的费用和类型:
保存更改。
订阅密钥
要使用促销优惠,您需要使用订阅密钥生成数字签名。 您需要在App Store Connect中创建它。
转到“用户和访问”部分,然后转到“密钥”选项卡。 通过指定其名称来创建新的订阅密钥。

创建密钥后,单击“下载API密钥”,然后将文件保存在安全的地方。

从App Store Connect下载的订阅密钥具有以下名称格式:SubscriptionKey_ [KEY_ID] .p8,其中KEY_ID是密钥标识符。
签名生成
从这里开始最困难的,我认为这是不必要的。 苹果通过增加签名生成而获得了重新保险,从而使用户无法在没有开发人员知情的情况下侵入StoreKit并提供促销优惠。 让我提醒您,这些折扣仅适用于付费用户。 当前客户是否会尝试以折扣价入侵该系统?
从移动客户端的角度来看,签名生成是必需的,以便具有SKProductDiscount
类的对象创建SKPaymentDiscount
类,该类将添加到SKMutablePayment
中进行购买。 让我们更详细地考虑。
SKProductDiscount
此类的对象存储在SKProduct
的discounts
数组中。 所有创建的促销优惠都是SKProductDiscount
类的对象。 与介绍性优惠一样,您可以获得促销期的长短,价格和数量。 事实证明,需要使用此类来在应用程序界面中显示购买条件。
SKPayment折扣
此类是由开发人员使用从您的服务器接收到的数据创建的。 查看源文件,并查看唯一的初始化方法:
public init(identifier: String, keyIdentifier: String, nonce: UUID, signature: String, timestamp: NSNumber)
identifier
-促销优惠的标识符。 它来自SKProductDiscount
。keyIdentifier
订阅密钥标识符。nonce
是在服务器上生成的任意字符串,用于增强签名保护或salt 。 在iOS上,您将需要使用此盐创建UUID类。signature
-从服务器接收的数字签名,为base64字符串。timestamp
-创建签名的日期(以毫秒为单位)。 需要比较签名的创建时间和购买本身的时间,因为签名仅24小时有效。
在服务器上生成签名的代码本身并不是一件容易的事,但是Apple已在Node.js上提供了示例代码。 签名密钥必须上传到您的服务器,并且您必须将上述所有数据返回给移动客户端。
在此处阅读有关签名生成的更多信息。
促销优惠的购买方式与常规购买相同。 唯一的区别是添加了SKPaymentDiscount
类的对象。
let payment = SKMutablePayment(product: product) payment.paymentDiscount = discount SKPaymentQueue.default().add(payment)
接下来是什么?
您成功地生成了签名,并在Sandbox进行了首次购买。 太好了! 但是促销活动本身并不能解决增加利润和回头客的问题。 您的任务是在正确的时间向用户显示它们。 哪一个 例如,您可以尝试通过向他们发送通知来返回已取消订阅的用户。
退回失败的客户
在促销优惠的帮助下,您可以尝试回头客。 为此,您需要实现一系列功能:促销优惠,有关订阅状态的服务器通知,推送通知,将用户支票存储在服务器上以及通过交易号搜索用户。 这不容易。
客户流失调查
吸引新用户要比保留现有客户贵很多倍。 因此,了解迫使用户取消试用和订阅的动机尤其重要。
许多用户取消订阅是因为他们不再需要应用程序,因此您的折扣可能不起作用。 在这种情况下,您应该找出他不喜欢的东西以及可能影响他返回申请的决定,而不是提供折扣。
提供折扣以换取行动
通常,这是邀请一位朋友以换取折扣或免费使用。 它可能确实有效,但是实施引荐系统将花费大量时间。
如何在Apphud中实施
Apphud可以跟踪退订情况,对过去的用户进行投票,并提供折扣而无需编写代码。 折扣屏幕是在您帐户的设计器中创建的。 对于用户,它看起来像这样:

当取消试用或订阅时,Apphud将显示调查屏幕,并在必要时立即提供折扣。
我们通常会为用户返回命名每个单独的机制。 在此处阅读有关如何配置规则的更多信息。
结论
订阅业务模型已经成为非游戏移动应用程序的标准。 保留用户并了解其离开的原因是一项重要任务,在启动移动项目的阶段已经需要解决。
Apphud将帮助整合订阅:
- 仅使用一种方法进行购买;
- 自动跟踪每个用户的订阅状态;
- 轻松整合订阅优惠
- 将订阅事件发送到Amplitude,Mixpanel,Slack和Telegram,并考虑到用户的本地货币;
- 降低应用程序的客户流失率并返回未订阅的用户。