Python

Google предоставляет клиентскую библиотеку Python для взаимодействия с Ad Manager API. Мы рекомендуем использовать клиентскую библиотеку с PyPI.

Чтобы начать работу, создайте новый проект в выбранной вами IDE или добавьте зависимость в существующий проект. Google публикует артефакты клиентской библиотеки в PyPI как google-ads-admanager.

requirements.txt

google-ads-admanager==0.10.6

Командная строка

pip install google-ads-admanager

Как настроить учетные данные

Для аутентификации клиентская библиотека Python использует OAuth2 и Application Default Credentials (ADC).

ADC выполняет поиск учетных данных в следующем порядке:

  1. переменной среды GOOGLE_APPLICATION_CREDENTIALS.
  2. Учетные данные пользователя, настроенные с помощью интерфейса командной строки Google Cloud (gcloud CLI).
  3. При работе в Google Cloud – сервисный аккаунт, прикрепленный к ресурсу Google Cloud.

Информацию о том, как создать и настроить учетные данные ADC, можно найти в разделе Аутентификация.

Как отправить первый запрос

У каждого сервиса есть объект ServiceClient с синхронными и асинхронными методами для каждого метода REST. В приведенном ниже примере выполняется синхронное чтение Network.



from google.ads import admanager_v1


def sample_get_network():
    # Create a client
    client = admanager_v1.NetworkServiceClient()

    # Initialize request argument(s)
    request = admanager_v1.GetNetworkRequest(
        name="networks/[NETWORK_CODE]",
    )

    # Make the request
    response = client.get_network(request=request)

    # Handle the response
    print(response)

Примеры других методов и ресурсов можно найти в репозитории GitHub: googleapis/google-cloud-python.

Как регистрировать HTTP-запросы и ответы

Клиентская библиотека Python использует стандартную библиотеку Python logging для регистрации HTTP-запросов и ответов. По умолчанию ведение журналов отключено.

Чтобы включить ведение журнала, задайте переменную среды GOOGLE_SDK_PYTHON_LOGGING_SCOPE. Эта переменная среды настраивает обработку событий регистрации на уровне logging.DEBUG или выше.

# Log only Ad Manager API events
export GOOGLE_SDK_PYTHON_LOGGING_SCOPE=google.ads.admanager_v1

# Log all Google library events
export GOOGLE_SDK_PYTHON_LOGGING_SCOPE=google

Вы также можете использовать модуль Python logging:

import logging

from google.ads import admanager_v1

logger = logging.getLogger("google.ads.admanager_v1")
logger.addHandler(logging.StreamHandler())
logger.setLevel(logging.DEBUG)

Обработка ошибок

Все ошибки API расширяют базовый класс GoogleAPIError.

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

try:
  network = client.get_network(request=request)
  print(network)
except GoogleAPIError as e:
  # Handle error
  print(e.reason)

Ошибки Ad Manager API также содержат уникальный requestId, который можно предоставить службе поддержки для устранения неполадок. В следующем примере из GoogleAPIError извлекается requestId:

except GoogleAPIError as e:
  requestInfoType = "type.googleapis.com/google.rpc.RequestInfo"
  requestInfo = [detail for detail in e.details if detail['@type'] == requestInfoType][0]
  print(requestInfo['requestId'])

Настройка прокси-сервера

Клиентская библиотека Python учитывает настройки переменных среды http_proxy и https_proxy.