Vai al contenuto

Crea l'offerta introduttiva per l'abbonamento iOS

GitHub

Le offerte introduttive permettono di offrire trial gratuiti o prezzi scontati agli utenti idonei, riducendo le barriere all'ingresso e aumentando le conversioni degli abbonamenti.

Le offerte introduttive sono tra gli strumenti più efficaci per far crescere la tua base di abbonati. Consentono agli utenti di:

  • Provare le funzioni premium senza rischi
  • Testare il valore prima di impegnarsi
  • Iniziare con un prezzo più basso
  • Aumentare la fiducia nel tuo prodotto

iOS supporta tre tipi di offerte introduttive:

Gli utenti ottengono l'accesso gratuito per una durata prestabilita. Al termine della prova, verrĆ  addebitato il prezzo standard se non viene annullata l'attivazione.

Esempi:

  • 7 giorni gratuiti
  • 14 giorni gratuiti
  • 1 mese gratuito

Ideale per:

  • Abbonamenti premium
  • App con molte funzionalitĆ 
  • Creare l'abitudine nell'utente

Gli utenti pagano un unico prezzo scontato che copre l'intero periodo di introduzione.

Esempi:

  • $1.99 per 2 mesi (poi $9.99/mese)
  • $9.99 per 3 mesi (poi $19.99/mese)

Ideale per:

  • Segnali di impegno
  • Esigenze di cash flow
  • Test della sensibilitĆ  al prezzo

Gli utenti pagano un prezzo ridotto per più cicli di fatturazione.

Esempi:

  • $1.99/mese per 3 mesi (poi $9.99/mese)
  • $4.99/mese per 6 mesi (poi $14.99/mese)

Ideale per:

  • Impegno graduale
  • Dimostrare il valore a lungo termine
  • Ridurre la percezione del rischio

Gli utenti possono ricevere offerte introduttive solo se:

  • Non hanno giĆ  ricevuto un'offerta introduttiva per il prodotto
  • Non hai mai ricevuto un'offerta introduttiva per prodotti nello stesso gruppo di abbonamento
  • Non hai mai avuto un abbonamento attivo per quel prodotto

Per prima cosa devi creare un abbonamento auto-rinnovabile prima di aggiungere un'offerta introduttiva.

  1. Vai su Subscription

    In App Store Connect, vai nella sezione Monetizzazione > Abbonamenti della tua app e seleziona l'abbonamento a cui aggiungere l'offerta.

  2. Aggiungi Subscription Price

    Clicca sul + accanto a ā€œSubscription Pricesā€ per aprire la modal dei prezzi.

  3. Crea Introductory Offer

    Seleziona ā€œCrea un'offerta introduttivaā€ tra le opzioni disponibili.

    Crea introductory offer

  4. Configura Paesi e Data di Inizio

    Paesi e Regioni: Seleziona dove sarĆ  disponibile l'offerta

    • Scegli tutti i paesi per la massima copertura
    • O limita a mercati specifici per i test

    Data di Inizio: Quando l'offerta diventa disponibile

    • Può essere immediata o programmata
    • Utile per coordinarsi con le campagne marketing

    Data di Fine (Opzionale): Quando l'offerta scade

    • Lascia vuoto per la disponibilitĆ  continua
    • Imposta una data per promozioni limitate
  5. Seleziona il tipo di offerta

    Scegli uno dei tre tipi di offerta:

    Gratis (Prova gratuita)

    • Seleziona la durata (giorni, settimane, mesi)
    • Esempi: 7 giorni, 2 settimane, 1 mese

    Pagamento anticipato

    • Imposta il prezzo per un singolo pagamento
    • Imposta la durata coperta dal pagamento
    • Esempio: $1.99 per 2 mesi

    Pagamento a consumo

    • Imposta il prezzo scontato per periodo
    • Imposta il numero di periodi
    • Esempio: $2.99/mese per 3 mesi
  6. Revisione e conferma

    Controlla il riepilogo che mostra:

    • Tipo e durata dell'offerta
    • Dettagli sul prezzo
    • Prezzo regolare dopo l'offerta
    • Date di disponibilitĆ  e paesi
  7. Salva

    Clicca su Salva per creare l'offerta introduttiva. SarĆ  disponibile subito per i test in modalitĆ  sandbox.

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

Percorso utente:

  • Giorno 1-7: Accesso gratuito
  • Giorno 8: Primo addebito di $9.99
  • Gli addebiti mensili continuano
Type: Pay Up Front
Price: $4.99
Duration: 3 months
Then: $9.99/month

