Authentifizierung und Autorisierung

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 auf das Google Ads-Konto eines Nutzers zugreifen, ohne dass die Anmeldedaten des Nutzers verarbeitet oder gespeichert werden müssen.

In diesem Leitfaden wird beschrieben, wie Sie die Java-Clientbibliothek für die Google Ads API-Authentifizierung mit den drei gängigsten OAuth 2.0-Abläufen konfigurieren und welche Anmeldedaten erforderlich sind.

Weitere Informationen zum Google Ads API-Zugriffsmodell finden Sie im Leitfaden zum Google Ads-Zugriffsmodell.

Anmeldedaten

Für den Zugriff auf die Google Ads API sind OAuth 2.0-Anmeldedaten und in einigen Fällen eine Kunden-ID für die Anmeldung erforderlich.

OAuth 2.0-Anmeldedaten

Wenn Sie sich als Google-Kontonutzer mit Zugriff auf Google Ads-Konten autorisieren möchten, müssen Sie OAuth 2.0-Anmeldedaten angeben. Welche Art von Anmeldedaten erforderlich ist, hängt vom verwendeten OAuth 2.0-Ablauf ab.

Die Bibliothek unterstützt drei Abläufe:

  • Ablauf für Dienstkonten
  • Authentifizierungsvorgang für einzelne Nutzer
  • Authentifizierungsvorgang für mehrere Nutzer

Weitere Informationen zu den Google Ads API-OAuth-Abläufen finden Sie in der OAuth-Übersicht. Folgen Sie der Anleitung für den Ablauf, der Ihren Anforderungen am besten entspricht, um die erforderlichen Anmeldedaten zu erhalten.

Kundennummer für die Anmeldung

Geben Sie optional die Kundennummer eines Verwaltungskontos an, das Zugriff auf das Konto zur Anzeigenauslieferung bietet. Dies muss angegeben werden, wenn Sie über ein Verwaltungskonto auf das Kundenkonto zugreifen. Sie müssen nicht alle Managerkonten auf dem Pfad zur Kunden-ID angeben, sondern nur die oberste Manager-ID, die Sie für Zugriffsrechte verwenden. Weitere Informationen finden Sie in der zugehörigen Dokumentation.

In der Clientbibliothek wird die Anmelde-Kundennummer durch den Schlüssel api.googleads.loginCustomerId in der Datei ads.properties angegeben.

Konfiguration

Sie können die Clientbibliothek mit einer ads.properties-Datei, Umgebungsvariablen oder programmatisch konfigurieren. In diesem Leitfaden geht es um die Verwendung einer ads.properties-Datei. Weitere Informationen zu allen Optionen finden Sie im Konfigurationsleitfaden.

Wenn Sie eine ads.properties-Datei verwenden, legen Sie sie in Ihrem Stammverzeichnis ab: ~/ads.properties.

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 Ihren Workflow 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.

Wenn Sie die JSON-Datei mit dem privaten Schlüssel haben, fügen Sie Folgendes in Ihre ads.properties-Datei ein:

api.googleads.serviceAccountSecretsPath=INSERT_PATH_TO_JSON_HERE
# Only add this key if you are using Google Workspace domain-wide delegation
# to impersonate a user who has access to the Google Ads account.
# api.googleads.serviceAccountUser=USER_EMAIL_TO_IMPERSONATE

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:

  1. Einem einzelnen Nutzer Zugriff auf alle Konten gewähren, die mit der Google Ads API verwaltet werden sollen Eine gängige Vorgehensweise ist, dem Nutzer Zugriff auf ein Google Ads API-Verwaltungskonto zu gewähren und alle Ziel-Google Ads-Konten mit diesem Verwaltungskonto zu verknüpfen.
  2. Der Nutzer führt ein Befehlszeilentool wie die gcloud CLI oder das GenerateUserCredentials-Codebeispiel aus, um Ihre App zu autorisieren, alle seine Google Ads-Konten in seinem Namen zu verwalten.

Sobald Sie diese Anmeldedaten haben, fügen Sie der Datei ads.properties Folgendes hinzu:

api.googleads.clientId=INSERT_CLIENT_ID_HERE
api.googleads.clientSecret=INSERT_CLIENT_SECRET_HERE
api.googleads.refreshToken=INSERT_REFRESH_TOKEN_HERE

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. Das Codebeispiel GenerateUserCredentials ist ein Befehlszeilentool, das zeigt, wie die Nutzerauthentifizierung zur Laufzeit erfolgt, um ihre Google Ads-Konten in ihrem Namen zu verwalten. Sie können dieses Codebeispiel als Referenz für die Entwicklung von Desktop- oder Web-Apps verwenden, für die eine Nutzerauthentifizierung erforderlich ist.

Bei Anwendungen für mehrere Nutzer speichern Sie die OAuth 2.0-Client-ID und den Clientschlüssel Ihrer Anwendung in ads.properties (oder einem anderen Konfigurationsspeicher). Das Aktualisierungstoken jedes Endnutzers wird sicher in der Anwendungsdatenbank gespeichert und programmatisch zur Laufzeit übergeben, wenn UserCredentials und GoogleAdsClient erstellt werden:

api.googleads.clientId=INSERT_CLIENT_ID_HERE
api.googleads.clientSecret=INSERT_CLIENT_SECRET_HERE

Weitere Informationen finden Sie im Leitfaden für den Workflow zur Authentifizierung für mehrere Nutzer.

Mehrere Konten verwalten

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 Java-Clientbibliothek enthält die folgenden Codebeispiele, die veranschaulichen, wie solche Fälle behandelt werden:

  1. Im Codebeispiel GetAccountHierarchy wird gezeigt, wie Sie die Liste aller Konten unter einem Google Ads-Verwaltungskonto abrufen.
  2. 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 Einstellung loginCustomerId verwendet werden.

Standardanmeldedaten für Anwendungen

Die Java-Clientbibliothek 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 api.googleads.useApplicationDefaultCredentials in Ihrer ads.properties-Datei auf true oder rufen Sie .enableApplicationDefaultCredentials() für GoogleAdsClient.newBuilder() auf. Wenn Sie Standardanmeldedaten für Anwendungen verwenden, dürfen die Client-ID, das Client-Secret und das Aktualisierungstoken nicht festgelegt werden.