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

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

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

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

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

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

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

Включите API администратора Google Analytics.

Настройте Google Cloud

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

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

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

    gcloud components update

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

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

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

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

  • Учетные записи пользователей представляют собой разработчика, администратора или любого другого человека, который взаимодействует с 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"

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

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

  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"

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

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

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

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

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

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

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

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

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

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

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

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

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

  EXPORT PROJECT_ID=PROJECT_ID

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

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

import com.google.analytics.admin.v1beta.Account;
import com.google.analytics.admin.v1beta.AnalyticsAdminServiceClient;
import com.google.analytics.admin.v1beta.AnalyticsAdminServiceClient.ListAccountsPage;
import com.google.analytics.admin.v1beta.AnalyticsAdminServiceClient.ListAccountsPagedResponse;
import com.google.analytics.admin.v1beta.ListAccountsRequest;

/**
 * This application demonstrates the usage of the Analytics Admin API using service account
 * credentials. For more information on service accounts, see
 * https://cloud.google.com/iam/docs/understanding-service-accounts.
 *
 * <p>The following document provides instructions on setting service account credentials for your
 * application: https://cloud.google.com/docs/authentication/production
 *
 * <p>In a nutshell, you need to:
 *
 * <ol>
 *   <li>Create a service account and download the key JSON file as described at
 *       https://cloud.google.com/docs/authentication/production#creating_a_service_account.
 *   <li>Provide service account credentials using one of the following options:
 *       <ul>
 *         <li>Set the {@code GOOGLE_APPLICATION_CREDENTIALS} environment variable. The API client
 *             will use the value of this variable to find the service account key JSON file. See
 *             https://cloud.google.com/docs/authentication/production#setting_the_environment_variable
 *             for more information.
 *             <p>OR
 *         <li>Manually pass the path to the service account key JSON file to the API client by
 *             specifying the {@code keyFilename} parameter in the constructor. See
 *             https://cloud.google.com/docs/authentication/production#passing_the_path_to_the_service_account_key_in_code
 *             for more information.
 *       </ul>
 * </ol>
 *
 * <p>To run this sample using Maven:
 *
 * <pre>{@code
 * cd google-analytics-data
 * mvn compile exec:java -Dexec.mainClass="com.google.analytics.admin.samples.QuickstartSample"
 * }</pre>
 */
public class QuickstartSample {

  public static void main(String... args) throws Exception {
    listAccounts();
  }

  // This is an example snippet that calls the Google Analytics Admin API and lists all Google
  // Analytics accounts available to the authenticated user.
  static void listAccounts() throws Exception {
    // Instantiates a client using default credentials.
    // See https://cloud.google.com/docs/authentication/production for more information
    // about managing credentials.
    try (AnalyticsAdminServiceClient analyticsAdmin = AnalyticsAdminServiceClient.create()) {
      // Calls listAccounts() method of the Google Analytics Admin API and prints
      // the response for each account.
      ListAccountsPagedResponse response =
          analyticsAdmin.listAccounts(ListAccountsRequest.newBuilder().build());
      for (ListAccountsPage page : response.iteratePages()) {
        for (Account account : page.iterateAll()) {
          System.out.printf("Account name: %s%n", account.getName());
          System.out.printf("Display name: %s%n", account.getDisplayName());
          System.out.printf("Country code: %s%n", account.getRegionCode());
          System.out.printf("Create time: %s%n", account.getCreateTime().getSeconds());
          System.out.printf("Update time: %s%n", account.getUpdateTime().getSeconds());
          System.out.println();
        }
      }
    }
  }
}

require 'vendor/autoload.php';

use Google\Analytics\Admin\V1beta\Account;
use Google\Analytics\Admin\V1beta\Client\AnalyticsAdminServiceClient;
use Google\Analytics\Admin\V1beta\ListAccountsRequest;

/**
 * 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.
// See https://cloud.google.com/docs/authentication/production for more information
// about managing credentials.
$client = new AnalyticsAdminServiceClient();

// Calls listAccounts() method of the Google Analytics Admin API and prints
// the response for each account.
$request = new ListAccountsRequest();
$response = $client->listAccounts($request);

print 'Result:' . PHP_EOL;
foreach ($response->iterateAllElements() as $account) {
    print 'Account name: ' . $account->getName() . PHP_EOL;
    print 'Display name: ' . $account->getDisplayName() . PHP_EOL;
    print 'Country code: ' . $account->getRegionCode() . PHP_EOL;
    print 'Create time: ' . $account->getCreateTime()->getSeconds() . PHP_EOL;
    print 'Update time: ' . $account->getUpdateTime()->getSeconds() . PHP_EOL;
}

def list_accounts(transport: str = None):
    """
    Lists the available Google Analytics accounts.

    Args:
        transport(str): The transport to use. For example, "grpc"
            or "rest". If set to None, a transport is chosen automatically.
    """
    from google.analytics.admin import AnalyticsAdminServiceClient

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

    results = client.list_accounts()

    # Displays the configuration information for all Google Analytics accounts
    # available to the authenticated user.
    print("Result:")
    for account in results:
        print(account)

  // Imports the Google Analytics Admin API client library.
  const analyticsAdmin = require('@google-analytics/admin');

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

  // Lists all Google Analytics accounts available to the authenticated user.
  async function listAccounts() {
    // Uses listAccounts() with no arguments to fetch all pages. For more
    // information on pagination in the Node.js library, see:
    // https://github.com/googleapis/gax-nodejs/blob/main/client-libraries.md#auto-pagination
    const [response] = await analyticsAdminClient.listAccounts();

    console.log('Accounts:');
    for (const account of response) {
      console.log('Account name:', account.name);
      console.log('Display name:', account.displayName);
      console.log('Region code:', account.regionCode);
      console.log('Create time:', account.createTime.seconds);
      console.log('Update time:', account.updateTime.seconds);
    }
  }

  listAccounts();

using Google.Analytics.Admin.V1Beta;
using Google.Api.Gax;
using System;

namespace AnalyticsSamples
{
    class QuickStart
    {
        static void Main(string[] args)
        {
            AnalyticsAdminServiceClient client = AnalyticsAdminServiceClient.Create();
            PagedEnumerable<ListAccountsResponse, Account> response =
                client.ListAccounts( new ListAccountsRequest() );
            foreach( Account account in response )
            {
                Console.WriteLine("Account name: {0}", account.Name);
                Console.WriteLine("Display name: {0}", account.DisplayName);
                Console.WriteLine("Region code: {0}", account.RegionCode);
                Console.WriteLine("Update time: {0}", account.UpdateTime);
                Console.WriteLine("Create time: {0}", account.CreateTime);
                Console.WriteLine();
            }
        }
    }
}

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

curl -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
  -H "x-goog-user-project: ${PROJECT_ID}" \
  -H "Content-Type: application/json" \
  https://analyticsadmin.googleapis.com/v1beta/accounts

В ответе примера кода перечислены учетные записи Google Analytics, к просмотру которых имеет доступ ваш пользователь или сервисный аккаунт:

{
  "accounts": [
    {
      "name": "accounts/123456789",
      "createTime": "2025-01-01T00:12:23.456Z",
      "createTime": "2025-01-01T00:12:23.456Z",
      "displayName": "Demo Account",
      "regionCode": "US",
      "gmpOrganization": "marketingplatformadmin.googleapis.com/organizations/abcdef12345678"
    }
}