Я пытаюсь получить данные в реальном времени из Google Analytics Real Time Reporting API (Google.Apis.Analytics.v3), следующий код работает нормально и получает активных пользователей.

Что я не могу понять, так это как получить данные из измерений?

Fx. это измерение: rt: deviceCategory, у него нет метрики в соответствии со следующим: https://developers.google.com/analytics/devguides/reporting/realtime/dimsmets/

Если бы кто-нибудь мог указать мне в правильном направлении, я был бы очень признателен.

            var credential = GetCredential().Result;
            using (var svc = new AnalyticsService(
                new BaseClientService.Initializer
                {
                    HttpClientInitializer = credential,
                    ApplicationName = "Google Analytics API Console"
                })
            )
            {
                GetRequest request;
                RealtimeData response;

                request = svc.Data.Realtime.Get("ga:XXXXX", "rt:activeUsers");         
                response = request.Execute();
                foreach (var row in response.Rows)
                {
                    foreach (string col in row)
                    {
                        Console.Write(col + " ");  // writes the value of the column
                    }
                    Console.Write("\r\n");
                }
0
Jesper 4 Ноя 2018 в 01:35

1 ответ

Лучший ответ

Я нашел ответ здесь: https://github.com/LindaLawton/Google-Dotnet-Samples/tree/Genreated-samples1.0/Google%20Analytics%20API/v3

RealtimeSample.cs может добавлять измерения в Real Time API, просто нужно изменить номер строки. 127 к:

if (piShared != null && property.GetValue(optional, null) != null) // TODO Test that we do not add values for items that are null

И извлеките выгоду из службы analyticsService в нескольких местах. Затем используйте как:

                RealtimeSample.RealtimeGetOptionalParms param = new RealtimeSample.RealtimeGetOptionalParms();
                param.Dimensions = "rt:deviceCategory";
                response = RealtimeSample.Get(svc, "ga:XXXXX", "rt:activeUsers", param);
                foreach (var row in response.Rows)
                {
                    foreach (string col in row)
                    {
                        Console.Write(col + " ");  // writes the value of the column
                    }
                    Console.Write("\r\n");
                }
0
Jesper 4 Ноя 2018 в 18:53