Vai al contenuto

Create iOS Subscription Introductory Offer

Questo contenuto non è ancora disponibile nella tua lingua.

Introductory offers allow you to provide eligible users with free trials or discounted introductory pricing to reduce barriers to entry and increase subscription conversions.

Overview

Introductory offers are one of the most effective tools for growing your subscriber base. They allow users to:

  • Try your premium features risk-free
  • Experience value before committing
  • Start at a lower price point
  • Build confidence in your product

Offer Types

iOS supports three types of introductory offers:

1. Free Trial

Customers get complimentary access for a specified duration. After the trial, they’re charged at standard rates if they don’t cancel.

Examples:

  • 7 days free
  • 14 days free
  • 1 month free

Best for:

  • High-value subscriptions
  • Feature-rich apps
  • Building user habit

2. Pay Up Front

Customers pay a single discounted price that covers the introductory period.

Examples:

  • $1.99 for 2 months (then $9.99/month)
  • $9.99 for 3 months (then $19.99/month)

Best for:

  • Commitment signals
  • Cash flow needs
  • Testing price sensitivity

3. Pay As You Go

Customers pay a reduced price for multiple billing cycles.

Examples:

  • $1.99/month for 3 months (then $9.99/month)
  • $4.99/month for 6 months (then $14.99/month)

Best for:

  • Gradual commitment
  • Long-term value demonstration
  • Reducing perceived risk

Eligibility Requirements

Users can only receive introductory offers if they:

  • Haven’t previously received an introductory offer for the product
  • Haven’t received an introductory offer for any product in the same subscription group
  • Haven’t had an active subscription to the product

Prerequisites

You must first create an auto-renewable subscription before adding an introductory offer.

Creating an Introductory Offer

  1. Navigate to Subscription

    In App Store Connect, go to your app’s Monetize > Subscriptions section and select the subscription you want to add an offer to.

  2. Add Subscription Price

    Click the + icon next to “Subscription Prices” to open the pricing modal.

  3. Create Introductory Offer

    Select “Create introductory offer” from the options.

    Create introductory offer

  4. Configure Countries and Start Date

    Countries and Regions: Select where the offer will be available

    • Choose all countries for maximum reach
    • Or limit to specific markets for testing

    Start Date: When the offer becomes available

    • Can be immediate or scheduled for the future
    • Useful for coordinating with marketing campaigns

    End Date (Optional): When the offer expires

    • Leave blank for ongoing availability
    • Set a date for limited-time promotions
  5. Select Offer Type

    Choose one of the three offer types:

    Free (Free Trial)

    • Select duration (days, weeks, months)
    • Examples: 7 days, 2 weeks, 1 month

    Pay Up Front

    • Set single payment price
    • Set duration covered by payment
    • Example: $1.99 for 2 months

    Pay As You Go

    • Set discounted price per period
    • Set number of periods
    • Example: $2.99/month for 3 months
  6. Review and Confirm

    Review the summary showing:

    • Offer type and duration
    • Pricing details
    • Regular price after intro period
    • Availability dates and countries
  7. Save

    Click Save to create the introductory offer. It will be available for testing immediately in sandbox mode.

Offer Configuration Examples

Example 1: Standard Free Trial

Type: Free
Duration: 7 days
Then: $9.99/month

User Journey:

  • Day 1-7: Free access
  • Day 8: First charge of $9.99
  • Monthly charges continue

Example 2: Upfront Discounted Period

Type: Pay Up Front
Price: $4.99
Duration: 3 months
Then: $9.99/month

User Journey:

  • Day 1: Charged $4.99
  • 90 days access
  • Day 91: Charged $9.99/month

Example 3: Gradual Introduction

Type: Pay As You Go
Price: $2.99/month
Periods: 6 months
Then: $9.99/month

User Journey:

  • Months 1-6: $2.99/month
  • Month 7+: $9.99/month

Using in Your App

The native-purchases plugin automatically handles introductory offer presentation and eligibility:

