Lompat ke konten

Pembuatan Penawaran Awal Pembelian iOS

GitHub

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

Penawaran Awal adalah salah satu alat yang paling efektif untuk meningkatkan basis pelanggan Anda. Mereka memungkinkan pengguna untuk:

  • Mencoba fitur premium Anda dengan risiko yang lebih kecil
  • Mengalami nilai sebelum berkomitmen
  • Mulai dari titik harga yang lebih rendah
  • Membangun kepercayaan pada produk Anda

iOS menyokong tiga jenis penawaran pengenalan:

Pelanggan mendapat akses percuma selama tempoh tertentu. Selepas ujian, mereka dikenakan kadar standard jika mereka tidak batal.

Contoh:

  • 7 hari percuma
  • 14 hari percuma
  • 1 bulan percuma

Terbaik untuk:

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

Pelanggan membayar harga diskon yang tunggal untuk menutupi periode pengenalan.

Contoh:

  • $1.99 selama 2 bulan (kemudian $9.99/bulan)
  • $9.99 selama 3 bulan (kemudian $19.99/bulan)

Terbaik untuk:

  • Isyarat komitmen
  • Kebutuhan arus kas
  • Perluasan sensitivitas harga

Pelanggan membayar harga yang lebih rendah untuk beberapa siklus tagihan.

Contoh:

  • $1.99/bulan selama 3 bulan (kemudian $9.99/bulan)
  • $4.99/bulan selama 6 bulan (kemudian $14.99/bulan)

Terbaik untuk:

  • Komitmen bertahap
  • Demonstrasi nilai jangka panjang
  • Mengurangi risiko yang dipahami

Pengguna hanya dapat menerima penawaran introdusif jika mereka:

  • Tidak pernah menerima penawaran introdusif untuk produk tersebut sebelumnya
  • Tidak pernah menerima penawaran introdusif untuk produk manapun dalam kelompok langganan yang sama
  • Tidak pernah memiliki langganan aktif untuk produk tersebut

Anda harus terlebih dahulu membuat langganan auto-renewable sebelum menambahkan penawaran introdusif.

  1. Navigasikan ke Langganan

    Pergi ke App Store Connect, pergi ke aplikasi Anda’s Monetize > Langganan bagian dan pilih langganan yang ingin Anda tambahkan tawaran ke.

  2. Tambahkan Harga Langganan

    Klik ikon + di samping “Harga Langganan” untuk membuka modal harga.

  3. Membuat Tawaran Pendahuluan

    Pilih “Membuat tawaran pendahuluan” Dari pilihan.

    Buat tawaran pengenalan

  4. Konfigurasi Negara dan Tanggal Mulai

    Negara dan Wilayah: Pilih di mana tawaran akan tersedia

    • Pilih semua negara untuk mencapai yang maksimal
    • 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)When tawaran berakhir

    • Biarkan kosong untuk ketersediaan berlangsung
    • Pilih tanggal untuk promosi waktu terbatas
  5. Pilih Tipe 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

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

    Tinjau ringkasan menampilkan:

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

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

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

Jalur Pengguna:

  • Hari 1-7: Akses gratis
  • Hari 8: Pengenalan biaya pertama $9.99
  • Biaya bulanan terus berlanjut

Contoh 2: Masa Diskon yang Dibayarkan Terlebih Dahulu

Judul Bagian “Contoh 2: Masa Diskon yang Dibayarkan Terlebih Dahulu”
Type: Pay Up Front
Price: $4.99
Duration: 3 months
Then: $9.99/month

Perjalanan Pengguna:

  • Hari 1: Dibebankan $4.99
  • Akses selama 90 hari
  • Hari 91: Dibebankan $9.99/bulan

Contoh 3: Pengenalan yang Berangsur-angsur

Judul Bagian “Contoh 3: Pengenalan yang Berangsur-angsur”
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 intro:

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

Jelaskan Manfaat yang Jelas:

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

Tegaskan Penyelamatan:

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

Komunikasi 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, Game yang Cepat Memutuskan
  • 7-14 hari: Standar untuk aplikasi kebanyakan
  • 14-30 hari: Alat kompleks, aplikasi profesional
  • 30+ hari: Nilai tinggi B2B atau perusahaan besar
  • $0.99-$1.99: Batasan yang sangat rendah, baik untuk pengujian
  • 50% diskon: Nilai yang dirasakan kuat
  • Bulan pertama gratisPolos, pola yang familiar
  • Sebelum ujian berakhir: Ingatkan pengguna tentang pembayaran yang akan datang
  • Tunjukkan nilai: Tunjukkan statistik penggunaan, prestasi
  • Mudah dibatalkan: Bangun kepercayaan dengan proses yang 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
  • Tidak tersedia untuk peningkatan langganan/krossgrader
  • introductoryPrice menampilkan detail tawaran intro
  • eligibility metode memeriksa apakah pengguna memenuhi syarat
  • Diterapkan secara otomatis pada saat pembelian
  • Tidak perlu metode pembelian khusus
  • Hanya satu penawaran intro aktif per langganan pada waktu itu
  • Tidak dapat dikombinasikan dengan jenis diskon lainnya
  • Tidak dapat mengubah aturan kelayakan
  • Apple mengontrol pengecekan kelayakan

Penawaran intro tidak menampilkan:

  • Periksa apakah penawaran telah diaktifkan di App Store Connect
  • Verifikasi pengguna belum menggunakan penawaran intro sebelumnya
  • Pastikan pengguna belum berlangganan apa pun di grup
  • Test dengan akun sandbox baru

Cek keabsahan kelayakan:

  • Tunggu sinkronisasi App Store (dapat memakan waktu 2-3 jam)
  • Verifikasi ID produk yang benar
  • Periksa pengaturan konfigurasi grup langganan
  • Test di sandbox dengan akun test segar

Harga yang salah menampilkan:

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

Masalah pengujian sandbox:

  • Gunakan durasi yang dipercepat (3 menit = 1 minggu)
  • Buat akun uji coba baru untuk setiap pengujian
  • Tunggu sampai trial selesai secara alami
  • Periksa hitungan perpanjangan (maks 6 di sandbox)
  • Tingkat Penerimaan Penawaran Intro
  • Rasio konversi dari trial ke pembayaran
  • Penghapusan selama trial
  • Pertahanan setelah charge pertama
  • Dampak pendapatan
  • Pendahuluan trial gratis vs. pembayaran
  • Variasi panjang trial
  • Persentase diskon
  • Diskon tunggal vs. diskon berulang
// 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,
});
}
});
  • Konfigurasi pengujian sandbox untuk menguji tawaran intro
  • Tetapkan tawaran promosi untuk kampanye win-back
  • Implementasikan analisis langganan
  • Buat kampanye pemasaran berdasarkan target

Untuk informasi lebih lanjut, lihat dokumentasi resmi Apple tentang tawaran intro.

Teruskan dari Pembuatan Penawaran Awal Pembayaran iOS

Judul Bagian “Teruskan dari Pembuatan Penawaran Awal Pembayaran iOS”

Jika Anda menggunakan Pembuatan Penawaran Awal Pembayaran iOS untuk merencanakan pembayaran dan pembelian, hubungkannya dengan Menggunakan @capgo/native-purchases untuk kemampuan asli dalam Menggunakan @capgo/native-purchases, Capgo Pricing untuk alur kerja produk dalam Capgo Pricing, Sistem Pembayaran untuk detail implementasi dalam Sistem Pembayaran, @capgo/native-purchases untuk detail implementasi di @capgo/native-purchases, dan Getting Started untuk detail implementasi di Getting Started.