Как и другие API Google, API Google Ads использует протокол OAuth 2.0 для аутентификации и авторизации. OAuth 2.0 позволяет вашему клиентскому приложению Google Ads API получать доступ к учетной записи пользователя Google Ads без необходимости обработки или хранения информации для входа пользователя.
Разберитесь в модели доступа к рекламным объявлениям Google.
Для эффективной работы с API Google Ads необходимо понимать, как работает модель доступа Google Ads. Мы рекомендуем ознакомиться с руководством по модели доступа Google Ads .
Рабочие процессы OAuth
При работе с API Google Ads используются три распространенных рабочих процесса.
поток учетных записей сервиса
Это рекомендуемый рабочий процесс, если ваш рабочий процесс не требует участия человека. Этот рабочий процесс включает этап настройки, на котором пользователь добавляет сервисный аккаунт в свой аккаунт Google Ads. Затем приложение может использовать учетные данные сервисного аккаунта для управления аккаунтом Google Ads пользователя.
Вот как настроить OAuth2 для доступа к API, используя собственные учетные данные с помощью сервисной учетной записи в клиентской библиотеке Perl:
Создайте учетные данные OAuth2:
Следуйте инструкциям, чтобы создать учетную запись службы и файл
*.JSON.Настройте клиентскую библиотеку:
Укажите путь к JSON-файлу закрытого ключа в конфигурации. Если вы используете файл
googleads.properties, добавьте следующее:jsonKeyFilePath=PRIVATE_KEY_FILE_PATHЕсли вы используете переменные окружения, добавьте следующее в конфигурацию или окружение Bash:
export GOOGLE_ADS_JSON_KEY_FILE_PATH=PRIVATE_KEY_FILE_PATHДля получения более подробной информации обратитесь к руководству по рабочему процессу учетной записи службы .
Процесс аутентификации одного пользователя
Этот рабочий процесс можно использовать, если вы не можете использовать служебные учетные записи. Для его выполнения требуется два этапа настройки:
- Предоставьте одному пользователю доступ ко всем аккаунтам, управляемым с помощью API Google Ads. Распространенный подход заключается в предоставлении пользователю доступа к учетной записи менеджера API Google Ads и объединении всех аккаунтов Google Ads под этой учетной записью менеджера.
- Пользователь запускает пример кода
generate_user_credentials.pl, чтобы авторизовать ваше приложение для управления всеми его аккаунтами Google Ads от его имени.
Следующие шаги запускают интерактивный пример кода, после чего вам потребуется ввести данные.
В терминале запустите пример
generate_user_credentials.plиз каталогаexamples. Вы можете либо изменить значенияINSERT_XXX_HEREв примере перед запуском, либо использовать аргументы командной строки-client_idдля идентификатора клиента и-client_secretдля секретного ключа клиента.perl generate_user_credentials.pl -client_id {client_id} -client_secret {client_secret}В этом примере кода вам будет предложено перейти по URL-адресу, где вы должны разрешить приложению доступ к вашему аккаунту Google Ads от вашего имени.
Paste this url in your browser: https://accounts.google.com/o/oauth2/v2/auth?response_type=code&access_type=offline&client_id=...Перейдите по указанному URL-адресу в режиме приватного просмотра или в режиме инкогнито. Войдите в систему, используя учетную запись Google, которую вы используете для доступа к Google Ads. Обычно это адрес электронной почты, имеющий доступ к учетной записи менеджера Google Ads, содержащей все необходимые для управления учетные записи в иерархии учетных записей. Нажмите «Продолжить» на экране согласия 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
developerToken=DEVELOPER_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_DEVELOPER_TOKEN=DEVELOPER_TOKEN
export GOOGLE_ADS_LOGIN_CUSTOMER_ID=LOGIN_CUSTOMER_ID
Для получения более подробной информации обратитесь к руководству по рабочему процессу аутентификации одного пользователя .
Процесс аутентификации нескольких пользователей
Это рекомендуемый рабочий процесс, если ваше приложение позволяет пользователям входить в систему и авторизовывать его для управления своими аккаунтами Google Ads от их имени. Ваше приложение формирует и управляет учетными данными пользователя OAuth 2.0.
В Perl обычно реализуется веб-приложение, в котором ваше приложение обрабатывает перенаправление OAuth 2.0 и управление токенами. Пользователь аутентифицируется через ваше приложение, а ваше приложение сохраняет и использует токен обновления пользователя для выполнения вызовов API от его имени.
Настройки для использования полученных учетных данных аналогичны настройкам для однопользовательской аутентификации:
clientId=OAUTH_CLIENT_ID
clientSecret=OAUTH_CLIENT_SECRET
refreshToken=REFRESH_TOKEN
developerToken=DEVELOPER_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_DEVELOPER_TOKEN=DEVELOPER_TOKEN
export GOOGLE_ADS_LOGIN_CUSTOMER_ID=LOGIN_CUSTOMER_ID
Для получения более подробной информации обратитесь к руководству по рабочему процессу многопользовательской аутентификации .
Что произойдет, если пользователь управляет несколькими учетными записями?
Нередко пользователь управляет несколькими аккаунтами Google Ads, либо напрямую получая доступ к аккаунтам, либо через аккаунт менеджера Google Ads. Клиентская библиотека Perl предоставляет примеры, иллюстрирующие обработку таких случаев.
- Пример
get_account_hierarchy.plдемонстрирует, как получить список всех аккаунтов, находящихся в учетной записи менеджера Google Ads. - Пример
list_accessible_customers.plдемонстрирует, как получить список всех учетных записей, к которым пользователь имеет прямой доступ. Эти учетные записи затем можно использовать в качестве допустимых значений для параметраLoginCustomerIdв файлеgoogleads.propertiesили для переменной средыGOOGLE_ADS_LOGIN_CUSTOMER_ID.