Пример #1
0
        static void Main(string[] args)
        {
            // Instantiate the output delegates.
            HandelGetReportsResponse handlerConsole = WriteResponseToConsole;
            HandelGetReportsResponse handlerFile    = WriteResponseToFile;

            // Setup authentication.
            var scope   = new string[] { Google.Apis.AnalyticsReporting.v4.AnalyticsReportingService.Scope.AnalyticsReadonly };
            var creds   = JsonConvert.DeserializeObject <ServiceAccountCreds>(_file);
            var service = ServiceAccount.AuthenticateServiceAccount(creds.client_email, _credFileName, scope);

            // Create the DateRange object.
            var dateRange = new DateRange()
            {
                StartDate = "2010-01-01", EndDate = "2019-01-01"
            };

            // Create the Metrics object.
            var dimensions = new List <Dimension>()
            {
                new Dimension {
                    Name = "ga:browser"
                },
                new Dimension {
                    Name = "ga:date"
                },
                new Dimension {
                    Name = "ga:userType"
                }
            };

            //Create the Dimensions object.
            var metrics = new List <Metric>()
            {
                new Metric {
                    Expression = "ga:sessions", Alias = "Sessions"
                },
                new Metric {
                    Expression = "ga:users", Alias = "Users"
                },
                new Metric {
                    Expression = "ga:newUsers", Alias = "New Users"
                }
            };

            // Create the ReportRequest object.
            var reportRequest = new ReportRequest
            {
                ViewId     = _viewNumber.ToString(),
                DateRanges = new List <DateRange>()
                {
                    dateRange
                },
                Dimensions = dimensions,
                Metrics    = metrics,
                PageSize   = _pageSize
            };

            var requests = new List <ReportRequest> {
                reportRequest
            };

            // Create the GetReportsRequest object.
            var getReport = new GetReportsRequest()
            {
                ReportRequests = requests
            };

            do
            {
                Console.WriteLine($"Requesting data for Pagetoken: {getReport.ReportRequests.FirstOrDefault().PageToken}");

                // Call the batchGet method.
                var response = service.Reports.BatchGet(getReport).Execute();

                getReport.ReportRequests.FirstOrDefault().PageToken = response.Reports.FirstOrDefault().NextPageToken;

                // Call the delegate.
                handlerConsole(response, null);
                handlerFile(response, new string[] { @".\GAOutPut" });
            } while (getReport.ReportRequests.FirstOrDefault().PageToken != null);


            Console.ReadLine();
        }
        static async Task Main(string[] args)
        {
            // Instantiate the output delegates.
            HandelGetReportsResponse handlerConsole = WriteResponseToConsole;
            HandelGetReportsResponse handlerFile    = WriteResponseToFile;

            // Setup authentication.
            var scope      = new string[] { Google.Apis.AnalyticsReporting.v4.AnalyticsReportingService.Scope.AnalyticsReadonly };
            var credential = Oauth2Example.GetUserCredential(_credFileName, "user", scope);
            var serviceV4  = Oauth2Example.GetAnalyticsReportingService(credential);
            var serviceV3  = Oauth2Example.GetAnalyticsService(credential);

            // get views.
            var summeries = await serviceV3.Management.AccountSummaries.List().ExecuteAsync();

            foreach (var accountSummary in summeries.Items)
            {
                Console.WriteLine($"{accountSummary.Name}");
                foreach (var accountSummaryWebProperty in accountSummary.WebProperties)
                {
                    Console.WriteLine($"     {accountSummaryWebProperty.Name}");
                    foreach (var profileSummary in accountSummaryWebProperty.Profiles)
                    {
                        Console.WriteLine($"          {profileSummary.Name}: {profileSummary.Id }");
                    }
                }
            }

            string requestedView = string.Empty;

            do
            {
                Console.WriteLine($"Please select profile id");
                requestedView = Console.ReadLine();
            } while (!long.TryParse(requestedView, out _viewNumber));

            Console.WriteLine($"Requesting data for: {_viewNumber}");

            // Create the DateRange object.
            var dateRange = new DateRange()
            {
                StartDate = "2010-01-01", EndDate = "2019-01-01"
            };

            // Create the Metrics object.
            var dimensions = new List <Dimension>()
            {
                new Dimension {
                    Name = "ga:browser"
                },
                new Dimension {
                    Name = "ga:date"
                },
                new Dimension {
                    Name = "ga:userType"
                }
            };

            //Create the Dimensions object.
            var metrics = new List <Metric>()
            {
                new Metric {
                    Expression = "ga:sessions", Alias = "Sessions"
                },
                new Metric {
                    Expression = "ga:users", Alias = "Users"
                },
                new Metric {
                    Expression = "ga:newUsers", Alias = "New Users"
                }
            };

            // Create the ReportRequest object.
            var reportRequest = new ReportRequest
            {
                ViewId     = _viewNumber.ToString(),
                DateRanges = new List <DateRange>()
                {
                    dateRange
                },
                Dimensions = dimensions,
                Metrics    = metrics,
                PageSize   = _pageSize
            };

            var requests = new List <ReportRequest> {
                reportRequest
            };

            // Create the GetReportsRequest object.
            var getReport = new GetReportsRequest()
            {
                ReportRequests = requests
            };

            do
            {
                Console.WriteLine($"Requesting data for Pagetoken: {getReport.ReportRequests.FirstOrDefault().PageToken}");

                // Call the batchGet method.
                var response = await serviceV4.Reports.BatchGet(getReport).ExecuteAsync();

                getReport.ReportRequests.FirstOrDefault().PageToken = response.Reports.FirstOrDefault().NextPageToken;

                // Call the delegate.
                handlerConsole(response, null);
                handlerFile(response, new string[] { @".\GAOutPut" });
            } while (getReport.ReportRequests.FirstOrDefault().PageToken != null);


            Console.ReadLine();
        }