Lompat ke konten

Buat Tawaran Pembelian iOS Introductory

Tawaran awal memungkinkan Anda untuk menyediakan pengguna yang layak dengan uji coba gratis atau harga diskon awal untuk mengurangi hambatan masuk dan meningkatkan konversi langganan.

Tawaran awal merupakan salah satu alat paling efektif untuk meningkatkan basis pelanggan Anda. Mereka memungkinkan pengguna untuk:

  • Coba fitur premium Anda tanpa risiko
  • Mengalami nilai sebelum berkomitmen
  • Mulai dari harga yang lebih rendah
  • Membangun kepercayaan pada produk Anda

iOS mendukung tiga jenis tawaran awal:

Pelanggan mendapatkan akses gratis selama periode tertentu. Setelah masa percobaan, mereka dikenakan tarif standar jika mereka tidak membatalkan.

Contoh:

  • 7 hari gratis
  • 14 hari gratis
  • 1 bulan gratis

Terbaik untuk:

  • Langganan berharga tinggi
  • Aplikasi yang kaya fitur
  • Membangun kebiasaan pengguna

Pelanggan membayar harga diskon yang mencakup periode pengenalan.

Contoh-contoh:

  • __CAPGO_KEEP_0__ untuk 2 bulan (kemudian __CAPGO_KEEP_1__/bulan)
  • __CAPGO_KEEP_0__ untuk 3 bulan (kemudian __CAPGO_KEEP_1__/bulan)

Pilihan terbaik untuk:

  • Tanda komitmen
  • Kebutuhan arus kas
  • Menguji sensitivitas harga

Pelanggan membayar harga yang lebih rendah untuk beberapa siklus pembayaran.

Contoh:

  • __CAPGO_KEEP_0__/bulan untuk 3 bulan (kemudian __CAPGO_KEEP_1__/bulan)
  • $4.99/bulan untuk 6 bulan (kemudian $14.99/bulan)

Pilihan Terbaik:

  • Komitmen Berangsur-angsur
  • Pengujian Nilai Jangka Panjang
  • Mengurangi Risiko yang Dilihat

Pengguna hanya dapat menerima tawaran intro jika:

  • Belum pernah menerima tawaran intro untuk produk ini
  • Belum pernah menerima tawaran intro untuk produk manapun dalam kelompok langganan yang sama
  • Belum pernah memiliki langganan aktif untuk produk ini

Anda harus terlebih dahulu membuat langganan auto-renewable sebelum menambahkan tawaran pengenalan.

  1. Navigasikan ke Langganan

    Dalam App Store Connect, pergi ke langganan aplikasi Anda di Monetize > Langganan bagian dan pilih langganan yang ingin Anda tambahkan penawaran untuk.

  2. Tambahkan Harga Langganan

    Klik ikon berikutnya di samping “Harga Langganan” untuk membuka modal harga. + Buat Penawaran Awal

  3. Pilih

    “Buat penawaran awal” dari pilihan. Buat penawaran awal

    Konfigurasi Negara dan Tanggal Mulai

  4. Negara dan Wilayah

    : Pilih di mana penawaran akan tersediaSelect where the offer will be available

    • Pilih semua negara untuk mencapai jangkauan maksimum
    • Atau batasi ke pasar spesifik untuk tes

    Tanggal Mulai: Ketika tawaran menjadi tersedia

    • Dapat segera atau dijadwalkan untuk masa depan
    • Bermanfaat untuk mengkoordinasikan dengan kampanye pemasaran

    Tanggal Akhir (Opsional): Ketika tawaran berakhir

    • Biarkan kosong untuk ketersediaan berkelanjutan
    • Setel tanggal untuk promosi sementara waktu
  5. Pilih Jenis Tawaran

    Pilih salah satu dari tiga jenis tawaran:

    Gratis (Uji Coba Gratis)

    • Pilih durasi (hari, minggu, bulan)
    • Contoh: 7 hari, 2 minggu, 1 bulan

    Bayar Secara Langsung

    • Tentukan harga pembayaran tunggal
    • Tentukan durasi yang ditutupi oleh pembayaran
    • Contoh: $1.99 untuk 2 bulan

    Bayar Sesuai Penggunaan

    • Tentukan harga diskon per periode
    • Tentukan jumlah periode
    • Contoh: $2.99/bulan untuk 3 bulan
  6. Konfirmasi dan Periksa

    Lihat ringkasan menampilkan:

    • Tipe dan durasi penawaran
    • Detail harga
    • Harga reguler setelah periode intro
    • Tanggal dan negara ketersediaan
  7. Simpan

    Klik Simpan untuk membuat penawaran intro. Penawaran ini akan tersedia untuk diuji segera dalam mode sandbox.

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

