AnalyticsReporter.cs 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. using System.Collections.Generic;
  2. namespace UnityEngine.Purchasing
  3. {
  4. /// <summary>
  5. /// Relays IAP Transaction information to Unity Analytics.
  6. ///
  7. /// Responsible for adapting Unity Purchasing's unified
  8. /// receipts for Unity Analytics' Transaction API.
  9. /// </summary>
  10. internal class AnalyticsReporter
  11. {
  12. private IUnityAnalytics m_Analytics;
  13. public AnalyticsReporter(IUnityAnalytics analytics)
  14. {
  15. m_Analytics = analytics;
  16. }
  17. public void OnPurchaseSucceeded(Product product)
  18. {
  19. if (null == product.metadata.isoCurrencyCode)
  20. {
  21. return;
  22. }
  23. m_Analytics.Transaction(product.definition.storeSpecificId,
  24. product.metadata.localizedPrice,
  25. product.metadata.isoCurrencyCode,
  26. product.receipt,
  27. null);
  28. }
  29. public void OnPurchaseFailed(Product product, PurchaseFailureReason reason)
  30. {
  31. var data = new Dictionary<string, object>() {
  32. { "productID", product.definition.storeSpecificId },
  33. { "reason", reason },
  34. { "price", product.metadata.localizedPrice },
  35. { "currency", product.metadata.isoCurrencyCode }
  36. };
  37. m_Analytics.CustomEvent("unity.PurchaseFailed", data);
  38. }
  39. }
  40. }