Collecte heatmap : un endpoint public qui ne récolte rien sans consentement
Collecte heatmap endpoint public & gate de consentement une fonctionnalité du module Analytics, heatmap & tableau de bord de Clustraly. La collecte heatmap est un endpoint public POST /api/heatmap qui reçoit les signaux d'attention des visiteurs consentants et refuse toute donnée sans consentement analytics.
Vos pages remontent l'attention réelle des lecteurs profondeur de scroll, zones lues, clics mais uniquement quand le visiteur a dit oui. L'endpoint vérifie le consentement à chaque envoi, valide la charge, puis répond proprement, sans jamais casser la page.
Recevez les beacons du tracker, répondez proprement
Votre tracker frontend émet des beacons vers un point d'entrée unique : POST /api/heatmap, géré par HeatmapApiController::store. Il décode le corps JSON, puis délègue la persistance à HeatmapService::track et renvoie 200 {ok}.
Vous n'avez rien à brancher côté serveur : l'endpoint est conçu pour encaisser les envois du tracker et transformer chaque signal en donnée exploitable côté admin.
- POST /api/heatmap prêt à recevoir les beacons
- Persistance déléguée à HeatmapService::track
- Réponse 200 {ok} nette côté client
Sans consentement analytics, aucune donnée ne passe
Le visiteur décide. Si le consentement analytics manque, l'endpoint répond 403 {consent_required} et n'enregistre rien la vérification passe par RgpdService::canTrackAnalytics, la même autorité que le reste de vos analytics.
La protection est double : côté page, le script tracker n'est injecté qu'après lecture du cookie rgpd_consent ; côté serveur, l'endpoint refuse quand même si le consentement n'est pas là. Deux barrières, aucune collecte à l'aveugle.
- 403 {consent_required} quand le consentement manque
- Vérifié via RgpdService::canTrackAnalytics
- Double barrière : injection conditionnée + refus serveur
Chaque envoi est validé avant d'être enregistré
Une charge sans article_id ne devient jamais une donnée : l'endpoint la rejette avec 400 {invalid}. Seuls les signaux réellement rattachés à un article sont persistés, ce qui garde votre base d'attention propre.
Les réponses forment un contrat JSON stable et lisible ok, invalid, consent_required pour que votre tracker sache exactement à quoi s'en tenir à chaque appel.
- 400 {invalid} sans article_id
- Corps JSON décodé et contrôlé
- Contrats JSON prévisibles : ok / invalid / consent_required
Public, mais protégé et jamais bloquant
L'endpoint est public par nature il doit l'être pour recevoir les beacons alors il est encadré. Il tourne sous le profil de rate-limiting « api » pour absorber les envois répétés sans se laisser inonder.
Et si un enregistrement échoue ? HeatmapService::track est enveloppé dans un try/catch en échec silencieux : une erreur de collecte ne remonte jamais jusqu'au visiteur et ne casse jamais la navigation.
- Rate-limité sous le profil « api »
- Persistance en try/catch, échec silencieux
- Un incident de collecte n'impacte pas la page
De la mesure discrète aux zones d'attention exploitables
Chaque signal reçu profondeur de scroll, temps par zone H2, clics alimente l'agrégation heatmap par article et se retrouve, côté admin, en attention moyenne par section et en taux de lecture complète.
Résultat : vous savez où vos lecteurs s'arrêtent et ce qu'ils lisent vraiment, tout en restant cookieless et respectueux du consentement du premier au dernier octet collecté.
- Nourrit les stats et zones d'attention par article
- Collecte sans cookie, conditionnée au consentement
- Signaux prêts à surfacer dans l'admin
Le visiteur consent, vous mesurez
L'endpoint ne présume jamais du consentement : il le vérifie à chaque envoi. Pas de oui du visiteur, pas d'octet enregistré. Vous gardez la maîtrise de ce qui entre, et vos lecteurs gardent la maîtrise de ce qu'ils partagent.
Questions fréquentes
Que se passe-t-il si le visiteur refuse le consentement analytics ?
L'endpoint est public : comment évite-t-il les envois abusifs ?
Que renvoie exactement l'API ?
Un envoi malformé peut-il casser mon site ?
Une collecte heatmap qui respecte vos lecteurs autant que vos données
Un seul point d'entrée public, POST /api/heatmap, pensé pour recevoir les beacons de votre tracker sans jamais transiger sur le consentement. Il vérifie le oui du visiteur, valide chaque charge, absorbe les envois répétés et échoue en silence plutôt que de gêner la page. Vous récoltez des signaux d'attention fiables profondeur de scroll, zones lues, clics dans un cadre RGPD sans cookie où le visiteur décide et vous mesurez.