| Platform seçin: | iOS+ Android Unity |
Uygulama içi satın almalar (UİSA), uygulamanızın finansal işlemler yapmak zorunda kalmaması için bir mobil uygulamada Apple App Store veya Google Play üzerinden satabileceğiniz dijital içerik veya özelliklerdir. Uygulama içi satın alma işlemlerine örnek olarak aboneliğe dayalı içerik veya özel oyun parçaları verilebilir.
Analytics, UİSA etkinliklerini Uygulama içi satın alma işlemleri raporunda gösterir.
Unity uygulamaları için Analytics SDK'sı iOS'te Apple App Store, Android'de ise Google Play ile entegre olur.
Çoğu durumda Analytics SDK, uygulamanızda API çağrıları gerektirmeden uygulama içi satın alma etkinliklerini otomatik olarak toplar. Kurulum şartları ve izleme davranışı, hedef platforma bağlıdır:
- Android: Google Play bağlandıktan sonra Google Play işlemleri otomatik olarak izlenir. Kod değişikliği gerektirmez.
- iOS (StoreKit 1): StoreKit 1 API'leri kullanılarak yapılan App Store işlemleri otomatik olarak izlenir. Kod değişikliği gerektirmez.
- iOS (StoreKit 2): StoreKit 2 API'leri kullanılarak yapılan App Store işlemlerinin, özel Unity API'si kullanılarak manuel olarak kaydedilmesi gerekir.
Başlamadan önce
Firebase projenizi ve uygulamanızın kod tabanını Google Analytics ile Başlarken bölümünde açıklandığı şekilde ayarlayın.
Uygulamanızın platforma özel aşağıdaki kurulum şartlarını karşıladığından emin olun:
iOS (StoreKit 1): Ek kurulum gerekmez. StoreKit 1 izleme özelliği otomatik olarak çalışır.
iOS (StoreKit 2): Uygulamanızın Firebase Unity SDK'sının 13.12.0 veya sonraki bir sürümünü kullandığından emin olun.
Google Play Faturalandırma, Apple StoreKit ve Unity In-App Purchasing ile ilgili platforma özel dokümanları inceleyerek uygulama içi satın alma API'leri hakkında bilgi edinin.
Uygulama
Android
Android uygulamaları için, Google Play ile bağlantı oluşturur oluşturmaz uygulama içi satın alma etkinliklerini ölçebilirsiniz. Satın alma işlemlerini ölçmek için Unity projenizde özel kod yazmanız gerekmez.
iOS
iOS uygulamalarında, uygulama stratejisi uygulamanızın StoreKit 1 veya StoreKit 2 kullanıp kullanmadığına bağlıdır:
StoreKit 1
Satın alma sürecinizde StoreKit 1 kullanılıyorsa Analytics SDK, uygulama içi satın alma etkinliklerini otomatik olarak kaydeder. Bu satın alma işlemlerini izlemek için herhangi bir özel kod eklemeniz gerekmez.
StoreKit 2
Satın alma sürecinizde StoreKit 2 kullanılıyorsa işlem tanımlayıcı dizesini LogAppleTransactionAsync() işlevine ileterek doğrulanmış işlemleri manuel olarak günlüğe kaydetmeniz gerekir.
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"); } }); }
Unity IAP'yi kullanarak işlem kimliğini alma
Projenizde Unity'nin standart uygulama içi satın alma paketini
(UnityEngine.Purchasing) kullanıyorsanız işlem kimliğini alma yöntemi, kullandığınız Unity IAP API sürümüne bağlıdır.
Unity IAP v5.2+ kullanarak onay geri araması
Unity IAP v5.2 ve sonraki sürümlerde, Apple'a özgü işlem bilgilerine doğrudan onay geri çağırmasındaki Order nesnesinden erişebilirsiniz. OriginalTransactionID veya mevcut işlem kimliğini LogAppleTransactionAsync() parametresine iletebilirsiniz:
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 }
Eski ProcessPurchase geri arama
Eski ProcessPurchase geri çağırmasını kullanıyorsanız satın alınan üründen işlem tanımlayıcısını çıkarabilirsiniz:
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; }