api-referencePOST
POST
https://analytics.flowsery.com/api/v1/goalsEnregistrez un événement d'objectif personnalisé. Seul le nom est requis; VisitorUid, sessionUid, métadonnées et fuseau horaire sont facultatifs.
Cle API (Bearer token)
Corps de la requete
| Parametre | Type | Description |
|---|---|---|
visitorUid | string | ID de visiteur Flowsery facultatif, provenant généralement du cookie _fs_vid sur votre propre backend. |
sessionUid | string | ID de session Flowsery facultatif, provenant généralement du cookie _fs_sid. |
nameREQUIS | string | Nom de l'objectif (lettres minuscules, chiffres, tirets bas et tirets ; max 64 caracteres). |
metadata | object | Paires clé-valeur personnalisées facultatives. Limitez-vous à 10 clés ou moins. |
Regles du champ metadata
<strong>Cles :</strong> Uniquement des lettres minuscules, des chiffres, des tirets bas (_) et des tirets (-). Max 64 caracteres.
<strong>Valeurs :</strong> N'importe quelle chaine jusqu'a 255 caracteres. Le contenu HTML et script est automatiquement supprime pour la securite.
<strong>Limite :</strong> Jusqu'a 10 parametres personnalises par evenement.
Aucune page vue existante requise
Le backend peut créer l’enregistrement d’objectif à la demande. Ce point de terminaison ne doit pas être documenté comme nécessitant une page vue préalablement enregistrée.Reponses d'erreur
<strong>400 Bad Request</strong>: renvoyé lorsque la charge utile n'est pas valide.
<strong>404 Not Found</strong>: ne fait pas partie du contrat normal de création d'objectif.
Exemple de requete (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"
}]
}