Аутентификация и авторизация

Как и другие 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);

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

Процесс аутентификации одного пользователя

Этот рабочий процесс можно использовать, если вы не можете использовать учётные записи служб. Этот рабочий процесс требует двух этапов настройки:

  1. Предоставьте одному пользователю доступ ко всем аккаунтам, которыми нужно управлять с помощью API Google Ads. Распространенный подход — предоставить пользователю управляющий аккаунт API Google Ads и связать все аккаунты Google Ads с этим управляющим аккаунтом.
  2. Пользователь запускает инструмент, например gcloud CLI или пример кода 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 включает два примера кода для справки:

  1. Пример кода AuthenticateInAspNetCoreApplication иллюстрирует создание веб-приложения, которое получает аутентификацию пользователя во время выполнения для управления его аккаунтами Google Ads от его имени. Приложение использует учётные данные OAuth 2.0 пользователя для получения данных о кампаниях в его аккаунте Google Ads.

  2. GenerateUserCredentials — это пример кода командной строки, иллюстрирующий, как получить аутентификацию пользователя во время выполнения для управления его аккаунтами Google Ads от его имени. Вы можете использовать этот пример кода в качестве справочного материала для создания десктопных приложений, требующих аутентификации пользователя.

Что делать, если мой пользователь управляет несколькими учетными записями?

Пользователь часто управляет несколькими аккаунтами Google Ads, используя прямой доступ к ним или через управляющий аккаунт Google Ads. Клиентская библиотека .NET предоставляет следующие примеры кода, иллюстрирующие, как это делать в таких случаях.

  1. Пример кода GetAccountHierarchy показывает, как получить список всех аккаунтов в управляющем аккаунте Google Ads.
  2. Пример кода ListAccessibleCustomers показывает, как получить список всех учётных записей, к которым у пользователя есть прямой доступ. Эти учётные записи затем можно использовать в качестве допустимых значений параметра LoginCustomerId .