Pembelian dalam aplikasi (IAP) dan pengukuran pendapatan langganan

Premium

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:

  1. Seorang pengguna melakukan pembelian in-app atau langganan yang dapat diperpanjang secara otomatis.
  2. Aplikasi melakukan transaksi di app store.
  3. Konektor SDK pembelian AppsFlyer secara otomatis mendeteksi pembelian dan mengirimkan muatannya ke AppsFlyer untuk validasi dan pencatatan.
  4. 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). 
  5. AppsFlyer mentransfer respons ke konektor SDK, yang selanjutnya mentransfer respons validasi tanda terima (berhasil atau gagal) ke aplikasi.
  6. 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
  • Integrasikan konektor SDK pembelian AppsFlyer untuk Android dan iOS.
  • Direkomendasikan untuk pemilik aplikasi berlangganan: Untuk mengidentifikasi basis pelanggan Anda lebih cepat, siapkan notifikasi server sebelum merilis versi aplikasi Anda dengan konektor SDK.
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:

  • Konektor SDK terintegrasi dengan benar.
  • Notifikasi server dikonfigurasi dengan benar dan diterima oleh AppsFlyer.
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

  1. Di Konsol Google Play, buka Akun Pengembang Google PlayAnda.
  2. Tautkan akun ke project Google Cloud Anda. Untuk instruksi, lihat topik bantuan Google ini.
  3. Aktifkan API Pengembang Google Play. Untuk petunjuk, lihat topik bantuan Google ini.

1.2 Buat akun layanan

  1. Buka Google Cloud dan buka proyek yang baru saja Anda tautkan di 1.1.
  2. Di bawah proyek Anda, buka IAM dan Admin > Akun Layanan, dan klik Buat akun layanan

01.png

  1. Di halaman Buat akun layanan, isi langkah Detail akun layanan .

02.png

  1. Klik Buat dan lanjutkan.
  2. Di langkah Beri akun layanan ini akses ke proyek , pilih peran  pelanggan Pub/sub .

03.png

  1. Klik Lanjutkan > Selesai.

1.3 Unduh kunci pribadi akun.

  1. Di halaman Akun Layanan , temukan akun layanan yang relevan, dan klik  ellipsis.png  dan dari Kelola kunci.

08.png

  1. Di tab Kunci halaman akun layanan, klik TAMBAHKAN KUNCI > Buat kunci baru.

10.png

  1. Dalam dialog Buat kunci pribadi, pilih jenis kunci JSON .
  2. Klik Buat. File JSON kunci pribadi diunduh.
  3. Di AppsFlyer, buka ROI360 > Pengaturan Pendapatan.

41.png

  1. Pilih aplikasi Anda dari daftar.
  2. Di tab Pembelian dan langganan , klik upload-2.png untuk mengunggah file JSON. 

40.png

 

1.4 Tetapkan izin akses API

  1. Di Konsol Google Play, buka Pengguna dan izin.
  2. Di daftar Pengguna dan izin , temukan akun layanan yang Anda buat di 1.2, dan klik Kelola.

14.png

  1. Di bagian Izin , buka tab Izin akun , dan pilih keduanya:
    • Lihat data keuangan.
    • Kelola pesanan dan langganan.

15.png

  1. 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:

  1. Di AppsFlyer, buka ROI360 > Pengaturan Pendapatan > Pembelian & langganan pilih Izinkan topik AppsFlyer untuk mendapatkan pesan RTDN langsung dari Google.

42.png

  1. Salin topik AppsFlyer ke clipboard.
  2. Di Konsol Google Play > Semua aplikasi, pilih aplikasi Anda. Dashboard terbuka.

18.png

  1. Buka Penyiapan monetisasi, dan di bagian Penagihan Google Play , di kolom Nama topik , tempelkan alamat topik AppsFlyer yang Anda salin di sublangkah 2.

19.png

  1. 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

  1. Di AppsFlyer, buka ROI360 > Pengaturan Pendapatan > Pembelian dan langganan, pilih Teruskan pesan topik RTDN Anda ke AppsFlyer.
  2. Salin URL titik akhir ke papan klip .

52.png

  1. Di Google Cloud Platform, di bawah proyek Anda, telusuri Pub/Sub.

21.png

  1. Di Pub/Sub , buka bagian Topik , dan pastikan Anda memiliki topik pub/sub khusus untuk langganan.

22.png

  1. Buka bagian Langganan , dan klik Buat langganan.

25.png

  1. Masukkan ID Langganan.
  2. Pilih topik pub/sub langganan yang relevan dari dropdown.

26.png

  1. Untuk Jenis pengiriman, pilih Push.
  2. Masukkan URL titik akhir yang Anda catat di sublangkah 2.
  3. Untuk Masa Kedaluwarsa, pilih Tidak pernah kedaluwarsa.

28.png

  1. Klik Simpan.
  2. Buka bagian Langganan , dan salin nama topik ke clipboard.

46.png

  1. 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.

19.png

  1. Klik Simpan.

1.7 Konfigurasikan layanan otomatis

  1. 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.

