https://analytics.flowsery.com/analytics/api/v1/goalsEnregistrez un événement d'objectif personnalisé. Seul le nom est requis; VisitorUid, sessionUid, métadonnées et fuseau horaire sont facultatifs.
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
| Parametre | Taper | Description |
|---|---|---|
websiteId | string | ID 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. |
domain | string | Site 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
| Parametre | Taper | 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 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.
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");
};{
"status": "success",
"data": [{
"message": "Custom event created successfully"
}]
}