В этом руководстве обсуждается, как получить доступ к API Google Ads с помощью учетных записей служб.
Учётная запись сервиса — это учётная запись, принадлежащая вашему приложению, а не отдельному конечному пользователю. Учётные записи сервиса используют протокол OAuth 2.0, не требующий человеческой авторизации, а вместо этого использующий файл ключа, к которому имеет доступ только ваше приложение.
Использование учетных записей служб обеспечивает два ключевых преимущества:
- Авторизация доступа через API Google Ads к аккаунтам Google Ads осуществляется на этапе настройки с использованием функций авторизации и управления аккаунтами, предлагаемых пользовательским интерфейсом Google Ads. Это экономит усилия разработчиков, избавляя их от необходимости создавать потоки OAuth 2.0 и решать сложные задачи, связанные с взаимодействием с пользователем, хранением учётных данных и т. д. 
- Разрешение на доступ к аккаунтам Google Ads не привязано к индивидуальным учетным данным пользователя, что может быть полезно в случаях, когда предполагается, что такое разрешение сохранится даже в случае, если сотрудник, изначально предоставивший разрешение на доступ, покидает команду или компанию. 
Настройка доступа к учетной записи
- Начните с создания учетной записи службы и учетных данных . - Загрузите ключ учетной записи службы в формате JSON и запишите идентификатор учетной записи службы и адрес электронной почты. 
- Войдите в свой аккаунт Google Ads как администратор. Перейдите в раздел «Администрирование» > «Доступ и безопасность» . 
- Нажмите кнопку + на вкладке Пользователи .  
- Введите адрес электронной почты учётной записи службы в поле «Электронная почта» . Выберите соответствующий уровень доступа и нажмите кнопку « Добавить учётную запись» . Обратите внимание, что уровни доступа «Электронная почта» и «Администратор» не поддерживаются для учётных записей служб.  
- Учетной записи сервиса предоставлен доступ.  
Конфигурация клиентской библиотеки
Выберите вкладку, соответствующую вашему языку программирования, чтобы получить инструкции по настройке клиентской библиотеки.
Ява
 Укажите путь к JSON-файлу закрытого ключа в настройках. Если вы используете файл ads.properties , добавьте следующее:
api.googleads.serviceAccountSecretsPath=JSON_KEY_FILE_PATH
Дополнительные сведения см. в руководстве по настройке .
.СЕТЬ
 Установите OAuth2Mode и OAuth2SecretsJsonPath для экземпляра GoogleAdsConfig и используйте его для инициализации объекта GoogleAdsClient .
GoogleAdsConfig config = new GoogleAdsConfig()
{
    OAuth2Mode = OAuth2Flow.SERVICE_ACCOUNT,
    OAuth2SecretsJsonPath = "PATH_TO_JSON_SECRETS_PATH",
    ...
};
GoogleAdsClient client = new GoogleAdsClient(config);
Дополнительные сведения см. в руководстве по настройке .
Питон
 Укажите путь к JSON-файлу закрытого ключа в вашей конфигурации. Если вы используете google-ads.yaml file , строку 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 . Подробнее см. в руководстве по настройке .
; 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'
Перл
 Укажите путь к 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=PATH_TO_CREDENTIALS_JSONЗатем получите токен доступа 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/v22/customers/CUSTOMER_ID/googleAds:searchStream \
   -H "Content-Type: application/json" \
   -H "Authorization: Bearer ACCESS_TOKEN" \
   -H "developer-token: DEVELOPER_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"
}