Z tego przewodnika dowiesz się, jak uzyskać dostęp do interfejsu Google Ads API za pomocą kont usługi.
Konto usługi to konto, które należy do Twojej aplikacji, a nie do użytkownika. Konta usług korzystają z procesu OAuth 2.0, który nie wymaga autoryzacji przez człowieka, ale używa pliku klucza, z którego może korzystać tylko Twoja aplikacja.
Korzystanie z kont usług ma 2 główne zalety:
Autoryzacja dostępu do kont Google Ads za pomocą interfejsu Google Ads API odbywa się w ramach konfiguracji z wykorzystaniem funkcji autoryzacji i zarządzania kontem oferowanych przez interfejs Google Ads. Dzięki temu deweloper nie musi tworzyć przepływów OAuth 2.0 ani zajmować się skomplikowanymi kwestiami związanymi z interakcją z użytkownikiem, przechowywaniem danych logowania użytkownika itp.
Autoryzacja dostępu do kont Google Ads nie jest powiązana z danymi logowania poszczególnych użytkowników, co może być przydatne w sytuacjach, gdy autoryzacja ma obowiązywać nawet wtedy, gdy pracownik, który pierwotnie autoryzował dostęp, opuści zespół lub firmę.
Konfigurowanie dostępu do konta
Zacznij od utworzenia konta usługi i danych logowania.
Pobierz klucz konta usługi w formacie JSON i zanotuj identyfikator oraz adres e-mail konta usługi.
Zaloguj się na konto Google Ads jako administrator. Kliknij Administracja > Dostęp i bezpieczeństwo.
Na karcie Użytkownicy kliknij przycisk +.
Wpisz adres e-mail konta usługi w polu E-mail. Wybierz odpowiedni poziom dostępu do konta i kliknij przycisk Dodaj konto. Pamiętaj, że poziomy dostępu E-mail i Administracja nie są obsługiwane w przypadku kont usług.
Konto usługi otrzymuje dostęp.
Konfiguracja biblioteki klienta
Aby uzyskać instrukcje konfigurowania biblioteki klienta, wybierz kartę odpowiadającą Twojemu językowi programowania.
Java
W konfiguracji ustaw ścieżkę do pliku JSON klucza prywatnego. Jeśli używasz pliku ads.properties
, dodaj te informacje:
api.googleads.serviceAccountSecretsPath=JSON_KEY_FILE_PATH
Więcej informacji znajdziesz w przewodniku po konfiguracji.
.NET
Ustaw OAuth2Mode
i OAuth2SecretsJsonPath
w instancji GoogleAdsConfig
i użyj jej do zainicjowania obiektu GoogleAdsClient
.
GoogleAdsConfig config = new GoogleAdsConfig()
{
OAuth2Mode = OAuth2Flow.SERVICE_ACCOUNT,
OAuth2SecretsJsonPath = "PATH_TO_JSON_SECRETS_PATH",
...
};
GoogleAdsClient client = new GoogleAdsClient(config);
Więcej informacji znajdziesz w przewodniku po konfiguracji.
Python
W konfiguracji ustaw ścieżkę do pliku JSON klucza prywatnego. Jeśli używasz google-ads.yaml file
, ciągu YAML lub dict
, dodaj te elementy:
json_key_file_path: JSON_KEY_FILE_PATH
Jeśli używasz zmiennych środowiskowych, dodaj do konfiguracji lub środowiska Bash następujące elementy:
export GOOGLE_ADS_JSON_KEY_FILE_PATH=JSON_KEY_FILE_PATH
PHP
Skonfiguruj te klucze w google_ads_php.ini
. Więcej informacji znajdziesz w przewodniku po konfiguracji.
; For service account flow.
jsonKeyFilePath = "JSON_KEY_FILE_PATH"
scopes = "https://www.googleapis.com/auth/adwords"
Ruby
Skonfiguruj te klucze w google_ads_config.rb
.
c.keyfile = 'JSON_KEY_FILE_PATH'
Perl
W konfiguracji ustaw ścieżkę do pliku JSON z kluczem prywatnym i identyfikator konta delegowanego.
Jeśli używasz pliku googleads.properties
, dodaj te informacje:
jsonKeyFilePath=JSON_KEY_FILE_PATH
Jeśli używasz zmiennych środowiskowych, dodaj do konfiguracji lub środowiska Bash następujące elementy:
export GOOGLE_ADS_JSON_KEY_FILE_PATH=JSON_KEY_FILE_PATH
curl
Zacznij od ustawienia konta usługi jako aktywnych danych logowania w interfejsie wiersza poleceń gcloud.
gcloud auth login --cred-file=PATH_TO_CREDENTIALS_JSON
Następnie pobierz token dostępu OAuth 2.0 dla interfejsu Google Ads API.
gcloud auth \
print-access-token \
--scopes='https://www.googleapis.com/auth/adwords'
Teraz możesz używać tokena dostępu w wywołaniach interfejsu API. Poniższy przykład pokazuje, jak uruchomić 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/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"
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"
}