Percorso utente:

  • Giorno 1: Addebito di $4.99
  • Accesso per 90 giorni
  • Giorno 91: Addebito di $9.99/mese
Type: Pay As You Go
Price: $2.99/month
Periods: 6 months
Then: $9.99/month

Percorso utente:

  • Mesi 1-6: $2.99/mese
  • Dal mese 7: $9.99/mese

Il plugin native-purchases gestisce automaticamente la presentazione e l'idoneitĆ  alle offerte introduttive:

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);
}

Proposta di valore chiara:

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

Enfatizzare il risparmio:

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

Comunicazione trasparente:

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 giorni: App e giochi a decisione rapida
  • 7-14 giorni: Standard per la maggior parte delle app
  • 14-30 giorni: Strumenti complessi, app professionali
  • 30+ giorni: B2B o enterprise ad alto valore
  • $0.99-$1.99: Barriera molto bassa, ideale per test
  • 50% di sconto: Forte valore percepito
  • Primo mese gratis: Pattern comune e familiare
  • Prima della fine della prova: Ricordare agli utenti l'addebito imminente
  • Evidenziare il valore: Mostrare statistiche di utilizzo e traguardi
  • Cancellazione semplice: Creare fiducia con un processo trasparente

Usa il testing in sandbox per verificare il comportamento:

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
  • Un'offerta introdotta per utente per gruppo di abbonamento (una tantum)
  • Valido solo per i nuovi abbonati
  • Non riutilizzabile dopo la cancellazione
  • Non disponibile per upgrade o crossgrade di abbonamento
  • introductoryPrice mostra i dettagli dell'offerta introdotta
  • eligibility il metodo verifica l'idoneitĆ  dell'utente
  • Applicata automaticamente al momento dell'acquisto
  • Nessun metodo di acquisto speciale richiesto
  • Solo un'offerta introduttiva attiva per abbonamento alla volta
  • Non combinabile con altri tipi di sconto
  • Le regole di idoneitĆ  non sono modificabili
  • Apple gestisce il controllo dell'idoneitĆ 

L'offerta introduttiva non viene visualizzata:

  • Controlla se l'offerta ĆØ attiva in App Store Connect
  • Verifica che l'utente non abbia giĆ  usato un'offerta introduttiva
  • Assicurati che l'utente non abbia abbonamenti nel gruppo
  • Testa con un nuovo account sandbox

Il controllo di idoneitĆ  fallisce:

  • Attendi la sincronizzazione di App Store (può richiedere 2-3 ore)
  • Verifica che il product ID sia corretto
  • Controlla la configurazione del gruppo di abbonamenti
  • Testa in sandbox con un nuovo account di test

Prezzo errato visualizzato:

  • Controlla le impostazioni dei prezzi regionali
  • Verifica la conversione della valuta
  • Assicurati che le date dell'offerta siano aggiornate
  • Aggiorna le informazioni sul prodotto

Problemi con i test in Sandbox:

  • Usa durate accelerate (3 min = 1 settimana)
  • Crea nuovi account di test per ogni prova
  • Attendi che il periodo di prova finisca naturalmente
  • Controlla il numero di rinnovi (max 6 in sandbox)
  • Tasso di accettazione dell'offerta introduttiva
  • Tasso di conversione da trial a abbonamento
  • Cancellazioni durante il periodo di prova
  • Retention dopo il primo addebito
  • Impatto sui ricavi
  • Free trial vs. offerta intro a pagamento
  • Variazioni sulla durata della trial
  • Percentuale di sconto
  • Pagamento unico vs. sconto ricorrente
// 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,
});
}
});
  • Configura il testing in sandbox per testare le tue intro offer
  • Configura le offerte promozionali per campagne di win-back
  • Implementa l'analytics delle sottoscrizioni
  • Crea campagne di marketing mirate

Per maggiori dettagli, consulta la documentazione ufficiale Apple sulle intro offer.

Continua da Create iOS Subscription Introductory Offer

Sezione intitolata ā€œCreate iOS Subscription Introductory Offerā€

Se stai usando Crea un'offerta introduttiva per gli abbonamenti iOS per pianificare pagamenti e acquisti, collegalo a Utilizzo di @capgo/native-purchases per la funzionalitĆ  nativa in Utilizzo di @capgo/native-purchases, Prezzi Capgo per il workflow del prodotto in Prezzi Capgo, Sistema di pagamento per i dettagli di implementazione nel sistema di pagamento, @capgo/native-purchases per i dettagli di implementazione in @capgo/native-purchases, e Per iniziare per i dettagli sull'implementazione, consulta la sezione Getting Started.