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 należące do Twojej aplikacji, a nie do indywidualnego użytkownika. Konta usług umożliwiają interakcje między serwerami aplikacji internetowej a usługą Google. Aplikacja wywołuje interfejsy API Google w imieniu konta usługi, więc użytkownicy nie biorą bezpośrednio udziału w tym procesie.

Konta usługi korzystają z procesu OAuth 2.0, który nie wymaga autoryzacji przez człowieka, ale zamiast tego używa pliku klucza, do którego dostęp ma tylko Twoja aplikacja.

Korzystanie z kont usługi daje 2 główne korzyści:

  • Autoryzacja dostępu do interfejsu API Google jest wykonywana jako krok konfiguracji, dzięki czemu można uniknąć komplikacji związanych z innymi przepływami OAuth 2.0, które wymagają interakcji z użytkownikiem.

  • W ramach procesu potwierdzenia OAuth 2.0 aplikacja może w razie potrzeby podszywać się pod innych użytkowników.

Istnieją 2 sposoby autoryzacji za pomocą kont usługi: bezpośrednio lub przez podszywanie się pod inny profil.

Autoryzacja z bezpośrednim dostępem do konta

W tym przypadku przyznajesz temu kontu bezpośredni dostęp do Twojego konta Google Ads.

Konfiguracja dostępu do konta

  1. Najpierw utwórz konto usługi i dane 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 „Tylko e-maile” i „Administrator” nie są obsługiwane na kontach usług.

  5. Konto usługi ma przyznany dostęp.

Konfiguracja biblioteki klienta

Aby uzyskać instrukcje konfigurowania biblioteki klienta, wybierz kartę odpowiadającą Twojemu językowi programowania.

Java

Ustaw ścieżkę JSON klucza prywatnego w konfiguracji. 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

Skonfiguruj te klucze w swoim pliku App.config / Web.config. Więcej informacji znajdziesz w przewodniku po konfiguracji.

<add key="OAuth2Mode" value="SERVICE_ACCOUNT" />
<add key="OAuth2SecretsJsonPath" value="JSON_KEY_FILE_PATH" />

Python

Ustaw ścieżkę JSON klucza prywatnego w konfiguracji. Jeśli używasz ciągu google-ads.yaml file, ciągu YAML lub dict, dodaj:

json_key_file_path: JSON_KEY_FILE_PATH

Jeśli używasz zmiennych środowiskowych, dodaj te informacje do konfiguracji lub środowiska Bash:

export GOOGLE_ADS_JSON_KEY_FILE_PATH=JSON_KEY_FILE_PATH

PHP

Skonfiguruj te klucze w swoim pliku 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 klucza prywatnego 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 te informacje do konfiguracji lub środowiska Bash:

export GOOGLE_ADS_JSON_KEY_FILE_PATH=JSON_KEY_FILE_PATH

Autoryzacja z przyjmowaniem tożsamości

W tym przypadku przypisujesz sobie tożsamość użytkownika, który ma dostęp do Twojego konta Google Ads, używając konta usługi. Ta metoda działa tylko w przypadku klientów Google Workspace. Konto usługi może podszywać się tylko pod użytkowników (adresy e-mail) na tym samym koncie Google Workspace.

Wymagania wstępne

Konfigurowanie dostępu konta usługi

Ponieważ podszywanie się pod innego użytkownika jest kontrolowane tylko na poziomie domeny, korzystanie z kont usługi i procesu oświadczenia z Google OAuth 2.0 wymaga posiadania własnej domeny zarejestrowanej w Google Workspace. Twoja aplikacja i jej użytkownicy mogą wtedy podszywać się pod dowolnego użytkownika w domenie.

  1. Najpierw utwórz konto usługi i dane logowania.

    Pobierz klucz konta usługi w formacie JSON i zanotuj jego identyfikator.

  2. Udostępnij administratorowi domeny identyfikator konta usługi i zakres interfejsu Google Ads API (https://www.googleapis.com/auth/adwords).

    Poproś administratora domeny o przyznanie Twojemu kontu usługi uprawnień do całej domeny.

  3. Jeśli jesteś administratorem domeny, wykonaj instrukcje z Centrum pomocy.

Możesz teraz używać konta usługi do uzyskiwania dostępu do konta Google Ads za pomocą procesu potwierdzenia OAuth 2.0.

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 i deleguj identyfikator konta. Jeśli używasz pliku ads.properties, dodaj te informacje:

api.googleads.serviceAccountSecretsPath=JSON_KEY_FILE_PATH
api.googleads.serviceAccountUser=IMPERSONATED_EMAIL

Więcej informacji znajdziesz w przewodniku po konfiguracji.

.NET

Skonfiguruj te klucze w swoim pliku App.config / Web.config. Więcej informacji znajdziesz w przewodniku po konfiguracji.

<add key="OAuth2Mode" value="SERVICE_ACCOUNT" />
<add key="OAuth2SecretsJsonPath" value="JSON_KEY_FILE_PATH" />

<!-- Supply the email address of the user to impersonate. -->
<add key="OAuth2PrnEmail" value="IMPERSONATED_EMAIL" />

Python

W konfiguracji ustaw ścieżkę do pliku JSON klucza prywatnego i adres e-mail, którego chcesz używać do podszywania tożsamości. Jeśli używasz ciągu google-ads.yaml file, ciągu YAML lub dict, dodaj:

json_key_file_path: JSON_KEY_FILE_PATH
impersonated_email: IMPERSONATED_EMAIL

Jeśli używasz zmiennych środowiskowych, dodaj te informacje do konfiguracji lub środowiska Bash:

export GOOGLE_ADS_JSON_KEY_FILE_PATH=JSON_KEY_FILE_PATH
export GOOGLE_ADS_IMPERSONATED_EMAIL=IMPERSONATED_EMAIL

PHP

Skonfiguruj te klucze w swoim pliku 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"
impersonatedEmail = "IMPERSONATED_EMAIL"

Ruby

Skonfiguruj te klucze w google_ads_config.rb.

c.keyfile = 'JSON_KEY_FILE_PATH'
c.impersonate = 'IMPERSONATED_EMAIL'

Perl

W konfiguracji ustaw ścieżkę do pliku JSON klucza prywatnego i identyfikator konta delegowanego. Jeśli używasz pliku googleads.properties, dodaj te informacje:

jsonKeyFilePath=JSON_KEY_FILE_PATH
impersonatedEmail=IMPERSONATED_EMAIL

Jeśli używasz zmiennych środowiskowych, dodaj te informacje do konfiguracji lub środowiska Bash:

export GOOGLE_ADS_JSON_KEY_FILE_PATH=JSON_KEY_FILE_PATH
export GOOGLE_ADS_IMPERSONATED_EMAIL=IMPERSONATED_EMAIL

Potencjalne problemy z bezpieczeństwem

Konto usługi ma kontrolę na poziomie domeny w Google Workspace, dlatego ważne jest, aby chronić plik klucza, który umożliwia temu kontu dostęp do usług Google, do których ma ono uprawnienia. Jest to szczególnie ważne, ponieważ to konto usługi może podszywać się pod dowolnego użytkownika w domenie.

Inną sprawdzoną metodą jest zezwalanie kontom usługi na dostęp tylko do minimalnego wymaganego zestawu interfejsów API. Jest to środek zapobiegawczy, który ogranicza ilość danych, do których osoba atakująca może uzyskać dostęp, jeśli kluczowy plik konta usługi zostanie naruszony.