Example #1
0
        /// <summary>
        /// Lists custom dimensions to which the user has access.
        /// Documentation: https://developers.google.com/analytics/devguides/config/mgmt/v3/mgmtReference/management/customDimensions/list
        /// </summary>
        /// <param name="service">Valid authenticated Analytics Service</param>
        /// <param name="accountId">Account Id </param>
        /// <param name="webPropertyId">Web property Id</param>
        /// <returns>Custom Dimensions resource https://developers.google.com/analytics/devguides/config/mgmt/v3/mgmtReference/management/customDimensions#resource </returns>
        public static IList <CustomDimension> CustomDimensionList(AnalyticsService service, string accountId, string webPropertyId)
        {
            ManagementResource.CustomDimensionsResource.ListRequest list = service.Management.CustomDimensions.List(accountId, webPropertyId);
            list.MaxResults = 1000;

            CustomDimensions feed = list.Execute();

            List <CustomDimension> returnList = new List <CustomDimension>();

            //// Loop through until we arrive at an empty page
            while (feed.Items != null)
            {
                //Adding items to return list.
                returnList.AddRange(feed.Items);

                // We will know we are on the last page when the next page token is
                // null.
                // If this is the case, break.
                if (feed.NextLink == null)
                {
                    break;
                }

                // Prepare the next page of results
                list.StartIndex = feed.StartIndex + list.MaxResults;
                // Execute and process the next page request
                feed = list.Execute();
            }
            return(returnList);
        }
        IDictionary <string, string> GetRequiredPayloadData(string hitType, bool isNonInteractive, SessionControl sessionControl)
        {
            var result = new Dictionary <string, string>();

            result.Add("v", "1");
            result.Add("tid", PropertyId);
            result.Add("cid", AnonymousClientId);
            result.Add("an", AppName);
            result.Add("av", AppVersion);
            result.Add("t", hitType);
            if (ScreenName != null)
            {
                result.Add("cd", ScreenName);
            }
            if (isNonInteractive)
            {
                result.Add("ni", "1");
            }
            if (AnonymizeIP)
            {
                result.Add("aip", "1");
            }
            if (sessionControl != SessionControl.None)
            {
                result.Add("sc", sessionControl == SessionControl.Start ? "start" : "end");
            }
            if (ScreenResolution.HasValue)
            {
                result.Add("sr", string.Format("{0}x{1}", ScreenResolution.Value.Width, ScreenResolution.Value.Height));
            }
            if (ViewportSize.HasValue)
            {
                result.Add("vp", string.Format("{0}x{1}", ViewportSize.Value.Width, ViewportSize.Value.Height));
            }
            if (UserLanguage != null)
            {
                result.Add("ul", UserLanguage.ToLowerInvariant());
            }
            if (ScreenColorDepthBits.HasValue)
            {
                result.Add("sd", string.Format("{0}-bits", ScreenColorDepthBits.Value));
            }
            if (DocumentEncoding != null)
            {
                result.Add("de", DocumentEncoding);
            }
            foreach (var dimension in CustomDimensions)
            {
                result.Add(string.Format("cd{0}", dimension.Key), dimension.Value);
            }
            foreach (var metric in CustomMetrics)
            {
                result.Add(string.Format("cm{0}", metric.Key), metric.Value.ToString(CultureInfo.InvariantCulture));
            }
            CustomDimensions.Clear();
            CustomMetrics.Clear();

            return(result);
        }
Example #3
0
 public void GetCustomDimensions()
 {
     Google.Apis.Analytics.v3.ManagementResource.CustomDimensionsResource.ListRequest request = analyticsService.Management.CustomDimensions.List(DefaultAccount.Id, DefaultProfile.WebPropertyId);
     try
     {
         var dimensions = request.Execute();
         if (CustomDimensions == null)
         {
             CustomDimensions = new List <Google.Apis.Analytics.v3.Data.CustomDimension>();
         }
         foreach (var item in dimensions.Items)
         {
             CustomDimensions.Add(item);
         }
     }
     catch (Exception ex)
     {
         Console.WriteLine(ex.Message);
     }
 }
