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

Enregistrez 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

ParametreTypeDescription
visitorUidstringID de visiteur Flowsery facultatif, provenant généralement du cookie _fs_vid sur votre propre backend.
sessionUidstringID de session Flowsery facultatif, provenant généralement du cookie _fs_sid.
nameREQUISstringNom de l'objectif (lettres minuscules, chiffres, tirets bas et tirets ; max 64 caracteres).
metadataobjectPaires 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"
  }]
}