In diesem Leitfaden erfahren Sie, wie Sie mit Dienstkonten auf die Google Ads API zugreifen.
Ein Dienstkonto ist ein Konto, das zu Ihrer App und nicht zu einem einzelnen Endnutzer gehört. Dienstkonten ermöglichen Server-zu-Server-Interaktionen zwischen einer Webanwendung und einem Google-Dienst. Ihre App ruft Google APIs im Namen des Dienstkontos auf, sodass Nutzer nicht direkt beteiligt sind.
Dienstkonten verwenden einen OAuth 2.0-Vorgang, der keine Autorisierung durch eine Person erfordert. Stattdessen wird eine Schlüsseldatei verwendet, auf die nur Ihre App zugreifen kann.
Dienstkonten haben zwei wesentliche Vorteile:
Die Autorisierung für den Google API-Zugriff erfolgt als Konfigurationsschritt. Dadurch werden die Komplikationen vermieden, die mit anderen OAuth 2.0-Abläufen verbunden sind, die eine Nutzerinteraktion erfordern.
Mit dem OAuth 2.0-Bestätigungsablauf kann Ihre App bei Bedarf andere Nutzer imitieren.
Es gibt zwei Möglichkeiten, mit Dienstkonten zu autorisieren: direkt oder mit Identitätsübernahme.
Autorisierung mit direktem Kontozugriff
Bei dieser Option gewähren Sie dem Dienstkonto direkten Zugriff auf Ihr Google Ads-Konto.
Kontozugriff einrichten
Erstellen Sie zuerst ein Dienstkonto und Anmeldedaten.
Laden Sie den Dienstkontoschlüssel im JSON-Format herunter und notieren Sie sich die Dienstkonto-ID und die E-Mail-Adresse.
Melden Sie sich als Administrator in Ihrem Google Ads-Konto an. Gehen Sie zu Tools und Einstellungen > Einrichtung > Zugriff und Sicherheit.
Klicken Sie auf dem Tab Nutzer auf die Schaltfläche +.
Geben Sie die E-Mail-Adresse des Dienstkontos in das Eingabefeld E-Mail ein. Wählen Sie die gewünschte Kontozugriffsebene aus und klicken Sie auf die Schaltfläche Konto hinzufügen. Die Zugriffsebenen „E-Mail“ und „Administrator“ werden für Dienstkonten nicht unterstützt.
Dem Dienstkonto wird Zugriff gewährt.
Clientbibliothekskonfiguration
Wählen Sie den Tab für Ihre Programmiersprache aus, um eine Anleitung zum Konfigurieren der Clientbibliothek aufzurufen.
Java
Legen Sie den JSON-Pfad des privaten Schlüssels in Ihrer Konfiguration fest. Wenn Sie eine ads.properties
-Datei verwenden, fügen Sie Folgendes hinzu:
api.googleads.serviceAccountSecretsPath=JSON_KEY_FILE_PATH
Weitere Informationen finden Sie in der Konfigurationsanleitung.
.NET
Konfigurieren Sie die folgenden Schlüssel in App.config / Web.config
. Weitere Informationen finden Sie in der Konfigurationsanleitung.
<add key="OAuth2Mode" value="SERVICE_ACCOUNT" />
<add key="OAuth2SecretsJsonPath" value="JSON_KEY_FILE_PATH" />
Python
Legen Sie den JSON-Pfad des privaten Schlüssels in Ihrer Konfiguration fest. Wenn Sie google-ads.yaml file
, einen YAML-String oder dict
verwenden, fügen Sie Folgendes hinzu:
json_key_file_path: JSON_KEY_FILE_PATH
Wenn Sie Umgebungsvariablen verwenden, fügen Sie Ihrer Bash-Konfiguration oder -Umgebung Folgendes hinzu:
export GOOGLE_ADS_JSON_KEY_FILE_PATH=JSON_KEY_FILE_PATH
PHP
Konfigurieren Sie die folgenden Schlüssel in google_ads_php.ini
. Weitere Informationen finden Sie in der Konfigurationsanleitung.
; For service account flow.
jsonKeyFilePath = "JSON_KEY_FILE_PATH"
scopes = "https://www.googleapis.com/auth/adwords"
Ruby
Konfigurieren Sie die folgenden Schlüssel in google_ads_config.rb
.
c.keyfile = 'JSON_KEY_FILE_PATH'
Perl
Legen Sie in der Konfiguration den JSON-Pfad des privaten Schlüssels fest und delegieren Sie die Konto-ID. Wenn Sie eine googleads.properties
-Datei verwenden, fügen Sie Folgendes hinzu:
jsonKeyFilePath=JSON_KEY_FILE_PATH
Wenn Sie Umgebungsvariablen verwenden, fügen Sie Ihrer Bash-Konfiguration oder ‑Umgebung Folgendes hinzu:
export GOOGLE_ADS_JSON_KEY_FILE_PATH=JSON_KEY_FILE_PATH
Autorisierung per Identitätsübernahme
Bei dieser Option übernehmen Sie mit dem Dienstkonto die Identität eines Nutzers, der Zugriff auf Ihr Google Ads-Konto hat. Dieser Ansatz funktioniert nur für Google Workspace-Kunden. Ein Dienstkonto kann nur die Identität von Nutzern (E-Mail-Adressen) im selben Google Workspace-Konto annehmen.
Voraussetzungen
Eine Google Workspace-Domain, deren Inhaber Sie sind, z. B.
mydomain.com
odermybusiness.com
Google Ads API-Entwickler-Token und optional ein Testkonto
Clientbibliothek für die verwendete Sprache
Ein Google API Console-Projekt, das für die Google Ads API konfiguriert wurde
Ein Google Ads-Nutzer mit Berechtigungen für das Google Ads-Konto, auf das Sie zugreifen möchten. In Google Ads wird die Verwendung von Dienstkonten ohne Identitätsdiebstahl nicht unterstützt.
Zugriff für Dienstkonten einrichten
Da die Nutzeridentitätsdiebstahl-Prävention nur auf Domainebene gesteuert wird, müssen Sie eine eigene Domain bei Google Workspace registriert haben, um Dienstkonten und den Bestätigungsablauf mit Google OAuth 2.0 verwenden zu können. Ihre App und ihre Nutzer können dann jeden Nutzer in der Domain imitieren.
Erstellen Sie zuerst ein Dienstkonto und Anmeldedaten.
Laden Sie den Dienstkontoschlüssel im JSON-Format herunter und notieren Sie sich die Dienstkonto-ID.
Geben Sie die Dienstkonto-ID und den Bereich der Google Ads API (
https://www.googleapis.com/auth/adwords
) an Ihren Domainadministrator weiter.Bitten Sie den Domainadministrator, domainweite Befugnisse an Ihr Dienstkonto zu delegieren.
Wenn Sie der Domainadministrator sind, folgen Sie der Anleitung in der Hilfe.
Sie können das Dienstkonto jetzt verwenden, um mit dem OAuth 2.0-Assertion-Workflow auf Ihr Google Ads-Konto zuzugreifen.
Konfiguration der Clientbibliothek
Wählen Sie den Tab für Ihre Programmiersprache aus, um eine Anleitung zum Konfigurieren der Clientbibliothek aufzurufen.
Java
Legen Sie in Ihrer Konfiguration den JSON-Pfad des privaten Schlüssels und die ID des delegierten Kontos fest.
Wenn Sie eine ads.properties
-Datei verwenden, fügen Sie Folgendes hinzu:
api.googleads.serviceAccountSecretsPath=JSON_KEY_FILE_PATH
api.googleads.serviceAccountUser=IMPERSONATED_EMAIL
Weitere Informationen finden Sie in der Konfigurationsanleitung.
.NET
Konfigurieren Sie die folgenden Schlüssel in App.config / Web.config
. Weitere Informationen finden Sie im Konfigurationsleitfaden.
<add key="OAuth2Mode" value="SERVICE_ACCOUNT" />
<add key="OAuth2SecretsJsonPath" value="JSON_KEY_FILE_PATH" />
<!-- Supply the email address of the user to impersonate. -->
<add key="OAuth2PrnEmail" value="IMPERSONATED_EMAIL" />
Python
Legen Sie in Ihrer Konfiguration den JSON-Pfad des privaten Schlüssels und die E-Mail-Adresse für die Identitätsdiebstahl-Nachahmung fest.
Wenn Sie einen google-ads.yaml file
, einen YAML-String oder dict
verwenden, fügen Sie Folgendes hinzu:
json_key_file_path: JSON_KEY_FILE_PATH
impersonated_email: IMPERSONATED_EMAIL
Wenn Sie Umgebungsvariablen verwenden, fügen Sie Ihrer Bash-Konfiguration oder ‑Umgebung Folgendes hinzu:
export GOOGLE_ADS_JSON_KEY_FILE_PATH=JSON_KEY_FILE_PATH
export GOOGLE_ADS_IMPERSONATED_EMAIL=IMPERSONATED_EMAIL
PHP
Konfigurieren Sie die folgenden Schlüssel in google_ads_php.ini
. Weitere Informationen finden Sie in der Konfigurationsanleitung.
; For service account flow.
jsonKeyFilePath = "JSON_KEY_FILE_PATH"
scopes = "https://www.googleapis.com/auth/adwords"
impersonatedEmail = "IMPERSONATED_EMAIL"
Ruby
Konfigurieren Sie die folgenden Schlüssel in google_ads_config.rb
.
c.keyfile = 'JSON_KEY_FILE_PATH'
c.impersonate = 'IMPERSONATED_EMAIL'
Perl
Legen Sie in der Konfiguration den JSON-Pfad des privaten Schlüssels fest und delegieren Sie die Konto-ID. Wenn Sie eine googleads.properties
-Datei verwenden, fügen Sie Folgendes hinzu:
jsonKeyFilePath=JSON_KEY_FILE_PATH
impersonatedEmail=IMPERSONATED_EMAIL
Wenn Sie Umgebungsvariablen verwenden, fügen Sie Ihrer Bash-Konfiguration oder ‑Umgebung Folgendes hinzu:
export GOOGLE_ADS_JSON_KEY_FILE_PATH=JSON_KEY_FILE_PATH
export GOOGLE_ADS_IMPERSONATED_EMAIL=IMPERSONATED_EMAIL
Sicherheitsbedenken
Da das Dienstkonto die Delegierung auf Domainebene für Ihre Google Workspace-Domain hat, ist es wichtig, die Schlüsseldatei zu schützen, die es einem Dienstkonto ermöglicht, auf die Google-Dienste zuzugreifen, für die es autorisiert ist. Das gilt insbesondere, da dieses Dienstkonto die Identität eines beliebigen Nutzers in der Domain übernehmen kann.
Außerdem sollten Dienstkonten nur auf die APIs zugreifen dürfen, die für die Ausführung der Anwendung unbedingt erforderlich sind. Dies ist eine vorbeugende Maßnahme, um die Menge der Daten zu begrenzen, auf die ein Angreifer zugreifen kann, wenn die Schlüsseldatei des Dienstkontos manipuliert wird.