Lompat ke konten

Buku Panduan Pendapatan

Peta Laba untuk Pembelian Aplikasi

Pembelian SDK hanya salah satu bagian dari mendapatkan laba dari sebuah aplikasi. Laba berasal dari masalah yang jelas, produk kecil yang pengguna dapat mencoba, billing toko yang dapat diandalkan, dan paywall yang mengajarkan apa yang orang mau beli.

Gunakan peta ini ketika Anda menambahkan langganan atau unggahan premium dengan @capgo/native-purchases.

Mulai dengan target laba sederhana

Mulai dengan target laba yang konkrit. Misalnya:

Harga Bulanan

Harga BulananSubskrip teraktif dibutuhkan sekitar $1K MRR
$4.99201
$7.99126
$9.99101
$29.99 setiap tahunSebanyak 400 pelanggan setahun, tergantung pada waktu

Angka-angka ini sebelum biaya toko, pajak, pengembalian, dan perbedaan mata uang. Mereka masih berguna karena mereka menjaga rencana peluncuran praktis: Anda membutuhkan beberapa ratus pengguna yang termotivasi, bukan audiens besar.

  1. Pilih satu kasus penggunaan yang menyakitkan

    Bangun sekitar satu hasil yang pengguna sudah mencari. Contoh: rencana olahraga untuk orang tua baru, penghitung anggaran untuk pasangan, scanner bukti untuk freelancer, atau aplikasi latihan bahasa untuk satu ujian.

  2. Periksa permintaan di toko

    Cari App Store dan Google Play untuk kata kunci utama. Baca ulasan bawah dan tengah dari aplikasi kompetitor untuk menemukan fitur yang hilang, onboarding yang membingungkan, keluhan harga, dan gesekan UI.

  3. Kirimkan MVP yang sempit

    Versi pertama harus mencakup onboarding, satu aksi utama yang berguna, pengelolaan kesalahan dasar, dan cukup analitis untuk melihat apakah pengguna mencapai titik nilai.

  4. Tambahkan pembelian awal

    Jangan menunggu sampai aplikasi terasa lengkap. Paywall dasar membantu Anda mengetahui apakah pengguna memahami nilai dan apakah harga yang Anda tawarkan masuk akal.

Lacak event-event berikut sebelum Anda mulai mengubah harga atau layar:

EventMengapa hal ini penting
install atau buka terlebih dahuluTrafik dasar
onboarding_completedApakah pengguna memahami pengaturan
core_action_completedApakah produk memberikan nilai
paywall_viewedApakah pengguna mencapai monetisasi
trial_startedApakah tawaran ini menarik
purchase_completedKonversi berbayar
restore_started dan restore_completedKemampuan memulihkan pembelian dan mematuhi persetujuan
subscription_status_checkedKetepatan hak
cancel_feedback_submittedAlasan pengguguran

Jika banyak pengguna tidak melihat paywall, perbaiki proses pendaftaran sebelum mengubah paywall. Jika pengguna melihat paywall tetapi tidak memulai trial, perbaiki tawaran, bukti, atau presentasi harga.

Mulai dengan satu model agar data dapat dibaca.

ModelSesuai denganVersi pertama
FreemiumAlat-alat harian, penghitung, alat-alat dengan penggunaan berulangAksi inti gratis, batasan pembayaran atau fitur premium
Paywall plus uji coba gratisAplikasi yang menyampaikan nilai cepat setelah proses onboardPaywall setelah onboard dengan uji coba 3-14 hari
Unjuk satu kaliAlat-alat kecil dengan nilai berulang yang terbatasProduk seumur hidup plus pilihan langganan masa depan

Hindari pengiriman tiga tingkat, banyak paket, dan jalur upgrade kompleks pada hari pertama. Gunakan satu rencana bulanan dan satu rencana tahunan ketika Anda memerlukan langganan. Tambahkan harga lokal setelah Anda melihat lalu lintas yang bermakna dari suatu negara.

Tetapkan identifikasi produk stabil dan dapat dibaca:

