Как и другие API Google, API Google Ads использует протокол OAuth 2.0 для аутентификации и авторизации. OAuth 2.0 позволяет клиентскому приложению API Google Ads получать доступ к аккаунту пользователя Google Ads без необходимости обработки или хранения его учетных данных.
Понимание модели доступа к Google Ads
Для эффективной работы с API Google Ads необходимо понимать, как работает модель доступа Google Ads. Настоятельно рекомендуем ознакомиться с руководством по модели доступа Google Ads .
Рабочие процессы OAuth
При работе с API Google Ads используются три распространенных рабочих процесса.
Поток учетной записи службы
Этот рабочий процесс рекомендуется, если ваш рабочий процесс не требует взаимодействия с пользователем. Для этого процесса требуется этап настройки, на котором пользователь добавляет сервисный аккаунт в свой аккаунт Google Ads. После этого приложение может использовать данные сервисного аккаунта для управления аккаунтом Google Ads пользователя. Библиотека настраивается следующим образом:
// Initialize a GoogleAdsConfig class.
GoogleAdsConfig config = new GoogleAdsConfig()
{
DeveloperToken = "******",
OAuth2Mode = OAuth2Flow.SERVICE_ACCOUNT,
OAuth2SecretsJsonPath = "PATH_TO_CREDENTIALS_JSON",
LoginCustomerId = ******
};
// Initialize a GoogleAdsClient class.
GoogleAdsClient client = new GoogleAdsClient(config);
Более подробную информацию см. в руководстве по рабочему процессу учетной записи службы .
Процесс аутентификации одного пользователя
Этот рабочий процесс можно использовать, если вы не можете использовать учётные записи служб. Этот рабочий процесс требует двух этапов настройки:
- Предоставьте одному пользователю доступ ко всем аккаунтам, которыми нужно управлять с помощью API Google Ads. Распространенный подход — предоставить пользователю управляющий аккаунт API Google Ads и связать все аккаунты Google Ads с этим управляющим аккаунтом.
- Пользователь запускает инструмент командной строки, такой как gcloud или пример кода
GenerateUserCredentials, чтобы авторизовать ваше приложение для управления всеми его аккаунтами Google Ads от его имени.
Библиотеку можно инициализировать, используя учетные данные пользователя OAuth 2.0 следующим образом:
GoogleAdsConfig googleAdsConfig = new GoogleAdsConfig()
{
DeveloperToken = DEVELOPER_TOKEN,
LoginCustomerId = LOGIN_CUSTOMER_ID,
OAuth2ClientId = OAUTH_CLIENT_ID,
OAuth2ClientSecret = OAUTH_CLIENT_SECRET,
OAuth2RefreshToken = REFRESH_TOKEN,
};
GoogleAdsClient googleAdsClient = new GoogleAdsClient(googleAdsConfig);
Более подробную информацию см. в руководстве по процедуре аутентификации одного пользователя .
Многопользовательский поток аутентификации
Это рекомендуемый рабочий процесс, если ваше приложение позволяет пользователям входить в систему и авторизовать ваше приложение для управления аккаунтами Google Ads от их имени. Ваше приложение формирует и управляет учётными данными пользователя OAuth 2.0. Библиотеку можно инициализировать, используя учётные данные пользователя, следующим образом:
GoogleAdsConfig googleAdsConfig = new GoogleAdsConfig()
{
DeveloperToken = DEVELOPER_TOKEN,
LoginCustomerId = LOGIN_CUSTOMER_ID,
OAuth2ClientId = OAUTH_CLIENT_ID,
OAuth2ClientSecret = OAUTH_CLIENT_SECRET,
OAuth2RefreshToken = REFRESH_TOKEN,
};
GoogleAdsClient googleAdsClient = new GoogleAdsClient(googleAdsConfig);
Подробнее см. в руководстве по многопользовательской аутентификации . Клиентская библиотека .NET включает два примера кода для справки:
Пример кода
AuthenticateInAspNetCoreApplicationиллюстрирует создание веб-приложения, которое получает аутентификацию пользователя во время выполнения для управления его аккаунтами Google Ads от его имени. Приложение использует учётные данные OAuth 2.0 пользователя для получения данных о кампаниях в его аккаунте Google Ads.GenerateUserCredentials — это пример кода командной строки, иллюстрирующий, как получить аутентификацию пользователя во время выполнения для управления его аккаунтами Google Ads от его имени. Вы можете использовать этот пример кода в качестве справочного материала для создания десктопных приложений, требующих аутентификации пользователя.
Что делать, если мой пользователь управляет несколькими учетными записями?
Пользователь часто управляет несколькими аккаунтами Google Ads, используя прямой доступ к ним или через управляющий аккаунт Google Ads. Клиентская библиотека .NET предоставляет следующие примеры кода, иллюстрирующие, как это делать в таких случаях.
- Пример кода GetAccountHierarchy показывает, как получить список всех аккаунтов в управляющем аккаунте Google Ads.
- Пример кода ListAccessibleCustomers показывает, как получить список всех учётных записей, к которым у пользователя есть прямой доступ. Эти учётные записи затем можно использовать в качестве допустимых значений параметра
LoginCustomerId.
Учетные данные приложения по умолчанию
Клиентская библиотека .NET также поддерживает аутентификацию с использованием учетных данных приложения по умолчанию .
Это особенно полезно для локальной разработки или для разработки с использованием различных API Google, поскольку вы можете повторно использовать одни и те же учетные данные при условии, что они имеют доступ к правильным областям действия OAuth 2.0.
Для API Google Ads убедитесь, что учетные данные вашего приложения по умолчанию обеспечивают доступ к области действия OAuth2.0 https://www.googleapis.com/auth/adwords .
Чтобы использовать учетные данные приложения по умолчанию, установите для параметра UseApplicationDefaultCredentials значение true в GoogleAdsConfig : это можно сделать теми же способами, что и настройку других свойств конфигурации в клиентской библиотеке, то есть в коде, в файле конфигурации или с помощью переменных среды.
Дополнительную информацию о доступных параметрах настройки клиентской библиотеки .NET см. на странице конфигурации .