Краткое руководство: управление связями аккаунтов Google Analytics с помощью API администратора Google Платформа для маркетинга

В этом кратком руководстве вы создадите запросы к API администратора Google Платформа для маркетинга и просмотрите ответы, содержащие список аккаунтов Google Analytics, связанных с указанной организацией Google Платформа для маркетинга.

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

Предварительные условия

Для завершения этого краткого руководства вам необходимо:

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

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

Настройте свой проект Google Cloud и включите API администратора Google Платформа для маркетинга.

Нажмите эту кнопку, чтобы выбрать или создать новый проект Google Cloud и автоматически включить API администратора Google Платформа для маркетинга:

Включите API администратора Google Платформы для маркетинга.

Настройте облако Google

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

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

  2. Если вы ранее установили Google Cloud, убедитесь, что ваши компоненты gcloud обновлены, выполнив эту команду.

    gcloud components update
  3. Для аутентификации в Google Cloud создайте локальный файл учетных данных приложения по умолчанию (ADC), выполнив эту команду. Веб-поток, запускаемый командой, используется для предоставления ваших учетных данных пользователя.

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

    Обратите внимание, как в команде указываются области действия, необходимые для API администратора Google Платформа для маркетинга.

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

Для API администратора Google Платформа для маркетинга требуется проект квоты, который не установлен по умолчанию. Чтобы узнать, как настроить проект квоты, см. Руководство по учетным данным пользователя .

Укажите идентификатор своей организации Google Платформа для маркетинга.

Чтобы использовать API администратора Google Платформа для маркетинга, вам необходимо указать идентификатор своей организации Google Платформа для маркетинга. Войдите в Google Платформу для маркетинга , перейдите в диалоговое окно «Администрирование» , выберите свою организацию и запишите идентификатор организации в разделе «Сведения об организации» .

Все запросы к API администратора Google Платформа для маркетинга должны включать идентификатор организации в формате organizations/ORGANIZATION_ID .

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

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

Ява

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

PHP

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

Питон

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

Node.js

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

.СЕТЬ

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

Руби

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

ОТДЫХ

Настройте переменные среды, введя следующее.

  1. Замените ORGANIZATION_ID на идентификатор вашей организации Google Платформа для маркетинга.
  2. Замените PROJECT_ID на идентификатор вашего проекта Google Cloud.

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

Теперь вы можете использовать API Google Платформа для маркетинга, чтобы указать ссылку аккаунтов Google Analytics на указанную организацию Google Платформа для маркетинга. Запустите следующий код, чтобы выполнить первый вызов API:

Ява

Удалите вызовы .setPageSize и .setPageToken при запуске краткого руководства.

import com.google.ads.marketingplatform.admin.v1alpha.AnalyticsAccountLink;
import com.google.ads.marketingplatform.admin.v1alpha.ListAnalyticsAccountLinksRequest;
import com.google.ads.marketingplatform.admin.v1alpha.MarketingplatformAdminServiceClient;
import com.google.ads.marketingplatform.admin.v1alpha.OrganizationName;

public class SyncListAnalyticsAccountLinks {

  public static void main(String[] args) throws Exception {
    syncListAnalyticsAccountLinks();
  }

  public static void syncListAnalyticsAccountLinks() throws Exception {
    // This snippet has been automatically generated and should be regarded as a code template only.
    // It will require modifications to work:
    // - It may require correct/in-range values for request initialization.
    // - It may require specifying regional endpoints when creating the service client as shown in
    // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
    try (MarketingplatformAdminServiceClient marketingplatformAdminServiceClient =
        MarketingplatformAdminServiceClient.create()) {
      ListAnalyticsAccountLinksRequest request =
          ListAnalyticsAccountLinksRequest.newBuilder()
              .setParent(OrganizationName.of("[ORGANIZATION]").toString())
              .setPageSize(883849137)
              .setPageToken("pageToken873572522")
              .build();
      for (AnalyticsAccountLink element :
          marketingplatformAdminServiceClient.listAnalyticsAccountLinks(request).iterateAll()) {
        // doThingsWith(element);
      }
    }
  }
}

