Podobnie jak inne interfejsy API Google, interfejs Google Ads API używa protokołu OAuth 2.0 do uwierzytelniania i autoryzacji. Protokół OAuth 2.0 umożliwia aplikacji klienckiej interfejsu Google Ads API dostęp do konta Google Ads użytkownika bez konieczności obsługiwania i przechowywania jego danych logowania.
Model dostępu do Google Ads
Aby skutecznie korzystać z interfejsu Google Ads API, musisz wiedzieć, jak działa model dostępu do Google Ads. Zapoznaj się z przewodnikiem po modelu dostępu do Google Ads.
Przepływy pracy OAuth
Podczas pracy z interfejsem Google Ads API używa się 3 typowych procesów.
Przepływ konta usługi
Jest to zalecany przepływ pracy, jeśli nie wymaga on interakcji z człowiekiem. Ten proces wymaga wykonania kroku konfiguracji, w którym 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.
Bibliotekę PHP można skonfigurować w ten sposób:
$oAuth2Credential = (new OAuth2TokenBuilder())
->withJsonKeyFilePath('INSERT_PATH_TO_JSON_KEY_FILE_HERE')
// Optional in v32.1.0 and later (defaults to
// 'https://www.googleapis.com/auth/adwords').
->withScopes('https://www.googleapis.com/auth/adwords')
->build();
$googleAdsClient = (new GoogleAdsClientBuilder())
->withOAuth2Credential($oAuth2Credential)
->build();
Więcej informacji znajdziesz w przewodniku po przepływie pracy konta usługi.
Proces uwierzytelniania jednego użytkownika
Możesz użyć tego przepływu pracy, jeśli nie możesz korzystać z kont usługi. Ten przepływ pracy wymaga 2 czynności konfiguracyjnych:
- Przyznaj jednemu użytkownikowi dostęp do wszystkich kont, którymi chcesz zarządzać za pomocą interfejsu Google Ads API. Często stosowanym podejściem jest przyznanie użytkownikowi dostępu do konta menedżera interfejsu Google Ads API i połączenie wszystkich kont Google Ads z tym kontem menedżera.
- Następnie użytkownik uruchamia narzędzie wiersza poleceń, np.
GenerateUserCredentials, aby upoważnić Twoją aplikację do zarządzania wszystkimi jego kontami Google Ads w jego imieniu.
Bibliotekę można zainicjować za pomocą danych uwierzytelniających OAuth 2.0 użytkownika w ten sposób:
$oAuth2Credential = (new OAuth2TokenBuilder())
->withClientId('INSERT_CLIENT_ID_HERE')
->withClientSecret('INSERT_CLIENT_SECRET_HERE')
->withRefreshToken('INSERT_REFRESH_TOKEN_HERE')
->build();
$googleAdsClient = (new GoogleAdsClientBuilder())
->withOAuth2Credential($oAuth2Credential)
->withLoginCustomerId('INSERT_LOGIN_CUSTOMER_ID_HERE')
->build();
Więcej informacji znajdziesz w przewodniku po procesie 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 aplikacji do zarządzania kontami Google Ads w ich imieniu. Aplikacja dynamicznie tworzy dane logowania OAuth 2.0 użytkownika i nimi zarządza w przypadku każdej uwierzytelnionej sesji użytkownika. Bibliotekę można zainicjować przy użyciu danych logowania zalogowanego użytkownika w ten sposób:
// Construct credentials dynamically per authenticated user session.
$oAuth2Credential = (new OAuth2TokenBuilder())
->withClientId('INSERT_CLIENT_ID_HERE')
->withClientSecret('INSERT_CLIENT_SECRET_HERE')
->withRefreshToken($userRefreshToken)
->build();
$googleAdsClient = (new GoogleAdsClientBuilder())
->withOAuth2Credential($oAuth2Credential)
->withLoginCustomerId($userLoginCustomerId)
->build();
Więcej informacji znajdziesz w przewodniku po przepływie pracy uwierzytelniania wielu użytkowników.
Domyślne uwierzytelnianie aplikacji
Biblioteka klienta PHP obsługuje też uwierzytelnianie za pomocą domyślnego uwierzytelniania aplikacji (ADC). Jeśli w OAuth2TokenBuilder nie są ustawione dane logowania ani w trybie aplikacji (clientId, clientSecret, refreshToken), ani w trybie konta usługi (jsonKeyFilePath), wywołanie build() automatycznie przełącza się na domyślne uwierzytelnianie aplikacji:
$oAuth2Credential = (new OAuth2TokenBuilder())->build();
$googleAdsClient = (new GoogleAdsClientBuilder())
->withOAuth2Credential($oAuth2Credential)
->withLoginCustomerId('INSERT_LOGIN_CUSTOMER_ID_HERE')
->build();
Zarządzanie wieloma kontami
Użytkownicy często zarządzają więcej niż jednym kontem Google Ads, korzystając z bezpośredniego dostępu do kont lub z konta menedżera Google Ads. Biblioteka klienta PHP zawiera te przykłady kodu, które pokazują, jak postępować w takich przypadkach:
- Przykładowy kod
GetAccountHierarchypokazuje, jak pobrać listę wszystkich kont na koncie menedżera Google Ads. - Przykładowy kod w języku
ListAccessibleCustomerspokazuje, jak pobrać listę wszystkich kont, do których użytkownik ma bezpośredni dostęp. Tych kont można następnie używać jako prawidłowych wartości ustawienialoginCustomerId.