In diesem Leitfaden erfahren Sie, wie Sie Apps erstellen, die mithilfe der Ads Data Hub REST API mit Ads Data Hub interagieren. Mit dieser API können Sie sich Ads Data Hub-Kunden anzeigen lassen, die Ihrem Google-Konto zugeordnet sind, sowie Abfragen erstellen und ausführen.
Einrichtung
Um die Ads Data Hub API nutzen zu können, ist Folgendes erforderlich:
- Der Nutzer, der die API aktiviert, muss im Google Cloud-Projekt die Berechtigung
serviceusage.services.enablehaben. Der Nutzer mit der Berechtigungserviceusage.services.enablemuss außerdem auf die API zugreifen können. - Aktivieren Sie die Ads Data Hub API in dem Google Cloud-Projekt, in dem die Clientanmeldedaten oder das Dienstkonto erstellt wurden. So aktivieren Sie die API für ein Projekt über die Console:
- Rufen Sie die API-Bibliothek der Cloud Console auf.
- Wählen Sie das gewünschte Projekt aus der Liste aus.
- Suchen Sie nach „Ads Data Hub API“.
- Klicken Sie auf der API-Seite auf AKTIVIEREN.
- Berechtigungen verwalten:
- E-Mail-Adressen oder Dienstkonten, die zum Erstellen der Anmeldedaten verwendet werden, müssen Ads Data Hub mit den entsprechenden Berechtigungen hinzugefügt werden. Bei einem Dienstkonto ist dessen E-Mail-Adresse anzugeben. Bei OAuth ist es die E-Mail-Adresse des Nutzers. So wird sichergestellt, dass für das Dienstkonto oder Endnutzerkonto die Berechtigung vorliegt, Abfragen in Ads Data Hub auszuführen.
- (Empfohlen:) Installieren Sie eine Google API-Clientbibliothek:
- Die Google API-Clientbibliotheken sind in verschiedenen gängigen Sprachen verfügbar und ermöglichen die Arbeit mit vielen Google APIs. Diese Bibliotheken sind nicht zwingend erforderlich, aber sie erleichtern die Einrichtung der Authentifizierung. Außerdem müssen Sie weniger Code schreiben.
| Clientbibliothek | Beispiele für Ads Data Hub |
|---|---|
| Google API-Clientbibliothek für Java | Java |
| Google API-Clientbibliothek für Python |
Authentifizieren und autorisieren
Über die Ads Data Hub API können Daten in Ihrem Ads Data Hub-Kundenkonto abgerufen und geändert werden. Deshalb muss bestätigt werden, dass Sie ein autorisierter Nutzer sind. Vor der Interaktion mit der Ads Data Hub API müssen Sie daher einen Autorisierungsvorgang durchlaufen. Dabei erhalten Sie die erforderlichen Berechtigungen für die Interaktion mit der API. Für die Authentifizierung können Sie entweder OAuth 2.0 oder ein Dienstkonto verwenden.
Einrichtung von OAuth 2.0
Die API unterstützt sowohl den Workflow für installierte Anwendungen als auch den für Webanwendungen. In diesem Beispiel beschreiben wir den Ablauf für installierte Anwendungen.
- Gehen Sie in der Google API Console zu Ihrem Administratorprojekt.
- Prüfen Sie, ob die Ads Data Hub API für Ihr Projekt aktiviert ist.
- Ist das nicht der Fall, aktivieren Sie sie. Klicken Sie dazu auf „+ APIs und Dienste aktivieren“.
- Klicken Sie im linken Navigationsmenü auf „Anmeldedaten“.
- Öffnen Sie das Drop-down-Menü „Anmeldedaten erstellen“ und wählen Sie „OAuth-Client-ID“ aus. Auf der nächsten Seite führen Sie folgende Schritte aus:
- Wählen Sie „Sonstiges“ aus.
- Geben Sie optional einen Namen für den Kunden ein.
- Klicken Sie auf „Erstellen“.
- Klicken Sie auf das Downloadsymbol neben den soeben erstellten Anmeldedaten.
API-Schlüssel abrufen
Im Python-Codebeispiel unten wird der API-Schlüssel (auch Entwicklerschlüssel genannt) für die Authentifizierung verwendet. So erhalten Sie Ihren Schlüssel:
- Rufen Sie in der API Console die Seite „Anmeldedaten“ auf.
- Achten Sie darauf, dass im Drop-down-Menü auf der Navigationsleiste oben Ihr Administratorprojekt ausgewählt ist.
- Klicken Sie neben Ihrem API-Schlüssel auf das Downloadsymbol.
Beispielanfrage senden
Python
"""This sample shows how to retrieve all accounts associated with the user. For the program to execute successfully, ensure that you run it using Python 3. """ import json from google_auth_oauthlib import flow from googleapiclient.discovery import build appflow = flow.InstalledAppFlow.from_client_secrets_file( # Replace client_secrets.json with your own client secret file. 'client_secrets.json', scopes=['https://www.googleapis.com/auth/adsdatahub']) appflow.run_local_server() credentials = appflow.credentials developer_key = input('Developer key: ').strip() # For versions of the Google API Python client library prior to 2.0, the # `static_discovery` parameter below should be removed. service = build('AdsDataHub', 'v1', credentials=credentials, developerKey=developer_key, static_discovery=False) def pprint(x): print(json.dumps(x, sort_keys=True, indent=4)) adh_account_id = input('ADH account ID (e.g. "customers/123456789"): ').strip() pprint(service.customers().analysisQueries().list(parent =adh_account_id).execute())
Java
/* * Copyright (c) 2019 Google Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except * in compliance with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software distributed under the License * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express * or implied. See the License for the specific language governing permissions and limitations under * the License. */ package com.google.api.services.samples.adsdatahub.cmdline; import com.google.api.services.adsdatahub.v1.AdsDataHub; import com.google.api.services.adsdatahub.v1.model.Customer; import com.google.api.services.adsdatahub.v1.model.ListCustomersResponse; import java.io.IOException; import java.util.List; /** * This sample illustrates how to retrieve all accounts associated to the user. * * <p>See the <a href="customers.list reference * documentation">https://developers.google.com/ads-data-hub/reference/rest/v1/customers/list</a> * for more details. */ public class ListCustomers extends BaseSample { @Override public String getName() { return "List customers"; } @Override public String getDescription() { return "Lists customers associated with the authorized user"; } @Override public void execute(AdsDataHub client) throws IOException { String pageToken = null; boolean noData = true; System.out.println("========================================"); System.out.printf("Listing of customers associated with the authorized user:\n"); System.out.println("========================================"); do { ListCustomersResponse response = client.customers().list().setPageToken(pageToken).execute(); pageToken = response.getNextPageToken(); List<Customer> customers = response.getCustomers(); if (customers != null && customers.size() > 0) { noData = false; for (Customer customer : customers) { System.out.printf("* Customer id: %d\n", customer.getCustomerId()); System.out.printf("\tCustomer name: %s\n", customer.getDisplayName()); } } } while (pageToken != null); if (noData) { System.out.println("No customers were found associated with the authorized user."); } } }
Nächste Schritte
- Unter diesem Link finden Sie Beispielabfragen in Ads Data Hub, die Sie mit der Ads Data Hub REST API erstellen und ausführen können.
- Sehen Sie sich die Beispiele genauer an, um sich mit der API vertraut zu machen und sie für Ihren Anwendungsfall anzupassen. Führen Sie dann folgende Aktionen aus:
- Rufen Sie den Status des Abfragevorgangs ab.
- Rufen Sie mithilfe einer BigQuery-Clientbibliothek abgeschlossene Abfrageergebnisse ab.
- Wenden Sie sich an den Ads Data Hub-Support, wenn Sie Fragen oder Feedback zur API haben.