Sekilas: Secara otomatis memvalidasi dan mengukur pendapatan dari pembelian in-app dan langganan yang dapat diperpanjang secara otomatis untuk mendapatkan gambaran lengkap tentang siklus hidup pelanggan Anda dan pengukuran ROAS yang akurat.
Overview
Pemasang iklan dapat menggunakan pembelian in-app (IAP) yang divalidasi dan pendapatan langganan untuk mengukur:
- Semua pendapatan dari pembelian produk dan langganan in-app dikelola melalui App Store Connect (iOS) atau Konsol Google Play (Android).
- Pengembalian dana.
- Pendapatan transaksi tertunda dan ditangguhkan (Android).
- Event terkait langganan yang terjadi di dalam atau di luar aplikasi Anda.
Solusi IAP dan pendapatan langganan juga:
- Memastikan tidak ada transaksi duplikat yang dicatat. Untuk iOS, ini juga dapat memastikan bahwa tidak ada duplikasi yang direkam untuk berbagi dengan keluarga.
- Mengizinkan AppsFlyer meneruskan transaksi Apple App Store kepada Anda (pemasang iklan).
- Memberikan data True Revenue, artinya data pendapatan bersih yang memperhitungkan komisi toko dan pajak akun.
Data pembelian dan langganan berasal dari:
- AppsFlyer membeli konektor SDK untuk Android dan iOS (termasuk pembungkus Unity).
- Notifikasi server App Store dan Google Play (RTDN) dikirim ke AppsFlyer.
Data pendapatan pembelian dan langganan tersedia melalui dashboard dan laporan AppsFlyer. Mereka juga dapat dibagikan dengan mitra melalui postback.
Pertimbangan:
- Jika Anda menggunakan solusi pengukuran pendapatan IAP dan langganan ini, Anda tidak boleh mengirimkan event pembelian dalam aplikasi atau menjalankan validateAndLogInAppPurchase, karena hal ini akan mengakibatkan pelaporan pendapatan duplikat.
- Pendapatan langganan dapat mulai merekam perubahan siklus hidup pelanggan untuk pelanggan yang sudah ada segera setelah mereka meluncurkan versi aplikasi yang menyertakan konektor SDK pembelian.
Aliran:
- Seorang pengguna melakukan pembelian in-app atau langganan yang dapat diperpanjang secara otomatis.
- Aplikasi melakukan transaksi di app store.
- Konektor SDK pembelian AppsFlyer secara otomatis mendeteksi pembelian dan mengirimkan muatannya ke AppsFlyer untuk validasi dan pencatatan.
-
AppsFlyer memvalidasi pembelian dengan toko terkait untuk memastikan pembelian tersebut bukan penipuan.
- Setelah validasi berhasil, AppsFlyer mencatat pembelian atau langganan.
- Jika validasi tanda terima gagal, event akan ditampilkan dalam laporan data lengkap in-app event yang diblokir (tersedia untuk pelanggan Protect360).
- AppsFlyer mentransfer respons ke konektor SDK, yang selanjutnya mentransfer respons validasi tanda terima (berhasil atau gagal) ke aplikasi.
-
Setiap notifikasi server yang masuk juga diproses oleh logika bisnis pembelian dan pendapatan langganan AppsFlyer.
- Notifikasi mengenai transaksi yang sebelumnya dilaporkan melalui konektor SDK divalidasi dan diproses, dan menghasilkan pembuatan event siklus hidup atau pembelian secara internal.
- Notifikasi tentang transaksi yang tidak diketahui dijatuhkan.
- Untuk iOS, semua notifikasi server dapat dialihkan ke server Anda sendiri.
Alur kerja integrasi pendapatan IAP dan Langganan
Ikuti dengan tepat urutan instruksi pengaturan yang tercantum dalam tabel di bawah ini untuk memastikan akurasi optimal dan pelaporan lengkap tentang IAP dan pendapatan langganan yang dapat diperpanjang secara otomatis serta event siklus hidup. Kegagalan dalam melakukan hal ini dapat mengakibatkan ketidakakuratan pelaporan permanen. Detail lengkap untuk setiap langkah disertakan dalam tab setelah tabel.
Langkah | Tugas |
---|---|
1 |
Atur notifikasi untuk IAP dan pendapatan langganan dari Google Play. |
2 |
Atur notifikasi untuk IAP dan pendapatan langganan dari iOS App Store. |
3 |
|
4 |
Integrasikan API pajak True Revenue. Ini hanya diperlukan jika Anda ingin mengedit tarif pajak default. Jika tidak, pajak dilaporkan untuk setiap transaksi yang diukur dengan ROI360. |
5 |
Uji integrasi untuk memastikan:
|
6 |
Rilis versi aplikasi Android dan iOS dengan konektor SDK pembelian. |
Langkah 1: Atur notifikasi dari Google Play
Sebelum Anda mulai:
- Menyiapkan IAP danpendapatan langganan terdiri dari langkah-langkah yang dilakukan di Google Cloud Platform, dan di UI AppsFlyer. Kami merekomendasikan agar Anda selalu mengawasi Google Cloud Platform dan AppsFlyer yang terbuka selama penyiapan.
- Penyiapan di UI AppsFlyer memerlukan izin admin.
Ikuti instruksi pada tab di bawah untuk mengatur notifikasi dari Google Play:
1.1 Tautkan Akun Pengembang Google Play Anda ke Proyek Google Cloud Anda
- Di Konsol Google Play, buka Akun Pengembang Google PlayAnda.
- Tautkan akun ke project Google Cloud Anda. Untuk instruksi, lihat topik bantuan Google ini.
- Aktifkan API Pengembang Google Play. Untuk petunjuk, lihat topik bantuan Google ini.
1.2 Buat akun layanan
- Buka Google Cloud dan buka proyek yang baru saja Anda tautkan di 1.1.
- Di bawah proyek Anda, buka IAM dan Admin > Akun Layanan, dan klik Buat akun layanan.
- Di halaman Buat akun layanan, isi langkah Detail akun layanan .
- Klik Buat dan lanjutkan.
- Di langkah Beri akun layanan ini akses ke proyek , pilih peran pelanggan Pub/sub .
- Klik Lanjutkan > Selesai.
1.3 Unduh kunci pribadi akun.
- Di halaman Akun Layanan , temukan akun layanan yang relevan, dan klik
dan dari Kelola kunci.
- Di tab Kunci halaman akun layanan, klik TAMBAHKAN KUNCI > Buat kunci baru.
- Dalam dialog Buat kunci pribadi, pilih jenis kunci JSON .
- Klik Buat. File JSON kunci pribadi diunduh.
- Di AppsFlyer, buka ROI360 > Pengaturan Pendapatan.
- Pilih aplikasi Anda dari daftar.
- Di tab Pembelian dan langganan , klik
untuk mengunggah file JSON.
1.4 Tetapkan izin akses API
- Di Konsol Google Play, buka Pengguna dan izin.
- Di daftar Pengguna dan izin , temukan akun layanan yang Anda buat di 1.2, dan klik Kelola.
- Di bagian Izin , buka tab Izin akun , dan pilih keduanya:
- Lihat data keuangan.
- Kelola pesanan dan langganan.
- Klik Undang pengguna lalu Kirim undangan.
1.5 Kirim notifikasi Google Play langsung ke AppsFlyer
Pilih salah satu dari dua metode yang digunakan untuk menerima data pendapatan IAP dan langganan dari Google Play.
Antara:
- Buat topik di mana AppsFlyer secara langsung menerima notifikasi RTDN dari Google Play (lanjutkan ke langkah ini)
atau
- Tetapkan AppsFlyer sebagai pelanggan untuk topik PUB/SUB Anda yang sudah ada sebelumnya (lewati ke langkah berikutnya).
Untuk membuat topik di mana AppsFlyer langsung menerima notifikasi RTDN, lakukan langkah-langkah berikut:
- Di AppsFlyer, buka ROI360 > Pengaturan Pendapatan > Pembelian & langganan pilih Izinkan topik AppsFlyer untuk mendapatkan pesan RTDN langsung dari Google.
- Salin topik AppsFlyer ke clipboard.
- Di Konsol Google Play > Semua aplikasi, pilih aplikasi Anda. Dashboard terbuka.
- Buka Penyiapan monetisasi, dan di bagian Penagihan Google Play , di kolom Nama topik , tempelkan alamat topik AppsFlyer yang Anda salin di sublangkah 2.
- Klik Simpan Perubahan.
ATAU 1.6 Meneruskan notifikasi Google Play ke AppsFlyer
Metode lain untuk menerima notifikasi IAP dan langganan berlaku jika Anda sudah memiliki topik yang sudah ada yang mendapat notifikasi dari Google Play. Dalam hal ini, tetapkanAppsFlyer sebagai pelanggan topik PUB/SUB Anda yang sudah ada, alih-alih membuat topik baru (seperti pada langkah sebelumnya).
Untuk menetapkanAppsFlyer sebagai pelanggan topik PUB/SUB Anda yang sudah ada sebelumnya
- Di AppsFlyer, buka ROI360 > Pengaturan Pendapatan > Pembelian dan langganan, pilih Teruskan pesan topik RTDN Anda ke AppsFlyer.
- Salin URL titik akhir ke papan klip .
- Di Google Cloud Platform, di bawah proyek Anda, telusuri Pub/Sub.
- Di Pub/Sub , buka bagian Topik , dan pastikan Anda memiliki topik pub/sub khusus untuk langganan.
- Buka bagian Langganan , dan klik Buat langganan.
- Masukkan ID Langganan.
- Pilih topik pub/sub langganan yang relevan dari dropdown.
- Untuk Jenis pengiriman, pilih Push.
- Masukkan URL titik akhir yang Anda catat di sublangkah 2.
- Untuk Masa Kedaluwarsa, pilih Tidak pernah kedaluwarsa.
- Klik Simpan.
- Buka bagian Langganan , dan salin nama topik ke clipboard.
- Di Konsol Google Play, buka Penyiapan monetisasi, dan di bagian Penagihan Google Play, di kolom Nama topik , tempel nama topik yang Anda salin di langkah sebelumnya.
- Klik Simpan.
1.7 Konfigurasikan layanan otomatis
- Di AppsFlyer, buka ROI360 > Pengaturan Pendapatan > Pembelian dan langganan, aktifkan salah satu atau keduanya:
- Validasi pembelian dengan Google Play.
- Atribusikan dan catat langganan yang dapat diperpanjang secara otomatis.
- [Opsional] Centang Mengizinkan AppsFlyer untuk menghapus duplikat transaksi yang sudah dilaporkan. Ini memastikan tidak ada transaksi duplikat yang dicatat.
- Klik Simpan.
Langkah 2: Atur notifikasi dari iOS App Store
Sebelum Anda mulai:
-
Menyiapkan IAP dan pendapatan langganan terdiri dari langkah-langkah yang dilakukan di App Store Connect dan di UI AppsFlyer. Awasi App Store Connect dan AppsFlyer yang terbuka selama penyiapan.
- Penyiapan di UI AppsFlyer memerlukan izin admin.
Untukmengonfigurasi pendapatan IAP dan langganan:
-
Di App Store Connect, buka Fitur > Langganan, dan klik Kelola untuk mendapatkan kunci rahasia bersama App Store Connect.
-
Di AppsFlyer, buka ROI360 > Pengaturan Pendapatan > Pembelian dan langganan.
Halaman konfigurasi Pendapatan terbuka. - Masukkan kunci rahasia bersama App Store Connect Anda.
- Salin titik akhir AppsFlyer dan masukkan ke dalam konfigurasi App Store Connect Anda:
- [Opsional] Pilih untuk mengirim notifikasi server ke titik akhir Anda dan masukkan titik akhir Anda.
-
Di halaman konfigurasi pendapatan langganan dan IAP AppsFlyer, aktifkan salah satu atau keduanya:
- Atribusikan dan laporkan langganan yang dapat diperbarui secara otomatis.
- Validasi pembelian dengan Apple App Store.
-
[Opsional] Centang Mengizinkan AppsFlyer untuk menghapus duplikat transaksi yang sudah dilaporkan.
Ini memastikan tidak ada transaksi duplikat yang dicatat. -
[Opsional] Periksa penghapusan pendapatan duplikat untuk pembelian Berbagi Keluarga.
Hal ini memastikan tidak ada duplikat pendapatan yang dicatat untuk pembelian berbagi keluarga. Event pendapatan untuk anggota keluarga lainnya menyertakan parameter purchase_ownership_type=FAMILY_SHARED dan menampilkan pendapatan nol.
Catatan:
- Apple hanya dapat mengirimkan notifikasi server ke satu titik akhir.
- Pelanggan dapat mengirim notifikasi server Apple dari backend mereka langsung ke URL titik akhir notifikasi, tetapi permintaan harus sama persis seperti yang diterima dari App Store.
Langkah 3: Integrasikan konektor SDK pembelian
Mengintegrasikan konektor SDK pembelian memungkinkan aplikasi Anda untuk mencatat pembelian dalam aplikasi dan langganan yang dapat diperpanjang secara otomatis. Anda dapat memilih untuk mencatat satu atau kedua jenis pendapatan di halaman Pengaturan Pendapatan > Pembelian dan langganan di AppsFlyer untuk Android dan iOS.
Untuk mengintegrasikan konektor SDK:
- Beri tahu pengembang Android Anda untuk mengintegrasikan konektor SDK pembelian Android AppsFlyer.
- Konektor pembelian AppsFlyer V1 untuk Android mendukung Google perpustakaan penagihan 4.
- Konektor pembelian AppsFlyer V2 untuk Android mendukung Google perpustakaan penagihan 5.
- Beri tahu pengembang iOS Anda untuk mengintegrasikan konektor SDK pembelian iOS AppsFlyer.
Catatan: Untuk aplikasi yang dibuat menggunakan kerangka kerja Unity, lihat dokumentasi konektor Unity
Langkah 4: Integrasikan API pajak True Revenue
True Revenue adalah lapisan logika bisnis yang dibangun untuk melayani pembelian dalam aplikasi AppsFlyer dan solusi pendapatan berlangganan. True Revenue secara otomatis menghitung nilai pendapatan bersih untuk setiap transaksi yang masuk dalam waktu aktual dan memasukkannya ke dalam laporan. Pajak dilaporkan secara default untuk setiap transaksi yang diukur dengan ROI360 menggunakan konfigurasi tarif pajak default. Konfigurasi dapat diedit menggunakan API pajak khusus.
Pelajari lebih lanjut tentang True Revenue
Untuk mengedit konfigurasi pajak menggunakan API pajak:
-
Berikan pengembang Anda:
- Token API V2 untuk digunakan sebagai kunci otorisasi.
- Parameter dan nilai yang memuat informasi pajak apa yang harus dihitung, diuraikan pada tabel berikut.
- Beri tahu pengembang Anda untuk mengikuti instruksi API pajak mereka untuk membuat aturan tarif pajak. Catatan: API mengizinkan file JSON di badan permintaan posting. File JSON ini mencakup semua negara dan tarif pajak yang didukung. Pengembang dapat mengeditnya atau menggunakannya sebagaimana adanya di API.
Parameter dan nilai untuk digunakan dalam API
Parameter | Wajib | Catatan | Catat nilainya (untuk digunakan pengembang Anda) |
---|---|---|---|
tax_name | Ya |
|
|
tax_rate | Ya |
|
|
tax_exclusive | Tidak |
|
|
country | Tidak |
|
|
subdivision | Tidak |
|
|
postal_code | Tidak |
|
|
deduction_order | Tidak |
|
Langkah 5: Menguji IAP dan pendapatan langganan
Akan lebih baik jika Anda memvalidasi IAP dan integrasi pendapatan berlangganan di lingkungan kotak pasir untuk memastikan konektor SDK terintegrasi dengan benar dan notifikasi server dikonfigurasi dan diterima dengan benar oleh AppsFlyer.
Sebelum pengujian, pastikan pengembang Anda mengonfigurasi lingkungan Kotak Pasir di Konektor SDK (dengan menyetel Kotak Pasir
ke true
). Hal ini memungkinkan ROI360 hanya membuat in-app event Kotak Pasir dengan 0 pendapatan untuk pengujian. Dengan demikian, data produksi tidak terpengaruh.
Pertimbangan lingkungan kotak pasir
Di lingkungan kotak pasir:
- Hanya event pembelian awal yang menyebabkan konektor SDK menghasilkan event yang dicatat oleh AppsFlyer. Event IAP disebut af_purchase_sandbox_sdk. Event berlangganan disebut af_ars_sandbox_sdk.
-
Semua event pembelian lainnya dibatalkan, artinya konektor SDK tidak menghasilkan event.
- Notifikasi server masuk hanya diproses jika konektor SDK mencatat transaksi asli terlebih dahulu. Dalam hal ini, event IAP dihasilkan yang disebut af_purchase_sandbox_s2s. Event berlangganan yang diproduksi disebut af_ars_sandbox_s2s.
- Event tidak dibuat untuk notifikasi server mana pun yang transaksi aslinya tidak dicatat oleh konektor SDK terlebih dahulu.
-
Untuk iOS, pastikan bahwa pada Notifikasi Server App Store di App Store terhubung, titik akhir AppsFlyer dikonfigurasikan sebagai URL Server Kotak PasirAnda.
- Untuk Android, pengujian yang dilakukan oleh Penguji Lisensi menghasilkan peristiwa Kotak Pasir meskipun lingkungan Kotak Pasir di SDK tidak dikonfigurasi.
Menguji IAP dan pendapatan berlangganan
Untuk menguji IAP dan pendapatan berlangganan:
- Beritahu pengembang Anda untuk mengikuti instruksi Android , iOS , dan Unity mereka untuk mengonfigurasi lingkungan Kotak Pasir di Konektor SDK.
- Lakukan pembelian pengujian. Transaksi yang dilakukan oleh Penguji Lisensi di Google Play dan dari TestFlight di iOS juga didukung.
Catatan: Produk berlangganan apa pun hanya dapat diuji satu kali dari setiap perangkat pengujian. Dengan kata lain, Anda tidak dapat mendaftarkan beberapa pembelian percobaan untuk langganan yang sama dari perangkat yang sama, karena pembelian tersebut tidak akan dicatat. -
Verifikasi tampilan acara di dashboard Aktivitas AppsFlyer. Event IAP disebut af_purchase_sandbox_sdk. Event langganan disebut af_ars_sandbox_sdk. Event ini meliputi:
- Nilai pendapatan 0 (agar tidak memiringkan laporan AppsFlyer sebenarnya).
- Parameter af_sandbox_revenue yang menyertakan nilai pendapatan dari produk yang dibeli sehingga Anda dapat memastikan pendapatan yang benar dilaporkan.
- Jika Anda sedang menguji produk berlangganan, beri waktu beberapa saat agar AppsFlyer menerima notifikasi dari server. Biasanya ini terjadi dalam beberapa menit setelah pembelian awal.
-
Verifikasi event yang ditampilkan di dashboard Aktivitas AppsFlyer. Pembelian langganan yang dapat diperpanjang secara otomatis disebut af_ars_sandbox_s2s. Event tersebut meliputi:
- Nilai pendapatan 0 (agar tidak memiringkan laporan AppsFlyer sebenarnya).
- Parameter af_sandbox_revenue yang menyertakan nilai pendapatan dari produk yang dibeli sehingga Anda dapat memastikan pendapatan yang benar dilaporkan.
Langkah 6: Rilis versi aplikasi dengan konektor SDK
Sebelum pengembang Anda merilis versi aplikasi baru yang terintegrasi dengan konektor SDK pembelian, pastikan bahwa:
- In-app event yang ingin Anda rekam sebagai IAP atau langganan tidak diblokir oleh salah satu Aturan Validasi yang telah Anda konfigurasikan di AppsFlyer.
- Pengembang Anda harus memiliki bendera kotak pasir yang ditandai sebagai salah.
-
Untuk iOS, pastikan bahwa pada Notifikasi Server App Store di App Store terhubung, titik akhir AppsFlyer dikonfigurasikan sebagai URL Server Kotak PasirAnda.
Referensi
Event dan parameter terkait IAP
Bagian berikut menampilkan event terkait IAP yang diukur oleh AppsFlyer, dan parameter yang dicatat untuk setiap event. Lihat kamus parameter event untuk penjelasan tentang parameter yang disertakan.
Semua event yang dihasilkan:
- Dianggap sebagai acara S2S.
- Dapat diakses dalam laporan data lengkap (sebagai in-app event organik atau non-organik).
- Dapat dikirim melalui postback ke mitra.
- Dapat digunakan di SKAN Conversion Studio.
Catatan: Bergantung pada platform perangkat pengguna,beberapa parameter tidak selalu diisi untuk in-app event.
Pembelian (af_purchase)
Deskripsi
Dicatat saat pengguna membatalkan pembelian.
Parameter
- app_id
- customer_user_id
- af_currency
- af_original_transaction_id
- af_order_id
- af_purchase_token
- af_transaction_id
- af_product_id
- android_id
- idfa
- ip
- appsflyer_id
- af_purchase_date_ms
- af_store
- af_environment
- af_net_revenue
- af_net_revenue_tax_name
- af_net_revenue_tax_rate
- af_net_revenue_tax_exclusive
- af_net_revenue_country
- af_net_revenue_subdivision
- af_net_revenue_postal_code
- af_net_revenue_factors
Pembelian dibatalkan (af_purchase_canceled)
Deskripsi
Dicatat saat pengguna membatalkan pembelian.
Parameter
- app_id
- customer_user_id
- af_currency
- af_original_transaction_id
- af_order_id
- af_purchase_token
- af_transaction_id
- af_product_id
- android_id
- idfa
- ip
- appsflyer_id
- af_purchase_date_ms
- af_store
- af_environment
Pembelian tertunda (af_purchase_pending)
Deskripsi
Tercatat saat pengguna melakukan pembelian namun pembayaran belum diproses.
Parameter
- app_id
- customer_user_id
- af_currency
- af_original_transaction_id
- af_order_id
- af_purchase_token
- af_transaction_id
- af_product_id
- android_id
- idfa
- ip
- appsflyer_id
- af_purchase_date_ms
- af_store
- af_environment
Pengembalian dana (af_purchase_refund)
Deskripsi
Dicatat saat pembelian dikembalikan dananya.
Parameter
- app_id
- customer_user_id
- af_currency
- af_original_transaction_id
- af_order_id
- af_purchase_token
- af_transaction_id
- af_product_id
- android_id
- idfa
- ip
- appsflyer_id
- af_purchase_date_ms
- af_store
- af_environment
- af_discount_type
- event_revenue_usd
- event_revenue (disertakan jika pendapatan melebihi nol)
- store_commission
- af_net_revenue
- af_net_revenue_factors
- af_net_revenue_tax_name
- af_net_revenue_tax_rate
- af_net_revenue_tax_exclusive
- af_net_revenue_country
- af_net_revenue_subdivision
- af_net_revenue_postal_code
Pembelian percobaan (af_purchase_sandbox_sdk)
Deskripsi
Tercatat saat menguji pembelian yang direkam melalui SDK di lingkungan kotak pasir.
Parameter
- app_id
- customer_user_id
- af_currency
- af_original_transaction_id
- af_order_id
- af_purchase_token
- af_transaction_id
- af_purchase_state
- af_product_id
- android_id
- idfa
- ip
- appsflyer_id
Uji pembelian (af_purchase_sandbox_s2s)
Deskripsi
Tercatat saat menguji pembelian yang dilaporkan melalui S2S di lingkungan kotak pasir.
Parameter
- app_id
- customer_user_id
- af_currency
- af_original_transaction_id
- af_order_id
- af_purchase_token
- af_transaction_id
- af_purchase_state
- af_product_id
- android_id
- idfa
- ip
- appsflyer_id
Event dan parameter terkait langganan
Bagian berikut menampilkan event terkait langganan yang diukur oleh AppsFlyer, dan parameter yang dicatat untuk setiap event. Lihat kamus parameter event untuk penjelasan tentang parameter yang disertakan.
Semua event yang dihasilkan:
- Dianggap sebagai acara S2S.
- Dapat diakses dalam laporan data lengkap (sebagai in-app event organik atau non-organik).
- Dapat dikirim melalui postback ke mitra.
- Dapat digunakan di SKAN Conversion Studio.
Catatan: Bergantung pada platform perangkat pengguna,beberapa parameter tidak selalu diisi untuk in-app event.
Uji coba dimulai (af_ars_trial_started)
Deskripsi
Tercatat saat pelanggan memulai masa percobaan.
Parameter
- app_id
- customer_user_id
- af_currency
- af_expires_date_ms
- Af_subscription_ownership_type
- af_original_transaction_id
- af_order_id
- af_purchase_token
- af_transaction_id
- af_product_id
- android_id
- idfa
- ip
- appsflyer_id
- af_purchase_date_ms
- af_store
- af_environment
- af_period_type
Uji coba dibatalkan (af_ars_trial_canceled)
Deskripsi
Tercatat saat pelanggan membatalkan perpanjangan otomatis langganan selama masa percobaan. Jika pengguna tidak memulihkan perpanjangan otomatis dalam periode uji coba, event churn akan terjadi.
Parameter
- app_id
- customer_user_id
- af_currency
- af_expires_date_ms
- Af_subscription_ownership_type
- af_original_transaction_id
- af_order_id
- af_purchase_token
- af_transaction_id
- af_product_id
- android_id
- idfa
- ip
- appsflyer_id
- af_purchase_date_ms
- af_store
- af_environment
- af_period_type
Uji coba churn (af_ars_trial_churned)
Deskripsi
Dicatat saat pelanggan melakukan churn setelah periode uji coba. Hal ini terjadi setelah pembatalan perpanjangan otomatis dan berakhirnya masa percobaan. Itu juga dapat mengikuti masalah penagihan atau teknis dengan perpanjangan yang menyebabkan churn.
Parameter
- app_id
- customer_user_id
- af_currency
- af_expires_date_ms
- Af_subscription_ownership_type
- af_original_transaction_id
- af_order_id
- af_purchase_token
- af_transaction_id
- af_product_id
- android_id
- idfa
- ip
- appsflyer_id
- af_purchase_date_ms
- af_store
- af_environment
- af_period_type
- af_reason
Uji coba dikonversi (af_ars_trial_convert)
Deskripsi
Tercatat saat perpanjangan dengan harga penuh dimulai, setelah masa uji coba.
Parameter
- app_id
- customer_user_id
- af_currency
- af_expires_date_ms
- Af_subscription_ownership_type
- af_original_transaction_id
- af_order_id
- af_purchase_token
- af_transaction_id
- af_product_id
- android_id
- idfa
- ip
- appsflyer_id
- af_purchase_date_ms
- af_store
- af_environment
- af_period_type
- af_discount_id
- af_discount_type
- event_revenue_usd
- af_revenue (disertakan dalam peristiwa hanya ketika pendapatan melebihi nol.)
- store_commission
- af_net_revenue
- af_net_revenue_factors
- af_net_revenue_tax_name
- af_net_revenue_tax_rate
- af_net_revenue_tax_exclusive
- af_net_revenue_country
- af_net_revenue_subdivision
- af_net_revenue_postal_code
Langganan dimulai (af_ars_subscription_started)
Deskripsi
Dicatat saat langganan dengan harga penuh atau diskon dimulai.
Catatan:
- Langganan baru hanya dapat direkam melalui konektor SDK.
- Untuk iOS, jika pelanggan membeli kembali langganan yang sudah mereka miliki, konektor SDK melaporkan validasi tanda terima yang berhasil kembali ke aplikasi, tetapi tidak mencatat transaksi baru di AppsFlyer.
Parameter
- app_id
- customer_user_id
- af_currency
- af_expires_date_ms
- af_subscription_ownership_type
- af_original_transaction_id
- af_order_id
- af_purchase_token
- af_transaction_id
- af_product_id
- android_id
- idfa
- ip
- appsflyer_id
- af_purchase_date_ms
- af_store
- af_environment
- af_period_type
- af_discount_id
- af_discount_type
- event_revenue_usd
- event_revenue (disertakan jika pendapatan melebihi nol)
- store_commission
- af_net_revenue
- af_net_revenue_factors
- af_net_revenue_tax_name
- af_net_revenue_tax_rate
- af_net_revenue_tax_exclusive
- af_net_revenue_country
- af_net_revenue_subdivision
- af_net_revenue_postal_code
Langganan dibatalkan (af_ars_subscription_canceled)
Deskripsi
Tercatat saat langganan perpanjangan otomatis dibatalkan di tengah periode penagihan. Jika pengguna tidak memulihkan perpanjangan otomatis dalam periode penagihan yang sama, event churn akan terjadi.
Parameter
- app_id
- customer_user_id
- af_currency
- af_expires_date_ms
- af_subscription_ownership_type
- af_original_transaction_id
- af_order_id
- af_purchase_token
- af_transaction_id
- af_product_id
- android_id
- idfa
- ip
- appsflyer_id
- af_purchase_date_ms
- af_store
- af_environment
- af_period_type
Langganan dijeda (af_ars_subscription_pause) - khusus Android
Deskripsi
Direkam saat pengguna menjeda langganan aktif.
Parameter
- app_id
- customer_user_id
- af_currency
- af_expires_date_ms
- af_subscription_ownership_type
- af_original_transaction_id
- af_order_id
- af_purchase_token
- af_product_id
- android_id
- idfa
- ip
- appsflyer_id
- af_purchase_date_ms
- af_store
- af_environment
- af_period_type
Langganan dilanjutkan (af_ars_subscription_resumed)
Deskripsi
Dicatat saat langganan dengan harga penuh dilanjutkan setelah langganan yang dibatalkan atau dikembalikan dananya.
Parameter
- app_id
- customer_user_id
- af_currency
- af_expires_date_ms
- af_subscription_ownership_type
- af_original_transaction_id
- af_order_id
- af_purchase_token
- af_transaction_id
- af_product_id
- android_id
- idfa
- ip
- appsflyer_id
- af_purchase_date_ms
- af_store
- af_environment
- af_period_type
- af_discount_id
- af_discount_type
- af_reason
- af_revenue (disertakan jika pendapatan event melebihi nol)
- store_commission
- af_net_revenue
- af_net_revenue_factors
Langganan dibatalkan (af_ars_subscription_churned)
Deskripsi
Direkam saat pelanggan melakukan churn. Hal ini biasanya terjadi setelah pembatalan perpanjangan otomatis atau berakhirnya periode penagihan. Itu juga dapat mengikuti masalah penagihan atau teknis dengan perpanjangan yang menyebabkan churn.
Parameter
- app_id
- customer_user_id
- af_currency
- af_expires_date_ms
- Af_subscription_ownership_type
- af_original_transaction_id
- af_order_id
- af_purchase_token
- af_transaction_id
- af_product_id
- android_id
- idfa
- ip
- appsflyer_id
- af_purchase_date_ms
- af_store
- af_environment
- af_period_type
- af_reason
Langganan dikembalikan dananya (af_ars_subscription_refunded)
Deskripsi
Dicatat saat pelanggan mengeluarkan pengembalian dana.
Catatan:
- Event ini biasanya dihasilkan bersama dengan nilai negatif. Jika tidak mungkin untuk mendeteksi transaksi mana yang dikembalikan dananya, atau detail pengembalian dana tidak disertakan dalam notifikasi, event pengembalian dana tidak menunjukkan nilai.
Parameter
- app_id
- customer_user_id
- af_reason
- af_subscription_ownership_type
- af_discount_id
- af_discount_type
- af_original_transaction_id
- af_order_id
- af_purchase_token
- af_refunded_transaction_ids
- event_revenue_usd
- event_revenue (disertakan jika pendapatan melebihi nol)
- af_product_id
- android_id
- idfa
- ip
- appsflyer_id
- af_store
- af_environment
- af_period_type
- store_commission
- af_net_revenue
- af_net_revenue_factors
- af_net_revenue_tax_name
- af_net_revenue_tax_rate
- af_net_revenue_tax_exclusive
- af_net_revenue_country
- af_net_revenue_subdivision
- af_net_revenue_postal_code
Anugerah penagihan langganan (af_ars_subscription_billing_grace)
Deskripsi
Tercatat saat perpanjangan langganan gagal karena masalah penagihan dan pelanggan memasuki masa tenggang penagihan.
Parameter
- app_id
- customer_user_id
- af_currency
- af_expires_date_ms
- Af_subscription_ownership_type
- af_original_transaction_id
- af_order_id
- af_purchase_token
- af_transaction_id
- af_product_id
- android_id
- idfa
- ip
- appsflyer_id
- af_purchase_date_ms
- af_store
- af_environment
- af_period_type
Langganan diperpanjang (af_ars_subscription_renewed)
Deskripsi
Direkam saat langganan perpanjangan otomatis terjadi.
Parameter
- app_id
- customer_user_id
- af_currency
- af_expires_date_ms
- af_subscription_ownership_type
- af_original_transaction_id
- af_order_id
- af_purchase_token
- af_transaction_id
- af_product_id
- android_id
- idfa
- ip
- appsflyer_id
- af_purchase_date_ms
- af_store
- af_environment
- af_period_type
- af_discount_id
- af_discount_type
- event_revenue_usd
- event_revenue (disertakan jika pendapatan melebihi nol)
- store_commission
- af_net_revenue
- af_net_revenue_factors
Langganan diubah (af_ars_subscription_xgraded)
Deskripsi
Tercatat saat pelanggan melakukan upgrade, downgrade, atau cross-grade ke produk yang berbeda.
Parameter
- app_id
- customer_user_id
- af_currency
- af_expires_date_ms
- af_subscription_ownership_type
- af_original_transaction_id
- af_order_id
- af_purchase_token
- af_transaction_id
- af_product_id
- android_id
- idfa
- ip
- appsflyer_id
- af_purchase_date_ms
- af_store
- af_environment
- af_period_type
- af_discount_id
- af_discount_type
- event_revenue_usd
- event_revenue (disertakan jika pendapatan melebihi nol)
- store_commission
- af_net_revenue
- af_net_revenue_factors
Pelanggan lama (af_ars_existing_subscriber)
Deskripsi
Dicatat saat konektor SDK diberi tahu tentang pelanggan di tengah siklus penagihan, sebelum mendapatkan notifikasi server tindak lanjut yang mentransisikan pelanggan ke tahap siklus hidup lain yang relevan. Event ini biasanya dibuat selama periode pengenalan dan adopsi konektor SDK.
Parameter
- app_id
- customer_user_id
- country
- af_currency
- af_expires_date_ms
- af_subscription_ownership_type
- af_original_transaction_id
- af_order_id
- af_purchase_token
- af_transaction_id
- af_product_id
- android_id
- idfa
- ip
- appsflyer_id
- af_purchase_date_ms
- af_store
- af_environment
- af_period_type
- af_cuids
- af_validated
Pembelian percobaan (af_ars_sandbox_sdk)
Deskripsi
Tercatat saat menguji pembelian yang direkam melalui SDK di lingkungan kotak pasir.
Parameter
- app_id
- customer_user_id
- country
- af_currency
- af_expires_date_ms
- af_subscription_ownership_type
- af_discount_id
- af_discount_type
- af_original_transaction_id
- af_order_id
- af_purchase_token
- af_transaction_id
- af_product_id
- android_id
- idfa
- ip
- appsflyer_id
- af_purchase_date_ms
- af_store
- af_environment
- af_period_type
- af_cuids
- af_validated
Pembelian percobaan (af_ars_sandbox_s2s)
Deskripsi
Tercatat saat menguji pembelian yang dilaporkan melalui S2S di lingkungan kotak pasir.
Parameter
- app_id
- customer_user_id
- country
- af_currency
- af_expires_date_ms
- af_subscription_ownership_type
- af_discount_id
- af_discount_type
- af_original_transaction_id
- af_order_id
- af_purchase_token
- af_transaction_id
- af_product_id
- android_id
- idfa
- ip
- appsflyer_id
- af_purchase_date_ms
- af_store
- af_environment
- af_period_type
- af_cuids
- af_validated
Kamus parameter
Parameter untuk IAP dan event langganan ditampilkan dalam laporan data lengkap sebagai kolomnya sendiri atau diisi sebagai bagian dari nilai Peristiwa.
Parameter yang memiliki kolom sendiri adalah:
- app_id
- customer_user_id
- country_code
- af_currency
- event_revenue_usd
- af_revenue
- android_id
- ip
- idfa
- appsflyer_id
Lihat kamus bidang data untuk rincian lebih lanjut tentang parameter ini.
Tabel berikut menjelaskan parameter data lengkap yang tersedia di event ARS dan VIAP.
Parameter | Catatan | Produk |
---|---|---|
af_cancelation_date_ms | Tanggal pembatalan | IAP |
af_reason |
|
|
af_expires_date_ms |
Tanggal kedaluwarsa siklus penagihan berlangganan saat ini |
Subscription |
af_subscription_ownership_type |
FAMILY_SHARED berarti pengguna memiliki akses melalui berbagi keluarga. DIBELI berarti pengguna yang membayar melakukan pembelian. |
Subscription |
af_discount_id |
ID penawaran yang diberikan kepada pengguna selama pembelian awal. ID diisi hanya ketika ada kode diskon. |
|
af_discount_type |
Jenis diskon yang ditukarkan oleh pengguna. Nilai yang mungkin:
|
Subscription |
af_original_transaction_id |
|
|
af_order_id |
|
|
af_purchase_token |
|
|
af_transaction_id |
|
|
af_purchase_state |
Nilai yang mungkin:
|
IAP |
af_original_transaction_id |
|
|
af_refunded_transaction_ids |
|
|
af_product_id |
ID produk langganan |
|
af_purchase_date_ms |
Tanggal pembelian untuk in-app event ID produk yang dilaporkan |
|
af_store |
App store tempat produk berlangganan dibeli |
|
af_environment |
Lingkungan tempat data diterima, produksi atau kotak pasir. |
|
af_period_type |
|
Subscription |
store_commission |
|
|
af_net_revenue |
Pendapatan bersih dihitung berdasarkan semua alasan yang diperhitungkan. Lihat af_net_revenue_factors. |
|
af_net_revenue_factors |
|
|
af_net_revenue_tax_name |
|
|
af_net_revenue_tax_rate |
|
|
af_net_revenue_tax_exclusive |
|
|
af_net_revenue_country |
|
|
af_net_revenue_subdivision |
|
|
af_net_revenue_postal_code |
|
|
af_cuids |
|
Subscription |
True Revenue
True Revenue adalah lapisan logika bisnis yang dibangun untuk melayani pembelian dalam aplikasi AppsFlyer dan solusi pendapatan berlangganan. True Revenue secara otomatis menghitung nilai pendapatan bersih untuk setiap transaksi yang masuk secara real time dan memasukkannya ke dalam laporan. True Revenue mempertimbangkan faktor-faktor berikut dalam perhitungan pendapatan kotor-ke-bersih:
-
Komisi toko:
- Dihitung dan dilaporkan secara otomatis. Anda tidak perlu melakukan tindakan apa pun.
- Untuk pembelian, komisi toko adalah 30%.
- Komisi langganan dihitung secara otomatis berdasarkan per pelanggan dengan mempertimbangkan masa hidup pelanggan, (App Store: mulai dari komisi 30%, dan dikurangi menjadi 15% setelah satu tahun, Play Store: komisi 15%).
- Parameter pendapatan bersih terkait tersedia dalam laporan data lengkap.
- Pajak: Pajak dilaporkan secara default untuk setiap transaksi yang diukur dengan ROI360 menggunakan konfigurasi tarif pajak default. Konfigurasi dapat diedit menggunakan API pajak khusus.
Saat melihat True Revenue dalam laporan, parameter berikut berisi data pendapatan bersih. Lihat kamus parameter untuk lebih jelasnya.
Parameter | Faktor pendapatan bersih |
---|---|
store_commission |
Komisi toko |
af_net_revenue_tax_name |
Pajak |
af_net_revenue_tax_rate |
Pajak |
af_net_revenue_tax_exclusive |
Pajak |
af_net_revenue_postal_code |
Pajak |
af_net_revenue_country |
Pajak |
af_net_revenue_subdivision |
Pajak |
af_net_revenue |
|
af_net_revenue_factors |
|
Spesifikasi dan batasan
Spesifikasi | Produk | Catatan |
---|---|---|
Rekam penginstalan dan anonimkan |
|
Tidak didukung |
Pustaka penagihan Google V6 |
|
Tidak didukung |
Langganan baru |
Pendapatan langganan |
Hanya direkam melalui SDK pembelian AppsFlyer |
Perubahan harga |
Pendapatan langganan |
Jika pendapatan langganan tidak menerima notifikasi yang berasal dari SDK dengan harga produk baru, pendapatan langganan akan terus melaporkan harga produk sebelumnya sebagai pendapatan. Setelah harga produk baru diterima dari SDK pembelian, harga baru akan dicatat. |
Pendapatan kotor |
|
Didukung |
Pendapatan bersih |
|
Didukung dalam data lengkap saja |
Pajak |
Pendapatan langganan |
Didukung |
Komisi penyimpanan pendapatan bersih |
|
|
Pengembalian dana | IAP | Dapat dilaporkan hingga 180 hari setelah pembelian asli. |
Deduplikasi |
|
Didukung untuk transaksi yang dilaporkan hingga 180 hari setelah tanggal event. |
Modus ketat SDK |
|
Langganan ROI360 dan VIAP didukung dalam mode ketat SDK. |
Mata Uang |
|
Pendapatan dilaporkan dalam mata uang asli (menggunakan parameter event_revenue) dan dalam USD (menggunakan parameter event_revenue_usd). |