Uwierzytelnianie i autoryzacja

Podobnie jak inne interfejsy API Google, interfejs Google Ads API używa protokołu OAuth 2.0 do uwierzytelniania i autoryzacji. OAuth 2.0 umożliwia aplikacji klienckiej interfejsu Google Ads API dostęp do konta Google Ads użytkownika bez konieczności obsługiwania lub przechowywania informacji logowania użytkownika.

Omówienie modelu dostępu do Google Ads

Aby skutecznie korzystać z interfejsu Google Ads API, musisz zrozumieć, jak działa model dostępu do Google Ads. Zalecamy zapoznanie się z przewodnikiem po modelu dostępu do Google Ads.

Przepływy pracy OAuth

Podczas pracy z interfejsem Google Ads API stosuje się 3 typy typowych procesów.

Proces konta usługi

Jest to zalecany przepływ pracy, jeśli nie wymaga on interakcji z użytkownikiem. Ten proces wymaga konfiguracji, w ramach której użytkownik dodaje konto usługi do swojego konta Google Ads. Aplikacja może wtedy używać danych logowania konta usługi do zarządzania kontem Google Ads użytkownika.

Oto jak skonfigurować OAuth2 na potrzeby dostępu do interfejsu API przy użyciu własnych danych logowania z kontem usługi w bibliotece klienta Perl:

  1. Utwórz dane logowania OAuth2:

    Postępuj zgodnie z instrukcjami, aby wygenerować konto usługi i *.JSONplik.

  2. Skonfiguruj bibliotekę klienta:

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

    jsonKeyFilePath=PRIVATE_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=PRIVATE_KEY_FILE_PATH
    

    Więcej informacji znajdziesz w przewodniku po przepływie pracy na koncie usługi.

Proces uwierzytelniania pojedynczego użytkownika

Ten przepływ pracy może być używany, jeśli nie możesz korzystać z kont usług. Ten przepływ pracy wymaga 2 etapów konfiguracji:

  1. Przyznaj jednemu użytkownikowi dostęp do wszystkich kont, którymi chcesz zarządzać za pomocą interfejsu Google Ads API. Często stosowanym rozwiązaniem jest przyznanie użytkownikowi dostępu do konta menedżera interfejsu Google Ads API i powiązanie z nim wszystkich kont Google Ads.
  2. Użytkownik uruchamia generate_user_credentials.plprzykład kodu, aby autoryzować aplikację do zarządzania w jego imieniu wszystkimi kontami Google Ads.

Poniższe kroki uruchamiają interaktywny przykład kodu, który wymaga od Ciebie podania danych wejściowych.

  1. W terminalu uruchom przykład generate_user_credentials.pl w katalogu examples. Przed uruchomieniem możesz zmodyfikować wartości INSERT_XXX_HERE w przykładzie lub użyć argumentów wiersza poleceń -client_id dla identyfikatora klienta i -client_secret dla klucza klienta.

    perl generate_user_credentials.pl -client_id {client_id} -client_secret {client_secret}
    
  2. Ten przykład kodu wyświetla prośbę o odwiedzenie adresu URL, na którym musisz zezwolić aplikacji na dostęp do Twojego konta Google Ads w Twoim imieniu.

    Paste this url in your browser:
    https://accounts.google.com/o/oauth2/v2/auth?response_type=code&access_type=offline&client_id=...
    

    Otwórz adres URL w sesji przeglądania prywatnego lub w oknie incognito. Zaloguj się na konto Google, którego używasz do uzyskiwania dostępu do Google Ads. Zwykle jest to konto e-mail, które ma dostęp do konta menedżera Google Ads zawierającego wszystkie konta, którymi musisz zarządzać w ramach jego hierarchii. Na ekranie zgody OAuth 2.0 kliknij Dalej.

    Ekran zgody OAuth 2.0

    Przekierujemy Cię na stronę z komunikatem informującym o tym, że autoryzacja się powiodła.

    Authorization code was successfully retrieved.
    
  3. Wróć do konsoli, w której uruchamiasz przykładowy kod. Zobaczysz, że przykład kodu został wykonany i wyświetla token odświeżania oraz kilka instrukcji, a także instrukcje, których musisz przestrzegać, aby skonfigurować bibliotekę klienta:

    Replace the following keys and values in your googleads.properties configuration file:
    
    clientId==***********************apps.googleusercontent.com
    clientSecret=****
    refreshToken=****
    
  4. Aby zakończyć proces, naciśnij Ctrl + C. Następnie skopiuj wygenerowany token odświeżania wraz z identyfikatorem klienta i tajnym kluczem klienta do pliku googleads.properties lub zapisz go w innym miejscu, aby użyć go podczas tworzenia instancji biblioteki w czasie działania programu.

