Авторизация и заголовки HTTP

Для вызова API Google Ads вам потребуются как учетные данные OAuth 2.0, так и токен разработчика . Если вы выполняете вызовы API с помощью учетной записи менеджера Google Ads, вам также необходимо указывать заголовок login-customer-id в каждом запросе. На этой странице описано, как установить эти значения, и приведены несколько дополнительных HTTP-заголовков, специфичных для API, которые отправляются и принимаются при использовании REST-интерфейса.

Учетные данные OAuth 2.0

API Google Ads использует OAuth 2.0 для авторизации запросов API. Поддерживаются как аутентификация пользователей по протоколу OAuth 2.0, так и аутентификация через сервисный аккаунт . Для получения более подробной информации см. раздел «OAuth 2.0 в API Google Ads» .

Если вы новичок в API Google, вы можете использовать gcloud CLI или OAuth 2.0 Playground , чтобы поэкспериментировать с учетными данными OAuth 2.0 и API Google Ads, прежде чем писать код для своего приложения.

Мы рекомендуем использовать одну из библиотек OAuth 2.0, доступных по адресу https://oauth.net/code/, для реализации рабочих процессов авторизации OAuth 2.0. Однако мы привели инструкции по использованию curl на случай, если вам потребуется реализовать это самостоятельно.

Служебные счета

Выполните следующие шаги для настройки проекта Google Cloud для API Google Ads . Запишите адрес электронной почты и ключ учетной записи службы . Затем следуйте общим инструкциям в руководстве по учетным записям служб , чтобы настроить учетную запись службы для доступа к вашей учетной записи Google Ads.

Аутентификация пользователя

Выполните следующие шаги для настройки проекта Google Cloud Console для Google Ads API . Запишите идентификатор клиента (client ID) и секретный ключ клиента (client secret) . Затем следуйте инструкциям для потока в настольном или веб-приложении , чтобы сгенерировать токен обновления и токен доступа . scope действия для доступа к Google Ads API — https://www.googleapis.com/auth/adwords .

Сгенерировать новые токены доступа

Служебные счета

Имея адрес электронной почты и ключ сервисной учетной записи , следуйте руководству «Использование OAuth 2.0 для приложений типа «сервер-сервер»» , чтобы сгенерировать набор утверждений JWT , который затем можно обменять на токен доступа OAuth 2.0. При следовании руководству обязательно выберите вкладку HTTP/REST . scope действия OAuth 2.0 для доступа к API Google Ads — https://www.googleapis.com/auth/adwords . Кроме того, вы можете пропустить параметр sub при создании набора утверждений JWT, поскольку шаги настройки предоставляют сервисной учетной записи прямой доступ к учетной записи Google Ads, что позволяет избежать необходимости выдавать себя за пользователя Google Ads.

Затем используйте токен доступа в заголовке HTTP Authorization каждого вызова API Google Ads:

GET /v23/customers:listAccessibleCustomers HTTP/1.1
Host: googleads.googleapis.com
Authorization: Bearer ACCESS_TOKEN
developer-token: DEVELOPER_TOKEN

Аутентификация пользователя

Получив идентификатор клиента OAuth 2.0, секретный ключ клиента и токен обновления , вы можете сгенерировать новый токен доступа для использования в вызовах API с помощью инструмента командной строки curl :

curl \
  --data "grant_type=refresh_token" \
  --data "client_id=CLIENT_ID" \
  --data "client_secret=CLIENT_SECRET" \
  --data "refresh_token=REFRESH_TOKEN" \
  https://www.googleapis.com/oauth2/v3/token

Затем вы используете токен доступа, возвращенный запросом curl, в заголовке HTTP Authorization каждого вызова API Google Ads:

GET /v23/customers:listAccessibleCustomers HTTP/1.1
Host: googleads.googleapis.com
Authorization: Bearer ACCESS_TOKEN
developer-token: DEVELOPER_TOKEN

Заголовки запроса

токен разработчика

Для работы с API Google Ads также требуется токен разработчика . Если у вас уже есть токен разработчика, вы можете найти его, перейдя по ссылке https://ads.google.com/aw/apicenter . При появлении запроса войдите в свою учетную запись Google Ads Manager. Если у вас его нет, следуйте инструкциям по регистрации для получения токена разработчика .

Необходимо указывать значение вашего токена разработчика в заголовке HTTP developer-token каждого вызова API Google Ads:

GET /v23/customers:listAccessibleCustomers HTTP/1.1
Host: googleads.googleapis.com
Authorization: Bearer ACCESS_TOKEN
developer-token: DEVELOPER_TOKEN

Идентификатор клиента для входа в систему

Для вызовов API Google Ads, выполняемых менеджером к клиентскому аккаунту (то есть, при входе в систему в качестве менеджера для выполнения вызовов API к одному из своих клиентских аккаунтов), также необходимо указать HTTP-заголовок login-customer-id . Это значение представляет собой идентификатор клиента Google Ads менеджера, выполняющего вызов API.

Включение этого заголовка эквивалентно выбору учетной записи в пользовательском интерфейсе Google Ads после входа в систему или щелчку по изображению вашего профиля в правом верхнем углу страницы. При указании идентификатора клиента обязательно удалите все дефисы (—). Например: 1234567890 , а не 123-456-7890 . Для получения дополнительной информации об идентификаторе клиента при входе в систему обратитесь к руководству по модели доступа Google Ads .

GET /v23/customers:listAccessibleCustomers HTTP/1.1
Host: googleads.googleapis.com
Authorization: Bearer ACCESS_TOKEN
developer-token: DEVELOPER_TOKEN
login-customer-id: MANAGER_CUSTOMER_ID

Связанный идентификатор клиента

Заголовок Linked customer ID используется только сторонними поставщиками аналитики приложений при загрузке данных о конверсиях в связанный аккаунт Google Ads . Более подробную информацию см. в руководстве по структуре вызовов API .

...
Authorization: Bearer ACCESS_TOKEN
developer-token: DEVELOPER_TOKEN
login-customer-id: MANAGER_CUSTOMER_ID
linked-customer-id: LINKED_CUSTOMER_ID

Заголовки ответа

В HTTP-ответах от API возвращаются следующие заголовки.

Идентификатор запроса

Идентификатор request-id — это строка, которая однозначно идентифицирует запрос к API. При отладке или устранении неполадок, связанных с конкретными вызовами API, request-id является важным идентификатором, который следует иметь под рукой при обращении в службу поддержки разработчиков Google.

request-id: 2a5Cj89VV7CNhya1DZjjrC