api-referencePOST
POSThttps://analytics.flowsery.com/api/v1/goals

Zeichnen Sie ein benutzerdefiniertes Zielereignis auf. Es ist nur der Name erforderlich; Besucher-ID, Sitzungs-ID, Metadaten und Zeitzone sind optional.

API-Schluessel (Bearer-Token)

Anfrage-Body

ParameterTypBeschreibung
visitorUidstringOptionale Flowsery Besucher-ID, die normalerweise aus dem _fs_vid-Cookie in Ihrem eigenen Backend stammt.
sessionUidstringOptionale Flowsery-Sitzungs-ID, die normalerweise aus dem _fs_sid-Cookie stammt.
nameERFORDERLICHstringZielname (Kleinbuchstaben, Zahlen, Unterstriche und Bindestriche; max. 64 Zeichen).
metadataobjectOptionale benutzerdefinierte Schlüssel-Wert-Paare. Beschränken Sie sich auf maximal 10 Schlüssel.

Regeln fuer das Metadaten-Feld

<strong>Schluessel:</strong> Nur Kleinbuchstaben, Zahlen, Unterstriche (_) und Bindestriche (-). Max. 64 Zeichen.

<strong>Werte:</strong> Beliebige Zeichenkette bis zu 255 Zeichen. HTML- und Skriptinhalte werden aus Sicherheitsgruenden automatisch entfernt.

<strong>Limit:</strong> Bis zu 10 benutzerdefinierte Parameter pro Ereignis.

Kein bestehender Seitenaufruf erforderlich

Das Backend kann den Zieldatensatz bei Bedarf erstellen. Es sollte nicht dokumentiert werden, dass dieser Endpunkt einen zuvor aufgezeichneten Seitenaufruf erfordert.

Fehlerantworten

<strong>400 Bad Request</strong> – Wird zurückgegeben, wenn die Nutzlast ungültig ist.

<strong>404 Not Found</strong> – Nicht Teil des normalen Vertrags zum Erstellen eines Ziels.

Beispielanfrage (Node.js)
const handler = async (req, res) => {
  const _fs_vid = req.cookies._fs_vid;
  const _fs_sid = req.cookies._fs_sid;

  const response = await fetch(
    "https://analytics.flowsery.com/api/v1/goals",
    {
      method: "POST",
      headers: {
        Authorization: `Bearer ${FLOWSERY_API_KEY}`,
        "Content-Type": "application/json",
      },
      body: JSON.stringify({
        visitorUid: _fs_vid,
        sessionUid: _fs_sid,
        name: "newsletter_signup",
        metadata: {
          name: "Elon Musk",
          email: "musk@x.com",
        },
      }),
    }
  );

  const result = await response.json();
  res.status(200).send("Goal tracked");
};
200
{
  "status": "success",
  "data": [{
    "message": "Goal created successfully"
  }]
}