Сервисные аккаунты

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

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

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

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

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

  • Поток утверждений OAuth 2.0 позволяет вашему приложению при необходимости выдавать себя за других пользователей.

Авторизоваться с помощью сервисных аккаунтов можно двумя способами: напрямую или с олицетворением.

Авторизация с прямым доступом к аккаунту

В этом варианте вы предоставляете сервисному аккаунту прямой доступ к вашему аккаунту Google Рекламы.

Настройка доступа к аккаунту

  1. Начните с создания учетной записи службы и учетных данных .

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

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

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

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

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

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

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

Ява

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

api.googleads.serviceAccountSecretsPath=JSON_KEY_FILE_PATH

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

.СЕТЬ

Настройте следующие ключи в вашем App.config / Web.config . Дополнительные сведения см. в руководстве по настройке .

<add key="OAuth2Mode" value="SERVICE_ACCOUNT" />
<add key="OAuth2SecretsJsonPath" value="JSON_KEY_FILE_PATH" />

Питон

Задайте путь 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

Авторизация с использованием олицетворения

В этом варианте вы выдаете себя за пользователя, который имеет доступ к вашей учетной записи Google Рекламы, используя учетную запись службы. Этот подход работает только для клиентов Google Workspace. Сервисный аккаунт может выдавать себя за пользователей (адреса электронной почты) только в том же Google Workspace .

Предварительные условия

  • Домен Google Workspace , которым вы владеете, например mydomain.com или mybusiness.com

  • Токен разработчика API Google Рекламы и, при необходимости, тестовый аккаунт.

  • Клиентская библиотека для используемого вами языка.

  • Проект консоли Google API, настроенный для Google Ads API.

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

Настройка доступа к сервисному аккаунту