com.example.app.premium.monthly
com.example.app.premium.yearly
com.example.app.premium.lifetime

Gunakan nama produk toko yang memperkuat nilai yang dicari pengguna, seperti ā€œMeal Planner Pro Bulananā€ daripada hanya ā€œBulananā€. Metadata toko dan nama pembelian dalam aplikasi dapat membantu penemuan dan kejelasan.

Muat data produk dari toko sehingga harga, mata uang, dan tawaran promosi awal selalu akurat:

import { NativePurchases, PURCHASE_TYPE } from '@capgo/native-purchases';
const { products } = await NativePurchases.getProducts({
productIdentifiers: [
'com.example.app.premium.monthly',
'com.example.app.premium.yearly',
],
productType: PURCHASE_TYPE.SUBS,
});
const monthly = products.find((product) => product.identifier.endsWith('.monthly'));
const yearly = products.find((product) => product.identifier.endsWith('.yearly'));

Jangan pernah mengkode harga toko secara keras di UI. Tampilkan product.priceStringJudul produk yang lokal, periode pembayaran, dan syarat percobaan dari data toko secara mungkin.

Paywall pertama harus jelas, bukan pintar:

  • Judul: hasil pembayaran yang dibayar, seperti ā€œAktifkan rencana latihan tanpa batasā€.
  • Keuntungan: 3 hingga 5 perbaikan konkret, bukan daftar fitur panjang.
  • Rencana: bulanan dan tahunan, dengan penghematan tahunan nyata jika ditawarkan.
  • Uji Coba: panjang uji coba yang tepat dan apa yang terjadi setelahnya berakhir.
  • CTA: ā€œMulai uji coba gratisā€ atau ā€œPerbarui sekarangā€.
  • Tautan: syarat dan ketentuan, kebijakan privasi, mengembalikan pembelian, dan mengelola langganan.

Tempatkan paywall pertama setelah proses onboarding, ketika pengguna memahami apa yang aplikasi lakukan. Kemudian, tes trigger tambahan seperti batasan penggunaan, sentuhan fitur premium, atau aksi inti yang selesai.

import { NativePurchases, PURCHASE_TYPE } from '@capgo/native-purchases';
export async function buyYearly(appAccountToken: string) {
const transaction = await NativePurchases.purchaseProduct({
productIdentifier: 'com.example.app.premium.yearly',
planIdentifier: 'yearly-plan',
productType: PURCHASE_TYPE.SUBS,
appAccountToken,
});
await fetch('/api/purchases/validate', {
method: 'POST',
headers: { 'content-type': 'application/json' },
body: JSON.stringify({
transactionId: transaction.transactionId,
receipt: transaction.receipt,
purchaseToken: transaction.purchaseToken,
productIdentifier: transaction.productIdentifier,
}),
});
return transaction;
}
export async function restorePurchases() {
await NativePurchases.restorePurchases();
return NativePurchases.getPurchases({
productType: PURCHASE_TYPE.SUBS,
});
}

Selalu validasi pembelian di backend Anda sebelum memberikan hak akses yang tahan lama. Simpan cache hak akses lokal untuk UI yang cepat, tetapi anggap toko dan backend Anda sebagai sumber kebenaran.