Bibliotekę można zainicjować za pomocą danych logowania OAuth 2.0 użytkownika, ustawiając w googleads.properties te wartości:

clientId=OAUTH_CLIENT_ID
clientSecret=OAUTH_CLIENT_SECRET
refreshToken=REFRESH_TOKEN
developerToken=DEVELOPER_TOKEN
loginCustomerId=LOGIN_CUSTOMER_ID

Możesz też użyć zmiennych środowiskowych:

export GOOGLE_ADS_CLIENT_ID=OAUTH_CLIENT_ID
export GOOGLE_ADS_CLIENT_SECRET=OAUTH_CLIENT_SECRET
export GOOGLE_ADS_REFRESH_TOKEN=REFRESH_TOKEN
export GOOGLE_ADS_DEVELOPER_TOKEN=DEVELOPER_TOKEN
export GOOGLE_ADS_LOGIN_CUSTOMER_ID=LOGIN_CUSTOMER_ID

Więcej informacji znajdziesz w przewodniku po przepływie pracy uwierzytelniania pojedynczego użytkownika.

Proces uwierzytelniania wielu użytkowników

Jest to zalecany proces, jeśli aplikacja umożliwia użytkownikom logowanie się i autoryzowanie jej do zarządzania ich kontami Google Ads w ich imieniu. Aplikacja tworzy dane logowania użytkownika OAuth 2.0 i nimi zarządza.

W przypadku Perla zwykle implementujesz przepływ aplikacji internetowej, w którym aplikacja obsługuje przekierowanie OAuth 2.0 i zarządzanie tokenami. Użytkownik uwierzytelnia się w Twojej aplikacji, a ona przechowuje i wykorzystuje token odświeżania użytkownika do wykonywania wywołań interfejsu API w jego imieniu.

Konfiguracja używania uzyskanych danych logowania jest taka sama jak w przypadku procesu uwierzytelniania jednego użytkownika:

clientId=OAUTH_CLIENT_ID
clientSecret=OAUTH_CLIENT_SECRET
refreshToken=REFRESH_TOKEN
developerToken=DEVELOPER_TOKEN
loginCustomerId=LOGIN_CUSTOMER_ID

Możesz też użyć zmiennych środowiskowych:

export GOOGLE_ADS_CLIENT_ID=OAUTH_CLIENT_ID
export GOOGLE_ADS_CLIENT_SECRET=OAUTH_CLIENT_SECRET
export GOOGLE_ADS_REFRESH_TOKEN=REFRESH_TOKEN
export GOOGLE_ADS_DEVELOPER_TOKEN=DEVELOPER_TOKEN
export GOOGLE_ADS_LOGIN_CUSTOMER_ID=LOGIN_CUSTOMER_ID

Więcej informacji znajdziesz w przewodniku po przepływie pracy uwierzytelniania wielu użytkowników.

Co zrobić, jeśli użytkownik zarządza wieloma kontami?

Użytkownicy często zarządzają więcej niż 1 kontem Google Ads, korzystając z bezpośredniego dostępu do kont lub z konta menedżera Google Ads. Biblioteka klienta Perl zawiera przykłady, które pokazują, jak sobie radzić w takich sytuacjach.

  1. get_account_hierarchy.pl przykładzie pokazujemy, jak pobrać listę wszystkich kont podrzędnych konta menedżera Google Ads.
  2. Przykład list_accessible_customers.pl pokazuje, jak pobrać listę wszystkich kont, do których użytkownik ma bezpośredni dostęp. Te konta można następnie wykorzystać jako prawidłowe wartości ustawienia LoginCustomerId w pliku googleads.properties lub zmiennej środowiskowej GOOGLE_ADS_LOGIN_CUSTOMER_ID.