In diesem Leitfaden wird erläutert, wie Sie mithilfe von Webhooks asynchrone Benachrichtigungen empfangen. den Status Ihrer Anfragen für den Zielgruppenexport. Diese Funktion ist nur in der v1alpha-Version der Data API.
Webhook-Benachrichtigungen sind eine erweiterte Funktion der Google Analytics-Daten API Zur Einführung in die Zielgruppenexportfunktion erstellen.
Ohne Webhooks müssen Sie die API regelmäßig abfragen, um zu ermitteln, wann eine Anfrage abgeschlossen ist.
Beispiel-Webhook-Anwendung mit Cloud Run erstellen
So erstellen Sie eine Beispiel-Webhook-Anwendung mit Google Cloud: die Anleitung Kurzanleitung: Beispieldienst in Cloud Run bereitstellen
Damit der Beispieldienst POST-Webhook-Benachrichtigungsanfragen überwacht,
Ersetzen Sie die Datei index.js
aus der Kurzanleitung durch Folgendes:
Code:
import express from 'express';
const app = express();
app.use(express.json());
app.post('/', (req, res) => {
const channelToken = req.get('X-Goog-Channel-Token');
const bodyJson = JSON.stringify(req.body);
console.log(`channel token: ${channelToken}`);
console.log(`notification body: ${bodyJson}`);
res.sendStatus(200);
});
const port = parseInt(process.env.PORT) || 8080;
app.listen(port, () => {
console.log(`helloworld: listening on port ${port}`);
});
Dieser Code wird für jede eingehende Webhook-Benachrichtigung, die als POST-Anfrage gesendet wird, ausgegeben
den JSON-Text der Webhook-Benachrichtigung und einen Kanaltokenwert aus.
gibt den HTTP-Code 200
zurück, um einen erfolgreichen Vorgang anzuzeigen.
Wenn Sie am Ende der Cloud Run-Kurzanleitung angelangt sind und die
die Webhook-Anwendung mit dem Befehl gcloud run deploy
aus, speichern Sie
Die URL, unter der Ihr Dienst bereitgestellt wird.
Die Dienst-URL wird in der Konsole angezeigt, z. B.:
Service URL: https://webhooks-test-abcdef-uc.a.run.app
Dies ist der URI für die Serverbenachrichtigung. bei denen Ihre Anwendung Webhook-Benachrichtigungen von Google Analytics
Zielgruppenliste erstellen und Webhook-Benachrichtigungen aktivieren
Geben Sie zum Anfordern von Webhook-Benachrichtigungen die folgenden Werte in der Datei webhookNotification
an
-Objekt enthält:
Den Serverbenachrichtigungs-URI mit der Webadresse, an die Webhook-Benachrichtigungen gesendet werden sollen.
Optional: Beliebiger String
channelToken
um Spoofing zu verhindern.channelToken
angeben imX-Goog-Channel-Token
-HTTP-Header der POST-Anfrage des Webhooks.
Hier sehen Sie eine Beispielanfrage mit Webhooks:
HTTP-Anfrage
POST https://analyticsdata.googleapis.com/v1alpha/properties/1234567/audienceLists
{
"webhookNotification": {
"uri": "https://webhooks-test-abcdef-uc.a.run.app",
"channelToken": "123456"
},
"audience": "properties/1234567/audiences/12345",
"dimensions": [
{
"dimensionName": "deviceId"
}
]
}
Die Antwort der Methode audienceLists.create
enthält den
webhookNotification
, mit der bestätigt wird, dass der angegebene Webhook erfolgreich ausgeführt wurde
antwortete in weniger als 5 Sekunden.
Sie sehen hier ein Beispiel:
HTTP-Antwort
{
"response": {
"@type": "type.googleapis.com/google.analytics.data.v1alpha.AudienceList",
"name": "properties/1234567/audienceLists/123",
"audience": "properties/1234567/audiences/12345",
"audienceDisplayName": "Purchasers",
"dimensions": [
{
"dimensionName": "deviceId"
}
],
"state": "ACTIVE",
"beginCreatingTime": "2024-06-10T04:50:09.119726379Z",
"creationQuotaTokensCharged": 51,
"rowCount": 13956,
"percentageCompleted": 100,
"webhookNotification": {
"uri": "https://webhooks-test-abcdef-uc.a.run.app",
"channelToken": "123456"
}
}
}
Wenn ein Webhook nicht reagiert oder Sie eine falsche Dienst-URL angeben, wird eine Fehlermeldung zurückgegeben.
Hier ist ein Beispiel für einen Fehler, der möglicherweise angezeigt wird:
{
"error": {
"code": 400,
"message": "Expected response code of 200 from webhook URI but instead
'404' was received.",
"status": "INVALID_ARGUMENT"
}
}
Webhook-Benachrichtigungen verarbeiten
Die POST-Anfrage an einen Webhook-Dienst enthält sowohl eine JSON-Version des
für lange laufende Vorgänge
im Body und ein sentTimestamp
-Feld. Der Zeitstempel des Sendevorgangs gibt
die Unix-Epochen-Zeit in Mikrosekunden, in der die Anfrage gesendet wurde. Sie können diese
Zeitstempel zur Identifizierung wiederholter Benachrichtigungen.
Eine oder zwei POST-Anfragen werden während eines Zielgruppenlisten erstellen:
- Die erste POST-Anfrage wird sofort gesendet, wobei die neu erstellten
Zielgruppenliste mit dem Status
CREATING
. Wenn die erste Anfrage an den Webhook nicht funktioniert, gibt der VorgangaudienceLists.create
einen Fehler zurück sowie die Fehlerdetails des Webhooks. - Die zweite POST-Anfrage wird gesendet, nachdem die Zielgruppenliste abgeschlossen ist.
Erstellung. Die Erstellung der Zielgruppenliste ist abgeschlossen, wenn folgende Voraussetzungen erfüllt sind:
ACTIVE
oderFAILED
.
Hier sehen Sie ein Beispiel für die erste Benachrichtigung für eine Zielgruppenliste in der
CREATING
-Bundesstaat:
{
"sentTimestamp":"1718261355692983",
"name": "properties/1234567/audienceLists/123",
"audience": "properties/1234567/audiences/12345",
"audienceDisplayName":"Purchasers",
"dimensions":[{"dimensionName":"deviceId"}],
"state":"CREATING",
"beginCreatingTime": "2024-06-10T04:50:09.119726379Z",
"creationQuotaTokensCharged":0,
"rowCount":0,
"percentageCompleted":0,
"webhookNotification":
{
"uri": "https://webhooks-test-abcdef-uc.a.run.app",
"channelToken":"123456"
}
}
Hier sehen Sie ein Beispiel für die zweite Benachrichtigung für eine Zielgruppenliste in der
ACTIVE
-Bundesstaat:
{
"sentTimestamp":"1718261355692983",
"name": "properties/1234567/audienceLists/123",
"audience": "properties/1234567/audiences/12345",
"audienceDisplayName":"Purchasers",
"dimensions":[{"dimensionName":"deviceId"}],
"state":"ACTIVE",
"beginCreatingTime": "2024-06-10T04:50:09.119726379Z",
"creationQuotaTokensCharged":68,
"rowCount":13956,
"percentageCompleted":100,
"webhookNotification":
{
"uri": "https://webhooks-test-abcdef-uc.a.run.app",
"channelToken":"123456"
}
}
Die zweite Benachrichtigung bestätigt, dass die Zielgruppenliste erstellt wurde und
kann über audienceLists.query
abgefragt werden
.
So testen Sie Webhooks nach dem Aufrufen der Methode audienceLists.create
:
Logs prüfen
Ihrer Cloud Run-Webhook-Beispielanwendung und sehen Sie sich den JSON-Text
von Google Analytics gesendet.