von Johannes Klampfl
Die Arbeit im Online-Marketing-Bereich erfordert oft den Export von Daten aus verschiedenen Google-Quellen. Im Rahmen einer Artikelserie geben wir eine Einführung in Google APIs und wie man diese nutzt.
Webanalyse steht für Messbarkeit und ist die Grundlage für langfristige Erfolgskontrolle und Effizienzsteigerung Ihrer (Online) Marketing Aktivitäten.
Mehr ErfahrenDieser Blogartikel konzentriert sich auf eine Node.js-Implementierung, was bedeutet, dass einige Links Sie zur entsprechenden Node.js-Dokumentation führen. Dennoch wird der Großteil generisch sein und gilt für alle Programmiersprachen.
Beim Durchlesen der offiziellen Google-Dokumentation scheint der Begriff „Google-APIs“ für alle APIs von Google verwendet zu werden, und „Google Cloud-APIs“ oder einfach nur „Cloud-APIs“ wird für die Teilmenge von APIs verwendet, die sich auf die Google Cloud beziehen. Diese Blog-Artikelserie wird sich mit allen Google-APIs befassen. Um nur einige zu nennen: Campaign Manager 360 API, Google Analytics Reporting API, BigQuery API etc.
Es gibt zwei Optionen, um eine Liste dieser APIs zu erhalten, aber es scheint, dass diese Optionen nicht die selben/vollständigen APIs auflisten (Google Cloud Marketplace: 314-APIs vs. API-Bibliothek: 414-APIs). Ich würde empfehlen, die API-Bibliotheksseite zu verwenden, wollte aber eine Alternative für Nicht-GCP-Benutzer zeigen.
Eine Möglichkeit, eine Auflistung von Google Cloud-APIs zu erhalten, führt über den Google Cloud Marketplace.
Dieser Marktplatz ist eine Sammlung von Softwareprodukten und -diensten, die auf der GCP verfügbar sind. Der obige Link enthält zusätzlich einen Filter, der die Ergebnisse auf die Anzeige von Google-Produkten reduziert. Sie müssen kein GCP-Konto haben oder angemeldet sein, um diese API-Übersicht sehen zu können. Durch Klicken auf eine der angezeigten Google Cloud APIs werden wichtige Links angezeigt, z.B. zur Dokumentation, zum API-Explorer etc. und es wird das Pricing angezeigt (falls es sich um eine kostenpflichtige API handelt).
Screenshot Google Cloud Marketplace, Quelle: e-dialog
Nur als Randbemerkung: Für die meisten APIs der Google Cloud Platform gibt es keinen separaten Eintrag. Ein Beispiel zur Verdeutlichung: Sie werden keinen Eintrag für „BigQuery API“ finden, sondern nur den GCP-Dienst „BigQuery“, der dann auf die BigQuery-API-Dokumentation verweist.
Google Cloud Marketplace Suchergebnis für ‘BigQuery’, Quelle: e-dialog
Die zweite Methode, um eine Liste der Google-APIs zu erhalten, ist über die Google Cloud Platform-Konsole und den Menüpunkt: GCP > APIs und Dienste > Bibliothek.
Wie die GCP API Bibliothek zu finden ist., Quelle: e-dialog
Auf alle diese Google APIs kann nur über die Google Cloud Platform zugegriffen werden. Wenn Sie eine davon verwenden möchten, muss die entsprechende API zuerst aktiviert werden unter: GCP > APIs & Dienste > Aktivierte APIs und Dienste > + APIs und Dienste aktivieren. Alle aktivierten Google-APIs für das ausgewählte Projekt werden auf derselben Seite aufgelistet.
APIs und Services in der GCP aktivieren, Quelle: e-dialog
Auf viele Google-APIs kann über den Google-APIs-Explorer zugegriffen werden, der eine großartige Möglichkeit bietet, mit API-Methoden zu interagieren, ohne Code schreiben zu müssen. Er kann für Debugging- und Lernzwecke verwendet werden. Um dieses Tool nutzen zu können, ist die oben erläuterte Aktivierung der entsprechenden API nicht erforderlich.
Google empfiehlt die Verwendung ihrer Client-Bibliotheken, um mit ihren APIs zu interagieren. Wenn die seltene Situation eintritt, dass diese Bibliotheken Ihre spezifischen Anforderungen nicht erfüllen, können Sie Ihren eigenen Code schreiben, um direkt auf diese APIs zuzugreifen.
Es existieren ebenfalls mobile Firebase-Clientbibliotheken, welche hier nicht weiter behandelt werden.
Die empfohlenen und neueren Bibliotheken heißen „Google Cloud Client Libraries“. Diese Bibliotheken unterstützen REST und gRPC, handhaben die Authentifizierung und bieten einen intuitiven und konsistenten Stil über alle APIs und Sprachen hinweg. Derzeit zeigt die folgende Liste 116 APIs, auf die über den Node.js-Client zugegriffen werden kann.
Diese Clients verwenden im Hintergrund „Google Auth Library“ zur Authentifizierung, die folgende Authentifizierungsmethoden anbietet:
Die zweite und ältere Bibliothek heißt „Google API Client Libraries“. Google empfiehlt, diese Bibliotheken nur dann zu verwenden, wenn die „Google Cloud Client Library“ die gewünschte Sprache nicht unterstützt. Diese Bibliotheken unterstützen REST (nicht gRPC) und übernehmen die Authentifizierung. Die folgende Seite bietet eine Dokumentation für 228 APIs, auf die über Node.js zugegriffen werden kann.
Folgende Autehntifizierungsmethoden werden unterstützt:
Jede Google-API hat unterschiedliche Kontingente, was bedeutet, dass die API-Nutzung limitiert ist. Die wichtigsten API Metriken können über GCP > IAM und Admin > Quoten oder über GCP > APIs und Dienste > API auswählen > Registerkarte QUOTAS angezeigt werden. Es ist möglich, Kontingene zu reduzieren (z. B. um Kosten zu sparen) oder eine Erhöhung über ein Formular zu beantragen.
API Quota in der GCP prüfen, Quelle: e-dialog
Wenn ein API-Schlüssel verwendet werden muss, wird dies durch die Google API selbst festgelegt und kann nicht von der aufrufenden Anwendung entschieden werden. Es gibt spezifische Google APIs, die die Verwendung eines API-Schlüssels erfordern, wie zum Beispiel die Google Maps JavaScript API, die Google Geocoding API und die Google Picker API.
API-Schlüssel können im Google Cloud Platform Console erstellt werden. Ihr Zweck besteht darin, die Anwendung oder das Projekt zu identifizieren, das die API aufruft. Dadurch kann Google API-Quoten und Kosten auf Grundlage der API-Nutzung durchsetzen.
API-Schlüssel gelten im Allgemeinen als nicht sicher, da sie oft auf der Client-Seite verwendet werden. Die oben genannte Google Maps JavaScript API wird auf der Frontend-Seite implementiert, und somit ist der API-Schlüssel für jeden sichtbar.
Um die Sicherheit von API-Schlüsseln zu erhöhen, bietet Google die Möglichkeit, sie auf bestimmte Websites, IP-Adressen, Android-Anwendungen oder iOS-Anwendungen zu beschränken. Darüber hinaus können API-Schlüssel darauf beschränkt werden, nur bestimmte APIs aufrufen zu können.
ADC ist ein Verfahren, das von den Google-Authentifizierungsbibliotheken (z. B. Google Auth Library: Node.js Client) verwendet wird, um automatisch Anmeldeinformationen basierend auf der Anwendungsumgebung zu finden. Aufgrund von ADC muss der Code nicht zwischen Entwicklungs- und Produktionsumgebungen geändert werden.
ADC sucht nach Anmeldeinformationen in folgender Reihenfolge/Orten:
Umgebungsvariable GOOGLE_APPLICATION_CREDENTIALS: Der erste Ort, die Umgebungsvariable, kann auf einen Speicherort verweisen, an dem eine Anmeldeinformationen-JSON-Datei abgelegt ist. Es wird nicht empfohlen, Service Account Keys für dieses Szenario herunterzuladen und zu verwenden. Der Hauptanwendungsfall besteht darin, eine Anmeldeinformationskonfigurationsdatei für die Workload Identity Federation zu verwenden, was nicht Gegenstand dieses Artikels ist.
Benutzeranmeldeinformationen über gcloud: Bei der lokalen Arbeit werden normalerweise Benutzeranmeldeinformationen über den Befehl gcloud auth login bereitgestellt. Dennoch wird ADC diese Anmeldeinformationen nicht verwenden. Stattdessen verwendet es nur Anmeldeinformationen, die über gcloud auth application-default login bereitgestellt werden. Beide Befehle öffnen denselben Authentifizierungsfluss, wie im Screenshot unten zu sehen ist.
Dieser Ansatz ist nur möglich, wenn ein Dienstkonto und eine Schlüsseldatei für das Dienstkonto (nicht empfohlen) verwendet werden. Darüber hinaus muss die entsprechende API diese JWT-Methode unterstützen. Sie können mehr darüber hier lesen.
Sie können in GCP Dienstkonten erstellen, die dann verwendet werden können, um Anfragen an Google APIs zu stellen. Diese Konten sind nützlich, um die Anwendung unabhängig von bestimmten Benutzerkonten zu machen (stellen Sie sich vor, ein Kollege verlässt das Unternehmen) und sind der empfohlene Ansatz.
Beim Aufrufen von GCP-APIs (z. B. BigQuery) benötigt das Dienstkonto die entsprechenden IAM-Rollen, während beim Aufrufen von Nicht-GCP-APIs (z. B. Google Analytics) das Dienstkonto zum entsprechenden Konto hinzugefügt werden muss.
Oft werden diese Dienstkonten in Kombination mit OAuth2 verwendet, es gibt jedoch eine andere Möglichkeit: Schlüsseldateien. Sie sollten diese Option vermeiden, wenn möglich, aufgrund der folgenden Risiken: Offenlegung von Anmeldeinformationen (ein böswilliger Akteur erhält Zugriff auf Ressourcen), Eskalation von Privilegien (ein böswilliger Akteur verwendet das Dienstkonto, um seine eigenen Privilegien zu eskalieren) und Identitätsmaskierung (ein böswilliger Akteur verschleiert seine Identität durch das Dienstkonto).
Nachfolgend finden Sie ein Beispiel für Node.js-Code zur Verwendung einer Schlüsseldatei:
Wir freuen uns auf Ihre Anfrage und beraten Sie gerne unverbindlich! Füllen Sie dazu einfach das Kontaktformular aus oder rufen uns direkt an.
Jetzt kontaktierenNewsletter
Holen Sie sich unsere Online Marketing-Insights und Trends direkt in Ihr Postfach!