В процессе многопользовательской аутентификации вы создаете собственный поток OAuth для аутентификации пользователей. В документации Google Identity рассматриваются различные типы приложений, а также необходимая конфигурация проекта Google Cloud Console для поддержки каждого типа приложения. Все эти типы приложений поддерживаются API Google Ads. Дополнительные технические детали, которые следует учитывать:
Настройте ваше приложение таким образом, чтобы оно запрашивало следующие области действия OAuth 2.0:
https://www.googleapis.com/auth/adwordsВашему приложению может потребоваться выполнять вызовы API от имени пользователя, когда он находится в автономном режиме. Распространенный сценарий — загрузка показателей учетной записи в автономном режиме для создания отчетов и проведения аналитики учетной записи. По этой причине мы рекомендуем запрашивать доступ к учетной записи в автономном режиме через OAuth .
Чтобы подтвердить работоспособность вашего приложения, завершите процесс проверки OAuth .
Обзор рабочего процесса
Внедрение многопользовательской аутентификации включает в себя три основных этапа:
- Направляйте пользователей на экран согласия OAuth: перенаправляйте каждого пользователя на конечную точку авторизации Google OAuth 2.0, запрашивая область действия
https://www.googleapis.com/auth/adwordsи доступ в автономном режиме. - Обмен кода авторизации на токены: После того, как пользователь предоставит разрешение, получите возвращенный код авторизации и обменяйте его на токен доступа и токен обновления.
- Сохраняйте токены и инициализируйте клиент во время выполнения: надежно храните токен обновления каждого пользователя в вашем хранилище данных и передавайте учетные данные пользователя при инициализации экземпляра
GoogleAdsClientво время выполнения.
Конфигурация клиентской библиотеки
После авторизации пользователя и получения учетных данных OAuth 2.0 вы можете настроить клиентскую библиотеку, следуя инструкциям на вкладке, соответствующей вашему языку программирования.
Java
Вы можете инициализировать экземпляр GoogleAdsClient во время выполнения, используя учетные данные, полученные от пользователя, к чьим аккаунтам вы обращаетесь с API-запросами.
UserCredentials credentials =
UserCredentials.newBuilder()
.setClientId("INSERT_OAUTH2_CLIENT_ID_HERE")
.setClientSecret("INSERT_OAUTH2_CLIENT_SECRET_HERE")
.setRefreshToken("INSERT_OAUTH2_REFRESH_TOKEN_HERE")
.build();
// Creates a GoogleAdsClient with the provided credentials.
GoogleAdsClient client =
GoogleAdsClient.newBuilder()
// Sets the OAuth credentials which provide Google Ads account
// access.
.setCredentials(credentials)
// Optional: sets the login customer ID.
.setLoginCustomerId(Long.valueOf("INSERT_LOGIN_CUSTOMER_ID_HERE"))
.build();
Дополнительные параметры см. в руководстве по настройке .
.СЕТЬ
Вы можете инициализировать экземпляр GoogleAdsClient во время выполнения, используя учетные данные, полученные от пользователя, к чьим аккаунтам вы обращаетесь с API-запросами.
GoogleAdsConfig config = new GoogleAdsConfig()
{
OAuth2Mode = OAuth2Flow.APPLICATION,
OAuth2ClientId = "INSERT_OAUTH2_CLIENT_ID_HERE",
OAuth2ClientSecret = "INSERT_OAUTH2_CLIENT_SECRET_HERE",
OAuth2RefreshToken = "INSERT_OAUTH2_REFRESH_TOKEN_HERE",
LoginCustomerId = "INSERT_LOGIN_CUSTOMER_ID_HERE",
};
GoogleAdsClient client = new GoogleAdsClient(config);
Дополнительные параметры см. в руководстве по настройке .
Python
Вы можете инициализировать экземпляр GoogleAdsClient во время выполнения, используя учетные данные, полученные от пользователя, к чьим аккаунтам вы обращаетесь с API-запросами.
from google.ads.googleads.client import GoogleAdsClient
credentials = {
"login_customer_id": "INSERT_LOGIN_CUSTOMER_ID_HERE",
"refresh_token": "INSERT_OAUTH2_REFRESH_TOKEN_HERE",
"client_id": "INSERT_OAUTH2_CLIENT_ID_HERE",
"client_secret": "INSERT_OAUTH2_CLIENT_SECRET_HERE",
"use_proto_plus": True,
}
client = GoogleAdsClient.load_from_dict(credentials)
Дополнительные параметры см. в руководстве по настройке .
PHP
Вы можете инициализировать экземпляр GoogleAdsClient во время выполнения, используя учетные данные, полученные от пользователя, к чьим аккаунтам вы обращаетесь с API-запросами.
$oAuth2Credential = (new OAuth2TokenBuilder())
->withClientId('INSERT_OAUTH2_CLIENT_ID_HERE')
->withClientSecret('INSERT_OAUTH2_CLIENT_SECRET_HERE')
->withRefreshToken('INSERT_OAUTH2_REFRESH_TOKEN_HERE')
->build();
$googleAdsClient = (new GoogleAdsClientBuilder())
->withOAuth2Credential($oAuth2Credential)
->withLoginCustomerId('INSERT_LOGIN_CUSTOMER_ID_HERE')
->build();
Дополнительные параметры см. в руководстве по настройке .
Руби
Вы можете инициализировать экземпляр GoogleAdsClient во время выполнения, используя учетные данные, полученные от пользователя, к чьим аккаунтам вы обращаетесь с API-запросами.
client = Google::Ads::GoogleAds::GoogleAdsClient.new do |config|
config.client_id = 'INSERT_OAUTH2_CLIENT_ID_HERE'
config.client_secret = 'INSERT_OAUTH2_CLIENT_SECRET_HERE'
config.refresh_token = 'INSERT_OAUTH2_REFRESH_TOKEN_HERE'
config.login_customer_id = 'INSERT_LOGIN_CUSTOMER_ID_HERE'
end
Дополнительные параметры см. в руководстве по настройке .
Perl
Вы можете инициализировать экземпляр GoogleAdsClient во время выполнения, используя учетные данные, полученные от пользователя, к чьим аккаунтам вы обращаетесь с API-запросами.
my $api_client = Google::Ads::GoogleAds::Client->new({
login_customer_id => "INSERT_LOGIN_CUSTOMER_ID_HERE"
});
my $oauth2_handler = $api_client->get_oauth2_applications_handler();
$oauth2_handler->set_client_id("INSERT_OAUTH2_CLIENT_ID_HERE");
$oauth2_handler->set_client_secret("INSERT_OAUTH2_CLIENT_SECRET_HERE");
$oauth2_handler->set_refresh_token("INSERT_OAUTH2_REFRESH_TOKEN_HERE");
Дополнительные параметры см. в руководстве по настройке .
локон
Для начала воспользуйтесь HTTP-клиентом, чтобы получить токен доступа OAuth 2.0. В этом руководстве используется команда curl .
curl \
--data "grant_type=refresh_token" \
--data "client_id=CLIENT_ID" \
--data "client_secret=CLIENT_SECRET" \
--data "refresh_token=REFRESH_TOKEN" \
https://oauth2.googleapis.com/token Вы можете использовать токен доступа в своих вызовах API. В следующем примере показано, как создать отчет по кампании, используя метод GoogleAdsService.SearchStream для получения информации о кампаниях в вашем аккаунте. Данное руководство не охватывает подробности создания отчетов .
curl -i -X POST \
https://googleads.googleapis.com/v25/customers/CUSTOMER_ID/googleAds:searchStream \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ACCESS_TOKEN" \
-H "login-customer-id: LOGIN_CUSTOMER_ID" \
--data-binary "@query.json" Содержимое файла query.json следующее:
{
"query": "SELECT campaign.id, campaign.name, campaign.network_settings.target_content_network FROM campaign ORDER BY campaign.id"
}