Webhook-Benachrichtigungen für Zielgruppenlisten erhalten

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 im X-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:

  1. 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 Vorgang audienceLists.create einen Fehler zurück sowie die Fehlerdetails des Webhooks.
  2. 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 oder FAILED.

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.