public void LogEvent(CommerceEvent commerceEvent)
        {
            if (Application.platform == RuntimePlatform.OSXEditor)
            {
                return;
            }

            string commerceEventJSON = JsonUtility.ToJson(commerceEvent);

            _LogCommerceEvent(commerceEventJSON);
        }
Exemplo n.º 2
0
 public void CommerceEvents()
 {
     var product = new Product("product-id", "product-name")
     {
         TotalProductAmount = new Decimal(123.12),
     };
     var productAction = new ProductAction(ProductAction.ActionEnum.Purchase)
     {
         TotalAmount   = new Decimal(123.12),
         TransactionId = "foo-transaction-id"
     };
     var commerceEvent = new CommerceEvent(productAction);
 }
        public void LogEvent(CommerceEvent commerceEvent)
        {
            AndroidJavaObject builder;

            if (commerceEvent.ProductAction > 0 && commerceEvent.Products != null && commerceEvent.Products.Length > 0)
            {
                builder = new AndroidJavaObject("com.mparticle.commerce.CommerceEvent$Builder", toUtils.ConvertToMpProductAction(commerceEvent.ProductAction), toUtils.ConvertToMpProduct(commerceEvent.Products[0]));
            }
            else if (commerceEvent.Promotions != null && commerceEvent.Promotions.Length > 0)
            {
                builder = new AndroidJavaObject("com.mparticle.commerce.CommerceEvent$Builder", toUtils.ConvertToMpPromotionAction(commerceEvent.PromotionAction), toUtils.ConvertToMpPromotion(commerceEvent.Promotions[0]));
            }
            else
            {
                builder = new AndroidJavaObject("com.mparticle.commerce.CommerceEvent$Builder", toUtils.ConvertToMpImpression(commerceEvent.Impressions[0]));
            }
            if (commerceEvent.TransactionAttributes != null)
            {
                builder.Call <AndroidJavaObject>("transactionAttributes", toUtils.ConvertToMpTransactionAttributes(commerceEvent.TransactionAttributes));
            }
            if (commerceEvent.ScreenName != null)
            {
                builder.Call <AndroidJavaObject>("screen", commerceEvent.ScreenName);
            }
            if (commerceEvent.Currency != null)
            {
                builder.Call <AndroidJavaObject>("currency", commerceEvent.Currency);
            }
            if (commerceEvent.CustomAttributes != null)
            {
                builder.Call <AndroidJavaObject>("customAttributes", toUtils.ConvertDictToMap(commerceEvent.CustomAttributes));
            }
            if (commerceEvent.CheckoutOptions != null)
            {
                builder.Call <AndroidJavaObject>("checkoutOptions", commerceEvent.CheckoutOptions);
            }
            if (commerceEvent.CheckoutStep != null)
            {
                builder.Call <AndroidJavaObject>("checkoutStep", toUtils.integerClass.CallStatic <AndroidJavaObject>("valueOf", commerceEvent.CheckoutStep));
            }
            if (commerceEvent.NonInteractive.HasValue)
            {
                builder.Call <AndroidJavaObject>("nonInteraction", (bool)commerceEvent.NonInteractive);
            }

            if (commerceEvent.Products != null)
            {
                AndroidJavaObject productList = new AndroidJavaObject("java.util.ArrayList");

                foreach (Product product in commerceEvent.Products)
                {
                    productList.Call <bool>(
                        "add",
                        new object[] { toUtils.ConvertToMpProduct(product) }
                        );
                }
                builder.Call <AndroidJavaObject>("products", productList);
            }

            if (commerceEvent.Promotions != null)
            {
                AndroidJavaObject promotionList = new AndroidJavaObject("java.util.ArrayList");

                foreach (Promotion promotion in commerceEvent.Promotions)
                {
                    promotionList.Call <bool>(
                        "add",
                        new object[] { toUtils.ConvertToMpPromotion(promotion) }
                        );
                }
                builder.Call <AndroidJavaObject>("promotions", promotionList);
            }

            if (commerceEvent.Impressions != null)
            {
                AndroidJavaObject impressionList = new AndroidJavaObject("java.util.ArrayList");

                foreach (Impression impression in commerceEvent.Impressions)
                {
                    impressionList.Call <bool>(
                        "add",
                        new object[] { toUtils.ConvertToMpImpression(impression) }
                        );
                }
                builder.Call <AndroidJavaObject>("impressions", impressionList);
            }
            AndroidJavaObject javaCommerceEvent = builder.Call <AndroidJavaObject>("build");

            mp.Call(
                "logEvent",
                new object[] { javaCommerceEvent }
                );
        }