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.
Poznaj 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żywane są 3 typowe przepływy pracy.
Przepływ konta usługi
Jest to zalecany przepływ pracy, jeśli nie wymaga on interakcji z użytkownikiem. Ten przepływ pracy 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, aby dowiedzieć się więcej.
Przepływ uwierzytelniania pojedynczego użytkownika
Ten przepływ pracy może być używany, jeśli nie możesz korzystać z kont usługi. Ten przepływ pracy wymaga wykonania 2 kroków konfiguracji:
- Udziel pojedynczemu użytkownikowi dostępu do wszystkich kont, którymi ma zarządzać za pomocą interfejsu Google Ads API. Powszechnym rozwiązaniem 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.
- Użytkownik uruchamia narzędzie wiersza poleceń, takie jak
GenerateUserCredentialsaby autoryzować aplikację do zarządzania wszystkimi jego kontami Google Ads w jego imieniu.
Bibliotekę można zainicjować za pomocą danych logowania 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 przepływie pracy uwierzytelniania pojedynczego użytkownika.
Przepływ uwierzytelniania wielu użytkowników
Jest to zalecany przepływ pracy, jeśli aplikacja umożliwia użytkownikom logowanie się i autoryzowanie aplikacji do zarządzania ich kontami Google Ads w ich imieniu. Aplikacja dynamicznie tworzy dane logowania OAuth 2.0 użytkownika i zarządza nimi w przypadku każdej uwierzytelnionej sesji użytkownika. Bibliotekę można zainicjować za pomocą 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). Gdy w OAuth2TokenBuilder nie są ustawione dane logowania 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żytkownik może zarządzać 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 PHP zawiera te przykłady kodu, które pokazują, jak obsługiwać takie przypadki:
- Przykład kodu
GetAccountHierarchypokazuje, jak pobrać listę wszystkich kont na koncie menedżera Google Ads. - Przykład kodu
ListAccessibleCustomerspokazuje, jak pobrać listę wszystkich kont, do których użytkownik ma bezpośredni dostęp. Te konta mogą być używane jako prawidłowe wartości ustawienialoginCustomerId.