Краткое руководство для разработчиков Google Analytics Data API v1, Краткое руководство для разработчиков Google Analytics Data API v1

В этом кратком руководстве вы создадите и отправите запросы list в Google Analytics Data API v1, а затем просмотрите ответы, чтобы настроить и подтвердить доступ к API.

Вы можете выполнить это краткое руководство, используя SDK или REST API в своей локальной среде или экземпляр виртуальной машины Google Cloud .

Вот краткое описание шагов:

  • Настройте проект Google Cloud и включите API данных Google Analytics v1.
  • На локальном компьютере или экземпляре Cloud VM:
    • Установите, инициализируйте и выполните аутентификацию в Google Cloud.
    • Установите SDK для вашего языка (необязательно).
  • Настройте аутентификацию.
  • Настройте доступ к Google Analytics.
  • Настройте SDK.
  • Сделайте вызов API.

Настройка проекта Google Cloud

Нажмите следующую кнопку «Включить API данных Google Analytics v1» , чтобы выбрать или создать новый проект Google Cloud и автоматически включить API данных Google Analytics v1.

Включите API данных Google Analytics v1.

Настройте Google Cloud

На локальном компьютере или экземпляре Cloud VM настройте Google Cloud и выполните аутентификацию.

  1. Установите и инициализируйте Google Cloud.

  2. Чтобы убедиться, что ваши компоненты gcloud обновлены, выполните следующую команду.

    gcloud components update

Чтобы не предоставлять идентификатор вашего проекта в Google Cloud, вы можете использовать команду gcloud config set , чтобы установить проект и регион по умолчанию.

Настройка аутентификации

В этом кратком руководстве используются учетные данные приложения по умолчанию для автоматического поиска учетных данных на основе среды приложения, поэтому вам не нужно изменять код клиента для аутентификации.

API данных Google Analytics v1 поддерживает учетные записи пользователей и учетные записи служб :

  • Учетные записи пользователей представляют собой разработчика, администратора или любого другого человека, который взаимодействует с API и службами Google.
  • Учетные записи служб не представляют конкретного пользователя-человека. Они предоставляют способ управления аутентификацией и авторизацией, когда человек не участвует напрямую, например, когда приложению требуется доступ к ресурсам Google Cloud.

Дополнительные сведения об аутентификации и настройке учетных данных для вашего приложения см. в разделе Методы аутентификации в Google .

Учетная запись пользователя

Создайте локальный файл учетных данных приложения по умолчанию (ADC), выполнив следующую команду. Эта команда запускает веб-поток, в котором вы предоставляете свои учетные данные пользователя.

  gcloud auth application-default login --scopes="https://www.googleapis.com/auth/cloud-platform,https://www.googleapis.com/auth/analytics.readonly"

Не забудьте указать в команде области, необходимые для Google Analytics Data API v1. Дополнительные сведения см. в разделе Настройка учетных данных приложения по умолчанию.

Сервисный аккаунт

Ниже приведены шаги для аутентификации с помощью учетной записи службы с использованием экземпляра Cloud VM:

  1. Создайте учетную запись службы .
  2. Прикрепите учетную запись службы к экземпляру Cloud VM, выполнив следующую команду CLI gcloud:
  gcloud compute instances stop YOUR-VM-INSTANCE-ID

  gcloud compute instances set-service-account YOUR-VM-INSTANCE-ID \
    --service-account YOUR-SERVICE-ACCOUNT-EMAIL-ALIAS  \
    --scopes="https://www.googleapis.com/auth/cloud-platform,https://www.googleapis.com/auth/analytics.readonly"

Не забудьте указать в команде области, необходимые для Google Analytics Data API v1. Дополнительные сведения см. в разделе Настройка учетных данных приложения по умолчанию.

Настройте доступ к Google Analytics

Предоставьте Google Analytics доступ к электронной почте, связанной с вашей учетной записью пользователя или службы.

Настройте SDK для вашего языка программирования.

На локальном компьютере установите SDK для вашего языка программирования.

Ява

