
Di iOS 12.2, Apple menambahkan fitur baru yang keren - penawaran promosi. Aplikasi berlangganan yang dapat diperpanjang secara otomatis sekarang dapat menawarkan diskon pribadi pelanggan atau pelanggan lama atau periode bebas tambahan. Penawaran promosi berlaku untuk pembayaran, pembayaran, uji coba, dan pembatalan pengguna uji coba. Tidak seperti penawaran pendahuluan, penawaran promosi dapat dibeli sebanyak yang diinginkan atas kebijakan pengembang. Tetapi implementasinya membutuhkan server untuk menghasilkan tanda tangan digital.
Untuk membuat penawaran promosi baru, buka App Store Connect dan buka halaman dengan berlangganan Anda. Klik "+" di bagian harga langganan dan pilih "Buat Penawaran Promosi" :

Tunjukkan nama asli promosi dan pengenalnya - Kode Produk :

Tunjukkan biaya dan jenis penawaran promosi:
- pembayaran saat digunakan;
- pembayaran di muka;
- periode bebas.
Simpan perubahannya.
Kunci berlangganan
Untuk menggunakan penawaran promosi, Anda perlu membuat tanda tangan digital menggunakan kunci berlangganan. Anda harus membuatnya di App Store Connect.
Buka bagian "Pengguna dan Akses" , lalu ke tab "Tombol" . Buat Kunci Langganan baru dengan menentukan namanya.

Setelah membuat kunci, klik "Unduh API Key" dan simpan file di tempat yang aman.

