api-referencePOST
POSThttps://analytics.flowsery.com/analytics/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.

Jeton Bearer (jeton workspace ou clé API de site)

Les jetons d'espace de travail nécessitent un sélecteur de site Web

Les jetons de l'API Workspace peuvent accéder à tous les sites Web de l'espace de travail. Transmettez <code>websiteId</code> ou <code>domain</code> pour que Flowsery sache quel site Web interroger ou muter. Les clés API de site Web sont déjà limitées à un seul site Web, le sélecteur peut donc être omis.

Sélecteur de site Web

ParametreTaperDescription
websiteIdstringID de site Web à utiliser avec un jeton API d'espace de travail. Incluez ce champ dans le corps JSON, sauf si vous fournissez domain. Omettre lors de l'authentification avec une clé API de site Web.
domainstringSite Web domain à utiliser avec un jeton API d'espace de travail lorsque websiteId n'est pas fourni. Incluez ce champ dans le corps JSON. Omettre lors de l'authentification avec une clé API de site Web.

Corps de la requete

ParametreTaperDescription
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 facultatives, en chaînes, enregistrées avec la conversion. 10 paires au maximum.

Regles du champ metadata

<strong>Clés :</strong> des noms courts en minuscules comme <code>plan</code> ou <code>signup_source</code> gardent les rapports lisibles. L'API ne vérifie pas le format des clés.

<strong>Valeurs :</strong> des chaînes, enregistrées telles quelles. N'y placez pas de données personnelles comme des e-mails.

<strong>Limite :</strong> 10 paires par événement au maximum. Au-delà, l'API répond <code>400 Bad Request</code>.

Aucune page vue existante requise

L'objectif est créé à la première utilisation et une conversion ne nécessite pas de page vue préalable. Sans visitorUid, la conversion est enregistrée comme anonyme. Chaque appel ajoute une conversion : le répéter compte l'objectif deux fois.

Reponses d'erreur

<strong>400 Bad Request</strong> -- La charge utile est invalide, par exemple un nom avec des majuscules ou des espaces, ou plus de 10 paires de métadonnées.

<strong>404 Not Found</strong> -- Le websiteId ou le domain ne correspond à aucun site accessible avec ces identifiants.

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/analytics/api/v1/goals",
    {
      method: "POST",
      headers: {
        Authorization: `Bearer ${FLOWSERY_API_KEY}`,
        "Content-Type": "application/json",
      },
      body: JSON.stringify({
        websiteId: process.env.FLOWSERY_WEBSITE_ID,
        visitorUid: _fs_vid,
        sessionUid: _fs_sid,
        name: "newsletter_signup",
        metadata: {
          plan: "pro",
          form: "footer",
        },
      }),
    }
  );

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