跳过内容

Create iOS 订阅介绍性优惠

GitHub

介绍性优惠允许您向合格用户提供免费试用或折扣的介绍性定价以减少进入障碍并增加订阅转换。

介绍性优惠是增长订阅者基础最有效的工具之一。它们允许用户:

  • 尝试您的高级功能无风险
  • 在承诺之前体验价值
  • 以较低的价格点开始
  • 在您的产品中建立信心

Offer Types

Offer Types

iOS支持三种类型的引导性优惠:

1. 免费试用

免费试用

客户在试用期内获得免费访问。试用期结束后,如果客户没有取消,他们将按标准费率收费。

示例:

  • 7天免费
  • 14 天免费
  • 1 个月免费

适合:

  • 高价值订阅
  • 功能丰富的应用
  • 建立用户习惯

客户支付一个涵盖引导期的折扣价格。

示例:

  • $1.99 2 个月(然后 $9.99/月)
  • $9.99 3 个月(然后 $19.99/月)

最佳选择:

  • 承诺信号
  • 现金流需求
  • 测试价格敏感性

客户在多个计费周期内支付减少的价格。

示例:

  • $1.99/月3个月(然后$9.99/月)
  • $4.99/月6个月(然后$14.99/月)

最佳选择:

  • 逐渐增加承诺
  • 长期价值展示
  • 降低用户风险感知

资格要求

资格要求

用户只有在以下情况下才能接受入门优惠:

  • 尚未为该产品接受过入门优惠
  • 尚未为同一订阅组中的任何产品接受过入门优惠
  • 尚未对该产品有过活跃订阅

您必须首先 创建一个可自动续订的订阅 才能添加一个引入性的优惠

  1. 导航到订阅

    在 App Store Connect 中,前往您的应用的 Monetize > 订阅 部分并选择要添加优惠的订阅

  2. 添加订阅价格

    点击 + icon next to “订阅价格” to open the pricing modal.

  3. 创建引荐价格

    选择 “创建引荐价格” 从选项中选择

    创建引荐价格

  4. 配置国家和开始日期

    国家和地区: 选择该价格将可用

    • 选择所有国家以实现最大覆盖
    • 或限制到特定市场进行测试

    开始日期: 当优惠券可用时

    • 可立即或预定为未来
    • 有助于与营销活动协调

    结束日期(可选): 当优惠券过期时

    • 留空表示持续可用
    • 设置有限期限的促销
  5. 选择优惠券类型

    选择以下三种优惠券类型:

    免费 (免费试用)

    • 选择持续时间(天,周,月)
    • 例如:7天,2周,1个月

    一次性付款

    • 设置单次付款价格
    • 设置付款覆盖的时长
    • 示例:$1.99/2个月

    按需付款

    • 设置每个周期的折扣价格
    • 设置周期的数量
    • 示例:$2.99/月/3个月
  6. 查看并确认

    查看显示的摘要:

    • 计费类型和时长
    • 价格细节
    • 首次推出后正常价格
    • 可用日期和国家
  7. 节省

    点击 节省 创建引导性优惠券。它将立即在沙盒模式下可用于测试。

优惠券配置示例

标题:优惠券配置示例

示例 1:标准免费试用

标题:示例 1:标准免费试用
Type: Free
Duration: 7 days
Then: $9.99/month

用户旅程:

  • 第1-7天:免费访问
  • 第8天:首次收费$9.99
  • 月度收费继续

例2:预付折扣期

标题:例2:预付折扣期
Type: Pay Up Front
Price: $4.99
Duration: 3 months
Then: $9.99/month

用户旅程:

  • 第1天:收费$4.99
  • 90天访问
  • 第91天:收费$9.99/月
Type: Pay As You Go
Price: $2.99/month
Periods: 6 months
Then: $9.99/month

用户旅程:

  • 1-6 个月:$2.99/月
  • 7 个月以上:$9.99/月

native-purchases 插件自动处理引导性优惠的呈现和资格:

import { NativePurchases, PURCHASE_TYPE } from '@capgo/native-purchases';
// Fetch products with intro offer information
const { products } = await NativePurchases.getProducts({
productIdentifiers: ['com.yourapp.premium_monthly'],
productType: PURCHASE_TYPE.SUBS,
});
const product = products[0];
// Display intro offer details (StoreKit sends localized metadata)
if (product.introductoryPrice) {
console.log('Intro price:', product.introductoryPriceString);
console.log('Intro period:', product.introductoryPricePeriod);
console.log('Intro cycles:', product.introductoryPriceCycles);
console.log('Regular price:', product.priceString);
} else {
console.log('No intro offer configured');
}
// Purchase (StoreKit automatically applies intro pricing if eligible)
try {
const transaction = await NativePurchases.purchaseProduct({
productIdentifier: 'com.yourapp.premium_monthly',
productType: PURCHASE_TYPE.SUBS,
});
console.log('Subscription active, receipt length:', transaction.receipt?.length);
await validateReceiptOnServer(transaction.receipt);
} catch (error) {
console.error('Purchase failed:', error);
}

UI 最佳实践

最佳实践指南

清晰的价值提议:

Try Premium Free for 7 Days
Then $9.99/month. Cancel anytime.

强调节省:

Start at Just $1.99
Get 3 months of Premium for only $1.99
Then $9.99/month

透明的沟通:

Your Free Trial
• Access all premium features
• No charge for 7 days
• $9.99/month after trial
• Cancel anytime, even during trial

示例实现

