Dienstkonten

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

  1. 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.

  2. Melden Sie sich als Administrator in Ihrem Google Ads-Konto an. Gehen Sie zu Tools und Einstellungen > Einrichtung > Zugriff und Sicherheit.

  3. Klicken Sie auf dem Tab Nutzer auf die Schaltfläche +.

  4. 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.

  5. 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 oder mybusiness.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.

  1. Erstellen Sie zuerst ein Dienstkonto und Anmeldedaten.

    Laden Sie den Dienstkontoschlüssel im JSON-Format herunter und notieren Sie sich die Dienstkonto-ID.

  2. 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.

  3. 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.