import { NativePurchases } from '@capgo/native-purchases';
// Check eligibility for intro offers
const { eligible } = await NativePurchases.checkTrialOrIntroductoryPriceEligibility({
productIdentifiers: [
'com.yourapp.premium_monthly',
'com.yourapp.premium_annual'
]
});
console.log('Eligible for intro offer:', eligible);
// Fetch products with intro offer information
const { products } = await NativePurchases.getProducts({
productIdentifiers: ['com.yourapp.premium_monthly']
});
const product = products[0];
// Display intro offer details
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);
}
// Purchase (intro offer applied automatically if eligible)
try {
const { customerInfo } = await NativePurchases.purchaseProduct({
productIdentifier: 'com.yourapp.premium_monthly'
});
console.log('Subscription active:', customerInfo.entitlements.active);
} catch (error) {
console.error('Purchase failed:', error);
}

Displaying Intro Offers to Users

Best Practices for UI

Clear Value Proposition:

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

Emphasize Savings:

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

Transparent Communication:

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

Example Implementation

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 {
// Pay as you go
return `${intro.priceString} for ${intro.cycles} ${intro.periodString}s, then ${regular}`;
}
}

Marketing Best Practices

Trial Length Strategy

  • 3-7 days: Quick decision apps, games
  • 7-14 days: Standard for most apps
  • 14-30 days: Complex tools, professional apps
  • 30+ days: High-value B2B or enterprise

Pricing Psychology

  • $0.99-$1.99: Very low barrier, good for testing
  • 50% off: Strong perceived value
  • First month free: Common, familiar pattern

Communication Timing

  • Before trial ends: Remind users of upcoming charge
  • Highlight value: Show usage stats, achievements
  • Easy cancellation: Build trust with transparent process

Testing Intro Offers

Use sandbox testing to verify behavior:

// 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
await NativePurchases.configure({
apiKey: 'your_sandbox_api_key'
});
// Purchase with intro offer
const { customerInfo } = await NativePurchases.purchaseProduct({
productIdentifier: 'premium_monthly'
});
// Verify intro offer was applied
console.log('Intro activated:', customerInfo.entitlements.active);
// Wait for accelerated renewal
setTimeout(async () => {
const { customerInfo: updated } = await NativePurchases.getCustomerInfo();
console.log('After trial:', updated.entitlements.active);
}, 180000); // 3 minutes for weekly trial

Important Notes

Eligibility Rules

  • One intro offer per user per subscription group (lifetime)
  • Applies to new subscribers only
  • Cannot be used again after cancellation
  • Not available for subscription upgrades/crossgrades

StoreKit API

  • introductoryPrice shows intro offer details
  • eligibility method checks if user qualifies
  • Automatically applied at purchase time
  • No special purchase method needed

Limitations

  • Only one intro offer active per subscription at a time
  • Cannot combine with other discount types
  • Cannot change eligibility rules
  • Apple controls eligibility checking

Troubleshooting

Intro offer not showing:

  • Check if offer is activated in App Store Connect
  • Verify user hasn’t used an intro offer before
  • Ensure user hasn’t subscribed to anything in the group
  • Test with new sandbox account

Eligibility check failing:

  • Wait for App Store sync (can take 2-3 hours)
  • Verify product ID is correct
  • Check subscription group configuration
  • Test in sandbox with fresh test account

Wrong price displaying:

  • Check regional pricing settings
  • Verify currency conversion
  • Ensure offer dates are current
  • Refresh product information

Sandbox testing issues:

  • Use accelerated durations (3 min = 1 week)
  • Create new test accounts for each test
  • Wait for trial to complete naturally
  • Check renewal count (max 6 in sandbox)

Analytics and Optimization

Track These Metrics

  • Intro offer acceptance rate
  • Trial-to-paid conversion rate
  • Cancellation during trial
  • Retention after first charge
  • Revenue impact

A/B Testing Ideas

  • Free trial vs. paid intro
  • Trial length variations
  • Discount percentage
  • Single payment vs. recurring discount

Optimization Strategy

// 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('customerInfoUpdate', (info) => {
if (info.customerInfo.entitlements.active['premium']) {
analytics.track('trial_converted', {
customer_id: info.customerInfo.originalAppUserId
});
}
});

Next Steps

  • Configure sandbox testing to test your intro offers
  • Set up promotional offers for win-back campaigns
  • Implement subscription analytics
  • Create targeted marketing campaigns

Additional Resources

For more details, refer to the official Apple documentation on introductory offers.