Руководство по установке клиентской библиотеки Java

PHP

Руководство по установке клиентской библиотеки PHP

Питон

Руководство по установке клиентской библиотеки Python

Node.js

Руководство по установке клиентской библиотеки Node.js

.СЕТЬ

Руководство по установке клиентской библиотеки .NET

Руби

Руководство по установке клиентской библиотеки Ruby

Идти

go get google.golang.org/genproto/googleapis/analytics/data/v1beta

ОТДЫХ

Настройте переменные среды, введя следующее. Замените PROJECT_ID на идентификатор вашего проекта Google Cloud, а PROPERTY_ID на идентификатор вашего ресурса Google Analytics.

  export PROJECT_ID=PROJECT_ID
  export PROPERTY_ID=PROPERTY_ID

Сделать вызов API

Запустите следующий код, чтобы сделать первый звонок:

Ява

import com.google.analytics.data.v1beta.BetaAnalyticsDataClient;
import com.google.analytics.data.v1beta.DateRange;
import com.google.analytics.data.v1beta.Dimension;
import com.google.analytics.data.v1beta.Metric;
import com.google.analytics.data.v1beta.Row;
import com.google.analytics.data.v1beta.RunReportRequest;
import com.google.analytics.data.v1beta.RunReportResponse;

/**
 * Google Analytics Data API sample quickstart application.
 *
 * <p>This application demonstrates the usage of the Analytics Data API using service account
 * credentials.
 *
 * <p>Before you start the application, please review the comments starting with "TODO(developer)"
 * and update the code to use correct values.
 *
 * <p>To run this sample using Maven:
 *
 * <pre>{@code
 * cd google-analytics-data
 * mvn compile exec:java -Dexec.mainClass="com.google.analytics.data.samples.QuickstartSample"
 * }</pre>
 */
public class QuickstartSample {

  public static void main(String... args) throws Exception {
    /**
     * TODO(developer): Replace this variable with your Google Analytics 4 property ID before
     * running the sample.
     */
    String propertyId = "YOUR-GA4-PROPERTY-ID";
    sampleRunReport(propertyId);
  }

  // This is an example snippet that calls the Google Analytics Data API and runs a simple report
  // on the provided GA4 property id.
  static void sampleRunReport(String propertyId) throws Exception {
    // Using a default constructor instructs the client to use the credentials
    // specified in GOOGLE_APPLICATION_CREDENTIALS environment variable.
    try (BetaAnalyticsDataClient analyticsData = BetaAnalyticsDataClient.create()) {

      RunReportRequest request =
          RunReportRequest.newBuilder()
              .setProperty("properties/" + propertyId)
              .addDimensions(Dimension.newBuilder().setName("city"))
              .addMetrics(Metric.newBuilder().setName("activeUsers"))
              .addDateRanges(DateRange.newBuilder().setStartDate("2020-03-31").setEndDate("today"))
              .build();

      // Make the request.
      RunReportResponse response = analyticsData.runReport(request);

      System.out.println("Report result:");
      // Iterate through every row of the API response.
      for (Row row : response.getRowsList()) {
        System.out.printf(
            "%s, %s%n", row.getDimensionValues(0).getValue(), row.getMetricValues(0).getValue());
      }
    }
  }
}

PHP

require 'vendor/autoload.php';

use Google\Analytics\Data\V1beta\Client\BetaAnalyticsDataClient;
use Google\Analytics\Data\V1beta\DateRange;
use Google\Analytics\Data\V1beta\Dimension;
use Google\Analytics\Data\V1beta\Metric;
use Google\Analytics\Data\V1beta\RunReportRequest;

/**
 * TODO(developer): Replace this variable with your Google Analytics 4
 *   property ID before running the sample.
 */
$property_id = 'YOUR-GA4-PROPERTY-ID';

// Using a default constructor instructs the client to use the credentials
// specified in GOOGLE_APPLICATION_CREDENTIALS environment variable.
$client = new BetaAnalyticsDataClient();