Example #4
0
        public Management.Data.CustomDimension CreateCustomDimension(string name, bool isActive)
        {
            Google.Apis.Analytics.v3.Data.CustomDimension dimension = new Google.Apis.Analytics.v3.Data.CustomDimension()
            {
                Active = isActive, AccountId = DefaultAccount.Id, Name = name, Scope = "HIT", WebPropertyId = DefaultProfile.WebPropertyId
            };
            Google.Apis.Analytics.v3.ManagementResource.CustomDimensionsResource.InsertRequest request = analyticsService.Management.CustomDimensions.Insert(dimension, DefaultAccount.Id, DefaultProfile.WebPropertyId);
            try
            {
                dimension = request.Execute();
                CustomDimensions.Add(dimension);
                Management.Data.CustomDimension d = new Management.Data.CustomDimension()
                {
                    Id = dimension.Id, Index = dimension.Index, Name = dimension.Name
                };

                return(d);
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
            return(null);
        }
Example #5
0
        private IDictionary <string, string> GetRequiredPayloadData(string hitType, bool isNonInteractive, SessionControl sessionControl)
        {
            var result = new Dictionary <string, string>();

            result.Add("v", "1");
            result.Add("tid", PropertyId);
            result.Add("cid", AnonymousClientId);
            result.Add("an", AppName);
            result.Add("av", AppVersion);
            result.Add("t", hitType);

            if (AppId != null)
            {
                result.Add("aid", AppId);
            }
            if (AppInstallerId != null)
            {
                result.Add("aiid", AppInstallerId);
            }
            if (ScreenName != null)
            {
                result.Add("cd", ScreenName);
            }
            if (isNonInteractive)
            {
                result.Add("ni", "1");
            }
            if (AnonymizeIP)
            {
                result.Add("aip", "1");
            }
            if (sessionControl != SessionControl.None)
            {
                result.Add("sc", sessionControl == SessionControl.Start ? "start" : "end");
            }
            if (ScreenResolution != null)
            {
                result.Add("sr", string.Format("{0}x{1}", ScreenResolution.Width, ScreenResolution.Height));
            }
            if (ViewportSize != null)
            {
                result.Add("vp", string.Format("{0}x{1}", ViewportSize.Width, ViewportSize.Height));
            }
            if (UserLanguage != null)
            {
                result.Add("ul", UserLanguage);
            }
            if (ScreenColorDepthBits.HasValue)
            {
                result.Add("sd", string.Format("{0}-bits", ScreenColorDepthBits.Value));
            }

            if (CampaignName != null)
            {
                result.Add("cn", CampaignName);
            }
            if (CampaignSource != null)
            {
                result.Add("cs", CampaignSource);
            }
            if (CampaignMedium != null)
            {
                result.Add("cm", CampaignMedium);
            }
            if (CampaignKeyword != null)
            {
                result.Add("ck", CampaignKeyword);
            }
            if (CampaignContent != null)
            {
                result.Add("cc", CampaignContent);
            }
            if (CampaignId != null)
            {
                result.Add("ci", CampaignId);
            }

            // other params available but not usually used for apps
            if (Referrer != null)
            {
                result.Add("dr", Referrer);
            }
            if (DocumentEncoding != null)
            {
                result.Add("de", DocumentEncoding);
            }
            if (GoogleAdWordsId != null)
            {
                result.Add("gclid", GoogleAdWordsId);
            }
            if (GoogleDisplayAdsId != null)
            {
                result.Add("dclid", GoogleDisplayAdsId);
            }
            if (IpOverride != null)
            {
                result.Add("uip", IpOverride);
            }
            if (UserAgentOverride != null)
            {
                result.Add("ua", UserAgentOverride);
            }
            if (DocumentLocationUrl != null)
            {
                result.Add("dl", DocumentLocationUrl);
            }
            if (DocumentHostName != null)
            {
                result.Add("dh", DocumentHostName);
            }
            if (DocumentPath != null)
            {
                result.Add("dp", DocumentPath);
            }
            if (DocumentTitle != null)
            {
                result.Add("dt", DocumentTitle);
            }
            if (LinkId != null)
            {
                result.Add("linkid", LinkId);
            }
            if (ExperimentId != null)
            {
                result.Add("xid", ExperimentId);
            }
            if (ExperimentVariant != null)
            {
                result.Add("xvar", ExperimentVariant);
            }
            if (DataSource != null)
            {
                result.Add("ds", DataSource);
            }
            if (UserId != null)
            {
                result.Add("uid", UserId);
            }
            if (GeographicalId != null)
            {
                result.Add("geoid", GeographicalId);
            }

            foreach (var dimension in CustomDimensions)
            {
                result.Add(string.Format("cd{0}", dimension.Key), dimension.Value);
            }
            foreach (var metric in CustomMetrics)
            {
                result.Add(string.Format("cm{0}", metric.Key), metric.Value.ToString(CultureInfo.InvariantCulture));
            }
            CustomDimensions.Clear();
            CustomMetrics.Clear();

            return(result);
        }