AnalyticsApi.AnalyticsGoalParser.ParseVisits C# (CSharp) Method

ParseVisits() public method

public ParseVisits ( string xml ) : int
xml string
return int
        public int ParseVisits(string xml)
        {
            //<dxp:metric confidenceInterval='0.0' name='ga:visits' type='integer' value='3733'/>
            var visits = 0;

            var doc = XDocument.Parse(xml);
            var ns = doc.Root.GetDefaultNamespace();
            var prefix = doc.Root.GetNamespaceOfPrefix("dxp");

            var nodes = doc.Root.Descendants(ns + "entry");

            if (nodes.Any())
            {
                var node = nodes.First();
                var metrics = node.Descendants(prefix + "metric");
                foreach(var metric in metrics)
                {
                    if(metric.Attribute("name").Value == "ga:visits")
                    {
                        var value = metric.Attribute("value").Value;
                        visits = int.Parse(value);
                    }
                }
            }

            return visits;
        }

Usage Example

        public IEnumerable <Goal> GetGoalCompletions(IEnumerable <Goal> goals, string start, string end)
        {
            var metrics = "ga%3Avisits,";

            foreach (var goal in goals)
            {
                metrics += "ga%3Agoal" + goal.Number + "Completions,";
            }

            metrics = metrics.TrimEnd(',');

            var data = _dataProvider.SendRequest(_token, "https://www.google.com/analytics/feeds/data?ids=ga%3A" + _profile.Value + "&metrics=" + metrics + "&start-date=" + start + "&end-date=" + end + "&max-results=50");

            var parser = new AnalyticsGoalParser();
            var visits = parser.ParseVisits(data);

            var completions = parser.ParseCompletions(data);

            foreach (var completion in completions)
            {
                var goal = goals.FirstOrDefault(x => x.Number == completion.Key);
                goal.Completions    = completion.Value;
                goal.ConversionRate = Math.Round((completion.Value / (double)visits) * 100, 2);

                yield return(goal);
            }
        }
All Usage Examples Of AnalyticsApi.AnalyticsGoalParser::ParseVisits