В процессе многопользовательской аутентификации вы создаете собственный поток OAuth для аутентификации пользователей. В документации Google Identity рассматриваются различные типы приложений, а для поддержки этих типов приложений требуется конфигурация проекта Google Cloud Console. Все эти типы приложений поддерживаются API Google Ads. Ниже приведены дополнительные технические детали, которые следует учитывать:
Чтобы получить доступ к API Google Ads, необходимо настроить приложение для аутентификации в следующих областях:
https://www.googleapis.com/auth/adwords
Вашему приложению может потребоваться выполнять вызовы API от имени пользователя, когда он находится офлайн. Распространенный сценарий — загрузка показателей аккаунта в офлайн-режиме для создания отчётов и анализа аккаунта. Поэтому мы рекомендуем запрашивать офлайн-доступ по протоколу OAuth .
Вам следует пройти процедуру проверки приложения OAuth и сертифицировать свое приложение.
Конфигурация клиентской библиотеки
После авторизации пользователя и получения учетных данных OAuth 2.0 вы можете настроить клиентскую библиотеку, следуя инструкциям на вкладке, соответствующей вашему языку программирования.
Ява
Вы можете инициализировать свой экземпляр GoogleAdsClient
во время выполнения, используя учетные данные, полученные от пользователя, к аккаунтам которого вы совершаете вызовы API.
UserCredentials credentials =
UserCredentials.newBuilder()
.setClientId(OAUTH_CLIENT_ID)
.setClientSecret(OAUTH_CLIENT_SECRET)
.setRefreshToken(REFRESH_TOKEN)
.build();
// Creates a GoogleAdsClient with the provided credentials.
GoogleAdsClient client =
GoogleAdsClient.newBuilder()
// Sets the developer token which enables API access.
.setDeveloperToken(DEVELOPER_TOKEN)
// Sets the OAuth credentials which provide Google Ads account access.
.setCredentials(credentials)
// Optional: sets the login customer ID.
.setLoginCustomerId(Long.valueOf(LOGIN_CUSTOMER_ID))
.build();
``` See the [configuration guide][java-config-guide] for additional options.
.СЕТЬ
Вы можете инициализировать свой экземпляр GoogleAdsClient
во время выполнения, используя учетные данные, полученные от пользователя, к аккаунтам которого вы совершаете вызовы API.
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);
Дополнительные параметры см. в руководстве по настройке .
Питон
Вы можете инициализировать свой экземпляр GoogleAdsClient
во время выполнения, используя учетные данные, полученные от пользователя, к аккаунтам которого вы совершаете вызовы API.
from google.ads.googleads.client import GoogleAdsClient
credentials = {
"developer_token": "INSERT_DEVELOPER_TOKEN_HERE",
"login_customer_id": "INSERT_LOGIN_CUSTOMER_ID_HERE",
"refresh_token": "REFRESH_TOKEN",
"client_id": "OAUTH_CLIENT_ID",
"client_secret": "OAUTH_CLIENT_SECRET"}
client = GoogleAdsClient.load_from_dict(credentials)
Дополнительные параметры см. в руководстве по настройке .
PHP
Вы можете инициализировать свой экземпляр GoogleAdsClient
во время выполнения, используя учетные данные, полученные от пользователя, к аккаунтам которого вы совершаете вызовы API.
$oAuth2Credential = (new OAuth2TokenBuilder())
->withClientId('INSERT_CLIENT_ID_HERE')
->withClientSecret('INSERT_CLIENT_SECRET_HERE')
->withRefreshToken('INSERT_REFRESH_TOKEN_HERE')
->build();
$googleAdsClient = (new GoogleAdsClientBuilder())
->withOAuth2Credential($oAuth2Credential)
->withDeveloperToken('INSERT_DEVELOPER_TOKEN_HERE')
->withLoginCustomerId('INSERT_LOGIN_CUSTOMER_ID_HERE')
->build();
Дополнительные параметры см. в руководстве по настройке .
Руби
Вы можете инициализировать свой экземпляр GoogleAdsClient
во время выполнения, используя учетные данные, полученные от пользователя, к аккаунтам которого вы совершаете вызовы API.
client = Google::Ads::GoogleAds::GoogleAdsClient.new do |config|
config.client_id = 'INSERT_CLIENT_ID_HERE'
config.client_secret = 'INSERT_CLIENT_SECRET_HERE'
config.refresh_token = 'INSERT_REFRESH_TOKEN_HERE'
config.login_customer_id = 'INSERT_LOGIN_CUSTOMER_ID_HERE'
config.developer_token = 'INSERT_DEVELOPER_TOKEN_HERE'
end
Дополнительные параметры см. в руководстве по настройке .
Перл
Вы можете инициализировать свой экземпляр GoogleAdsClient
во время выполнения, используя учетные данные, полученные от пользователя, к аккаунтам которого вы совершаете вызовы API.
my $api_client = Google::Ads::GoogleAds::Client->new({
developer_token => "INSERT_DEVELOPER_TOKEN_HERE",
login_customer_id => "INSERT_LOGIN_CUSTOMER_ID_HERE"
});
my $oauth2_applications_handler = $api_client->get_oauth2_applications_handler();
$oauth2_applications_handler->set_client_id("INSERT_CLIENT_ID");
$oauth2_applications_handler->set_client_secret("INSERT_CLIENT_SECRET");
$oauth2_applications_handler->set_refresh_token("INSERT_REFRESH_TOKEN");
Дополнительные параметры см. в руководстве по настройке .
завиток
Начните с использования 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://www.googleapis.com/oauth2/v3/token
Теперь вы можете использовать токен доступа в вызовах API. В следующем примере показано, как создать отчёт по кампании с помощью метода GoogleAdsService.SearchStream
для извлечения данных о кампаниях в вашем аккаунте. В этом руководстве не рассматриваются детали создания отчётов .
curl -i -X POST https://googleads.googleapis.com/v21/customers/CUSTOMER_ID/googleAds:searchStream \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ACCESS_TOKEN" \
-H "developer-token: DEVELOPER_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"
}