translations.0.targetLanguage":"Indonesia","translations.0.protectedTokens":["Cloudflare","Capacitor","GitHub","Capgo","code","API","SDK","CLI","npm","bun"],"translations.0.texts":["Pendapatan membutuhkan lalu lintas. Mulai dengan saluran yang dapat berfungsi sebelum Anda memiliki merek:","ASO: judul, subjudul, kata kunci, tangkapan layar, deskripsi aplikasi, ikon, peringkat, dan nama pembelian dalam aplikasi.","Video pendek: posting demo cepat, klip masalah/solusi, dan contoh sebelum/sesudah untuk negara target.","Reddit dan komunitas: bergabung dalam percakapan terlebih dahulu, kemudian bagikan apa yang Anda bangun sebagai cerita berguna bukan iklan.","Grup beta: TestFlight, Google Play internal testing, Discord, dan forum khusus.","Setiap saluran harus mengirimkan pengguna ke dalam funnel yang diukur sama sehingga Anda dapat membandingkan retensi, tampilan paywall, uji coba, dan pembelian.","Baca keluaran yang benar","Judul bagian ā€œBaca keluaran yang benarā€","Beberapa keluaran berarti pengguna mencoba aplikasi dan memutuskan bahwa itu tidak untuk mereka. Itu normal. Yang penting adalah pola:","Membatalkan selama uji coba: nilai yang tidak jelas, onboarding yang buruk, atau lalu lintas yang salah.","Membatalkan setelah satu siklus: tidak cukup nilai ulang atau loop kebiasaan yang lemah.","Pengembalian: kesalahan harga, risiko pembelian tidak sengaja, atau istilah yang tidak jelas."]

  • translations.1.targetLanguage":"Indonesia","translations.1.protectedTokens":["Cloudflare","Capacitor","GitHub","Capgo","code","API","SDK","CLI","npm","bun"],"translations.1.texts":["Pendapatan membutuhkan lalu lintas. Mulai dengan saluran yang dapat berfungsi sebelum Anda memiliki merek:","ASO: judul, subjudul, kata kunci, tangkapan layar, deskripsi aplikasi, ikon, peringkat, dan nama pembelian dalam aplikasi.","Video pendek: posting demo cepat, klip masalah/solusi, dan contoh sebelum/sesudah untuk negara target.","Reddit dan komunitas: bergabung dalam percakapan terlebih dahulu, kemudian bagikan apa yang Anda bangun sebagai cerita berguna bukan iklan.","Grup beta: TestFlight, Google Play internal testing, Discord, dan forum khusus.","Setiap saluran harus mengirimkan pengguna ke dalam funnel yang diukur sama sehingga Anda dapat membandingkan retensi, tampilan paywall, uji coba, dan pembelian.","Baca keluaran yang benar","Judul bagian ā€œBaca keluaran yang benarā€","Beberapa keluaran berarti pengguna mencoba aplikasi dan memutuskan bahwa itu tidak untuk mereka. Itu normal. Yang penting adalah pola:","Membatalkan selama uji coba: nilai yang tidak jelas, onboarding yang buruk, atau lalu lintas yang salah.","Membatalkan setelah satu siklus: tidak cukup nilai ulang atau loop kebiasaan yang lemah.","Pengembalian: kesalahan harga, risiko pembelian tidak sengaja, atau istilah yang tidak jelas."]
  • translations.2.targetLanguage":"Indonesia","translations.2.protectedTokens":["Cloudflare","Capacitor","GitHub","Capgo","code","API","SDK","CLI","npm","bun"],"translations.2.texts":["Pendapatan membutuhkan lalu lintas. Mulai dengan saluran yang dapat berfungsi sebelum Anda memiliki merek:","ASO: judul, subjudul, kata kunci, tangkapan layar, deskripsi aplikasi, ikon, peringkat, dan nama pembelian dalam aplikasi.","Video pendek: posting demo cepat, klip masalah/solusi, dan contoh sebelum/sesudah untuk negara target.","Reddit dan komunitas: bergabung dalam percakapan terlebih dahulu, kemudian bagikan apa yang Anda bangun sebagai cerita berguna bukan iklan.","Grup beta: TestFlight, Google Play internal testing, Discord, dan forum khusus.","Setiap saluran harus mengirimkan pengguna ke dalam funnel yang diukur sama sehingga Anda dapat membandingkan retensi, tampilan paywall, uji coba, dan pembelian.","Baca keluaran yang benar","Judul bagian ā€œBaca keluaran yang benarā€","Beberapa keluaran berarti pengguna mencoba aplikasi dan memutuskan bahwa itu tidak untuk mereka. Itu normal. Yang penting adalah pola:","Membatalkan selama uji coba: nilai yang tidak jelas, onboarding yang buruk, atau lalu lintas yang salah.","Membatalkan setelah satu siklus: tidak cukup nilai ulang atau loop kebiasaan yang lemah.","Pengembalian: kesalahan harga, risiko pembelian tidak sengaja, atau istilah yang tidak jelas."]
  • translations.3.targetLanguage":"Indonesia","translations.3.protectedTokens":["Cloudflare","Capacitor","GitHub","Capgo","code","API","SDK","CLI","npm","bun"],"translations.3.texts":["Pendapatan membutuhkan lalu lintas. Mulai dengan saluran yang dapat berfungsi sebelum Anda memiliki merek:","ASO: judul, subjudul, kata kunci, tangkapan layar, deskripsi aplikasi, ikon, peringkat, dan nama pembelian dalam aplikasi.","Video pendek: posting demo cepat, klip masalah/solusi, dan contoh sebelum/sesudah untuk negara target.","Reddit dan komunitas: bergabung dalam percakapan terlebih dahulu, kemudian bagikan apa yang Anda bangun sebagai cerita berguna bukan iklan.","Grup beta: TestFlight, Google Play internal testing, Discord, dan forum khusus.","Setiap saluran harus mengirimkan pengguna ke dalam funnel yang diukur sama sehingga Anda dapat membandingkan retensi, tampilan paywall, uji coba, dan pembelian.","Baca keluaran yang benar","Judul bagian ā€œBaca keluaran yang benarā€","Beberapa keluaran berarti pengguna mencoba aplikasi dan memutuskan bahwa itu tidak untuk mereka. Itu normal. Yang penting adalah pola:","Membatalkan selama uji coba: nilai yang tidak jelas, onboarding yang buruk, atau lalu lintas yang salah.","Membatalkan setelah satu siklus: tidak cukup nilai ulang atau loop kebiasaan yang lemah.","Pengembalian: kesalahan harga, risiko pembelian tidak sengaja, atau istilah yang tidak jelas."]
  • translations.4.targetLanguage":"Indonesia","translations.4.protectedTokens":["Cloudflare","Capacitor","GitHub","Capgo","code","API","SDK","CLI","npm","bun"],"translations.4.texts":["Pendapatan membutuhkan lalu lintas. Mulai dengan saluran yang dapat berfungsi sebelum Anda memiliki merek:","ASO: judul, subjudul, kata kunci, tangkapan layar, deskripsi aplikasi, ikon, peringkat, dan nama pembelian dalam aplikasi.","Video pendek: posting demo cepat, klip masalah/solusi, dan contoh sebelum/sesudah untuk negara target.","Reddit dan komunitas: bergabung dalam percakapan terlebih dahulu, kemudian bagikan apa yang Anda bangun sebagai cerita berguna bukan iklan.","Grup beta: TestFlight, Google Play internal testing, Discord, dan forum khusus.","Setiap saluran harus mengirimkan pengguna ke dalam funnel yang diukur sama sehingga Anda dapat membandingkan retensi, tampilan paywall, uji coba, dan pembelian.","Baca keluaran yang benar","Judul bagian ā€œBaca keluaran yang benarā€","Beberapa keluaran berarti pengguna mencoba aplikasi dan memutuskan bahwa itu tidak untuk mereka. Itu normal. Yang penting adalah pola:","Membatalkan selama uji coba: nilai yang tidak jelas, onboarding yang buruk, atau lalu lintas yang salah.","Membatalkan setelah satu siklus: tidak cukup nilai ulang atau loop kebiasaan yang lemah.","Pengembalian: kesalahan harga, risiko pembelian tidak sengaja, atau istilah yang tidak jelas."]

