Authentifizierung und Autorisierung

Wie andere Google APIs verwendet auch die Google Ads API das OAuth 2.0-Protokoll für die Authentifizierung und Autorisierung. Mit OAuth 2.0 kann Ihre Google Ads API .NET-Client-App auf das Google Ads-Konto eines Nutzers zugreifen, ohne die Anmeldedaten des Nutzers verarbeiten oder speichern zu müssen.

Google Ads-Zugriffsmodell

Wenn Sie effektiv mit der Google Ads API arbeiten möchten, müssen Sie wissen, wie das Google Ads-Zugriffsmodell funktioniert. Weitere Informationen finden Sie im Leitfaden zum Google Ads-Zugriffsmodell.

OAuth-Workflows

Bei der Arbeit mit der Google Ads API werden drei gängige Workflows verwendet.

Workflow für Dienstkonten

Dies ist der empfohlene Workflow, wenn für Ihre Anwendung keine Interaktion mit Nutzern erforderlich ist. Für diesen Workflow ist ein Konfigurationsschritt erforderlich, bei dem der Nutzer seinem Google Ads-Konto ein Dienstkonto hinzufügt. Die App kann dann die Anmeldedaten des Dienstkontos verwenden, um das Google Ads-Konto des Nutzers zu verwalten.

Konfigurieren Sie die Bibliothek so:

// 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);

Weitere Informationen finden Sie im Leitfaden zum Workflow für Dienstkonten.

Workflow für die Authentifizierung einzelner Nutzer

Dieser Workflow kann verwendet werden, wenn Sie keine Dienstkonten verwenden können. Für diesen Workflow sind zwei Konfigurationsschritte erforderlich:

  1. Gewähren Sie einem einzelnen Nutzer Zugriff auf alle Konten, die mit der Google Ads API verwaltet werden sollen. Ein gängiger Ansatz besteht darin, dem Nutzer Zugriff auf ein Google Ads API-Verwaltungskonto zu gewähren und alle Google Ads-Konten unter diesem Verwaltungskonto zu verknüpfen.
  2. Der Nutzer führt ein Befehlszeilentool wie gcloud oder das GenerateUserCredentials Codebeispiel aus, um Ihre App zu autorisieren, alle seine Google Ads-Konten in seinem Namen zu verwalten.

Initialisieren Sie die Bibliothek mit den OAuth 2.0-Anmeldedaten des Nutzers so:

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);

Weitere Informationen finden Sie im Leitfaden zum Workflow für die Authentifizierung einzelner Nutzer

Workflow für die Authentifizierung mehrerer Nutzer

Dies ist der empfohlene Workflow, wenn sich Nutzer in Ihrer App anmelden und Ihre App autorisieren können, ihre Google Ads-Konten in ihrem Namen zu verwalten. Ihre App erstellt und verwaltet die OAuth 2.0-Nutzeranmeldedaten dynamisch pro Nutzersitzung oder Anfrage und initialisiert dann einen GoogleAdsClient mit dem Aktualisierungstoken des aktiven Nutzers:

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);

Ab Google.Ads.GoogleAds v27.0.0 können Sie auch ein vorkonfiguriertes ICredential oder GoogleCredential-Objekt direkt in GoogleAdsConfig mit der Eigenschaft Credentials einfügen.

Weitere Informationen finden Sie im Leitfaden zum Workflow für die Authentifizierung mehrerer Nutzer Die .NET-Clientbibliothek enthält zwei Codebeispiele als Referenz:

  1. Das AuthenticateInAspNetCoreApplication Code beispiel zeigt, wie Sie eine Web-App erstellen, die zur Laufzeit die Nutzerauthentifizierung abruft, um die Google Ads-Konten der Nutzer in ihrem Namen zu verwalten. Die App verwendet die OAuth 2.0-Anmeldedaten des Nutzers, um die Kampagnen in seinem Google Ads-Konto abzurufen.
  2. Das GenerateUserCredentials Befehlszeilen Codebeispiel zeigt, wie Sie zur Laufzeit die Nutzerauthentifizierung abrufen, um die Google Ads-Konten der Nutzer in ihrem Namen zu verwalten. Sie können dieses Codebeispiel als Referenz verwenden, um Desktop-Apps zu erstellen, für die eine Nutzerauthentifizierung erforderlich ist.

Was ist, wenn mein Nutzer mehrere Konten verwaltet?

Es ist üblich, dass ein Nutzer mehrere Google Ads-Konten verwaltet, entweder durch direkten Zugriff auf Konten oder über ein Google Ads-Verwaltungskonto. Die .NET-Clientbibliothek enthält die folgenden Codebeispiele, die zeigen, wie Sie solche Fälle behandeln:

  1. Das GetAccountHierarchy Codebeispiel zeigt, wie Sie die Liste aller Konten unter einem Google Ads-Verwaltungskonto abrufen.
  2. Das ListAccessibleCustomers Codebeispiel zeigt, wie Sie die Liste aller Konten abrufen, auf die ein Nutzer direkten Zugriff hat. Diese Konten können dann als gültige Werte für die Einstellung LoginCustomerId verwendet werden.

Standardanmeldedaten für Anwendungen

Die .NET-Clientbibliothek (v24.1.0 und höher) unterstützt auch die Authentifizierung mit Standardanmeldedaten für Anwendungen.

Dies ist besonders nützlich für die lokale Entwicklung oder für die Entwicklung mit verschiedenen Google APIs, da Sie dieselben Anmeldedaten wiederverwenden können, sofern sie auf die erforderlichen OAuth 2.0-Bereiche zugreifen können.

Achten Sie bei der Google Ads API darauf, dass Ihre Standardanmeldedaten für Anwendungen auf den OAuth 2.0-Bereich https://www.googleapis.com/auth/adwords zugreifen können.

Wenn Sie Standardanmeldedaten für Anwendungen verwenden möchten, setzen Sie die UseApplicationDefaultCredentials Option auf true in Ihrer GoogleAdsConfig oder legen Sie die Umgebungsvariable USE_APPLICATION_DEFAULT_CREDENTIALS=true fest, wenn Sie die Konfiguration mit config.LoadFromEnvironmentVariables() laden:

GoogleAdsConfig config = new GoogleAdsConfig()
{
    UseApplicationDefaultCredentials = true,
    LoginCustomerId = "INSERT_LOGIN_CUSTOMER_ID_HERE"
};
GoogleAdsClient client = new GoogleAdsClient(config);

Weitere Informationen zu den verfügbaren Optionen zum Konfigurieren der .NET-Clientbibliothek finden Sie auf der Konfigurationsseite.