促销优惠相关文档
推介促销优惠
介绍
1. 可在所有的Apple的平台使用
2. 每个用户在每个订阅组只能享受一次
3. 可以按照不同地区定价
4. 用户付费时间会计入其持续订阅的时间 1年后开发者可获得85%的比例分成
设置
1. 选择地区
2. 选择有效期 -开始结束时间
3. 选择优惠类型
4. 选择优惠时长
5. 选择优惠价格-会自动匹配其它地区的价格 也可以针对单个地区进行调整
6. 可以配置一个当前生效的优惠和一个未来生效的优惠
提供优惠前检查
1. 用户兑换资格-在设备上:isEligibleForIntroOffer 该用户在此订阅组可兑换则为true StoreKit2中的属性
2. JWSTransactions: offerType = 1 在服务器端使用service API获取使用记录
3. 查看收据中的 Last receipt: is_traial_period and is_in_intro_offer_period
显示优惠信息
1. StoreKit 2:introductoryOffer
2. 初始版本StoreKit:introductoryPrice
不存在相关优惠时不会返回该值
沙盒测试
使用Reset Eligibility 功能以使用同一个Sandbox Apple ID来测试推介促销优惠 - 在订阅管理页面可以看到
在App中使用 showManageSubscription(in:)展示
相关信息在Introducing StoreKit Testing in Xcode - WWDC20 - Videos - Apple Developer
促销优惠
介绍
在特定时限内提供的免费或者折扣订阅,以赢回已取消订阅的用户或者增加用户的留存
1. 特定时限内提供的折扣
2. 减少用户流失的强力工具
3. 自主决定提供折扣的时间
4. 用户在允许下可以多次享受优惠
5. 当前订阅用户或者流失用户拥有兑换资格
流程
1. 服务器:决定给与优惠资格
2. 客户端:调用SKPorductsRequest获取优惠信息
3. 服务器:生成优惠签名
4. 客户端:给用户展示优惠信息
5. 客户端:完成交易
6. 服务器:验证以及发放权益
密钥
1. 可以应用于该开发者账户下的全部资源
1. 所有应用
2.所有的优惠
2. 可一次创建并激活多个密钥
签名
1. 确保只有认证的用户可以兑换优惠
2. 非对称加密
私钥用于对数据进行签名
公钥用于对签名进行验证
3. 生成签名 具体参考VideoShow
签名的字符串所需参数:appBundleId
4. Error 错误 .invalidOfferIdentifier offer Identifier 无效或者这个优惠无效 .invalidOfferPrice 随用随付的价格高于了基础订阅价格 .invalidSignature 签名认证失败 .missingOfferParame 缺失参数
确认资格
必须有过订阅的用户
任何自动续期订阅产品
任意的订阅
包括当前订阅用户或者退订的用户
第一个订阅周期内也符合资格
包括正在享受推介促销优惠的用户
包括免费试用期内的用户
优惠代码
特点
1. 线上线下灵活的分发方式
2. 给新的,正在订阅的以及流失的订阅用户
3. 流畅的用户兑换体验
4. 订阅产品自动续期
一次性代码
1. 2020年发布
2. 唯一的,由数字和字母组成
3. 只能兑换一次
4. 在应用内或者App Store兑换
5. 可限制代码的访问
自定代码
1. 创建和分发方便记忆的自定代码
2. 支持大规模分发
3. 可选择兑换限制和有效期
4. 简单的分发和兑换流程
配置和限制
1. 可以给新的用户、正在订阅的和过期的用户分发
2. 每个SKU最多可以有10组配置
3. 每次可以生成500-25000个代码
4. 每个季度每个应用可以拥有150000个代码 每个季度自动恢复不会累加,且时限和恢复额度不会冲突
兑换
用户每组代码只能兑换一个(offerIdentifier, offer_code_ref_name)
每个代码都可以由这个在App Store Connect中配置的组的名字所识别
不支持降级订阅
必须是更高级别的或者是同级别的SKU
App Store 兑换
只能兑换一次性代码
用户可以直接在App Store内兑换
兑换时会自动安装应用程序
至少iOS14或者 iPadOS 14
应用内兑换
使用 StoreKit Code Redemption Sheet API PresentCodeRedemptionSheet()
最好提供复制粘贴功能 方便用户录入
兑换URL
使用 https://apps.apple.com/redeem?ctx=offercodes&id=###&code=###
Id 应用id code自定优惠代码
外部交易注意点
1. 启动时开始监听:Transaction.Updates
2. 确保终端购买以及外部购买的交易可以被正常处理
3. 特别是 Ask to Buy。PSD2和优惠代码的交易
4. 交易完成后 调用finish()
优惠可以限定给以下用户组的任意组合
·新用户 正在订阅用户和订阅过期用户
优惠代码兑换历史
在收据中
优惠类型 offerType = 3
优惠的 reference name offerIdentifier = “string” 格式 String
在服务器API
VerifyReceipt 服务
App Store Server API
服务器通知 Version 2
类型: OFFER_REDEEMED
子类型:INITIAL_BUY| RESUBSCRIBE|UPGRADE
相关文档链接
Implementing Introductory Offers in Your App
Implementing Promotional Offers in Your App
Generating a Signature for Promotional Offers
Implementing Offer Codes in Your App
Subscription offer codes - Tech Talks - Videos - Apple Developer
Designing for Subscription Success - Tech Talks - Videos - Apple Developer
Subscription Offers Best Practices - WWDC19 - Videos - Apple Developer