Perjalanan Pengguna:

  • Hari 1-7: Akses gratis
  • Hari 8: Pengenalan biaya pertama sebesar $9.99
  • Biaya bulanan terus berlanjut
Type: Pay Up Front
Price: $4.99
Duration: 3 months
Then: $9.99/month

Perjalanan Pengguna:

  • Hari 1: Dibebankan biaya $4.99
  • Akses 90 hari
  • Hari ke-91: Dibebankan $9.99/bulan
Type: Pay As You Go
Price: $2.99/month
Periods: 6 months
Then: $9.99/month

Perjalanan Pengguna:

  • Bulan 1-6: $2.99/bulan
  • Bulan 7+: $9.99/bulan

Plugin native-purchases secara otomatis mengelola presentasi dan kelayakan tawaran pengenalan:

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

Menampilkan Tawaran Intro kepada Pengguna

Judul Bagian “Menampilkan Tawaran Intro kepada Pengguna”

Mengemukakan Nilai Tawaran yang Jelas:

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

Tegaskan Hemat:

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

Komunikasi yang Transparan:

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 hari: Aplikasi keputusan cepat, game
  • 7-14 hari: Standar untuk aplikasi kebanyakan
  • 14-30 hari: Alat kompleks, aplikasi profesional
  • 30+ hari: Harga tinggi untuk bisnis B2B atau perusahaan besar
  • $0.99-$1.99: Batasan yang sangat rendah, cocok untuk tes
  • Diskon 50%: Nilai yang dipahami kuat
  • Bulan pertama gratis: Pola yang umum, familiar
  • Sebelum masa uji berakhir: Ingatkan pengguna tentang tagihan yang akan datang
  • Tunjukkan nilai: Tampilkan statistik penggunaan, prestasi
  • Pembatalan mudah: Bangun kepercayaan dengan proses transparan

Gunakan uji coba sandbox untuk memverifikasi perilaku:

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
  • Tawaran intro satu kali per pengguna per kelompok langganan (seumur hidup)
  • Hanya berlaku untuk pelanggan baru
  • Tidak dapat digunakan lagi setelah pembatalan langganan
  • Tidak tersedia untuk peningkatan/crossgrade langganan
  • introductoryPrice menampilkan detail tawaran intro
  • eligibility metode memeriksa apakah pengguna memenuhi syarat
  • Diterapkan secara otomatis pada waktu pembelian
  • Tidak perlu metode pembelian khusus
  • Hanya satu penawaran intro aktif per langganan pada waktu tertentu
  • Tidak dapat dikombinasikan dengan jenis diskon lain
  • Tidak dapat mengubah aturan kelayakan
  • Apple mengontrol pengecekan kelayakan

Penawaran intro tidak menampilkan:

  • Periksa jika penawaran diaktifkan di App Store Connect
  • Verifikasi pengguna belum menggunakan penawaran intro sebelumnya
  • Pastikan pengguna belum berlangganan ke sesuatu di grup
  • Uji dengan akun sandbox baru

Pengecekan kelayakan gagal:

  • Tunggu sinkronisasi App Store (dapat memakan waktu 2-3 jam)
  • Pastikan ID produk benar
  • Periksa konfigurasi kelompok langganan
  • Test di sandbox dengan akun uji segar

Harga yang salah menampilkan:

  • Periksa pengaturan harga regional
  • Pastikan konversi mata uang
  • Pastikan tanggal penawaran masih aktif
  • Perbarui informasi produk

Masalah testing sandbox:

  • Gunakan durasi yang dipercepat (3 menit = 1 minggu)
  • Buat akun uji baru untuk setiap tes
  • Tunggu percobaan untuk selesai secara alami
  • Periksa hitungan perpanjangan (maks 6 di sandbox)
  • Tingkat penerimaan tawaran promo
  • Konversi percobaan ke pembayaran
  • Penghentian selama percobaan
  • Pemeliharaan setelah tagihan pertama
  • Dampak pendapatan
  • Pengenalan gratis vs. berbayar
  • Variasi panjang uji coba
  • Persentase diskon
  • Diskon satu kali vs. diskon berulang

Rencana Optimasi

Rencana Optimasi
// 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,
});
}
});

Langkah-Langkah Selanjutnya

Rencana Langkah-Langkah Selanjutnya
  • Konfigurasi pengujian sandbox untuk menguji tawaran intro Anda
  • Atur penawaran promosi untuk kampanye win-back
  • Implementasikan analisis langganan
  • Buat kampanye pemasaran yang ditargetkan

Untuk informasi lebih lanjut, lihat pada dokumentasi resmi Apple tentang penawaran introdusktif.