// Make an API call.
$request = (new RunReportRequest())
    ->setProperty('properties/' . $property_id)
    ->setDateRanges([
        new DateRange([
            'start_date' => '2020-03-31',
            'end_date' => 'today',
        ]),
    ])
    ->setDimensions([new Dimension([
            'name' => 'city',
        ]),
    ])
    ->setMetrics([new Metric([
            'name' => 'activeUsers',
        ])
    ]);
$response = $client->runReport($request);

// Print results of an API call.
print 'Report result: ' . PHP_EOL;

foreach ($response->getRows() as $row) {
    print $row->getDimensionValues()[0]->getValue()
        . ' ' . $row->getMetricValues()[0]->getValue() . PHP_EOL;
}

Питон

from google.analytics.data_v1beta import BetaAnalyticsDataClient
from google.analytics.data_v1beta.types import (
    DateRange,
    Dimension,
    Metric,
    RunReportRequest,
)


def sample_run_report(property_id="YOUR-GA4-PROPERTY-ID"):
    """Runs a simple report on a Google Analytics 4 property."""
    # TODO(developer): Uncomment this variable and replace with your
    #  Google Analytics 4 property ID before running the sample.
    # property_id = "YOUR-GA4-PROPERTY-ID"

    # Using a default constructor instructs the client to use the credentials
    # specified in GOOGLE_APPLICATION_CREDENTIALS environment variable.
    client = BetaAnalyticsDataClient()

    request = RunReportRequest(
        property=f"properties/{property_id}",
        dimensions=[Dimension(name="city")],
        metrics=[Metric(name="activeUsers")],
        date_ranges=[DateRange(start_date="2020-03-31", end_date="today")],
    )
    response = client.run_report(request)

    print("Report result:")
    for row in response.rows:
        print(row.dimension_values[0].value, row.metric_values[0].value)

Node.js

  /**
   * TODO(developer): Uncomment this variable and replace with your
   *   Google Analytics 4 property ID before running the sample.
   */
  // propertyId = 'YOUR-GA4-PROPERTY-ID';

  // Imports the Google Analytics Data API client library.
  const {BetaAnalyticsDataClient} = require('@google-analytics/data');

  // Using a default constructor instructs the client to use the credentials
  // specified in GOOGLE_APPLICATION_CREDENTIALS environment variable.
  const analyticsDataClient = new BetaAnalyticsDataClient();

  // Runs a simple report.
  async function runReport() {
    const [response] = await analyticsDataClient.runReport({
      property: `properties/${propertyId}`,
      dateRanges: [
        {
          startDate: '2020-03-31',
          endDate: 'today',
        },
      ],
      dimensions: [
        {
          name: 'city',
        },
      ],
      metrics: [
        {
          name: 'activeUsers',
        },
      ],
    });

    console.log('Report result:');
    response.rows.forEach((row) => {
      console.log(row.dimensionValues[0], row.metricValues[0]);
    });
  }

  runReport();

.СЕТЬ

using Google.Analytics.Data.V1Beta;
using System;

namespace AnalyticsSamples
{
    class QuickStart
    {
        static void SampleRunReport(string propertyId="YOUR-GA4-PROPERTY-ID")
        {
            /**
             * TODO(developer): Uncomment this variable and replace with your
             *  Google Analytics 4 property ID before running the sample.
             */
            // propertyId = "YOUR-GA4-PROPERTY-ID";

            // Using a default constructor instructs the client to use the credentials
            // specified in GOOGLE_APPLICATION_CREDENTIALS environment variable.
            BetaAnalyticsDataClient client = BetaAnalyticsDataClient.Create();

            // Initialize request argument(s)
            RunReportRequest request = new RunReportRequest
            {
                Property = "properties/" + propertyId,
                Dimensions = { new Dimension{ Name="city"}, },
                Metrics = { new Metric{ Name="activeUsers"}, },
                DateRanges = { new DateRange{ StartDate="2020-03-31", EndDate="today"}, },
            };

            // Make the request
            RunReportResponse response = client.RunReport(request);

            Console.WriteLine("Report result:");
            foreach(Row row in response.Rows)
            {
                Console.WriteLine("{0}, {1}", row.DimensionValues[0].Value, row.MetricValues[0].Value);
            }
        }
        static int Main(string[] args)
        {
            if (args.Length > 0) {
                SampleRunReport(args[0]);
            } else {
                SampleRunReport();
            }
            return 0;
        }
    }
}