PHP

use Google\Ads\MarketingPlatform\Admin\V1alpha\AnalyticsAccountLink;
use Google\Ads\MarketingPlatform\Admin\V1alpha\Client\MarketingplatformAdminServiceClient;
use Google\Ads\MarketingPlatform\Admin\V1alpha\ListAnalyticsAccountLinksRequest;
use Google\ApiCore\ApiException;
use Google\ApiCore\PagedListResponse;

/**
 * Lists the Google Analytics accounts link to the specified Google Marketing
 * Platform organization.
 *
 * @param string $formattedParent The parent organization, which owns this collection of Analytics
 *                                account links. Format: organizations/{org_id}
 *                                Please see {@see MarketingplatformAdminServiceClient::organizationName()} for help formatting this field.
 */
function list_analytics_account_links_sample(string $formattedParent): void
{
    // Create a client.
    $marketingplatformAdminServiceClient = new MarketingplatformAdminServiceClient();

    // Prepare the request message.
    $request = (new ListAnalyticsAccountLinksRequest())
        ->setParent($formattedParent);

    // Call the API and handle any network failures.
    try {
        /** @var PagedListResponse $response */
        $response = $marketingplatformAdminServiceClient->listAnalyticsAccountLinks($request);

        /** @var AnalyticsAccountLink $element */
        foreach ($response as $element) {
            printf('Element data: %s' . PHP_EOL, $element->serializeToJsonString());
        }
    } catch (ApiException $ex) {
        printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
    }
}

/**
 * Helper to execute the sample.
 *
 * This sample has been automatically generated and should be regarded as a code
 * template only. It will require modifications to work:
 *  - It may require correct/in-range values for request initialization.
 *  - It may require specifying regional endpoints when creating the service client,
 *    please see the apiEndpoint client configuration option for more details.
 */
function callSample(): void
{
    $formattedParent = MarketingplatformAdminServiceClient::organizationName('[ORGANIZATION]');

    list_analytics_account_links_sample($formattedParent);
}

Питон

# This snippet has been automatically generated and should be regarded as a
# code template only.
# It will require modifications to work:
# - It may require correct/in-range values for request initialization.
# - It may require specifying regional endpoints when creating the service
#   client as shown in:
#   https://googleapis.dev/python/google-api-core/latest/client_options.html
from google.ads import marketingplatform_admin_v1alpha


def sample_list_analytics_account_links():
    # Create a client
    client = marketingplatform_admin_v1alpha.MarketingplatformAdminServiceClient()

    # Initialize request argument(s)
    request = marketingplatform_admin_v1alpha.ListAnalyticsAccountLinksRequest(
        parent="parent_value",
    )

    # Make the request
    page_result = client.list_analytics_account_links(request=request)

    # Handle the response
    for response in page_result:
        print(response)

Node.js

Использование: node packages/google-marketingplatform-admin/samples/quickstart.js Organizations/ORGANIZATION_ID.

  /**
   * This snippet has been automatically generated and should be regarded as a code template only.
   * It will require modifications to work.
   * It may require correct/in-range values for request initialization.
   * TODO(developer): Uncomment these variables before running the sample.
   */
  /**
   *  Required. The parent organization, which owns this collection of Analytics
   *  account links. Format: organizations/{org_id}
   */
  // const parent = 'abc123'
  /**
   *  Optional. The maximum number of Analytics account links to return in one
   *  call. The service may return fewer than this value.
   *  If unspecified, at most 50 Analytics account links will be returned. The
   *  maximum value is 1000; values above 1000 will be coerced to 1000.
   */
  // const pageSize = 1234
  /**
   *  Optional. A page token, received from a previous ListAnalyticsAccountLinks
   *  call. Provide this to retrieve the subsequent page.
   *  When paginating, all other parameters provided to
   *  `ListAnalyticsAccountLinks` must match the call that provided the page
   *  token.
   */
  // const pageToken = 'abc123'

  // Imports the Admin library
  const {MarketingplatformAdminServiceClient} =
    require('@google-ads/marketing-platform-admin').v1alpha;

  // Instantiates a client
  const adminClient = new MarketingplatformAdminServiceClient({fallback: true});

  async function callListAnalyticsAccountLinks() {
    // Construct request
    const request = {
      parent,
    };

    // Run request
    const iterable = adminClient.listAnalyticsAccountLinksAsync(request);
    for await (const response of iterable) {
      console.log(response);
    }
  }

  callListAnalyticsAccountLinks();

