public void TrackECommerce(decimal fullPrice, string orderId, string currency)
        {
            var builder = new HitBuilders.ScreenViewBuilder();

            builder.SetProductAction(
                new ProductAction(ProductAction.ActionPurchase)
                .SetTransactionId(orderId)
                .SetTransactionAffiliation("")
                .SetTransactionRevenue((double)fullPrice)
                .SetTransactionTax(0)
                .SetTransactionShipping(0)
                );

            Tracker.Set("&cu", currency);
            Tracker.Send(builder.Build());
        }
        public void TrackScreen(
            string screenName,
            string campaignUrl,
            List <ProductData> products,
            ProductActions productAction,
            ActionData actionData,
            PromotionData promotion,
            List <CustomDimension> customDimensions,
            List <CustomMetric> customMetrics
            )
        {
            analyticsTracker.SetScreenName(screenName);

            var builder = new HitBuilders.ScreenViewBuilder();

            if (customDimensions?.Count > 0)
            {
                foreach (var customDimension in customDimensions)
                {
                    builder.SetCustomDimension(customDimension.DimensionIndex, customDimension.DimensionValue);
                }
            }

            if (customMetrics?.Count > 0)
            {
                foreach (var customMetric in customMetrics)
                {
                    builder.SetCustomMetric(customMetric.MetricIndex, customMetric.MetricValue);
                }
            }

            if (!string.IsNullOrWhiteSpace(campaignUrl))
            {
                builder.SetCampaignParamsFromUrl(campaignUrl);
            }

            if (promotion != null)
            {
                builder.AddPromotion(generatePromotion(promotion));
            }

            if (products != null)
            {
                foreach (var p in products)
                {
                    var product = mapper.mapProduct(p);
                    switch (productAction)
                    {
                    case ProductActions.none:
                        builder.AddImpression(product, screenName);
                        break;

                    default:
                        builder.SetProductAction(generateCheckoutProductAction(actionData, productAction));
                        builder.AddProduct(product);
                        break;
                    }
                }
            }
            analyticsTracker.Send(builder.Build());
        }