ОТДЫХ

Чтобы отправить этот запрос, запустите команду Curl из командной строки или включите вызов REST в свое приложение.

curl -X POST \
  -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
  -H "x-goog-user-project: ${PROJECT_ID}" \
  -H "Content-Type: application/json" \
  -d '
  {
    "dateRanges": [
      {
        "startDate": "2025-01-01",
        "endDate": "2025-02-01"
      }
    ],
    "dimensions": [
      {
        "name": "country"
      }
    ],
    "metrics": [
      {
        "name": "activeUsers"
      }
    ]
  }'  https://analyticsdata.googleapis.com/v1beta/properties/${PROPERTY_ID}:runReport

В ответе будет отчет с активными пользователями с разбивкой по странам, например:

{
  "dimensionHeaders": [
    {
      "name": "country"
    }
  ],
  "metricHeaders": [
    {
      "name": "activeUsers",
      "type": "TYPE_INTEGER"
    }
  ],
  "rows": [
    {
      "dimensionValues": [
        {
          "value": "United States"
        }
      ],
      "metricValues": [
        {
          "value": "3242"
        }
      ]
    },
    {
      "dimensionValues": [
        {
          "value": "(not set)"
        }
      ],
      "metricValues": [
        {
          "value": "3015"
        }
      ]
    },
    {
      "dimensionValues": [
        {
          "value": "India"
        }
      ],
      "metricValues": [
        {
          "value": "805"
        }
      ]
    }
  ],
  "rowCount": 3,
  "metadata": {
    "currencyCode": "USD",
    "timeZone": "America/Los_Angeles"
  },
  "kind": "analyticsData#runReport"
}
,

В этом кратком руководстве вы создадите и отправите запросы list в Google Analytics Data API v1, а затем просмотрите ответы, чтобы настроить и подтвердить доступ к API.

Вы можете выполнить это краткое руководство, используя SDK или REST API в своей локальной среде или экземпляр виртуальной машины Google Cloud .

Вот краткое описание шагов:

  • Настройте проект Google Cloud и включите API данных Google Analytics v1.
  • На локальном компьютере или экземпляре Cloud VM:
    • Установите, инициализируйте и выполните аутентификацию в Google Cloud.
    • Установите SDK для вашего языка (необязательно).
  • Настройте аутентификацию.
  • Настройте доступ к Google Analytics.
  • Настройте SDK.
  • Сделайте вызов API.

Настройка проекта Google Cloud

Нажмите следующую кнопку «Включить API данных Google Analytics v1» , чтобы выбрать или создать новый проект Google Cloud и автоматически включить API данных Google Analytics v1.

Включите API данных Google Analytics v1.

Настройте Google Cloud

На локальном компьютере или экземпляре Cloud VM настройте Google Cloud и выполните аутентификацию.

  1. Установите и инициализируйте Google Cloud.

  2. Чтобы убедиться, что ваши компоненты gcloud обновлены, выполните следующую команду.

    gcloud components update

Чтобы не предоставлять идентификатор вашего проекта в Google Cloud, вы можете использовать команду gcloud config set , чтобы установить проект и регион по умолчанию.

Настройка аутентификации

В этом кратком руководстве используются учетные данные приложения по умолчанию для автоматического поиска учетных данных на основе среды приложения, поэтому вам не нужно изменять код клиента для аутентификации.

API данных Google Analytics v1 поддерживает учетные записи пользователей и учетные записи служб :

  • Учетные записи пользователей представляют собой разработчика, администратора или любого другого человека, который взаимодействует с API и службами Google.
  • Учетные записи служб не представляют конкретного пользователя-человека. Они предоставляют способ управления аутентификацией и авторизацией, когда человек не участвует напрямую, например, когда приложению требуется доступ к ресурсам Google Cloud.

