Рабочий процесс учетной записи службы

В этом руководстве описано, как получить доступ к API Google Ads с помощью сервисных аккаунтов.

Сервисный аккаунт — это аккаунт, принадлежащий вашему приложению, а не отдельному конечному пользователю. Сервисные аккаунты используют протокол OAuth 2.0, который не требует авторизации человека, а использует файл ключа, доступ к которому имеет только ваше приложение.

Использование служебных учетных записей дает два ключевых преимущества:

  • Авторизация доступа к аккаунтам Google Ads через API Google Ads осуществляется на этапе настройки с использованием функций авторизации и управления аккаунтами, предлагаемых пользовательским интерфейсом Google Ads. Это экономит усилия разработчиков, поскольку им не нужно создавать потоки OAuth 2.0 и разбираться со сложностями, связанными с взаимодействием с пользователем, хранением учетных данных пользователя и управлением токенами.

  • Разрешение на доступ к аккаунтам Google Ads не привязано к индивидуальным учетным данным пользователя, что может быть полезно в случаях, когда предполагается, что такое разрешение сохранится даже в случае ухода сотрудника, первоначально предоставившего доступ, из команды или компании.

Настройка доступа к учетной записи

  1. Для начала создайте учетную запись службы и укажите учетные данные .

    Загрузите ключ учетной записи службы в формате JSON и запишите идентификатор учетной записи службы и адрес электронной почты.

  2. Войдите в свой аккаунт Google Ads как администратор. Перейдите в раздел «Администрирование» > «Доступ и безопасность» .

  3. Нажмите кнопку «+» на вкладке «Пользователи» .

  4. Введите адрес электронной почты служебной учетной записи в поле «Электронная почта» . Выберите соответствующий уровень доступа к учетной записи (обратите внимание, что служебные учетные записи не поддерживают уровень доступа только по электронной почте ) и нажмите кнопку «Добавить учетную запись» .

  5. Учетной записи службы предоставлен доступ.

  6. Необязательно: по умолчанию вы не можете предоставить администраторский доступ учетной записи службы. Следуйте принципу минимальных привилегий и предоставляйте администраторский доступ только в том случае, если этого требуют ваши вызовы API. Вы можете расширить доступ следующим образом:

    • В столбце «Уровень доступа» щелкните стрелку раскрывающегося списка рядом с уровнем доступа учетной записи службы.
    • Выберите «Администратор» из выпадающего списка.

Конфигурация клиентской библиотеки

Выберите вкладку, соответствующую вашему языку программирования, чтобы получить инструкции по настройке библиотеки клиентских приложений. Если ваша учетная запись службы получает доступ к клиентским аккаунтам через учетную запись менеджера Google Ads (MCC), также установите login-customer-id (или loginCustomerId ) равным 10-значному идентификатору клиента этой учетной записи менеджера без дефисов (см. Идентификатор клиента для входа ).

Java

Укажите путь к JSON-файлу закрытого ключа в вашей конфигурации. Если вы используете файл ads.properties , добавьте следующее:

api.googleads.serviceAccountSecretsPath=JSON_KEY_FILE_PATH

Дополнительные сведения см. в руководстве по настройке .

.СЕТЬ

Установите параметры OAuth2Mode и OAuth2SecretsJsonPath для экземпляра GoogleAdsConfig и используйте их для инициализации объекта GoogleAdsClient .

GoogleAdsConfig config = new GoogleAdsConfig()
{
    OAuth2Mode = OAuth2Flow.SERVICE_ACCOUNT,
    OAuth2SecretsJsonPath = "JSON_KEY_FILE_PATH",
    // ...
};
GoogleAdsClient client = new GoogleAdsClient(config);

Дополнительные сведения см. в руководстве по настройке .

Python

Укажите путь к JSON-файлу закрытого ключа в конфигурации. Если вы используете файл google-ads.yaml , строку YAML или dict , добавьте следующее:

json_key_file_path: JSON_KEY_FILE_PATH

Если вы используете переменные окружения, добавьте следующее в конфигурацию или окружение Bash:

export GOOGLE_ADS_JSON_KEY_FILE_PATH=JSON_KEY_FILE_PATH

Дополнительные сведения см. в руководстве по настройке .

PHP

Настройте следующие ключи в файле google_ads_php.ini .

[OAUTH2]
; For service account flow.
jsonKeyFilePath = "JSON_KEY_FILE_PATH"
scopes = "https://www.googleapis.com/auth/adwords"

Дополнительные сведения см. в руководстве по настройке .

Руби

Настройте следующие ключи в файле google_ads_config.rb .

c.keyfile = 'JSON_KEY_FILE_PATH'

Дополнительные сведения см. в руководстве по настройке .

Perl

Укажите путь к JSON-файлу закрытого ключа в конфигурации. Если вы используете файл googleads.properties , добавьте следующее:

jsonKeyFilePath=JSON_KEY_FILE_PATH

Если вы используете переменные окружения, добавьте следующее в конфигурацию или окружение Bash:

export GOOGLE_ADS_JSON_KEY_FILE_PATH=JSON_KEY_FILE_PATH

Дополнительные сведения см. в руководстве по настройке .

локон

Для начала установите учетную запись службы в качестве активных учетных данных в интерфейсе командной строки gcloud.

gcloud auth login --cred-file=JSON_KEY_FILE_PATH

Далее получите токен доступа OAuth 2.0 для API Google Ads.

gcloud auth \
  print-access-token \
  --scopes='https://www.googleapis.com/auth/adwords'

Вы можете использовать токен доступа в своих вызовах API. В следующем примере показано, как создать отчет по кампании, используя метод GoogleAdsService.SearchStream для получения информации о кампаниях в вашем аккаунте. Данное руководство не охватывает подробности создания отчетов .

curl -i -X POST \
  https://googleads.googleapis.com/v25/customers/CUSTOMER_ID/googleAds:searchStream \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer ACCESS_TOKEN" \
  -H "login-customer-id: LOGIN_CUSTOMER_ID" \
  --data-binary "@query.json"

Содержимое файла query.json следующее:

{
  "query": "SELECT campaign.id, campaign.name, campaign.network_settings.target_content_network FROM campaign ORDER BY campaign.id"
}