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 .NET 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 aplikacja nie wymaga 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.
Skonfiguruj bibliotekę w ten sposób:
// Initialize a GoogleAdsConfig instance.
GoogleAdsConfig config = new GoogleAdsConfig()
{
OAuth2Mode = OAuth2Flow.SERVICE_ACCOUNT,
OAuth2SecretsJsonPath = "PATH_TO_CREDENTIALS_JSON",
LoginCustomerId = "INSERT_LOGIN_CUSTOMER_ID_HERE"
};
// Initialize a GoogleAdsClient instance.
GoogleAdsClient client = new GoogleAdsClient(config);
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.
- Użytkownik uruchamia narzędzie wiersza poleceń, np.
gcloudlub przykładowy kodGenerateUserCredentials, aby upoważnić Twoją aplikację do zarządzania w jego imieniu wszystkimi jego kontami Google Ads.
Zainicjuj bibliotekę, używając danych logowania OAuth 2.0 użytkownika w ten sposób:
GoogleAdsConfig config = new GoogleAdsConfig()
{
LoginCustomerId = "INSERT_LOGIN_CUSTOMER_ID_HERE",
OAuth2ClientId = "INSERT_OAUTH_CLIENT_ID_HERE",
OAuth2ClientSecret = "INSERT_OAUTH_CLIENT_SECRET_HERE",
OAuth2RefreshToken = "INSERT_REFRESH_TOKEN_HERE"
};
GoogleAdsClient client = new GoogleAdsClient(config);
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 użytkownika OAuth 2.0 i zarządza nimi na potrzeby sesji lub żądania użytkownika, a następnie inicjuje obiekt GoogleAdsClient z tokenem odświeżania aktywnego użytkownika:
GoogleAdsConfig config = new GoogleAdsConfig()
{
LoginCustomerId = userSession.LoginCustomerId,
OAuth2ClientId = "INSERT_OAUTH_CLIENT_ID_HERE",
OAuth2ClientSecret = "INSERT_OAUTH_CLIENT_SECRET_HERE",
OAuth2RefreshToken = userSession.RefreshToken
};
GoogleAdsClient client = new GoogleAdsClient(config);
Od Google.Ads.GoogleAds v27.0.0 możesz też wstrzykiwać wstępnie skonfigurowany obiekt ICredential lub GoogleCredential bezpośrednio do GoogleAdsConfig za pomocą właściwości Credentials.
Więcej informacji znajdziesz w przewodniku po przepływie pracy uwierzytelniania wielu użytkowników. Biblioteka klienta .NET zawiera 2 przykłady kodu:
- Przykładowy kod
AuthenticateInAspNetCoreApplicationpokazuje, jak utworzyć aplikację internetową, która uzyskuje uwierzytelnianie użytkownika w czasie działania, aby zarządzać jego kontami Google Ads w jego imieniu. Aplikacja używa danych logowania OAuth 2.0 użytkownika, aby pobrać kampanie z jego konta Google Ads. - Przykładowy kod wiersza poleceń
GenerateUserCredentialspokazuje, jak uzyskać uwierzytelnianie użytkownika w czasie działania, aby zarządzać jego kontami Google Ads w jego imieniu. Możesz użyć tego przykładowego kodu jako odniesienia do tworzenia aplikacji komputerowych, które wymagają uwierzytelniania użytkownika.
Co zrobić, jeśli użytkownik zarządza 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 .NET zawiera te przykłady kodu, które pokazują, jak obsługiwać takie przypadki:
- Przykładowy kod
GetAccountHierarchypokazuje, jak pobrać listę wszystkich kont na koncie menedżera Google Ads. - Przykładowy kod
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.
Domyślne uwierzytelnianie aplikacji
Biblioteka klienta .NET (w wersji v24.1.0 i nowszych) obsługuje też uwierzytelnianie za pomocą domyślnego uwierzytelniania aplikacji.
Jest to szczególnie przydatne w przypadku programowania lokalnego lub programowania z użyciem różnych interfejsów API Google, ponieważ możesz ponownie używać tych samych danych logowania, o ile mają one dostęp do wymaganych zakresów OAuth 2.0.
W przypadku interfejsu Google Ads API upewnij się, że domyślne uwierzytelnianie aplikacji ma dostęp do zakresu OAuth 2.0 https://www.googleapis.com/auth/adwords.
Aby używać domyślnego uwierzytelniania aplikacji, ustaw opcję UseApplicationDefaultCredentials na true w pliku GoogleAdsConfig (lub ustaw zmienną środowiskową USE_APPLICATION_DEFAULT_CREDENTIALS=true podczas wczytywania konfiguracji za pomocą config.LoadFromEnvironmentVariables()):
GoogleAdsConfig config = new GoogleAdsConfig()
{
UseApplicationDefaultCredentials = true,
LoginCustomerId = "INSERT_LOGIN_CUSTOMER_ID_HERE"
};
GoogleAdsClient client = new GoogleAdsClient(config);
Więcej informacji o dostępnych opcjach konfigurowania biblioteki klienta .NET znajdziesz na stronie konfiguracji.