Поскольку олицетворение пользователя контролируется только на уровне домена, для использования учетных записей служб и потока утверждений с помощью Google OAuth 2.0 требуется, чтобы у вас был собственный домен, зарегистрированный в Google Workspace. После этого ваше приложение и его пользователи смогут выдавать себя за любого пользователя в домене.

  1. Начните с создания учетной записи службы и учетных данных .

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

  2. Сообщите идентификатор сервисного аккаунта и область действия API Google Рекламы ( https://www.googleapis.com/auth/adwords ) администратору своего домена.

    Попросите администратора домена делегировать полномочия на уровне домена вашему сервисному аккаунту.

  3. Если вы администратор домена, следуйте инструкциям Справочного центра .

Теперь вы можете использовать сервисный аккаунт для доступа к своему аккаунту Google Рекламы с помощью потока утверждений OAuth 2.0.

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

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

Ява

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

api.googleads.serviceAccountSecretsPath=JSON_KEY_FILE_PATH
api.googleads.serviceAccountUser=IMPERSONATED_EMAIL

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

.СЕТЬ

Настройте следующие ключи в вашем App.config / Web.config . Дополнительные сведения см. в руководстве по настройке.

<add key="OAuth2Mode" value="SERVICE_ACCOUNT" />
<add key="OAuth2SecretsJsonPath" value="JSON_KEY_FILE_PATH" />

<!-- Supply the email address of the user to impersonate. -->
<add key="OAuth2PrnEmail" value="IMPERSONATED_EMAIL" />

Питон

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

json_key_file_path: JSON_KEY_FILE_PATH
impersonated_email: IMPERSONATED_EMAIL

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

export GOOGLE_ADS_JSON_KEY_FILE_PATH=JSON_KEY_FILE_PATH
export GOOGLE_ADS_IMPERSONATED_EMAIL=IMPERSONATED_EMAIL

PHP

Настройте следующие ключи в своем google_ads_php.ini . Дополнительные сведения см. в руководстве по настройке .

; For service account flow.
jsonKeyFilePath = "JSON_KEY_FILE_PATH"
scopes = "https://www.googleapis.com/auth/adwords"
impersonatedEmail = "IMPERSONATED_EMAIL"

Руби

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

c.keyfile = 'JSON_KEY_FILE_PATH'
c.impersonate = 'IMPERSONATED_EMAIL'

Перл

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

jsonKeyFilePath=JSON_KEY_FILE_PATH
impersonatedEmail=IMPERSONATED_EMAIL

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

export GOOGLE_ADS_JSON_KEY_FILE_PATH=JSON_KEY_FILE_PATH
export GOOGLE_ADS_IMPERSONATED_EMAIL=IMPERSONATED_EMAIL

Проблемы безопасности

Поскольку служебный аккаунт имеет управление делегированием на уровне домена для вашего домена Google Workspace, важно защитить файл ключа, который позволяет служебному аккаунту получать доступ к сервисам Google, для которых он авторизован. Это особенно верно, поскольку эта учетная запись службы может выдавать себя за любого пользователя в домене.

Еще одна хорошая практика — разрешить учетным записям служб доступ только к минимально необходимому набору API. Это упреждающая мера, позволяющая ограничить объем данных, к которым может получить доступ злоумышленник, если ключевой файл служебной учетной записи скомпрометирован.

,

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

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

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

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

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

  • Поток утверждений OAuth 2.0 позволяет вашему приложению при необходимости выдавать себя за других пользователей.

Авторизоваться с помощью сервисных аккаунтов можно двумя способами: напрямую или с олицетворением.

Авторизация с прямым доступом к аккаунту

В этом варианте вы предоставляете сервисному аккаунту прямой доступ к вашему аккаунту Google Рекламы.

Настройка доступа к аккаунту

  1. Начните с создания учетной записи службы и учетных данных .

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

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

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

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

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

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

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

Ява

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

api.googleads.serviceAccountSecretsPath=JSON_KEY_FILE_PATH

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

.СЕТЬ

Настройте следующие ключи в вашем App.config / Web.config . Дополнительные сведения см. в руководстве по настройке .

<add key="OAuth2Mode" value="SERVICE_ACCOUNT" />
<add key="OAuth2SecretsJsonPath" value="JSON_KEY_FILE_PATH" />

Питон

Задайте путь 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

Авторизация с использованием олицетворения

В этом варианте вы выдаете себя за пользователя, который имеет доступ к вашей учетной записи Google Рекламы, используя учетную запись службы. Этот подход работает только для клиентов Google Workspace. Сервисный аккаунт может выдавать себя за пользователей (адреса электронной почты) только в том же Google Workspace .

Предварительные условия

  • Домен Google Workspace , которым вы владеете, например mydomain.com или mybusiness.com

  • Токен разработчика API Google Рекламы и, при необходимости, тестовый аккаунт.

  • Клиентская библиотека для используемого вами языка.

  • Проект консоли Google API, настроенный для Google Ads API.

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

Настройка доступа к сервисному аккаунту

Поскольку олицетворение пользователя контролируется только на уровне домена, для использования учетных записей служб и потока утверждений с помощью Google OAuth 2.0 требуется, чтобы у вас был собственный домен, зарегистрированный в Google Workspace. После этого ваше приложение и его пользователи смогут выдавать себя за любого пользователя в домене.

  1. Начните с создания учетной записи службы и учетных данных .

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

  2. Сообщите идентификатор сервисного аккаунта и область действия API Google Рекламы ( https://www.googleapis.com/auth/adwords ) администратору своего домена.

    Попросите администратора домена делегировать полномочия на уровне домена вашему сервисному аккаунту.

  3. Если вы администратор домена, следуйте инструкциям Справочного центра .

Теперь вы можете использовать сервисный аккаунт для доступа к своему аккаунту Google Рекламы с помощью потока утверждений OAuth 2.0.

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

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

Ява

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

api.googleads.serviceAccountSecretsPath=JSON_KEY_FILE_PATH
api.googleads.serviceAccountUser=IMPERSONATED_EMAIL

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

.СЕТЬ

Настройте следующие ключи в вашем App.config / Web.config . Дополнительные сведения см. в руководстве по настройке.

<add key="OAuth2Mode" value="SERVICE_ACCOUNT" />
<add key="OAuth2SecretsJsonPath" value="JSON_KEY_FILE_PATH" />

<!-- Supply the email address of the user to impersonate. -->
<add key="OAuth2PrnEmail" value="IMPERSONATED_EMAIL" />

Питон

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

json_key_file_path: JSON_KEY_FILE_PATH
impersonated_email: IMPERSONATED_EMAIL

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

export GOOGLE_ADS_JSON_KEY_FILE_PATH=JSON_KEY_FILE_PATH
export GOOGLE_ADS_IMPERSONATED_EMAIL=IMPERSONATED_EMAIL

PHP

Настройте следующие ключи в своем google_ads_php.ini . Дополнительные сведения см. в руководстве по настройке .

; For service account flow.
jsonKeyFilePath = "JSON_KEY_FILE_PATH"
scopes = "https://www.googleapis.com/auth/adwords"
impersonatedEmail = "IMPERSONATED_EMAIL"

Руби

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

c.keyfile = 'JSON_KEY_FILE_PATH'
c.impersonate = 'IMPERSONATED_EMAIL'

Перл

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

jsonKeyFilePath=JSON_KEY_FILE_PATH
impersonatedEmail=IMPERSONATED_EMAIL

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

export GOOGLE_ADS_JSON_KEY_FILE_PATH=JSON_KEY_FILE_PATH
export GOOGLE_ADS_IMPERSONATED_EMAIL=IMPERSONATED_EMAIL

Проблемы безопасности

Поскольку служебный аккаунт имеет управление делегированием на уровне домена для вашего домена Google Workspace, важно защитить файл ключа, который позволяет служебному аккаунту получать доступ к сервисам Google, для которых он авторизован. Это особенно верно, поскольку эта учетная запись службы может выдавать себя за любого пользователя в домене.

Еще одна хорошая практика — разрешить учетным записям служб доступ только к минимально необходимому набору API. Это упреждающая мера, позволяющая ограничить объем данных, к которым может получить доступ злоумышленник, если ключевой файл служебной учетной записи скомпрометирован.