Esempio n. 1
0
        public override IEnumerator GetData(int testId, System.Action <ABTestResult> onResult)
        {
            var request = "{\"id\": " + testId + "}";

            return(net.JsonPost(host, "/v/abtest/get", request, response => {
                ABTestResultJson resultJson = DeserializeT <ABTestResultJson>(response);
                ABTestResult result = new ABTestResult();
                result.hasError = resultJson.hasError;
                if (resultJson.data != null)
                {
                    result.data = DeserializeT <ABTestingItemsTO>(resultJson.data);
                }
                onResult(result);
            }, errorText => {             // Transport errors
                onResult(new ABTestResult());
            }));
        }
Esempio n. 2
0
 private void GroupResult(Dictionary <string, ABTestResult> dictResults, string key, ABTestResult r)
 {
     if (dictResults.ContainsKey(key))
     {
         dictResults[key].UniqueVisitors      += r.UniqueVisitors;
         dictResults[key].TotalViews          += r.TotalViews;
         dictResults[key].ConversionCount     += r.ConversionCount;
         dictResults[key].ConversionWeightSum += r.ConversionWeightSum;
     }
     else
     {
         dictResults.Add(key, new ABTestResult
         {
             TestID              = r.TestID,
             Module              = r.Module,
             View                = r.View,
             Goal                = r.Goal,
             UniqueVisitors      = r.UniqueVisitors,
             TotalViews          = r.TotalViews,
             ConversionCount     = r.ConversionCount,
             ConversionWeightSum = r.ConversionWeightSum,
             CbnCampaign         = r.CbnCampaign,
             UtmSource           = r.UtmSource,
             UtmCampaign         = r.UtmCampaign,
             UtmContent          = r.UtmContent,
             UtmTerm             = r.UtmTerm
         });
     }
 }
Esempio n. 3
0
        public ActionResult Index(string g, string d)
        {
            ViewBag.GoalName = g;

            IEnumerable <ABTestResult> results = null;

            results = ABTestResult.GetResultsByGoal(g, d).OrderByDescending(r => r.ConversionCount);

            Dictionary <string, ABTestResult> resultsBySource = new Dictionary <string, ABTestResult>();

            Dictionary <string, ABTestResult> resultsByAd   = new Dictionary <string, ABTestResult>();
            Dictionary <string, ABTestResult> resultsByTerm = new Dictionary <string, ABTestResult>();

            Dictionary <string, ABTestResult> resultsByView = new Dictionary <string, ABTestResult>();

            foreach (ABTestResult r in results)
            {
                if (r.TestID != null && r.TestID != "")
                {
                    try
                    {
                        string[] tokens = r.TestID.Split(".".ToCharArray(), 3);

                        if (tokens.Length > 2)
                        {
                            if (tokens[2] != null && tokens[2].Contains("{"))
                            {
                                JObject json = JObject.Parse(tokens[2]);

                                if (true || json["Network"].ToString() == "mgid.com")
                                {
                                    r.Goal   = g;
                                    r.Module = tokens[0];
                                    r.View   = tokens[1];

                                    GroupResult(resultsByView, r.View, r);

                                    r.CbnCampaign = json["CbnCampaign"].ToString();
                                    r.UtmSource   = json["Network"].ToString();


                                    r.UtmCampaign = json["Campaign"].ToString();

                                    r.UtmContent = json["Content"].ToString();

                                    r.UtmTerm = json["Term"].ToString();


                                    //Group results

                                    //By source
                                    GroupResult(resultsBySource, json["Network"].ToString(), r);

                                    //by Ad
                                    string campaignKey = json["Network"].ToString() + "." + json["CbnCampaign"].ToString() + "." + json["Content"].ToString();
                                    GroupResult(resultsByAd, campaignKey, r);

                                    //by term
                                    string termKey = json["Network"].ToString() + "." + json["CbnCampaign"].ToString() + "." + json["Term"].ToString();
                                    GroupResult(resultsByTerm, termKey, r);
                                }
                            }
                        }
                    }
                    catch
                    {
                    }
                }
            }

            ViewBag.Results = results.OrderByDescending(r => r.UtmSource + (1000000 + r.UniqueVisitors));

            ViewBag.ResultsBySource = resultsBySource.OrderByDescending(kv => kv.Value.UtmSource + (1000000 + kv.Value.UniqueVisitors));
            ViewBag.ResultsByAd     = resultsByAd.OrderByDescending(kv => kv.Value.UtmSource + (1000000 + kv.Value.UniqueVisitors));
            ViewBag.ResultsByTerm   = resultsByTerm.OrderByDescending(kv => kv.Value.UtmSource + (1000000 + kv.Value.UniqueVisitors));

            ViewBag.ResultsByView = resultsByView.OrderByDescending(kv => kv.Value.UtmSource + (1000000 + kv.Value.UniqueVisitors));


            return(View());
        }