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 .NET-Client-App für die Google Ads API auf das Google Ads-Konto eines Nutzers zugreifen, ohne dass die Anmeldedaten des Nutzers verarbeitet oder gespeichert werden müssen.
Google Ads-Zugriffsmodell
Wenn Sie effektiv mit der Google Ads API arbeiten möchten, müssen Sie wissen, wie das Zugriffsmodell von Google Ads funktioniert. Weitere Informationen finden Sie im Leitfaden zum Google Ads-Zugriffsmodell.
OAuth-Workflows
Bei der Arbeit mit der Google Ads API gibt es drei gängige Workflows.
Dienstkonto-Ablauf
Dies ist der empfohlene Workflow, wenn Ihre Anwendung keine menschliche Interaktion erfordert. 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 Dienstkonto-Workflow.
Authentifizierungsablauf für einzelne Nutzer
Dieser Workflow kann verwendet werden, wenn Sie keine Dienstkonten verwenden können. Für diesen Workflow sind zwei Konfigurationsschritte erforderlich:
- Gewähren Sie einem einzelnen Nutzer Zugriff auf alle Konten, die über die 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 mit diesem Verwaltungskonto zu verknüpfen.
- Der Nutzer führt ein Befehlszeilentool wie
gcloudoder dasGenerateUserCredentials-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 Authentifizierungs-Workflow für einzelne Nutzer.
Authentifizierungsvorgang für mehrere Nutzer
Das ist der empfohlene Workflow, wenn Nutzer sich in Ihrer App anmelden und sie autorisieren können, ihre Google Ads-Konten in ihrem Namen zu verwalten. Ihre Anwendung 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 über das Attribut Credentials in GoogleAdsConfig 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:
- Das Codebeispiel
AuthenticateInAspNetCoreApplicationveranschaulicht, wie Sie eine Webanwendung erstellen, die zur Laufzeit eine Nutzerauthentifizierung erhält, um die Google Ads-Konten der Nutzer in deren Namen zu verwalten. Die App verwendet die OAuth 2.0-Anmeldedaten des Nutzers, um die Kampagnen in seinem Google Ads-Konto abzurufen. - Das Befehlszeilen-Codebeispiel
GenerateUserCredentialszeigt, wie Sie die Nutzerauthentifizierung zur Laufzeit abrufen, um die Google Ads-Konten im Namen der Nutzer zu verwalten. Sie können dieses Codebeispiel als Referenz für die Erstellung von Desktop-Anwendungen verwenden, die eine Nutzerauthentifizierung erfordern.
Was ist, wenn ein Nutzer mehrere Konten verwaltet?
Es ist üblich, dass ein Nutzer mehr als ein Google Ads-Konto verwaltet, entweder über den direkten Zugriff auf Konten oder über ein Google Ads-Verwaltungskonto. Die .NET-Clientbibliothek bietet die folgenden Codebeispiele, die zeigen, wie solche Fälle behandelt werden:
- Das Codebeispiel
GetAccountHierarchyzeigt, wie Sie die Liste aller Konten unter einem Google Ads-Verwaltungskonto abrufen. - Im Codebeispiel
ListAccessibleCustomerswird gezeigt, 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 EinstellungLoginCustomerIdverwendet 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 Option UseApplicationDefaultCredentials in Ihrer GoogleAdsConfig auf true (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 Seite Konfiguration.