Wie bei anderen Google APIs wird auch bei der Google Ads API das OAuth 2.0-Protokoll für die Authentifizierung und Autorisierung verwendet. Mit OAuth 2.0 kann Ihre Google Ads API-Clientanwendung für .NET 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 Google Ads-Zugriffsmodell funktioniert. Weitere Informationen finden Sie im Leitfaden zum Google Ads-Zugriffsmodell.
OAuth-Arbeitsabläufe
Es gibt drei gängige Workflows für die Arbeit mit der Google Ads API.
Ablauf für Dienstkonten
Dies ist der empfohlene Workflow, wenn für Ihre Anwendung keine menschliche Interaktion 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 für den Dienstkontoworkflow.
Authentifizierungsvorgang für einzelne Nutzer
Dieser Workflow kann verwendet werden, wenn Sie keine Dienstkonten verwenden können. Für diesen Workflow sind zwei Konfigurationsschritte erforderlich:
- Einem einzelnen Nutzer Zugriff auf alle Konten gewähren, die mit der Google Ads API verwaltet werden sollen Eine gängige Vorgehensweise 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:
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 für den Authentifizierungs-Workflow für einzelne Nutzer.
Authentifizierungsvorgang für mehrere Nutzer
Dieser Workflow wird empfohlen, 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 ein 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 einfügen. Verwenden Sie dazu das Attribut Credentials.
Weitere Informationen finden Sie im Leitfaden für den Workflow zur Authentifizierung für mehrere Nutzer. Die .NET-Clientbibliothek enthält zwei Codebeispiele als Referenz:
- Das Codebeispiel
AuthenticateInAspNetCoreApplicationveranschaulicht, wie Sie eine Web-App erstellen, die zur Laufzeit die Nutzerauthentifizierung abruft, um ihre Google Ads-Konten in ihrem Namen zu verwalten. Die App verwendet die OAuth 2.0-Anmeldedaten des Nutzers, um die Kampagnen in seinem Google Ads-Konto abzurufen. - Das
GenerateUserCredentials-Befehlszeilenbeispiel zeigt, wie die Nutzerauthentifizierung zur Laufzeit erfolgt, um ihre Google Ads-Konten 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 die Konten oder über ein Google Ads-Verwaltungskonto. Die .NET-Clientbibliothek enthält die folgenden Codebeispiele, die zeigen, wie solche Fälle behandelt werden:
- Im Codebeispiel
GetAccountHierarchywird gezeigt, wie Sie die Liste aller Konten unter einem Google Ads-Verwaltungskonto abrufen. - Im
ListAccessibleCustomers-Codebeispiel sehen Sie, 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 https://www.googleapis.com/auth/adwords-OAuth 2.0-Bereich 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 beim Laden der Konfiguration mit config.LoadFromEnvironmentVariables() fest):
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.