示例实现
function formatIntroOffer(product: any): string {
if (!product.introductoryPrice) {
return `${product.priceString} per ${product.subscriptionPeriod}`;
}
const intro = product.introductoryPrice;
const regular = product.priceString;
if (intro.price === 0) {
// Free trial
return `Try free for ${intro.periodString}, then ${regular}`;
} else if (intro.cycles === 1) {
// Pay up front
return `${intro.priceString} for ${intro.periodString}, then ${regular}`;
} else {
// Enterprise
return `${intro.priceString} for ${intro.cycles} ${intro.periodString}s, then ${regular}`;
}
}

营销最佳实践

营销最佳实践

试验长度策略

试验长度策略
  • 3-7天快速决策应用、游戏
  • 7-14天大多数应用的标准
  • 14-30天复杂工具、专业应用
  • 30+天高价值B2B或企业

定价心理学

定价心理学
  • $0.99-$1.99: __CAPGO_KEEP_0__
  • 50% __CAPGO_KEEP_0__: __CAPGO_KEEP_1__
  • __CAPGO_KEEP_2____CAPGO_KEEP_3__

__CAPGO_KEEP_4__

: __CAPGO_KEEP_5__
  • __CAPGO_KEEP_6__: __CAPGO_KEEP_7__
  • __CAPGO_KEEP_8__: __CAPGO_KEEP_9__
  • __CAPGO_KEEP_10__: 在透明的流程中建立信任

Testing Intro Offers

测试介绍性优惠

使用沙盒测试来验证行为:

import { NativePurchases, PURCHASE_TYPE } from '@capgo/native-purchases';
// In sandbox mode, accelerated subscription durations apply:
// - 3 days free trial = 3 minutes
// - 1 week free trial = 3 minutes
// - 1 month free trial = 5 minutes
const { products } = await NativePurchases.getProducts({
productIdentifiers: ['premium_monthly'],
productType: PURCHASE_TYPE.SUBS,
});
// Purchase with intro offer
const transaction = await NativePurchases.purchaseProduct({
productIdentifier: 'premium_monthly',
productType: PURCHASE_TYPE.SUBS,
});
console.log('Intro purchase transaction:', transaction.transactionId);
// Wait for accelerated renewal
setTimeout(async () => {
const { purchases } = await NativePurchases.getPurchases({
productType: PURCHASE_TYPE.SUBS,
});
const premium = purchases.find((purchase) => purchase.productIdentifier === 'premium_monthly');
console.log('After trial state:', premium?.subscriptionState);
}, 180000); // 3 minutes for weekly trial
  • 每个用户每个订阅组只有一次介绍性优惠(终身)
  • 仅适用于新订阅者
  • 取消后不能再次使用
  • 不适用于订阅升级/交叉升级

StoreKit API

StoreKit API
  • introductoryPrice 显示引导优惠细节
  • eligibility 方法检查用户是否符合条件
  • 在购买时自动应用
  • 不需要特殊购买方法

限制

限制
  • 一次只能激活一个引导优惠
  • 不能与其他折扣类型合并
  • 不能改变资格规则
  • 苹果控制资格检查

故障排除

故障排除

引导优惠不显示:

  • 检查 App Store Connect 中是否激活了优惠
  • 确认用户之前没有使用过引导优惠
  • 确保用户没有在该组中订阅任何内容
  • 使用新沙盒账户进行测试

资格检查失败:

  • 等待 App Store 同步(可能需要 2-3 小时)
  • 确认产品 ID 正确
  • 检查订阅组配置
  • 在沙盒中使用新鲜测试帐户进行测试

错误的价格显示:

  • 检查区域定价设置
  • 验证货币转换
  • 确保优惠活动日期是最新的
  • 刷新产品信息

沙盒测试问题:

  • 使用加速时间(3分钟=1周)
  • 为每次测试创建新测试帐户
  • 等待试用期自然完成
  • 检查续订次数(沙盒中最大6次)

分析和优化

《分析和优化》

跟踪这些指标

《跟踪这些指标》
  • 试用期接受优惠率
  • 试用期转为付费的转换率
  • 试用期内取消率
  • 首次收费后留存率
  • 收入影响

A/B 测试点子

《A/B 测试点子》
  • 免费试用期与付费试用期
  • 试用期长度的变异
  • 折扣百分比
  • 一次性付款与定期折扣

优化策略

《优化策略》
// Track offer performance
analytics.track('intro_offer_displayed', {
product_id: product.identifier,
offer_type: product.introductoryPriceType,
offer_duration: product.introductoryPricePeriod
});
analytics.track('intro_offer_accepted', {
product_id: product.identifier
});
// Monitor conversion
NativePurchases.addListener('transactionUpdated', (transaction) => {
if (transaction.productIdentifier === product.identifier && transaction.isActive) {
analytics.track('trial_converted', {
transactionId: transaction.transactionId,
productId: transaction.productIdentifier,
});
}
});
  • 配置沙盒测试 测试你的引导性优惠
  • 为回报活动设置促销优惠
  • 实施订阅分析
  • 创建针对性营销活动

欲知更多,请参阅 苹果官方文档关于介绍性优惠的说明.

继续从创建iOS订阅介绍性优惠

标题:继续从创建iOS订阅介绍性优惠

如果您正在使用 创建iOS订阅介绍性优惠 来规划付款和购买, Using @capgo/native-purchases 使用@capgo/native-purchases 的本地能力在使用@Capgo/native-purchases中, 为产品工作流程在Capgo定价中 支付系统 为支付系统的实现细节中 @capgo/native-purchases 为@capgo/native-purchases的实现细节中,和 Getting Started 为Getting Started的实现细节中