Как и другие 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 пользователя. Библиотека настраивается следующим образом:
// 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 обратитесь к странице конфигурации .