Как и другие API Google, Google Ads API использует протокол OAuth 2.0 для аутентификации и авторизации. OAuth 2.0 позволяет API-клиенту Google Ads API получать доступ к аккаунту Google Рекламы без необходимости обрабатывать или хранить данные для входа.
Как работает модель доступа в Google Рекламе
Чтобы эффективно работать с Google Ads API, необходимо понимать, как устроена модель доступа Google Рекламы. Ознакомьтесь с руководством по модели доступа к Google Рекламе.
Рабочие процессы OAuth
При работе с Google Ads API обычно используются три рабочих процесса.
Процесс для сервисного аккаунта
Это рекомендуемый рабочий процесс, если ваш рабочий процесс не требует взаимодействия с человеком. Этот рабочий процесс требует настройки, в ходе которой пользователь добавляет сервисный аккаунт в свой аккаунт Google Рекламы. После этого приложение сможет использовать учетные данные сервисного аккаунта для управления аккаунтом Google Рекламы пользователя.
Чтобы настроить OAuth2 для доступа к API с помощью собственных учетных данных и сервисного аккаунта в клиентской библиотеке Perl, выполните следующие действия:
Создайте учетные данные OAuth2:
Следуйте инструкциям, чтобы создать сервисный аккаунт и JSON-файл ключа.
Настройте клиентскую библиотеку:
Укажите в конфигурации путь к JSON-файлу закрытого ключа (и необязательный параметр
impersonatedEmail, если вы используете делегирование доступа к данным в домене Google Workspace). Если вы используете файлgoogleads.properties, добавьте следующее:jsonKeyFilePath=PRIVATE_KEY_FILE_PATH # Optional unless using Google Workspace domain-wide delegation: impersonatedEmail=IMPERSONATED_EMAIL loginCustomerId=LOGIN_CUSTOMER_IDЕсли вы используете переменные среды, добавьте в конфигурацию или среду Bash следующее:
export GOOGLE_ADS_JSON_KEY_FILE_PATH=KEY_FILE_PATH export GOOGLE_ADS_IMPERSONATED_EMAIL=\ IMPERSONATED_EMAIL export GOOGLE_ADS_LOGIN_CUSTOMER_ID=LOGIN_CUSTOMER_IDПодробную информацию вы найдете в руководстве по работе с сервисными аккаунтами.
Процесс аутентификации одного пользователя
Этот рабочий процесс можно использовать, если вы не можете использовать сервисные аккаунты. Этот рабочий процесс требует двух шагов настройки:
- Предоставьте одному пользователю доступ ко всем аккаунтам, которыми нужно управлять с помощью Google Ads API. Обычно пользователю предоставляют доступ к управляющему аккаунту Google Ads API и связывают с ним все аккаунты Google Рекламы.
- Пользователь запускает пример кода
generate_user_credentials.pl, чтобы разрешить вашему приложению управлять всеми его аккаунтами Google Рекламы от его имени.
Ниже описано, как запустить интерактивный пример кода, который затем потребует от вас ввода данных.
В терминале запустите пример
generate_user_credentials.plв каталогеexamples. Вы можете изменить значенияINSERT_XXX_HEREв примере перед запуском или использовать аргументы командной строки-client_idдля идентификатора клиента и-client_secretдля секретного кода клиента.perl generate_user_credentials.pl \ -client_id OAUTH_CLIENT_ID \ -client_secret OAUTH_CLIENT_SECRETВ этом примере кода вам будет предложено перейти по URL, где вы должны разрешить приложению доступ к вашему аккаунту Google Рекламы от вашего имени.
Paste this url in your browser: https://accounts.google.com/o/oauth2/v2/auth?response_type=code&access_type=offline...Откройте URL в режиме инкогнито. Войдите в аккаунт Google, который вы используете для доступа к Google Рекламе. Обычно это адрес электронной почты, у которого есть доступ к управляющему аккаунту Google Рекламы, содержащему все аккаунты, которыми вы хотите управлять. Нажмите Продолжить в окне запроса доступа OAuth 2.0.

