W przypadku uwierzytelniania wielu użytkowników tworzysz własny proces OAuth, aby uwierzytelniać użytkowników. W dokumentacji Google Identity omówiono różne typy aplikacji oraz konfigurację projektu w Google Cloud Console, która jest potrzebna do obsługi każdego z nich. Wszystkie te typy aplikacji są obsługiwane przez interfejs Google Ads API. Dodatkowe szczegóły techniczne, o których warto pamiętać:
Skonfiguruj aplikację tak, aby wysyłała żądanie o ten zakres OAuth 2.0:
https://www.googleapis.com/auth/adwordsAplikacja może wykonywać wywołania interfejsu API w imieniu użytkownika, gdy jest on offline. Często pobiera się dane konta w trybie offline, aby generować raporty i przeprowadzać analizy konta. Z tego powodu zalecamy proszenie o dostęp offline OAuth.
Aby zweryfikować aplikację, przejdź proces weryfikacji aplikacji OAuth.
Omówienie przepływu pracy
Wdrożenie procesu uwierzytelniania wielu użytkowników obejmuje 3 główne kroki:
- Kieruj użytkowników na ekran zgody OAuth: przekierowuj każdego użytkownika do punktu końcowego autoryzacji OAuth 2.0 w Google, prosząc o zakres
https://www.googleapis.com/auth/adwordsi dostęp offline. - Wymień kod autoryzacji na tokeny: po przyznaniu przez użytkownika uprawnień przechwyć zwrócony kod autoryzacji i wymień go na token dostępu i token odświeżania.
- Przechowywanie tokenów i inicjowanie klienta w czasie działania: bezpiecznie przechowuj token odświeżania każdego użytkownika w magazynie danych i przekazuj jego dane logowania podczas inicjowania instancji
GoogleAdsClientw czasie działania.
Konfiguracja biblioteki klienta
Po autoryzacji użytkownika i uzyskaniu danych logowania OAuth 2.0 możesz skonfigurować bibliotekę klienta, postępując zgodnie z instrukcjami na karcie odpowiadającej Twojemu językowi programowania.
Java
Instancję GoogleAdsClient możesz zainicjować w czasie działania programu, używając danych logowania uzyskanych od użytkownika, którego konta są używane do wywoływania interfejsu 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();
Więcej opcji znajdziesz w przewodniku po konfiguracji.
.NET
Instancję GoogleAdsClient możesz zainicjować w czasie działania programu, używając danych logowania uzyskanych od użytkownika, którego konta są używane do wywoływania interfejsu 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);
Więcej opcji znajdziesz w przewodniku po konfiguracji.
Python
Instancję GoogleAdsClient możesz zainicjować w czasie działania programu, używając danych logowania uzyskanych od użytkownika, którego konta są używane do wywoływania interfejsu 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)
Więcej opcji znajdziesz w przewodniku po konfiguracji.
PHP
Instancję GoogleAdsClient możesz zainicjować w czasie działania programu, używając danych logowania uzyskanych od użytkownika, którego konta są używane do wywoływania interfejsu 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();
Więcej opcji znajdziesz w przewodniku po konfiguracji.
Ruby
Instancję GoogleAdsClient możesz zainicjować w czasie działania programu, używając danych logowania uzyskanych od użytkownika, którego konta są używane do wywoływania interfejsu 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
Więcej opcji znajdziesz w przewodniku po konfiguracji.
Perl
Instancję GoogleAdsClient możesz zainicjować w czasie działania programu, używając danych logowania uzyskanych od użytkownika, którego konta są używane do wywoływania interfejsu 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");
Więcej opcji znajdziesz w przewodniku po konfiguracji.
curl
Zacznij od pobrania tokena dostępu OAuth 2.0 za pomocą klienta HTTP. W tym przewodniku używamy polecenia 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/tokenTokena dostępu możesz używać w wywołaniach interfejsu API. W tym przykładzie pokazujemy, jak wygenerować raport kampanii za pomocą metody GoogleAdsService.SearchStream, aby pobrać kampanie na koncie. Ten przewodnik nie zawiera szczegółowych informacji o raportowaniu.
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"Zawartość pliku query.json jest następująca:
{
"query": "SELECT campaign.id, campaign.name, campaign.network_settings.target_content_network FROM campaign ORDER BY campaign.id"
}