Introductory offer App Store Connect: uji coba gratis iOS
Oleh Mehdi Azizi
Terbit , 8 mnt
Introductory offer adalah uji coba gratis atau harga diskon di awal langganan iOS, hanya sekali per grup dan per akun Apple. Cara membuat dan menampilkannya.
Introductory offer, atau penawaran perkenalan, adalah harga awal dari langganan yang diperpanjang otomatis: uji coba gratis, bayar di muka, atau bayar per periode. Setiap pelanggan hanya berhak mendapatkannya sekali per grup langganan, jadi app kamu harus mengecek kelayakannya sebelum menulis “uji coba gratis”. Kamu membuatnya di halaman harga langganan, dan paywall kamu harus menampilkan dengan jelas durasi penawaran dan harga yang ditagih setelahnya.
Di Solys dan TradaZen, uji coba gratis 7 hari ada di langganan tahunan. Paket mingguan tidak punya uji coba. Berikut tiga jenis penawaran, siapa yang berhak, cara membuatnya, lalu dua kesalahan tampilan yang pernah saya buat. Istilah “penawaran peluncuran” sering berarti hal yang sama, termasuk di panduan saya tentang kesalahan paywall.
Apa itu introductory offer?
Bantuan App Store Connect mendefinisikannya sebagai harga diskon atau uji coba gratis, terbatas waktu, untuk periode pertama sebuah langganan. Penawaran ini hanya berlaku untuk langganan yang diperpanjang otomatis. Saat penawaran berakhir, langganan diperpanjang dengan harga normal, kecuali orangnya membatalkan sebelumnya.
Penawaran tampil di halaman App Store kamu untuk orang yang memenuhi syarat. Saat pembelian, Apple menerapkannya otomatis jika orang itu berhak. Tugas kamu adalah tidak menjanjikan di layar penawaran yang tidak akan diberikan Apple.
Tiga jenis introductory offer
Dokumentasi StoreKit menjelaskan tiga mode pembayaran. Ini masing-masing dengan contoh fiktif: langganan tahunan 39,99 € dan bulanan 6,99 €, yang bukan harga app saya mana pun.
| Jenis | Contoh fiktif | Dibayar di awal | Setelahnya |
|---|---|---|---|
| Uji coba gratis | 7 hari gratis | 0 € | 39,99 €/tahun |
| Bayar di muka | 3 bulan seharga 9,99 € | 9,99 € sekali | 39,99 €/tahun |
| Bayar per periode | 2,99 €/bulan, 3 bulan | 2,99 € per bulan | 6,99 €/bulan |
Dan ini yang harus tertulis di layar untuk masing-masing, tetap dengan harga fiktif tadi:
- Uji coba gratis: “7 hari gratis, lalu 39,99 € per tahun.” Selama uji coba, langganan sudah dimulai, tapi tidak ada tagihan sebelum uji coba berakhir.
- Bayar di muka: “9,99 € untuk 3 bulan pertama, lalu 39,99 € per tahun.” Orangnya membayar sekali untuk seluruh periode diskon.
- Bayar per periode: “2,99 € per bulan selama 3 bulan, lalu 6,99 € per bulan.” Harga diskon berlaku di setiap periode.
Di ketiga kasus, kalimatnya mencantumkan harga yang akan ditagih setelah penawaran.
Siapa yang berhak atas introductory offer?
Bantuan Apple jelas: satu penawaran per langganan, tapi hanya satu introductory offer per orang dan per grup langganan. Dokumentasi StoreKit merinci tiga kasus:
- pelanggan baru selalu berhak;
- mantan pelanggan yang kembali berhak jika belum pernah memakai introductory offer di grup itu;
- pelanggan aktif tidak berhak, meskipun ia ganti paket di grup yang sama.
Hak ini mengikuti akun Apple yang membayar, bukan iPhone atau akun yang dibuat di app kamu. Orang yang sudah mencoba, membatalkan, lalu menginstal ulang app tidak berhak lagi. Padahal produknya tetap mengiklankan penawarannya: di situlah tampilan yang menyesatkan muncul.
Akibat langsungnya: uji coba di paket mingguan akan menghabiskan hak uji coba di paket tahunan, karena keduanya ada di grup yang sama. Itulah sebabnya uji coba saya hanya ada di paket tahunan.
Batasan lain: kamu bisa punya satu introductory offer yang sedang berjalan dan satu penawaran mendatang per negara. Jika dua penawaran tumpang tindih, yang terakhir dibuat menggantikan yang lain. Pada Juli 2026, di TradaZen, saya ingin harga diskon sekaligus uji coba gratis di paket tahunan. Hanya satu penawaran dalam satu waktu: harus pilih salah satu. Akhirnya saya membuat langganan tahunan kedua, lebih murah, yang membawa uji cobanya.
Membuat penawaran di App Store Connect
Kamu perlu peran Account Holder, Admin, App Manager, atau Marketing. Labelnya sesuai bantuan Apple:
- Di Apps, buka app kamu, lalu Subscriptions di sidebar.
- Pilih grup, lalu langganannya.
- Di bagian Subscription Prices, klik View all Subscription Pricing, lalu Set up Introductory Offer.
- Pilih negara atau wilayah, lalu tanggal mulai dan berakhir. Jika kamu mulai hari ini, penawaran langsung aktif.
- Pilih Free, Pay up front, atau Pay as you go, lalu durasi dan harganya.
- App Store Connect mengusulkan harga setara untuk 175 negara. Sesuaikan jika perlu, lalu konfirmasi.
Penawaran yang sudah dibuat tidak bisa diubah lagi: untuk mengganti durasi atau harganya, hapus di tab Introductory Offers lalu buat ulang. Perubahan bisa butuh hingga satu jam untuk sampai ke sandbox. Dokumentasi RevenueCat juga menyarankan menunggu hingga 24 jam sebelum menyimpulkan bahwa penawaran tidak diterapkan.
Durasi yang tersedia
Uji coba gratis berlangsung 3 hari, 1 atau 2 minggu, 1, 2, 3, atau 6 bulan, atau 1 tahun, apa pun durasi langganannya. Bayar di muka mencakup 1, 2, 3, atau 6 bulan, atau 1 tahun. Bayar per periode bergantung pada durasi langganan:
| Langganan | Bayar per periode |
|---|---|
| 1 minggu | 1 sampai 12 minggu |
| 1 bulan | 1 sampai 12 bulan |
| 2 bulan | 2 sampai 12 bulan, kelipatan 2 |
| 3 bulan | 3, 6, 9, atau 12 bulan |
| 6 bulan | 6 atau 12 bulan |
| 1 tahun | 1 tahun |
Di app saya, saya memilih 7 hari, di paket tahunan. Ini bukan aturan Apple, ini pilihan produk, yang perlu kamu tinjau ulang dengan data kamu sendiri.
Tampilkan uji coba hanya untuk yang berhak
Apple menyebutkannya di halaman bantuan yang sama: jika kamu menampilkan penawaran di app, pastikan orangnya benar-benar bisa memakainya. Ajukan dua pertanyaan ke kode kamu: apakah produk ini punya uji coba gratis, dan apakah orang ini masih berhak?
Pertanyaan pertama dijawab dari produknya. Hati-hati, introductory offer belum tentu gratis. Di TradaZen, paket tahunan standar membawa penawaran bayar di muka, tahun pertama lebih murah, dan uji cobanya ada di paket tahunan yang lain. Keduanya muncul sebagai “introductory offer”. Jadi kode saya membaca harga penawarannya: nol berarti uji coba; di atas nol berarti penawaran berbayar.
Pertanyaan kedua diajukan ke store. Di Swift, StoreKit 2 menyediakan isEligibleForIntroOffer, mulai iOS 15. Apple menjelaskan bahwa nilai ini bisa bernilai benar meskipun tidak ada penawaran yang dikonfigurasi: karena itulah pertanyaan pertama diperlukan. Dengan RevenueCat di app Expo, fungsinya checkTrialOrIntroductoryPriceEligibility, yang mengembalikan eligible, ineligible, tidak ada penawaran, atau unknown. Ini prinsipnya dalam TypeScript:
import Purchases, {
INTRO_ELIGIBILITY_STATUS as S,
type PurchasesStoreProduct,
} from "react-native-purchases";
type Essai = "oui" | "non" | "doute";
export async function essaiGratuit(p: PurchasesStoreProduct): Promise<Essai> {
if (!p.introPrice || p.introPrice.price > 0) return "non";
try {
const r = await Purchases.checkTrialOrIntroductoryPriceEligibility([
p.identifier,
]);
const statut = r[p.identifier]?.status;
if (statut === S.INTRO_ELIGIBILITY_STATUS_ELIGIBLE) return "oui";
if (statut === S.INTRO_ELIGIBILITY_STATUS_INELIGIBLE) return "non";
if (statut === S.INTRO_ELIGIBILITY_STATUS_NO_INTRO_OFFER_EXISTS)
return "non";
return "doute";
} catch {
return "doute";
}
}
Kasus “ragu” ("doute") inilah inti masalahnya. RevenueCat menyebut pengecekannya sebagai perkiraan terbaik, dan lembar pembayaran Apple tetap menampilkan syarat sebenarnya sebelum konfirmasi. Untuk status unknown, RevenueCat menyarankan menampilkan harga normal, supaya tidak menyesatkan siapa pun.
Saya mempelajari sisi lain masalah ini di TradaZen. Versi pertama memperlakukan error saat membaca sebagai penolakan: orang yang berhak atas uji coba tidak melihatnya. Sekarang, app saya hanya menyembunyikan uji coba jika store menolak dengan tegas, ineligible atau tidak ada penawaran. Kalau ragu, tampilan produk tetap dipertahankan. Ini kompromi, bukan rekomendasi RevenueCat: kalau kamu lebih suka berhati-hati, ikuti saran mereka. Dalam kedua kasus, jangan pernah samakan “saya tidak tahu” dengan “tidak”.
Jika kamu memakai paywall RevenueCat, setiap teks bisa punya versi untuk orang yang berhak atas penawaran, menurut halaman mereka tentang penawaran. Sisa penyiapannya ada di panduan saya RevenueCat untuk langganan iOS.
Yang diwajibkan 3.1.2 di layar
Guideline 3.1.2(a) mengizinkan uji coba gratis pada langganan, asalkan kamu memberikan informasi yang diminta App Store Connect. Halaman Apple tentang langganan menjelaskan: dalam alur pembelian uji coba, sebutkan dengan jelas durasinya dan harga yang ditagih saat berakhir. Jumlah yang ditagih juga harus menjadi elemen harga paling menonjol di layar.
Penolakan yang diterima Solys pada 10 Oktober 2026 menyatakannya: uji coba gratis, harga peluncuran, dan harga hasil perhitungan harus tetap lebih kecil daripada jumlah yang ditagih. Uji coba boleh diumumkan, tapi harga yang ditagih setelahnya harus tetap menjadi harga paling mudah dibaca di layar. Kedua penolakan dan perbaikannya ada di panduan saya tentang guideline 3.1.2.
Kesalahan sebaliknya juga ada: menawarkan uji coba tanpa menyebutkannya. Dulu, tombol di paywall saya bertuliskan “Lanjutkan”. Di Solys, “7 hari gratis” bahkan hanya ada di label VoiceOver, bukan sebagai teks yang terlihat.
Menguji penawaran di sandbox
Beli langganannya dengan akun sandbox: uji coba harus muncul di lembar pembayaran Apple. Untuk mengulang alur pelanggan baru, pilih Clear Purchase History di pengaturan akun sandbox di iPhone. Menurut dokumentasi sandbox Apple, akun itu kemudian kembali berhak atas introductory offer.
Uji juga dengan akun yang sudah pernah memakai uji coba: paywall kamu tidak boleh lagi mengumumkan apa pun yang gratis. Jika produknya sama sekali tidak termuat, baca panduan saya tentang status Missing Metadata.
Memasang uji coba gratis tanpa kesalahan
iOS & Android Kit berangkat dari kode awal app saya: onboarding, paywall, dan langganan sudah siap, dan langkah ketiganya, “menyambungkan pemasukan”, memandu kamu mengatur produk dan uji coba. Seluruh rangkaiannya dijelaskan di halaman langganan in-app iOS. Kalau kamu masih ragu soal modelnya, mulai dari langganan atau pembelian sekali.
Jika kamu sedang menyiapkan rilis pertama, ikuti diagnostik gratis: ia mengurutkan langkah-langkahnya dan mengirimkan checklist anti-penolakan Apple saya. Untuk memberi gratis satu bulan atau menarik kembali mantan pelanggan, lanjutannya ada di panduan saya tentang kode penawaran.
Pertanyaan umum
Apa itu introductory offer di App Store?
Ini harga awal dari langganan yang diperpanjang otomatis: uji coba gratis, bayar di muka, atau bayar per periode. Penawaran dibuat di App Store Connect, dan Apple menerapkannya otomatis saat pembelian untuk orang yang berhak. Setelah itu, langganan beralih ke harga normal.
Bisakah pengguna mendapat dua kali uji coba gratis?
Tidak di grup langganan yang sama: hanya satu introductory offer per grup dan per akun Apple. Menginstal ulang app tidak mengembalikan haknya. Namun, jika ia berlangganan di grup lain di app kamu, ia bisa memakai penawaran grup tersebut.
Bisakah uji coba gratis digabung dengan diskon?
Tidak di langganan yang sama pada waktu yang sama: hanya satu introductory offer yang berjalan per negara. Kamu bisa membuat langganan kedua yang membawa penawaran lainnya, atau memakai kode penawaran, yang bisa menyusul setelah introductory offer tergantung pengaturan kamu.
Apakah perlu versi app baru untuk menambahkan uji coba?
Untuk penawarannya sendiri, tidak: penawaran diatur di App Store Connect dan diterapkan saat pembelian. Tapi jika paywall kamu menulis “7 hari” langsung di kode, kamu harus memperbaruinya. Baca durasinya dari produk yang dikembalikan store, dan layarnya akan menyesuaikan.
Apakah mantan pelanggan berhak atas uji coba gratis?
Ya, jika ia belum pernah memakai introductory offer di grup langganan itu. Jika sudah pernah, ia tidak berhak lagi, bahkan berbulan-bulan kemudian. Untuk menariknya kembali, Apple menyediakan win-back offer dan promotional offer.

