| Pilih platform: | iOS+ Android Unity |
Pembelian dalam aplikasi (IAP) adalah konten atau fitur digital yang dapat Anda jual di aplikasi seluler melalui Apple App Store atau Google Play sehingga aplikasi Anda tidak perlu memproses transaksi keuangan. Contoh pembelian dalam aplikasi mencakup konten berbasis langganan atau bagian game khusus.
Analytics menampilkan peristiwa IAP dalam laporan Pembelian dalam aplikasi.
Untuk aplikasi Unity, Analytics SDK terintegrasi dengan Apple App Store di iOS dan Google Play di Android.
Pada umumnya, Analytics SDK akan otomatis mengumpulkan peristiwa IAP tanpa memerlukan panggilan API di aplikasi Anda. Persyaratan penyiapan dan perilaku pelacakan bergantung pada platform target:
- Android: Google Play transaksi dilacak secara otomatis setelah menautkan Google Play. Perubahan kode tidak diperlukan.
- iOS (StoreKit 1): Transaksi App Store yang dilakukan menggunakan StoreKit 1 API dilacak secara otomatis. Perubahan kode tidak diperlukan.
- iOS (StoreKit 2): Transaksi App Store yang dilakukan menggunakan StoreKit 2 API harus dicatat ke dalam log secara manual menggunakan Unity API kustom.
Sebelum memulai
Siapkan project Firebase dan codebase aplikasi Anda seperti yang dijelaskan dalam artikel Mulai Menggunakan Google Analytics.
Tautkan project Firebase Anda ke properti Google Analytics 4.
Pastikan aplikasi Anda memenuhi persyaratan penyiapan khusus platform berikut:
iOS (StoreKit 1): Tidak diperlukan penyiapan tambahan. Pelacakan StoreKit 1 berfungsi secara otomatis.
iOS (StoreKit 2): Pastikan aplikasi Anda menggunakan Firebase Unity SDK v13.12.0+ atau yang lebih tinggi.
Pastikan Anda sudah memahami API pembelian dalam aplikasi dengan meninjau dokumentasi khusus platform untuk Layanan Penagihan Google Play, Apple StoreKit, dan Pembelian Dalam Aplikasi Unity.
Penerapan
Android
Untuk aplikasi Android, Anda dapat mengukur peristiwa IAP segera setelah Anda menautkan ke Google Play. Anda tidak perlu menulis kode kustom apa pun di project Unity untuk mengukur pembelian.
iOS
Untuk aplikasi iOS, strategi penerapan bergantung pada apakah aplikasi Anda menggunakan StoreKit 1 atau StoreKit 2:
StoreKit 1
Jika alur pembelian Anda menggunakan StoreKit 1, Analytics SDK akan otomatis mencatat peristiwa IAP ke dalam log. Anda tidak perlu menambahkan kode kustom apa pun untuk melacak pembelian ini.
StoreKit 2
Jika alur pembelian Anda menggunakan StoreKit 2, Anda harus mencatat transaksi yang diverifikasi ke dalam log secara manual dengan meneruskan string ID transaksi ke LogAppleTransactionAsync().
using Firebase.Analytics; // Call this method once you have completed a StoreKit 2 transaction // and have the transaction identifier. public void LogPurchase(string transactionId) { FirebaseAnalytics.LogAppleTransactionAsync(transactionId).ContinueWith(task => { if (task.IsFaulted || task.IsCanceled) { Debug.LogError("Failed to log Apple purchase transaction: " + task.Exception); } else { Debug.Log("Successfully logged Apple purchase transaction"); } }); }
Mengambil ID transaksi menggunakan Unity IAP
Jika project Anda menggunakan paket Pembelian Dalam Aplikasi standar Unity
(UnityEngine.Purchasing), metode untuk mengambil ID transaksi bergantung
pada versi Unity IAP API yang Anda gunakan.
Callback konfirmasi menggunakan Unity IAP v5.2+
Di Unity IAP v5.2 dan yang lebih tinggi, Anda dapat mengakses informasi transaksi khusus Apple langsung dari objek Order dalam callback konfirmasi. Anda dapat meneruskan OriginalTransactionID atau ID transaksi saat ini ke LogAppleTransactionAsync():
using UnityEngine.Purchasing; using Firebase.Analytics; using Firebase.Extensions; // Example using Unity IAP v5.2+ Order confirmation void OnPurchaseConfirmed(Order order) { #if UNITY_IOS if (order is ConfirmedOrder confirmedOrder) { var appleInfo = confirmedOrder.Info.Apple; if (appleInfo != null) { string transactionId = appleInfo.OriginalTransactionID; if (!string.IsNullOrEmpty(transactionId)) { // Log the StoreKit 2 transaction with Firebase Analytics FirebaseAnalytics.LogAppleTransactionAsync(transactionId).ContinueWithOnMainThread(task => { if (task.IsFaulted || task.IsCanceled) { Debug.LogError($"Failed to log Apple purchase transaction: {task.Exception}"); } else { Debug.Log("Successfully logged Apple purchase transaction"); } }); } else { Debug.LogWarning("Apple OriginalTransactionID is null or empty. Skipping Firebase logging."); } } } else if (order is FailedOrder failedOrder) { Debug.Log($"Purchase confirmation bypassed due to failure: {failedOrder.FailureReason}"); } #endif }
Callback ProcessPurchase lama
Jika menggunakan callback ProcessPurchase lama, Anda dapat mengekstrak ID transaksi dari produk yang dibeli:
using UnityEngine.Purchasing; using Firebase.Analytics; using Firebase.Extensions; public PurchaseProcessingResult ProcessPurchase(PurchaseEventArgs args) { // Extract the transaction ID from the purchased product string transactionId = args.purchasedProduct.transactionID; #if UNITY_IOS // Log the StoreKit 2 transaction with Firebase Analytics FirebaseAnalytics.LogAppleTransactionAsync(transactionId).ContinueWithOnMainThread(task => { if (task.IsFaulted || task.IsCanceled) { Debug.LogError($"Failed to log Apple purchase transaction: {task.Exception}"); } else { Debug.Log("Successfully logged Apple purchase transaction"); } }); #endif return PurchaseProcessingResult.Complete; }