translations.5.targetLanguage":"Indonesia","translations.5.protectedTokens":["Cloudflare","Capacitor","GitHub","Capgo","code","API","SDK","CLI","npm","bun"],"translations.5.texts":["Pendapatan membutuhkan lalu lintas. Mulai dengan saluran yang dapat berfungsi sebelum Anda memiliki merek:","ASO: judul, subjudul, kata kunci, tangkapan layar, deskripsi aplikasi, ikon, peringkat, dan nama pembelian dalam aplikasi.","Video pendek: posting demo cepat, klip masalah/solusi, dan contoh sebelum/sesudah untuk negara target.","Reddit dan komunitas: bergabung dalam percakapan terlebih dahulu, kemudian bagikan apa yang Anda bangun sebagai cerita berguna bukan iklan.","Grup beta: TestFlight, Google Play internal testing, Discord, dan forum khusus.","Setiap saluran harus mengirimkan pengguna ke dalam funnel yang diukur sama sehingga Anda dapat membandingkan retensi, tampilan paywall, uji coba, dan pembelian.","Baca keluaran yang benar","Judul bagian ā€œBaca keluaran yang benarā€","Beberapa keluaran berarti pengguna mencoba aplikasi dan memutuskan bahwa itu tidak untuk mereka. Itu normal. Yang penting adalah pola:","Membatalkan selama uji coba: nilai yang tidak jelas, onboarding yang buruk, atau lalu lintas yang salah.","Membatalkan setelah satu siklus: tidak cukup nilai ulang atau loop kebiasaan yang lemah.","Pengembalian: kesalahan harga, risiko pembelian tidak sengaja, atau istilah yang tidak jelas."]