.СЕТЬ

    using Google.Ads.MarketingPlatform.Admin.V1Alpha;
    using Google.Api.Gax;
    using System;

    public sealed partial class GeneratedMarketingplatformAdminServiceClientSnippets
    {
        /// <summary>Snippet for ListAnalyticsAccountLinks</summary>
        /// <remarks>
        /// This snippet has been automatically generated and should be regarded as a code template only.
        /// It will require modifications to work:
        /// - It may require correct/in-range values for request initialization.
        /// - It may require specifying regional endpoints when creating the service client as shown in
        ///   https://cloud.google.com/dotnet/docs/reference/help/client-configuration#endpoint.
        /// </remarks>
        public void ListAnalyticsAccountLinks()
        {
            // Create client
            MarketingplatformAdminServiceClient marketingplatformAdminServiceClient = MarketingplatformAdminServiceClient.Create();
            // Initialize request argument(s)
            string parent = "organizations/[ORGANIZATION]";
            // Make the request
            PagedEnumerable<ListAnalyticsAccountLinksResponse, AnalyticsAccountLink> response = marketingplatformAdminServiceClient.ListAnalyticsAccountLinks(parent);

            // Iterate over all response items, lazily performing RPCs as required
            foreach (AnalyticsAccountLink item in response)
            {
                // Do something with each item
                Console.WriteLine(item);
            }

            // Or iterate over pages (of server-defined size), performing one RPC per page
            foreach (ListAnalyticsAccountLinksResponse page in response.AsRawResponses())
            {
                // Do something with each page of items
                Console.WriteLine("A page of results:");
                foreach (AnalyticsAccountLink item in page)
                {
                    // Do something with each item
                    Console.WriteLine(item);
                }
            }

            // Or retrieve a single page of known size (unless it's the final page), performing as many RPCs as required
            int pageSize = 10;
            Page<AnalyticsAccountLink> singlePage = response.ReadPage(pageSize);
            // Do something with the page of items
            Console.WriteLine($"A page of {pageSize} results (unless it's the final page):");
            foreach (AnalyticsAccountLink item in singlePage)
            {
                // Do something with each item
                Console.WriteLine(item);
            }
            // Store the pageToken, for when the next page is required.
            string nextPageToken = singlePage.NextPageToken;
        }
    }

ОТДЫХ

Чтобы отправить этот запрос, запустите команду 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://marketingplatformadmin.googleapis.com/v1alpha/organizations/${ORGANIZATION_ID}/analyticsAccountLinks

Пример кода печатает ответ со списком аккаунтов Google Analytics, связанных с указанной организацией Google Платформа для маркетинга:

{
  "analyticsAccountLinks": [
    {
      "name": "organizations/0a123456789-wxyz/analyticsAccountLinks/1234567890",
      "analyticsAccount": "analyticsadmin.googleapis.com/accounts/1234567890",
      "displayName": "Demo Account",
      "linkVerificationState": "LINK_VERIFICATION_STATE_VERIFIED"
    }
  ]
}

Поздравляем! Вы отправили свой первый запрос в API Google Платформы для маркетинга.