Workflow für Dienstkonten

In dieser Anleitung wird beschrieben, wie Sie mit Dienstkonten auf die Google Ads API zugreifen.

Ein Dienstkonto ist ein Konto, das zu Ihrer App gehört und nicht zu einem einzelnen Endnutzer. 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 Zugriff auf Google Ads-Konten über die Google Ads API erfolgt als Konfigurationsschritt. Dabei werden die Autorisierungs- und Kontoverwaltungsfunktionen der Google Ads-Benutzeroberfläche genutzt. Das spart Entwicklern Arbeit, da sie keine OAuth 2.0-Vorgänge erstellen und sich nicht mit Komplikationen befassen müssen, die Nutzerinteraktionen, das Speichern von Nutzeranmeldedaten und die Tokenverwaltung betreffen.

  • Die Autorisierung für den Zugriff auf Google Ads-Konten ist nicht an einzelne Nutzeranmeldedaten gebunden. Das kann in Fällen nützlich sein, in denen eine solche Autorisierung auch dann bestehen bleiben soll, wenn der Mitarbeiter, der den Zugriff ursprünglich autorisiert hat, das Team oder das Unternehmen verlässt.

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. Rufen Sie Verwaltung > Zugriff und Sicherheit auf.

  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 entsprechende Zugriffsebene für das Konto aus. Dienstkonten unterstützen die Zugriffsebene Nur E-Mail nicht. Klicken Sie dann auf die Schaltfläche Konto hinzufügen.

    Dem Dienstkonto wird Zugriff gewährt.

  5. Optional:Standardmäßig können Sie einem Dienstkonto keinen Administratorzugriff gewähren. Folgen Sie dem Prinzip der geringsten Berechtigung und gewähren Sie Administratorzugriff nur, wenn dies für Ihre API-Aufrufe erforderlich ist. So können Sie den Zugriff aktualisieren:

    • Klicken Sie in der Spalte Zugriffsebene auf den Drop-down-Pfeil neben der Zugriffsebene des Dienstkontos.
    • Wählen Sie in der Drop-down-Liste Administrator aus.

Clientbibliothek konfigurieren

Wählen Sie den Tab aus, der Ihrer Programmiersprache entspricht, um eine Anleitung zum Konfigurieren Ihrer Clientbibliothek zu erhalten. Wenn Ihr Dienstkonto über ein Google Ads-Verwaltungskonto auf Kundenkonten zugreift, legen Sie login-customer-id (oder loginCustomerId) auch auf die 10-stellige Kundennummer dieses Verwaltungskontos ohne Bindestriche fest (siehe Kunden-ID für die Anmeldung).

Java

Legen Sie in Ihrer Konfiguration den JSON-Pfad des privaten Schlüssels fest. Wenn Sie eine ads.properties-Datei verwenden, fügen Sie Folgendes hinzu:

api.googleads.serviceAccountSecretsPath=JSON_KEY_FILE_PATH

Weitere Informationen finden Sie im Konfigurationsleitfaden für zusätzliche Details.

.NET

Legen Sie OAuth2Mode und OAuth2SecretsJsonPath für die GoogleAdsConfig-Instanz fest und verwenden Sie sie, um das GoogleAdsClient-Objekt zu initialisieren.

GoogleAdsConfig config = new GoogleAdsConfig()
{
    OAuth2Mode = OAuth2Flow.SERVICE_ACCOUNT,
    OAuth2SecretsJsonPath = "JSON_KEY_FILE_PATH",
    // ...
};
GoogleAdsClient client = new GoogleAdsClient(config);

Weitere Informationen finden Sie im Konfigurationsleitfaden für zusätzliche Details.

Python

Legen Sie in Ihrer Konfiguration den JSON-Pfad des privaten Schlüssels fest. Wenn Sie eine google-ads.yaml-Datei, einen YAML-String oder ein 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

Weitere Informationen finden Sie im Konfigurationsleitfaden für zusätzliche Details.

PHP

Konfigurieren Sie die folgenden Schlüssel in Ihrer google_ads_php.ini-Datei.

[OAUTH2]
; For service account flow.
jsonKeyFilePath = "JSON_KEY_FILE_PATH"
scopes = "https://www.googleapis.com/auth/adwords"

Weitere Informationen finden Sie im Konfigurationsleitfaden für zusätzliche Details.

Ruby

Konfigurieren Sie die folgenden Schlüssel in Ihrer google_ads_config.rb.

c.keyfile = 'JSON_KEY_FILE_PATH'

Weitere Informationen finden Sie im Konfigurationsleitfaden für zusätzliche Details.

Perl

Legen Sie in Ihrer Konfiguration den JSON-Pfad des privaten Schlüssels fest. 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

Weitere Informationen finden Sie im Konfigurationsleitfaden für zusätzliche Details.

curl

Legen Sie zuerst das Dienstkonto als aktive Anmeldedaten in der gcloud CLI fest.

gcloud auth login --cred-file=JSON_KEY_FILE_PATH

Rufen Sie dann ein OAuth 2.0-Zugriffstoken für die Google Ads API ab.

gcloud auth \
  print-access-token \
  --scopes='https://www.googleapis.com/auth/adwords'

Sie können das Zugriffstoken in Ihren API-Aufrufen verwenden. Im folgenden Beispiel wird gezeigt, wie Sie einen Kampagnenbericht mit der GoogleAdsService.SearchStream Methode ausführen, um die Kampagnen in Ihrem Konto abzurufen. Die Details zur Berichterstellung werden in dieser Anleitung nicht behandelt reporting.

curl -i -X POST \
  https://googleads.googleapis.com/v26/customers/CUSTOMER_ID/googleAds:searchStream \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer ACCESS_TOKEN" \
  -H "login-customer-id: LOGIN_CUSTOMER_ID" \
  --data-binary "@query.json"

Der Inhalt von query.json sieht so aus:

{
  "query": "SELECT campaign.id, campaign.name, campaign.network_settings.target_content_network FROM campaign ORDER BY campaign.id"
}