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 .NET interfejsu Google Ads API dostęp do konta Google Ads użytkownika bez konieczności obsługiwania i 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.
Procesy OAuth
Podczas pracy z interfejsem Google Ads API stosuje się 3 typowe procesy.
Proces konta usługi
Jest to zalecany proces, jeśli aplikacja nie wymaga interakcji z użytkownikiem. 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 procesie konta usługi, aby dowiedzieć się więcej.
Proces uwierzytelniania pojedynczego użytkownika
Ten proces może być używany, jeśli nie możesz korzystać z kont usług. Ten proces wymaga wykonania 2 kroków konfiguracji:
- Przyznaj jednemu użytkownikowi dostęp do wszystkich kont, którymi chcesz zarządzać za pomocą interfejsu Google Ads API. Najczęstszym 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
gcloudlub przykładowy kodGenerateUserCredentials, aby autoryzować aplikację do zarządzania wszystkimi jego kontami Google Ads w jego imieniu.
Zainicjuj bibliotekę za pomocą 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 ich kontami Google Ads w ich imieniu. Aplikacja tworzy i zarządza danymi logowania OAuth 2.0 użytkownika dynamicznie na sesję lub żądanie użytkownika, a następnie inicjuje GoogleAdsClient za pomocą tokena 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 wersji Google.Ads.GoogleAds v27.0.0 możesz też wstrzyknąć
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 procesie uwierzytelniania wielu użytkowników, aby dowiedzieć się więcej. Biblioteka klienta .NET zawiera 2 przykłady kodu:
- Przykład kodu
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 do pobierania kampanii na jego koncie Google Ads. - Przykład kodu 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ładu kodu jako odniesienia do tworzenia aplikacji na komputery, które wymagają uwierzytelniania użytkownika.
Co zrobić, jeśli użytkownik zarządza kilkoma kontami?
Użytkownik może zarządzać więcej niż 1 kontem Google Ads – bezpośrednio lub za pomocą konta menedżera Google Ads. Biblioteka klienta .NET zawiera te przykłady kodu, które pokazują, jak sobie radzić w takich przypadkach:
- 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.
Domyślne uwierzytelnianie aplikacji
Biblioteka klienta .NET (v24.1.0 i nowsze) obsługuje też uwierzytelnianie za pomocą
domyślnego uwierzytelniania aplikacji.
Jest to szczególnie przydatne w przypadku lokalnego programowania lub programowania z użyciem różnych interfejsów API Google, ponieważ możesz ponownie użyć 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 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.