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