Дополнительные сведения об аутентификации и настройке учетных данных для вашего приложения см. в разделе Методы аутентификации в Google .

Учетная запись пользователя

Создайте локальный файл учетных данных приложения по умолчанию (ADC), выполнив следующую команду. Эта команда запускает веб-поток, в котором вы предоставляете свои учетные данные пользователя.

  gcloud auth application-default login --scopes="https://www.googleapis.com/auth/cloud-platform,https://www.googleapis.com/auth/analytics.readonly"

Не забудьте указать в команде области, необходимые для Google Analytics Data API v1. Дополнительные сведения см. в разделе Настройка учетных данных приложения по умолчанию.

Сервисный аккаунт

Ниже приведены шаги для аутентификации с помощью учетной записи службы с использованием экземпляра Cloud VM:

  1. Создайте учетную запись службы .
  2. Прикрепите учетную запись службы к экземпляру Cloud VM, выполнив следующую команду CLI gcloud:
  gcloud compute instances stop YOUR-VM-INSTANCE-ID

  gcloud compute instances set-service-account YOUR-VM-INSTANCE-ID \
    --service-account YOUR-SERVICE-ACCOUNT-EMAIL-ALIAS  \
    --scopes="https://www.googleapis.com/auth/cloud-platform,https://www.googleapis.com/auth/analytics.readonly"

Не забудьте указать в команде области, необходимые для Google Analytics Data API v1. Дополнительные сведения см. в разделе Настройка учетных данных приложения по умолчанию.

Настройте доступ к Google Analytics

Предоставьте Google Analytics доступ к электронной почте, связанной с вашей учетной записью пользователя или службы.

Настройте SDK для вашего языка программирования.

На локальном компьютере установите SDK для вашего языка программирования.

Ява

Руководство по установке клиентской библиотеки Java

PHP

Руководство по установке клиентской библиотеки PHP

Питон

Руководство по установке клиентской библиотеки Python

Node.js

Руководство по установке клиентской библиотеки Node.js

.СЕТЬ

Руководство по установке клиентской библиотеки .NET

Руби

Руководство по установке клиентской библиотеки Ruby

Идти

go get google.golang.org/genproto/googleapis/analytics/data/v1beta

ОТДЫХ

Настройте переменные среды, введя следующее. Замените PROJECT_ID на идентификатор вашего проекта Google Cloud, а PROPERTY_ID на идентификатор вашего ресурса Google Analytics.

  export PROJECT_ID=PROJECT_ID
  export PROPERTY_ID=PROPERTY_ID

Сделать вызов API

Запустите следующий код, чтобы сделать первый звонок:

Ява

import com.google.analytics.data.v1beta.BetaAnalyticsDataClient;
import com.google.analytics.data.v1beta.DateRange;
import com.google.analytics.data.v1beta.Dimension;
import com.google.analytics.data.v1beta.Metric;
import com.google.analytics.data.v1beta.Row;
import com.google.analytics.data.v1beta.RunReportRequest;
import com.google.analytics.data.v1beta.RunReportResponse;

/**
 * Google Analytics Data API sample quickstart application.
 *
 * <p>This application demonstrates the usage of the Analytics Data API using service account
 * credentials.
 *
 * <p>Before you start the application, please review the comments starting with "TODO(developer)"
 * and update the code to use correct values.
 *
 * <p>To run this sample using Maven:
 *
 * <pre>{@code
 * cd google-analytics-data
 * mvn compile exec:java -Dexec.mainClass="com.google.analytics.data.samples.QuickstartSample"
 * }</pre>
 */
public class QuickstartSample {

  public static void main(String... args) throws Exception {
    /**
     * TODO(developer): Replace this variable with your Google Analytics 4 property ID before
     * running the sample.
     */
    String propertyId = "YOUR-GA4-PROPERTY-ID";
    sampleRunReport(propertyId);
  }

