Google предоставляет клиентскую библиотеку Python для взаимодействия с Ad Manager API. Рекомендуем использовать клиентскую библиотеку с PyPI.
Для начала создайте новый проект в выбранной вами IDE или добавьте зависимость в существующий проект. Google публикует артефакты клиентской библиотеки в PyPI как google-ads-admanager.
requirements.txt
google-ads-admanager==0.10.7
Командная строка
pip install google-ads-admanager
Настройте учетные данные
Клиентская библиотека Python использует OAuth2 и Application Default Credentials (ADC) для аутентификации.
ADC ищет учетные данные в следующих местах:
GOOGLE_APPLICATION_CREDENTIALSпеременная среды.- Учетные данные пользователя, настроенные через Google Cloud CLI (gcloud CLI).
- При работе в 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, который можно сообщить службе поддержки, чтобы получить помощь в устранении неполадок. В следующем примере извлекается requestId из GoogleAPIError:
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.