Proces konta usługi

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

  1. 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.

  2. Zaloguj się na konto Google Ads jako administrator. Kliknij Administracja > Dostęp i bezpieczeństwo.

  3. Na karcie Użytkownicy kliknij przycisk +.

  4. 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.

  5. 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 OAuth2ModeOAuth2SecretsJsonPath 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"
}