translations.6.targetLanguage":"Indonesia","translations.6.protectedTokens":["Cloudflare","Capacitor","GitHub","Capgo","code","API","SDK","CLI","npm","bun"],"translations.6.texts":["Pendapatan membutuhkan lalu lintas. Mulai dengan saluran yang dapat berfungsi sebelum Anda memiliki merek:","ASO: judul, subjudul, kata kunci, tangkapan layar, deskripsi aplikasi, ikon, peringkat, dan nama pembelian dalam aplikasi.","Video pendek: posting demo cepat, klip masalah/solusi, dan contoh sebelum/sesudah untuk negara target.","Reddit dan komunitas: bergabung dalam percakapan terlebih dahulu, kemudian bagikan apa yang Anda bangun sebagai cerita berguna bukan iklan.","Grup beta: TestFlight, Google Play internal testing, Discord, dan forum khusus.","Setiap saluran harus mengirimkan pengguna ke dalam funnel yang diukur sama sehingga Anda dapat membandingkan retensi, tampilan paywall, uji coba, dan pembelian.","Baca keluaran yang benar","Judul bagian ā€œBaca keluaran yang benarā€","Beberapa keluaran berarti pengguna mencoba aplikasi dan memutuskan bahwa itu tidak untuk mereka. Itu normal. Yang penting adalah pola:","Membatalkan selama uji coba: nilai yang tidak jelas, onboarding yang buruk, atau lalu lintas yang salah.","Membatalkan setelah satu siklus: tidak cukup nilai ulang atau loop kebiasaan yang lemah.","Pengembalian: kesalahan harga, risiko pembelian tidak sengaja, atau istilah yang tidak jelas."]

translations.7.targetLanguage":"Indonesia","translations.7.protectedTokens":["Cloudflare","Capacitor","GitHub","Capgo","code","API","SDK","CLI","npm","bun"],"translations.7.texts":["Pendapatan membutuhkan lalu lintas. Mulai dengan saluran yang dapat berfungsi sebelum Anda memiliki merek:","ASO: judul, subjudul, kata kunci, tangkapan layar, deskripsi aplikasi, ikon, peringkat, dan nama pembelian dalam aplikasi.","Video pendek: posting demo cepat, klip masalah/solusi, dan contoh sebelum/sesudah untuk negara target.","Reddit dan komunitas: bergabung dalam percakapan terlebih dahulu, kemudian bagikan apa yang Anda bangun sebagai cerita berguna bukan iklan.","Grup beta: TestFlight, Google Play internal testing, Discord, dan forum khusus.","Setiap saluran harus mengirimkan pengguna ke dalam funnel yang diukur sama sehingga Anda dapat membandingkan retensi, tampilan paywall, uji coba, dan pembelian.","Baca keluaran yang benar","Judul bagian ā€œBaca keluaran yang benarā€","Beberapa keluaran berarti pengguna mencoba aplikasi dan memutuskan bahwa itu tidak untuk mereka. Itu normal. Yang penting adalah pola:","Membatalkan selama uji coba: nilai yang tidak jelas, onboarding yang buruk, atau lalu lintas yang salah.","Membatalkan setelah satu siklus: tidak cukup nilai ulang atau loop kebiasaan yang lemah.","Pengembalian: kesalahan harga, risiko pembelian tidak sengaja, atau istilah yang tidak jelas."]