Kunci berlangganan yang diunduh dari App Store Connect memiliki format nama berikut: SubscriptionKey_ [KEY_ID] .p8, di mana KEY_ID adalah pengidentifikasi kunci.
Generasi tanda tangan
Di sini dimulai yang paling sulit dan, menurut saya, tidak perlu. Apple direasuransikan dengan menambahkan pembuatan tanda tangan sehingga pengguna tidak dapat meretas ke StoreKit dan mengajukan penawaran promosi tanpa sepengetahuan pengembang. Biarkan saya mengingatkan Anda bahwa diskon ini hanya tersedia untuk pengguna yang membayar. Apakah pelanggan saat ini akan mencoba meretas sistem dengan diskon?
Dari sudut pandang klien seluler, pembuatan tanda tangan diperlukan sehingga, dengan memiliki kelas SKProductDiscount
, membuat kelas SKPaymentDiscount
, yang akan ditambahkan ke SKMutablePayment
untuk melakukan pembelian. Mari kita pertimbangkan lebih detail.
SKProductDiscount
Objek kelas ini disimpan dalam array discounts
dari SKProduct
. Semua penawaran promosi yang dibuat adalah objek dari kelas SKProductDiscount
. Seperti dalam hal penawaran pengantar, Anda bisa mendapatkan durasi, harga, dan jumlah periode promosi. Ternyata kelas ini diperlukan untuk menampilkan kondisi pembelian di antarmuka aplikasi.
SKPaymentDiscount
Kelas ini dibuat oleh pengembang menggunakan data yang diterima dari server Anda. Lihatlah file sumber dan lihat satu-satunya metode inisialisasi:
public init(identifier: String, keyIdentifier: String, nonce: UUID, signature: String, timestamp: NSNumber)
identifier
- pengidentifikasi dari penawaran promosi. Ini diambil dari SKProductDiscount
.keyIdentifier
- pengidentifikasi kunci berlangganan.nonce
adalah string arbitrer yang dihasilkan di server untuk perlindungan tanda tangan yang lebih besar, atau garam . Di iOS, Anda harus membuat kelas UUID menggunakan garam ini.signature
- signature
digital yang diterima dari server Anda sebagai string base64.timestamp
- tanggal pembuatan tanda tangan dalam milidetik. Perlu membandingkan waktu pembuatan tanda tangan dan waktu pembelian itu sendiri, karena tanda tangan hanya berlaku 24 jam.
Kode itu sendiri untuk menghasilkan tanda tangan di server bukanlah tugas yang mudah, tetapi Apple telah memberikan kode sampel di Node.js. Kunci tanda tangan harus diunggah ke server Anda dan Anda harus mengembalikan semua data di atas ke klien seluler.
Baca lebih lanjut tentang pembuatan tanda tangan di sini .
Penawaran promosi dibeli dengan cara yang sama seperti pembelian reguler. Satu-satunya perbedaan adalah penambahan objek kelas SKPaymentDiscount
.
let payment = SKMutablePayment(product: product) payment.paymentDiscount = discount SKPaymentQueue.default().add(payment)
Apa selanjutnya
Anda berhasil membuat tanda tangan dan melakukan pembelian pertama di Sandbox. Ini bagus! Namun penawaran promosi itu sendiri tidak akan menyelesaikan masalah peningkatan laba dan pengguna yang kembali. Tugas Anda adalah menunjukkannya kepada pengguna pada waktu yang tepat. Yang mana Misalnya, Anda dapat mencoba mengembalikan pengguna yang telah membatalkan langganan dengan mengirimkan pemberitahuan kepada mereka.
Pengembalian pelanggan yang gagal
Dengan bantuan penawaran promosi, Anda dapat mencoba mengembalikan pelanggan yang telah pergi. Untuk melakukan ini, Anda perlu menerapkan berbagai fungsi: penawaran promosi, pemberitahuan server tentang status berlangganan, pemberitahuan push, menyimpan cek pengguna di server dan mencari pengguna dengan nomor transaksi. Ini tidak mudah.
Survei pelanggan yang jatuh
Menarik pengguna baru jauh lebih mahal daripada mempertahankan pelanggan yang sudah ada. Karena itu, sangat penting untuk memahami motif yang memaksa pengguna untuk membatalkan percobaan dan langganan.
Banyak pengguna berhenti berlangganan karena mereka tidak lagi membutuhkan aplikasi, dan diskon Anda mungkin tidak berfungsi. Dalam hal ini, alih-alih menawarkan diskon, Anda harus mencari tahu apa yang tidak disukainya dan apa yang mungkin memengaruhi keputusannya untuk kembali ke aplikasi.
Tawarkan diskon sebagai imbalan atas tindakan
Paling sering, ini adalah undangan ke teman dengan imbalan diskon atau penggunaan gratis. Ini mungkin benar-benar berfungsi, tetapi akan membutuhkan banyak waktu untuk mengimplementasikan sistem rujukan.
Bagaimana ini diterapkan di Apphud
Apphud melacak berhenti berlangganan, mem- polling pengguna sebelumnya, dan menawarkan diskon tanpa menulis kode. Layar diskon dibuat di perancang di akun Anda. Untuk pengguna, tampilannya seperti ini:

Apphud menampilkan layar survei ketika percobaan atau berlangganan dibatalkan dan, jika perlu, segera menawarkan diskon.
Kami menamai setiap mekanisme individu untuk pengembalian pengguna sebagai suatu aturan . Baca lebih lanjut tentang cara mengkonfigurasi aturan di sini .
Kesimpulan
Model bisnis berlangganan telah menjadi standar dalam aplikasi seluler non-game. Retensi pengguna dan pemahaman tentang alasan keberangkatan mereka adalah tugas penting yang harus diatasi pada tahap peluncuran proyek seluler.
Apphud akan membantu dengan integrasi langganan:
- Lakukan pembelian hanya menggunakan satu metode;
- secara otomatis melacak status langganan setiap pengguna;
- Integrasikan Penawaran Langganan dengan mudah
- kirim acara berlangganan ke Amplitude, Mixpanel, Slack dan Telegram dengan mempertimbangkan mata uang lokal pengguna;
- mengurangi tingkat Churn dalam aplikasi dan mengembalikan pengguna yang tidak berlangganan.