  // This is an example snippet that calls the Google Analytics Data API and runs a simple report
  // on the provided GA4 property id.
  static void sampleRunReport(String propertyId) throws Exception {
    // Using a default constructor instructs the client to use the credentials
    // specified in GOOGLE_APPLICATION_CREDENTIALS environment variable.
    try (BetaAnalyticsDataClient analyticsData = BetaAnalyticsDataClient.create()) {

      RunReportRequest request =
          RunReportRequest.newBuilder()
              .setProperty("properties/" + propertyId)
              .addDimensions(Dimension.newBuilder().setName("city"))
              .addMetrics(Metric.newBuilder().setName("activeUsers"))
              .addDateRanges(DateRange.newBuilder().setStartDate("2020-03-31").setEndDate("today"))
              .build();

      // Make the request.
      RunReportResponse response = analyticsData.runReport(request);

      System.out.println("Report result:");
      // Iterate through every row of the API response.
      for (Row row : response.getRowsList()) {
        System.out.printf(
            "%s, %s%n", row.getDimensionValues(0).getValue(), row.getMetricValues(0).getValue());
      }
    }
  }
}

PHP

require 'vendor/autoload.php';

use Google\Analytics\Data\V1beta\Client\BetaAnalyticsDataClient;
use Google\Analytics\Data\V1beta\DateRange;
use Google\Analytics\Data\V1beta\Dimension;
use Google\Analytics\Data\V1beta\Metric;
use Google\Analytics\Data\V1beta\RunReportRequest;

/**
 * TODO(developer): Replace this variable with your Google Analytics 4
 *   property ID before running the sample.
 */
$property_id = 'YOUR-GA4-PROPERTY-ID';

// Using a default constructor instructs the client to use the credentials
// specified in GOOGLE_APPLICATION_CREDENTIALS environment variable.
$client = new BetaAnalyticsDataClient();

// Make an API call.
$request = (new RunReportRequest())
    ->setProperty('properties/' . $property_id)
    ->setDateRanges([
        new DateRange([
            'start_date' => '2020-03-31',
            'end_date' => 'today',
        ]),
    ])
    ->setDimensions([new Dimension([
            'name' => 'city',
        ]),
    ])
    ->setMetrics([new Metric([
            'name' => 'activeUsers',
        ])
    ]);
$response = $client->runReport($request);

// Print results of an API call.
print 'Report result: ' . PHP_EOL;

foreach ($response->getRows() as $row) {
    print $row->getDimensionValues()[0]->getValue()
        . ' ' . $row->getMetricValues()[0]->getValue() . PHP_EOL;
}

Питон

from google.analytics.data_v1beta import BetaAnalyticsDataClient
from google.analytics.data_v1beta.types import (
    DateRange,
    Dimension,
    Metric,
    RunReportRequest,
)


def sample_run_report(property_id="YOUR-GA4-PROPERTY-ID"):
    """Runs a simple report on a Google Analytics 4 property."""
    # TODO(developer): Uncomment this variable and replace with your
    #  Google Analytics 4 property ID before running the sample.
    # property_id = "YOUR-GA4-PROPERTY-ID"

    # Using a default constructor instructs the client to use the credentials
    # specified in GOOGLE_APPLICATION_CREDENTIALS environment variable.
    client = BetaAnalyticsDataClient()

    request = RunReportRequest(
        property=f"properties/{property_id}",
        dimensions=[Dimension(name="city")],
        metrics=[Metric(name="activeUsers")],
        date_ranges=[DateRange(start_date="2020-03-31", end_date="today")],
    )
    response = client.run_report(request)

    print("Report result:")
    for row in response.rows:
        print(row.dimension_values[0].value, row.metric_values[0].value)