translations.8.targetLanguage":"Indonesia","translations.8.protectedTokens":["Cloudflare","Capacitor","GitHub","Capgo","code","API","SDK","CLI","npm","bun"],"translations.8.texts":["Pendapatan membutuhkan lalu lintas. Mulai dengan saluran yang dapat berfungsi sebelum Anda memiliki merek:","ASO: judul, subjudul, kata kunci, tangkapan layar, deskripsi aplikasi, ikon, peringkat, dan nama pembelian dalam aplikasi.","Video pendek: posting demo cepat, klip masalah/solusi, dan contoh sebelum/sesudah untuk negara target.","Reddit dan komunitas: bergabung dalam percakapan terlebih dahulu, kemudian bagikan apa yang Anda bangun sebagai cerita berguna bukan iklan.","Grup beta: TestFlight, Google Play internal testing, Discord, dan forum khusus.","Setiap saluran harus mengirimkan pengguna ke dalam funnel yang diukur sama sehingga Anda dapat membandingkan retensi, tampilan paywall, uji coba, dan pembelian.","Baca keluaran yang benar","Judul bagian ā€œBaca keluaran yang benarā€","Beberapa keluaran berarti pengguna mencoba aplikasi dan memutuskan bahwa itu tidak untuk mereka. Itu normal. Yang penting adalah pola:","Membatalkan selama uji coba: nilai yang tidak jelas, onboarding yang buruk, atau lalu lintas yang salah.","Membatalkan setelah satu siklus: tidak cukup nilai ulang atau loop kebiasaan yang lemah.","Pengembalian: kesalahan harga, risiko pembelian tidak sengaja, atau istilah yang tidak jelas."]

  • translations.9.targetLanguage":"Indonesia","translations.9.protectedTokens":["Cloudflare","Capacitor","GitHub","Capgo","code","API","SDK","CLI","npm","bun"],"translations.9.texts":["Pendapatan membutuhkan lalu lintas. Mulai dengan saluran yang dapat berfungsi sebelum Anda memiliki merek:","ASO: judul, subjudul, kata kunci, tangkapan layar, deskripsi aplikasi, ikon, peringkat, dan nama pembelian dalam aplikasi.","Video pendek: posting demo cepat, klip masalah/solusi, dan contoh sebelum/sesudah untuk negara target.","Reddit dan komunitas: bergabung dalam percakapan terlebih dahulu, kemudian bagikan apa yang Anda bangun sebagai cerita berguna bukan iklan.","Grup beta: TestFlight, Google Play internal testing, Discord, dan forum khusus.","Setiap saluran harus mengirimkan pengguna ke dalam funnel yang diukur sama sehingga Anda dapat membandingkan retensi, tampilan paywall, uji coba, dan pembelian.","Baca keluaran yang benar","Judul bagian ā€œBaca keluaran yang benarā€","Beberapa keluaran berarti pengguna mencoba aplikasi dan memutuskan bahwa itu tidak untuk mereka. Itu normal. Yang penting adalah pola:","Membatalkan selama uji coba: nilai yang tidak jelas, onboarding yang buruk, atau lalu lintas yang salah.","Membatalkan setelah satu siklus: tidak cukup nilai ulang atau loop kebiasaan yang lemah.","Pengembalian: kesalahan harga, risiko pembelian tidak sengaja, atau istilah yang tidak jelas."]
  • translations.10.targetLanguage":"Indonesia","translations.10.protectedTokens":["Cloudflare","Capacitor","GitHub","Capgo","code","API","SDK","CLI","npm","bun"],"translations.10.texts":["Pendapatan membutuhkan lalu lintas. Mulai dengan saluran yang dapat berfungsi sebelum Anda memiliki merek:","ASO: judul, subjudul, kata kunci, tangkapan layar, deskripsi aplikasi, ikon, peringkat, dan nama pembelian dalam aplikasi.","Video pendek: posting demo cepat, klip masalah/solusi, dan contoh sebelum/sesudah untuk negara target.","Reddit dan komunitas: bergabung dalam percakapan terlebih dahulu, kemudian bagikan apa yang Anda bangun sebagai cerita berguna bukan iklan.","Grup beta: TestFlight, Google Play internal testing, Discord, dan forum khusus.","Setiap saluran harus mengirimkan pengguna ke dalam funnel yang diukur sama sehingga Anda dapat membandingkan retensi, tampilan paywall, uji coba, dan pembelian.","Baca keluaran yang benar","Judul bagian ā€œBaca keluaran yang benarā€","Beberapa keluaran berarti pengguna mencoba aplikasi dan memutuskan bahwa itu tidak untuk mereka. Itu normal. Yang penting adalah pola:","Membatalkan selama uji coba: nilai yang tidak jelas, onboarding yang buruk, atau lalu lintas yang salah.","Membatalkan setelah satu siklus: tidak cukup nilai ulang atau loop kebiasaan yang lemah.","Pengembalian: kesalahan harga, risiko pembelian tidak sengaja, atau istilah yang tidak jelas."]
  • translations.11.targetLanguage":"Indonesia","translations.11.protectedTokens":["Cloudflare","Capacitor","GitHub","Capgo","code","API","SDK","CLI","npm","bun"],"translations.11.texts":["Pendapatan membutuhkan lalu lintas. Mulai dengan saluran yang dapat berfungsi sebelum Anda memiliki merek:","ASO: judul, subjudul, kata kunci, tangkapan layar, deskripsi aplikasi, ikon, peringkat, dan nama pembelian dalam aplikasi.","Video pendek: posting demo cepat, klip masalah/solusi, dan contoh sebelum/sesudah untuk negara target.","Reddit dan komunitas: bergabung dalam percakapan terlebih dahulu, kemudian bagikan apa yang Anda bangun sebagai cerita berguna bukan iklan.","Grup beta: TestFlight, Google Play internal testing, Discord, dan forum khusus.","Setiap saluran harus mengirimkan pengguna ke dalam funnel yang diukur sama sehingga Anda dapat membandingkan retensi, tampilan paywall, uji coba, dan pembelian.","Baca keluaran yang benar","Judul bagian ā€œBaca keluaran yang benarā€","Beberapa keluaran berarti pengguna mencoba aplikasi dan memutuskan bahwa itu tidak untuk mereka. Itu normal. Yang penting adalah pola:","Membatalkan selama uji coba: nilai yang tidak jelas, onboarding yang buruk, atau lalu lintas yang salah.","Membatalkan setelah satu siklus: tidak cukup nilai ulang atau loop kebiasaan yang lemah.","Pengembalian: kesalahan harga, risiko pembelian tidak sengaja, atau istilah yang tidak jelas."]
  • Tidak ada restorasi: penanganan hak istimewa yang rusak atau UI restorasi yang hilang.

Tambahkan survei pembatalan satu pertanyaan ketika memungkinkan. Gunakan jawaban untuk meningkatkan onboarding, lingkup fitur, tangkapan layar toko, dan teks paywall.

  • Produk menyelesaikan satu masalah berbayar yang jelas.
  • Produk toko aktif dan telah diuji pada iOS dan Android.
  • Paywall menampilkan harga dan syarat toko yang dimuat.
  • Pembelian, restorasi, manajemen langganan, dan validasi backend telah diimplementasikan.
  • Event funnel diikuti dari bukaan pertama hingga pembelian.
  • Metadata toko aplikasi menjelaskan nilai dalam tangkapan layar pertama.
  • Setidaknya satu saluran akuisisi aktif sebelum peluncuran.
  • Umpan balik pengurangan adalah dikumpulkan dari pelanggan pertama.