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 .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:

  1. 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.
  2. Użytkownik uruchamia narzędzie wiersza poleceń, takie jak gcloud lub przykładowy kod GenerateUserCredentials, 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:

  1. Przykład kodu AuthenticateInAspNetCoreApplication pokazuje, 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.
  2. Przykład kodu wiersza poleceń GenerateUserCredentials pokazuje, 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:

  1. Przykład kodu GetAccountHierarchy pokazuje, jak pobrać listę wszystkich kont na koncie menedżera Google Ads.
  2. Przykład kodu ListAccessibleCustomers pokazuje, 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 ustawienia LoginCustomerId.

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.