Node.js

  /**
   * TODO(developer): Uncomment this variable and replace with your
   *   Google Analytics 4 property ID before running the sample.
   */
  // propertyId = 'YOUR-GA4-PROPERTY-ID';

  // Imports the Google Analytics Data API client library.
  const {BetaAnalyticsDataClient} = require('@google-analytics/data');

  // Using a default constructor instructs the client to use the credentials
  // specified in GOOGLE_APPLICATION_CREDENTIALS environment variable.
  const analyticsDataClient = new BetaAnalyticsDataClient();

  // Runs a simple report.
  async function runReport() {
    const [response] = await analyticsDataClient.runReport({
      property: `properties/${propertyId}`,
      dateRanges: [
        {
          startDate: '2020-03-31',
          endDate: 'today',
        },
      ],
      dimensions: [
        {
          name: 'city',
        },
      ],
      metrics: [
        {
          name: 'activeUsers',
        },
      ],
    });

    console.log('Report result:');
    response.rows.forEach((row) => {
      console.log(row.dimensionValues[0], row.metricValues[0]);
    });
  }

  runReport();

.СЕТЬ

using Google.Analytics.Data.V1Beta;
using System;

namespace AnalyticsSamples
{
    class QuickStart
    {
        static void SampleRunReport(string propertyId="YOUR-GA4-PROPERTY-ID")
        {
            /**
             * TODO(developer): Uncomment this variable and replace with your
             *  Google Analytics 4 property ID before running the sample.
             */
            // propertyId = "YOUR-GA4-PROPERTY-ID";

            // Using a default constructor instructs the client to use the credentials
            // specified in GOOGLE_APPLICATION_CREDENTIALS environment variable.
            BetaAnalyticsDataClient client = BetaAnalyticsDataClient.Create();

            // Initialize request argument(s)
            RunReportRequest request = new RunReportRequest
            {
                Property = "properties/" + propertyId,
                Dimensions = { new Dimension{ Name="city"}, },
                Metrics = { new Metric{ Name="activeUsers"}, },
                DateRanges = { new DateRange{ StartDate="2020-03-31", EndDate="today"}, },
            };

            // Make the request
            RunReportResponse response = client.RunReport(request);

            Console.WriteLine("Report result:");
            foreach(Row row in response.Rows)
            {
                Console.WriteLine("{0}, {1}", row.DimensionValues[0].Value, row.MetricValues[0].Value);
            }
        }
        static int Main(string[] args)
        {
            if (args.Length > 0) {
                SampleRunReport(args[0]);
            } else {
                SampleRunReport();
            }
            return 0;
        }
    }
}

ОТДЫХ

Чтобы отправить этот запрос, запустите команду Curl из командной строки или включите вызов REST в свое приложение.

curl -X POST \
  -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
  -H "x-goog-user-project: ${PROJECT_ID}" \
  -H "Content-Type: application/json" \
  -d '
  {
    "dateRanges": [
      {
        "startDate": "2025-01-01",
        "endDate": "2025-02-01"
      }
    ],
    "dimensions": [
      {
        "name": "country"
      }
    ],
    "metrics": [
      {
        "name": "activeUsers"
      }
    ]
  }'  https://analyticsdata.googleapis.com/v1beta/properties/${PROPERTY_ID}:runReport

В ответе будет отчет с активными пользователями с разбивкой по странам, например:

{
  "dimensionHeaders": [
    {
      "name": "country"
    }
  ],
  "metricHeaders": [
    {
      "name": "activeUsers",
      "type": "TYPE_INTEGER"
    }
  ],
  "rows": [
    {
      "dimensionValues": [
        {
          "value": "United States"
        }
      ],
      "metricValues": [
        {
          "value": "3242"
        }
      ]
    },
    {
      "dimensionValues": [
        {
          "value": "(not set)"
        }
      ],
      "metricValues": [
        {
          "value": "3015"
        }
      ]
    },
    {
      "dimensionValues": [
        {
          "value": "India"
        }
      ],
      "metricValues": [
        {
          "value": "805"
        }
      ]
    }
  ],
  "rowCount": 3,
  "metadata": {
    "currencyCode": "USD",
    "timeZone": "America/Los_Angeles"
  },
  "kind": "analyticsData#runReport"
}