50.png

  1. [Opsional] Centang Mengizinkan AppsFlyer untuk menghapus duplikat transaksi yang sudah dilaporkan. Ini memastikan tidak ada transaksi duplikat yang dicatat.
  2. Klik Simpan.
Catatan: Diperlukan waktu (terkadang bahkan 24 jam) setelah mengatur kredensial dan izin akun layanan untuk dapat menggunakannya. Ini dapat menyebabkan Anda menerima kesalahan saat mencoba terhubung ke Google RTDN.

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:

  1. Di App Store Connect, buka Fitur > Langganan, dan klik Kelola untuk mendapatkan kunci rahasia bersama App Store Connect.
    app_store_connect_shared_secret.png
  2. Di AppsFlyer, buka ROI360 > Pengaturan Pendapatan > Pembelian dan langganan.
    Halaman konfigurasi Pendapatan terbuka.
    ARS-VIAP.png
  3. Masukkan kunci rahasia bersama App Store Connect Anda.
  4. Salin titik akhir AppsFlyer dan masukkan ke dalam konfigurasi App Store Connect Anda:
    1. Di App Store Connect, pilih aplikasi Anda.
    2. Di bagian Informasi Aplikasi , gulir ke bawah ke Notifikasi Server App Store, dan tempel titik akhir AppsFlyer di bidang URL Server Produksi dan URL Server Kotak Pasir .
      ASSN.png
    3. Klik Save.
  5. [Opsional] Pilih untuk mengirim notifikasi server ke titik akhir Anda dan masukkan titik akhir Anda. 
  6. 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.
  7. [Opsional] Centang Mengizinkan AppsFlyer untuk menghapus duplikat transaksi yang sudah dilaporkan.
    Ini memastikan tidak ada transaksi duplikat yang dicatat.
  8. [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:

  1. 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.
  2. 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:

  1. 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. 
  2. 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
  • Nama yang muncul di faktur pelanggan yang menjelaskan jenis pajak tertentu. 
  • Contoh: Penjualan, PPN, GST
 
tax_rate Ya
  • Nomor sampai dengan 4 desimal mewakili persentase pajak yang akan dikumpulkan.
  • Contoh: 7,25
 
tax_exclusive Tidak
  • Parameter Boolean, benar atau salah.
  • Salah berarti pajak termasuk dalam pendapatan keseluruhan.
  • Benar berarti pajak merupakan tambahan dari keseluruhan pendapatan yang dinyatakan. Misalnya, di AS atau Kanada, di mana harga stiker tidak termasuk pajak penjualan.
  • Default-nya adalah false.
 
country Tidak  
subdivision Tidak
  • Untuk beberapa negara, mungkin ada negara bagian/subdivisi tambahan.
  • Ditangani sesuai dengan kode subdivisi ISO 3166-2.
  • Harus menyertakan kode negara dan kode subdivisi.
  • Contoh: US-CA
 
postal_code Tidak
  • Rangkaian huruf dan/atau angka
  • Contoh: L4J8E3
 
deduction_order Tidak
  • Enum, baik 0, 1, atau 2:
    • 0 berarti komisi toko dikurangkan terlebih dahulu dari pendapatan kotor dan pajak dikurangkan dari jumlah yang tersisa.
    • 1 berarti pajak dikurangi terlebih dahulu dari pendapatan kotor dan komisi toko dikurangi jumlah yang tersisa.
    • 2 berarti pajak dan komisi toko dikurangkan dari total pendapatan.
 

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.
    ASSN.png
  • 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:

  1. Beritahu pengembang Anda untuk mengikuti instruksi Android , iOS , dan Unity mereka untuk mengonfigurasi lingkungan Kotak Pasir di Konektor SDK.
  2. 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.
  3. 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.
  4. 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. 
  5. 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.
    ASSN.png

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
  • Dalam pembatalan atau acara terkait churn, alasan pengguna melakukan churn atau pembatalan. Nilai yang mungkin:
    • iOS:
      • cancel_intent
      • billing_issue
      • declined_price_increase
      • product_unavailable
    • Android:
      • Saya tidak sering menggunakan layanan ini
      • Masalah teknis
      • Alasan terkait biaya
      • Saya menemukan aplikasi yang lebih baik
      • Lainnya
  • Dalam event yang melanjutkan berlangganan, alasan pengguna melanjutkan berlangganannya. Nilai yang mungkin:
    • Android:
      • dijeda dan dilanjutkan
      • dinonaktifkan dan diaktifkan perpanjangan otomatis
  • Dalam peristiwa terkait pengembalian dana,alasan mengapa pengguna menerima pengembalian dana. Nilai yang mungkin:
    • iOS:
      • 1: masalah dengan aplikasi Anda
      • 0: alasan lain
  • IAP
  • Subscription
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.

  • IAP
  • Subscription
af_discount_type

Jenis diskon yang ditukarkan oleh pengguna. Nilai yang mungkin:

  • IOS
    • intro
    • langganan
  • Android
    • harga perkenalan
    • one_time_code
    • vanity_code
Subscription
af_original_transaction_id
  • ID transaksi asli
  • Khusus iOS
  • IAP
  • Subscription
af_order_id
  • ID pesanan untuk transaksi
  • Khusus Android
  • IAP
  • Subscription
af_purchase_token
  • Token pembelian untuk transaksi
  • Khusus Android
  • IAP
  • Subscription
af_transaction_id
  • ID transaksi
  • Khusus iOS
  • IAP
  • Subscription
af_purchase_state

Nilai yang mungkin:

  • Dibeli
  • Dibatalkan
  • Tertunda

IAP 

af_original_transaction_id
  • ID asli transaksi
  • Khusus iOS
  • IAP
  • Subscription
af_refunded_transaction_ids
  • Array dari semua ID transaksi yang dikembalikan dananya
  • Khusus iOS
  • IAP
  • Subscription
af_product_id

ID produk langganan

  • IAP
  • Subscription
af_purchase_date_ms

Tanggal pembelian untuk in-app event ID produk yang dilaporkan

  • IAP
  • Subscription
af_store

App store tempat produk berlangganan dibeli

  • IAP
  • Subscription
af_environment

Lingkungan tempat data diterima, produksi atau kotak pasir.

  • IAP
  • Subscription
af_period_type
  • Jenis langganan atau masa percobaan.
  • Nilai yang mungkin:
    • uji coba
    • intro
    • normal

Subscription

store_commission
  • Persentase komisi yang dihitung yang didapat toko dari produk yang dibeli.
  • Ditampilkan sebagai desimal.
  • Contoh: 30
  • IAP
  • Subscription
af_net_revenue

Pendapatan bersih dihitung berdasarkan semua alasan yang diperhitungkan. Lihat af_net_revenue_factors.

  • IAP
  • Subscription
af_net_revenue_factors
  • Larik yang mewakili semua alasan yang diperhitungkan yang menghasilkan jumlah af_net_revenue yang dilaporkan.
  • Contoh nilai: store_commission
  • IAP
  • Subscription

af_net_revenue_tax_name

  • Nama yang muncul di faktur pelanggan yang menjelaskan jenis pajak tertentu. 
  • Contoh: Penjualan, PPN, GST
  • IAP
  • Subscription

af_net_revenue_tax_rate

  • Nomor sampai dengan 4 desimal mewakili persentase pajak yang dikumpulkan.
  • Contoh: 7,25
  • IAP
  • Subscription

af_net_revenue_tax_exclusive

  • Parameter Boolean, benar atau salah.
  • Salah berarti pajak termasuk dalam pendapatan keseluruhan.
  • Benar berarti pajak merupakan tambahan dari keseluruhan pendapatan yang dinyatakan. Misalnya, di AS atau Kanada, di mana harga stiker tidak termasuk pajak penjualan.
  • IAP
  • Subscription

af_net_revenue_country

  • IAP
  • Subscription

af_net_revenue_subdivision

  • Untuk beberapa negara, mungkin ada negara bagian/subdivisi tambahan. Ini ditanganimenurut kode subdivisi ISO 3166-2.
  • Termasuk kode negara dan kode subdivisi.
  • Contoh: US-CA
  • IAP
  • Subscription

af_net_revenue_postal_code

  • Rangkaian huruf dan/atau angka
  • Contoh: L4J8E3
  • IAP
  • Subscription
af_cuids
  • Dalam konteks ARS, parameter ini berisi larik dengan semua CUID.
  • Larik CUID ditampilkan terlepas dari ID perangkat. Dengan demikian, CUID yang sama dapat menampilkan lebih dari satu ID perangkat.
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
  • Komisi toko
  • Pajak
af_net_revenue_factors
  • Komisi toko
  • Pajak

Spesifikasi dan batasan

Spesifikasi Produk Catatan
Rekam penginstalan dan anonimkan
  • IAP
  • Pendapatan langganan
Tidak didukung
Pustaka penagihan Google V6
  • IAP
  • Pendapatan langganan
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
  • IAP
  • Pendapatan langganan
Didukung
Pendapatan bersih
  • IAP
  • Pendapatan langganan
Didukung dalam data lengkap saja
Pajak

Pendapatan langganan

Didukung
Komisi penyimpanan pendapatan bersih
  • IAP
  • Pendapatan langganan
  • Untuk iOS, 15% untuk pelanggan lebih dari 1 tahun: Hanya didukung dalam data lengkap 
  • Program bisnis kecil: Tidak didukung
Pengembalian dana IAP Dapat dilaporkan hingga 180 hari setelah pembelian asli.
Deduplikasi
  • IAP
  • Pendapatan langganan
Didukung untuk transaksi yang dilaporkan hingga 180 hari setelah tanggal event.
Modus ketat SDK
  • IAP
  • Pendapatan langganan
Langganan ROI360 dan VIAP didukung dalam mode ketat SDK.
Mata Uang
  • IAP
  • Pendapatan langganan
Pendapatan dilaporkan dalam mata uang asli (menggunakan parameter event_revenue) dan dalam USD (menggunakan parameter event_revenue_usd).