Как начать работу с Ads Data Hub API

В этом руководстве объясняется, как начать разработку приложений, использующих REST API Ads Data Hub для взаимодействия с Ads Data Hub. REST API Ads Data Hub позволяет просматривать клиентов Ads Data Hub, связанных с вашей учетной записью Google, создавать запросы и выполнять запросы.

Настраивать

Перед использованием API Ads Data Hub необходимо выполнить несколько шагов:

  1. Убедитесь, что пользователю, активирующему API, предоставлено разрешение serviceusage.services.enable в проекте Google Cloud. Пользователь с разрешением serviceusage.services.enable также должен быть включен в список разрешенных пользователей для доступа к API.
  2. Включите API Ads Data Hub в проекте Google Cloud, в котором были созданы учетные данные клиента или учетная запись службы . Чтобы включить API Ads Data Hub для проекта с помощью консоли:
    1. Перейдите в библиотеку API Cloud Console .
    2. Выберите проект, который хотите использовать, из списка проектов.
    3. Найдите "API Ads Data Hub".
    4. На странице API нажмите «Включить» .
  3. Управление правами доступа:
    1. Адрес электронной почты или учетная запись службы, использованные для создания учетных данных, должны быть добавлены в Ads Data Hub с соответствующими правами доступа . Для учетной записи службы это адрес электронной почты учетной записи службы. Для OAuth это адрес электронной почты пользователя. Это гарантирует, что учетная запись службы или учетная запись конечного пользователя имеют разрешение на выполнение запросов в Ads Data Hub.
  4. (Рекомендуется) Установите клиентскую библиотеку Google API :
    1. Клиентские библиотеки Google API доступны на нескольких популярных языках и позволяют работать со многими API Google. Хотя это и не обязательно, клиентские библиотеки сокращают объем кода, который вам нужно написать, и упрощают настройку аутентификации.
Клиентская библиотека Примеры из базы данных рекламных объявлений
Клиентская библиотека Google API для Java Java
Клиентская библиотека Google API для Python

Аутентификация и авторизация

API Ads Data Hub может получать доступ к данным в вашем личном кабинете Ads Data Hub и изменять их, поэтому ему необходимо убедиться, что вы являетесь авторизованным пользователем. В связи с этим, прежде чем начать взаимодействовать с API Ads Data Hub, вам необходимо пройти процедуру авторизации. Процедура авторизации предоставляет вам необходимые разрешения для взаимодействия с API. Вы можете пройти аутентификацию с помощью OAuth 2.0 или служебной учетной записи.

Настройка OAuth 2.0

API поддерживает как потоки установленного приложения , так и потоки веб-приложения , но в этом примере мы рассмотрим поток установленного приложения.

  1. Перейдите в консоль Google API и выберите свой административный проект.
  2. Убедитесь, что API Ads Data Hub включен для вашего проекта.
    1. Если это не так, нажмите кнопку «+ Включить API и сервисы», чтобы включить их.
  3. В левой панели навигации нажмите «Учетные данные».
  4. Откройте выпадающее меню «Создать учетные данные» и выберите «Идентификатор клиента OAuth». На следующей странице:
    1. Выберите «Другое».
    2. При желании укажите имя клиента.
    3. Нажмите «Создать».
  5. Нажмите на значок загрузки рядом с только что созданными учетными данными.

Получите свой API-ключ

В приведенном ниже примере кода на Python для аутентификации используется ваш API-ключ (также известный как ключ разработчика). Чтобы получить свой API-ключ:

  1. Перейдите на страницу «Учетные данные» в консоли API.
  2. Убедитесь, что в раскрывающемся списке в верхней панели навигации выбран ваш административный проект.
  3. Нажмите на значок загрузки рядом с вашим API-ключом.

Отправить запрос на образец

Python

"""This sample shows how to retrieve all accounts associated with the user.

For the program to execute successfully, ensure that you run it using Python 3.
"""
import json
from google_auth_oauthlib import flow
from googleapiclient.discovery import build

appflow = flow.InstalledAppFlow.from_client_secrets_file(
    # Replace client_secrets.json with your own client secret file.
    'client_secrets.json',
    scopes=['https://www.googleapis.com/auth/adsdatahub'])
appflow.run_local_server()
credentials = appflow.credentials
developer_key = input('Developer key: ').strip()
# For versions of the Google API Python client library prior to 2.0, the
# `static_discovery` parameter below should be removed.
service = build('AdsDataHub', 'v1', credentials=credentials,
                developerKey=developer_key, static_discovery=False)


def pprint(x):
  print(json.dumps(x, sort_keys=True, indent=4))


adh_account_id = input('ADH account ID (e.g. "customers/123456789"): ').strip()
pprint(service.customers().analysisQueries().list(parent
                                                  =adh_account_id).execute())

      

Java

/*
 * Copyright (c) 2019 Google Inc.
 *
 * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
 * in compliance with the License. You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under the License
 * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
 * or implied. See the License for the specific language governing permissions and limitations under
 * the License.
 */

package com.google.api.services.samples.adsdatahub.cmdline;

import com.google.api.services.adsdatahub.v1.AdsDataHub;
import com.google.api.services.adsdatahub.v1.model.Customer;
import com.google.api.services.adsdatahub.v1.model.ListCustomersResponse;
import java.io.IOException;
import java.util.List;

/**
 * This sample illustrates how to retrieve all accounts associated to the user.
 *
 * <p>See the <a href="customers.list reference
 * documentation">https://developers.google.com/ads-data-hub/reference/rest/v1/customers/list</a>
 * for more details.
 */
public class ListCustomers extends BaseSample {

  @Override
  public String getName() {
    return "List customers";
  }

  @Override
  public String getDescription() {
    return "Lists customers associated with the authorized user";
  }

  @Override
  public void execute(AdsDataHub client) throws IOException {
    String pageToken = null;
    boolean noData = true;

    System.out.println("========================================");
    System.out.printf("Listing of customers associated with the authorized user:\n");
    System.out.println("========================================");

    do {
      ListCustomersResponse response = client.customers().list().setPageToken(pageToken).execute();
      pageToken = response.getNextPageToken();
      List<Customer> customers = response.getCustomers();

      if (customers != null && customers.size() > 0) {
        noData = false;
        for (Customer customer : customers) {
          System.out.printf("* Customer id: %d\n", customer.getCustomerId());
          System.out.printf("\tCustomer name: %s\n", customer.getDisplayName());
        }
      }
    } while (pageToken != null);

    if (noData) {
      System.out.println("No customers were found associated with the authorized user.");
    }
  }
}

      

Следующие шаги