Paywall iOS: 7 kesalahan pemula yang menghambat penjualan
Oleh Mehdi Azizi
Diperbarui , 9 mnt
Paywall salah waktu, tanpa uji coba gratis, lupa tombol restore, info wajib Apple tidak ada: 7 kesalahan paywall iOS yang membuat aplikasi tidak laku.
Kenapa paywall iOS kamu tidak menghasilkan penjualan
Aplikasimu sudah ada di App Store, instalasi terus masuk, tapi hampir tidak ada yang berlangganan. Biasanya masalahnya bukan di idemu atau kodemu, melainkan di paywall iOS kamu: layar yang menampilkan penawaran berbayar dan meminta pengguna untuk berkomitmen. Paywall yang muncul di waktu yang salah, tanpa uji coba gratis, tanpa tombol restore, atau tanpa informasi yang diwajibkan Apple tidak akan menjual, atau malah ditolak saat review.
Ini 7 kesalahan yang paling sering saya lihat di aplikasi pertama, dan cara memperbaiki masing-masing. Bukan resep ajaib: hanya pengaturan konkret yang bisa dicek, dan bisa kamu terapkan sebelum pengiriman berikutnya ke Apple.
Saya merilis aplikasi iOS berlangganan saya sendiri: Solys, alarm dengan mini-game, dan TradaZen, simulator trading, keduanya terhubung ke RevenueCat. Di keduanya, saya mengalami situasi yang sama: banyak instalasi, tapi sangat sedikit uji coba gratis yang dimulai. Produknya bukan masalahnya. Paywall dan onboarding-nya kurang jelas mengarahkan ke uji coba. Itu salah satu alasan saya merombaknya secara menyeluruh, dan dari situlah daftar ini lahir.
Kesalahan #1: menampilkan paywall terlalu cepat, atau terlalu lambat
Ini kesalahan yang paling mahal, dan bisa terjadi ke dua arah.
Terlalu cepat artinya paywall muncul sebelum pengguna paham apa fungsi aplikasinya. Dia membuka aplikasi, melihat harga, lalu menutupnya. Dia tidak punya alasan untuk membayar karena belum melihat apa pun.
Terlalu lambat artinya paywall tersembunyi di balik tombol "Premium" di pengaturan, atau baru muncul setelah beberapa hari pemakaian. Sebagian besar pengguna tidak akan pernah melihatnya. Padahal pengguna yang tidak melihat penawaranmu tidak mungkin berlangganan.
Waktu yang tepat ada di antara keduanya: di akhir onboarding, tepat setelah pengguna merasakan nilai aplikasinya. Dia sudah menjawab beberapa pertanyaan, sudah melihat apa yang akan dilakukan aplikasi untuknya, mungkin sudah mencoba fitur utamanya. Di situlah penawaran jadi masuk akal.
Secara konkret:
- onboarding mengajukan pertanyaan yang berguna dan menunjukkan gambaran hasilnya;
- paywall muncul di akhir alur ini, bukan di tengahnya;
- kamu bisa menampilkannya lagi nanti, saat pengguna menyentuh batas versi gratis. Kalau kamu menjadikan berbayar fitur yang sebelumnya gratis, baca dulu panduan guideline 3.2.2.
Kesalahan #2: tidak menawarkan uji coba gratis
Untuk aplikasi yang belum dikenal siapa pun, meminta orang langsung membayar adalah lompatan besar. Uji coba gratis memperkecil lompatan itu: pengguna mencoba tanpa risiko, dan pembayaran baru dimulai di akhir masa uji coba kalau dia tidak membatalkan.
Apple menyediakan mekanisme ini dengan nama introductory offer untuk langganan yang diperpanjang otomatis. Dua aturan yang perlu diingat, dari halaman Apple tentang langganan:
- satu pelanggan hanya bisa memakai satu introductory offer per grup langganan;
- di alur pembelian, kamu harus menyebutkan dengan jelas durasi uji coba dan harga yang ditagih setelah uji coba berakhir.
Kesalahan yang sering terjadi adalah menawarkan uji coba tanpa mengatakannya. Kalau tombolmu hanya bertuliskan "Berlangganan", pengguna tidak tahu bahwa dia bisa mencoba gratis. Tulis dengan jelas di tombol atau tepat di atasnya: durasi uji coba, lalu harganya. Detail seperti inilah yang membedakan instalasi yang diam saja dengan uji coba yang benar-benar dimulai.
Kesalahan #3: salah menonjolkan langganan tahunan
Banyak aplikasi pertama menawarkan paket bulanan dan tahunan, tapi menampilkannya sebagai dua pilihan yang setara, berdampingan, tanpa hierarki. Hasilnya: pengguna ragu, dan pengguna yang ragu sering menutup layar.
Padahal paket tahunan menguntungkan kamu dan pengguna: harga setara per bulan lebih murah untuknya, komitmen lebih panjang untukmu. Untuk menonjolkannya dengan jujur:
- pilih paket ini secara default dan beri tampilan visual yang berbeda;
- tampilkan harga setara per bulan di samping harga tahunan, supaya perbandingannya langsung terlihat;
- sebutkan penghematan yang sebenarnya dibanding paket bulanan, dihitung dari harga aslimu, bukan dari harga acuan yang dikarang-karang.
Hati-hati jangan sampai kebablasan ke arah sebaliknya: harga yang benar-benar ditagih harus tetap paling terlihat. Apple meminta harga perpanjangan penuh ditampilkan dengan jelas dan mudah terlihat. Harga setara bulanan dengan huruf besar dan harga tahunan asli dengan huruf kecil sekali, itu paywall yang menyesatkan, dan bisa jadi alasan penolakan berdasarkan guideline 3.1.2.
Kesalahan #4: lupa tombol restore pembelian
Ini kelalaian yang paling konyol sekaligus salah satu yang paling sering. Seorang pelanggan ganti iPhone, menginstal ulang aplikasi, lalu berhadapan dengan paywall padahal dia sudah membayar. Tanpa tombol "Restore Purchases", dia tidak punya cara untuk mendapatkan kembali aksesnya.
Ini bukan opsional. App Store Review Guidelines (aturan 3.1.1) mewajibkan mekanisme restore untuk setiap pembelian dalam aplikasi yang bisa dipulihkan, dan halaman Apple tentang langganan mencantumkan, di antara elemen layar pendaftaran, "cara bagi pelanggan yang sudah ada untuk masuk atau memulihkan pembelian mereka".
Dengan RevenueCat, restore cukup dengan satu panggilan. Pekerjaan sebenarnya adalah memeriksa apa yang terjadi setelahnya:
- pelanggan benar-benar mendapatkan kembali aksesnya, tanpa harus membuka ulang aplikasi;
- pengguna yang belum pernah membeli menerima pesan yang jelas, bukan error teknis;
- tombolnya terlihat di paywall itu sendiri, bukan hanya di pengaturan.
Kesalahan #5: lupa informasi yang diwajibkan Apple
Paywall yang tidak menjelaskan dengan jelas apa yang akan dibayar pengguna bisa ditolak. Di halaman khusus langganan, Apple merinci apa saja yang harus ada di layar pendaftaran:
- nama dan durasi langganan, serta apa yang didapat selama periode itu;
- harga perpanjangan penuh, ditampilkan dengan jelas dan dilokalkan dalam mata uang yang tersedia;
- cara memulihkan pembelian (lihat kesalahan sebelumnya).
Tambahkan kalimat eksplisit tentang perpanjangan otomatis: langganan akan terus diperpanjang selama pengguna tidak membatalkannya, dan dia bisa membatalkannya di pengaturan akun Apple-nya.
Halaman yang sama juga menegaskan bahwa aplikasi dan metadata App Store-nya harus berisi tautan ke syarat penggunaan dan kebijakan privasi. Banyak yang baru tahu soal ini saat ditolak: menaruh tautan itu di aplikasi saja tidak cukup, kamu juga perlu ringkasan syarat langganan dan kedua tautan itu di deskripsi halaman App Store. Tanpanya, kamu akan ditolak berdasarkan aturan 3.1.2. Di aplikasi berlangganan saya, saya menutup deskripsi dengan blok singkat: syarat langganan, lalu tautan ke syarat penggunaan dan tautan ke kebijakan privasi. Dan kalau halaman App Store-mu diterjemahkan, blok ini harus ada di setiap bahasa.
Sebelum menempelkan tautanmu, buka dulu di browser. Tautan ke halaman yang tidak ada sama saja dengan tidak ada tautan.
Saya sudah membahas alasan penolakan lain yang sering muncul di artikel tentang penolakan Apple ini, dan halaman App Store sendiri punya halamannya: mengoptimalkan halaman aplikasi di App Store.
Kesalahan #6: tidak menguji paywall di sandbox
Paywall yang tampil bagus di simulator belum tentu paywall yang berfungsi. Di antara konfigurasi produk di App Store Connect, offering di RevenueCat, dan kode aplikasi, ada banyak titik tempat sebuah detail bisa rusak: produk yang salah terhubung, harga yang tidak termuat, uji coba yang tidak tampil.
Untuk itu Apple menyediakan lingkungan pengujian, sandbox, dengan akun Apple uji coba yang kamu buat di App Store Connect, di "Users and Access", tab Sandbox. Akun-akun ini dipakai untuk menguji pembelian tanpa dikenai biaya, termasuk perpanjangan, pembayaran gagal, dan refund, seperti dijelaskan di dokumentasi App Store Connect.
Sebelum setiap pengiriman, jalankan minimal alur ini di iPhone sungguhan:
- peluncuran pertama, onboarding lengkap, sampai di paywall;
- memulai uji coba dengan akun uji;
- memastikan akses premium benar-benar terbuka;
- menghapus aplikasi, menginstal ulang, memulihkan pembelian;
- tampilan paywall benar di iPhone terkecil dan terbesar yang kamu dukung.
Reviewer Apple juga akan menguji pembeliannya. Kalau macet, kamu ditolak.
Kesalahan #7: tidak mengukur apa pun
Inilah kesalahan yang membuatmu tidak bisa memperbaiki semua kesalahan lainnya. Tanpa pengukuran, kamu tidak tahu di mana pengguna berhenti. Kamu hanya melihat hasil akhirnya: sedikit pelanggan. Kamu tidak tahu apakah masalahnya di onboarding, paywall, harga, atau uji coba.
Justru inilah yang membuat saya melihat masalah di aplikasi saya sendiri: instalasinya ada, uji coba yang dimulai tidak ada. Tanpa dua angka itu berdampingan, saya bisa saja menghabiskan berminggu-minggu merombak hal lain.
Pasang event analytics di setiap tahap penting, misalnya dengan PostHog:
- onboarding dimulai;
- onboarding selesai;
- paywall ditampilkan;
- uji coba dimulai;
- pembelian atau langganan dikonfirmasi;
- restore berhasil.
Dengan event-event ini, kamu mendapatkan sebuah funnel. Kamu bisa melihat tahap di mana pengguna pergi, dan tahu apa yang harus diperbaiki lebih dulu. RevenueCat melengkapi gambaran dari sisi pendapatan: uji coba, konversi, perpanjangan, pembatalan.
Satu saran terakhir: jangan ubah semuanya sekaligus. Kalau kamu mengubah harga, uji coba, dan desain paywall di hari yang sama, kamu tidak akan pernah tahu apa yang membuat angkanya berubah.
Checklist paywall sebelum pengiriman berikutnya
- Paywall muncul di akhir onboarding, setelah ada bukti nilai.
- Uji coba gratis ditampilkan dengan jelas: durasi, lalu harga setelah uji coba.
- Paket tahunan ditonjolkan dengan jujur, harga yang benar-benar ditagih tetap mudah dibaca.
- Tombol "Restore Purchases" ada di paywall dan berfungsi.
- Nama, durasi, harga perpanjangan, dan perpanjangan otomatis disebutkan.
- Tautan ke syarat penggunaan dan kebijakan privasi ada di aplikasi dan di deskripsi App Store, di setiap bahasa.
- Alur pembelian lengkap sudah diuji di sandbox pada iPhone sungguhan.
- Event analytics mencakup setiap tahap, dari onboarding sampai pembelian.
Kalau kamu masih ragu soal modelnya sendiri, langganan atau pembayaran sekali, saya sudah menulis panduan khusus: langganan atau pembelian sekali untuk aplikasi iOS pertamamu. Dan untuk bagian teknis lengkapnya, produk, RevenueCat, dan validasi, semuanya ada di halaman langganan in-app iOS.
Membangun paywall dengan iOS Kit
Paywall hanyalah satu bagian. Ia bergantung pada onboarding sebelumnya, harga yang kamu tetapkan, halaman App Store yang mendatangkan pengguna, dan fitur utama aplikasi, yang perlu dijaga tetap sederhana dalam versi pertama yang terarah.
Kalau kamu ingin mulai dari fondasi yang siap pakai, onboarding, paywall, dan langganan sudah ada di kode awal iOS Kit, dan tahap ketiga alurnya dipakai untuk menghubungkannya ke aplikasimu sendiri. Tidak ada yang bisa menjamin penghasilan untukmu.
Sebelum pengiriman, skill Claude Code dari Apple Review Kit memeriksa ulang paywall-mu dan informasi yang diwajibkan Apple. Dan halaman utama menunjukkan cara meluncurkan aplikasi mobile-mu dengan paywall yang sudah terpasang.
Pertanyaan umum
Kesalahan paywall iOS apa saja yang menghambat penjualan aplikasi pertama?
Ada tujuh kesalahan yang sering muncul di aplikasi pertama: paywall ditampilkan terlalu cepat atau terlalu lambat, tidak ada uji coba gratis, langganan tahunan kurang ditonjolkan dengan benar. Lalu ada tombol restore yang terlupa, informasi wajib Apple yang tidak ada, paywall yang tidak pernah diuji di sandbox, dan tidak ada pengukuran. Masing-masing bisa diperbaiki dengan pengaturan konkret, yang perlu dicek sebelum pengiriman berikutnya ke Apple.
Kapan sebaiknya paywall ditampilkan di aplikasi iOS?
Di akhir onboarding, tepat setelah pengguna merasakan nilai aplikasinya. Terlalu cepat, dia melihat harga tanpa paham apa fungsi aplikasinya. Terlalu lambat, misalnya di balik tombol "Premium" di pengaturan, sebagian besar pengguna tidak akan pernah melihatnya. Kamu bisa menampilkannya lagi nanti, saat pengguna menyentuh batas versi gratis.
Apa yang harus ditampilkan paywall iOS agar sesuai aturan Apple?
Di layar pendaftaran, Apple meminta nama dan durasi langganan, apa yang didapat, harga perpanjangan penuh yang ditampilkan dengan jelas, dan cara memulihkan pembelian. Kamu juga perlu tautan ke syarat penggunaan dan kebijakan privasi, di aplikasi dan di deskripsi halaman App Store-mu. Tanpa tautan itu di deskripsi, kamu akan ditolak. Tambahkan kalimat eksplisit tentang perpanjangan otomatis.
Perlukah menawarkan uji coba gratis di aplikasi iOS?
Ya, terutama untuk aplikasi yang belum dikenal siapa pun: meminta orang langsung membayar adalah lompatan besar, dan uji coba memungkinkan mereka mencoba tanpa risiko. Apple menyebutnya introductory offer, dibatasi satu per grup langganan untuk pelanggan yang sama. Tulis durasi uji coba lalu harga yang ditagih setelahnya di tombol atau tepat di atasnya.
Bagaimana menonjolkan langganan tahunan tanpa menyesatkan pengguna?
Pilih paket tahunan secara default, beri tampilan visual yang berbeda, dan tampilkan harga setara per bulan di samping harga tahunan. Sebutkan penghematan yang sebenarnya dibanding paket bulanan, dihitung dari harga aslimu, bukan dari harga acuan yang dikarang-karang. Jangan sembunyikan harga aslinya: harga setara bulanan dengan huruf besar dan harga tahunan dengan huruf kecil sekali adalah paywall yang menyesatkan dan bisa jadi alasan penolakan.
Bagaimana cara menguji paywall iOS sebelum dikirim ke Apple?
Dengan sandbox Apple: akun uji yang dibuat di App Store Connect, yang memungkinkan pembelian tanpa dikenai biaya. Di iPhone sungguhan, jalankan alur lengkapnya: onboarding, memulai uji coba, akses premium, lalu menghapus aplikasi, menginstal ulang, dan memulihkan pembelian. Cek juga tampilannya di iPhone terkecil dan terbesar yang kamu dukung.