api-referencePOST
POST
https://analytics.flowsery.com/api/v1/goalsZeichnen 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
| Parameter | Typ | Beschreibung |
|---|---|---|
visitorUid | string | Optionale Flowsery Besucher-ID, die normalerweise aus dem _fs_vid-Cookie in Ihrem eigenen Backend stammt. |
sessionUid | string | Optionale Flowsery-Sitzungs-ID, die normalerweise aus dem _fs_sid-Cookie stammt. |
nameERFORDERLICH | string | Zielname (Kleinbuchstaben, Zahlen, Unterstriche und Bindestriche; max. 64 Zeichen). |
metadata | object | Optionale 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"
}]
}