Вы будете перенаправлены на страницу с сообщением об успешной авторизации.
Authorization code was successfully retrieved.Вернитесь в консоль, в которой вы запускаете пример кода. Вы увидите, что пример кода выполнен и отображает ваш токен обновления и некоторые инструкции, за которыми следуют инструкции, которые вам нужно будет выполнить для настройки клиентской библиотеки:
Replace the following keys and values in your googleads.properties configuration file: clientId=***********************apps.googleusercontent.com clientSecret=**** refreshToken=****Чтобы завершить процесс, нажмите
Ctrl + C. Затем скопируйте сгенерированный токен обновления вместе с идентификатором клиента и секретным кодом клиента в файлgoogleads.propertiesили сохраните его в другом месте, чтобы использовать при создании экземпляра библиотеки во время выполнения.
Библиотеку можно инициализировать с помощью учетных данных OAuth 2.0 пользователя, задав в файле googleads.properties следующие параметры:
clientId=OAUTH_CLIENT_ID
clientSecret=OAUTH_CLIENT_SECRET
refreshToken=REFRESH_TOKEN
loginCustomerId=LOGIN_CUSTOMER_ID
Вы также можете использовать переменные среды:
export GOOGLE_ADS_CLIENT_ID=OAUTH_CLIENT_ID
export GOOGLE_ADS_CLIENT_SECRET=OAUTH_CLIENT_SECRET
export GOOGLE_ADS_REFRESH_TOKEN=REFRESH_TOKEN
export GOOGLE_ADS_LOGIN_CUSTOMER_ID=LOGIN_CUSTOMER_ID
Подробную информацию можно найти в руководстве по аутентификации одного пользователя.
Процесс аутентификации нескольких пользователей
Это рекомендуемый рабочий процесс, если ваше приложение позволяет пользователям входить в систему и разрешать вашему приложению управлять своими аккаунтами Google Рекламы от их имени. Ваше приложение создает учетные данные OAuth 2.0 и управляет ими.
Для Perl обычно реализуется процесс веб-приложения, в котором приложение обрабатывает перенаправление OAuth 2.0 и управление токенами. Пользователь проходит аутентификацию через ваше приложение, которое сохраняет и использует его токен обновления, чтобы совершать вызовы API от имени пользователя.
Конфигурация для использования полученных учетных данных такая же, как и для процесса аутентификации одного пользователя:
clientId=OAUTH_CLIENT_ID
clientSecret=OAUTH_CLIENT_SECRET
refreshToken=REFRESH_TOKEN
loginCustomerId=LOGIN_CUSTOMER_ID
Вы также можете использовать переменные среды:
export GOOGLE_ADS_CLIENT_ID=OAUTH_CLIENT_ID
export GOOGLE_ADS_CLIENT_SECRET=OAUTH_CLIENT_SECRET
export GOOGLE_ADS_REFRESH_TOKEN=REFRESH_TOKEN
export GOOGLE_ADS_LOGIN_CUSTOMER_ID=LOGIN_CUSTOMER_ID
Подробную информацию можно найти в руководстве по рабочему процессу добавления пользователей.
Что делать, если пользователь управляет несколькими аккаунтами?
Пользователи часто управляют несколькими аккаунтами Google Рекламы, используя прямой доступ к ним или управляющий аккаунт Google Рекламы. В клиентской библиотеке Perl есть примеры, показывающие, как обрабатывать такие случаи:
- Пример
get_account_hierarchy.plпоказывает, как получить список всех аккаунтов, относящихся к управляющему аккаунту Google Рекламы. - Пример
list_accessible_customers.plпоказывает, как получить список всех аккаунтов, к которым у пользователя есть прямой доступ. Эти аккаунты можно использовать в качестве допустимых значений для настройкиloginCustomerIdв файлеgoogleads.propertiesили переменной средыGOOGLE_ADS_LOGIN_CUSTOMER_ID.