Événements et analytics

Mesurez l'impact de vos contenus audio sur l'engagement et la conversion.

Philosophie

Ekoo n'utilise aucun cookie et ne suit pas vos visiteurs. Le widget n'injecte aucun tracker tiers et ne collecte aucune donnée personnelle de navigation.

En revanche, le widget émet des événements côté client à chaque interaction clé (affichage, lancement, progression, fin d'écoute). Vous pouvez capturer ces événements et les envoyer à votre propre stack analytics (GA4, Matomo, Mixpanel, Piano…) pour mesurer précisément l'impact de l'audio sur vos taux de conversion.

Comment ça fonctionne

Ajoutez l'attribut data-ekoo-on-event sur votre div widget. Sa valeur est le nom d'une fonction JavaScript globale que vous définissez. Cette fonction est appelée à chaque événement du widget et reçoit un objet stats contenant toutes les informations sur l'interaction.

Les événements disponibles

  • printed — le widget est affiché sur la page
  • played-0 — la lecture audio démarre
  • played-25 — 25 % du contenu a été écouté
  • played-50 — 50 % du contenu a été écouté
  • played-75 — 75 % du contenu a été écouté
  • played-100 — écoute complète (se déclenche à 98 % de progression)

Structure de l'objet reçu

Votre callback reçoit un objet avec la structure suivante :

Objet transmis à votre callback
json
1{
2 "sessionId": "abc-123-...",
3 "source": "my-site.com",
4 "href": "https://my-site.com/products/widget",
5 "path": "/products/widget",
6 "websiteId": "YOUR_WEBSITE_ID",
7 "productRef": "PRODUCT_123", // product ID from data attribute
8 "productId": "internal-id", // internal Ekoo product ID
9 "audioId": "rev_abc", // review/audio ID
10 "locale": "fr",
11 "device": "desktop",
12 "ts": 1710000000000,
13 "stats": {
14 "type": "played-25", // event name
15 "reached": 0.25, // progress ratio (play events only)
16 "display": "widget",
17 "widget": "standalone",
18 "locale": "fr",
19 "reviews": ["rev_abc"],
20 "review": "rev_abc",
21 "source": "my-site.com"
22 }
23}

Mise en place

Étape 1 — Ajouter l'attribut sur votre widget

Ajoutez data-ekoo-on-event="onEkooEvent" sur la div du widget. La valeur correspond au nom exact de votre fonction callback.

Étape 2 — Définir la fonction callback

Déclarez votre fonction avant le chargement du script Ekoo. Elle sera appelée automatiquement à chaque événement du widget.

Étape 3 — Envoyer les données à votre analytics

Dans le corps de votre callback, poussez les données dans le dataLayer (pour GTM/GA4) ou appelez directement l'API de votre outil analytics.

Exemple complet : widget + callback + dataLayer
html
1<ekoo-widget
2 data-ekoo="YOUR_WEBSITE_ID"
3 data-ekoo-product-id="PRODUCT_123"
4 data-ekoo-locale="fr"
5 data-ekoo-on-event="onEkooEvent"
6></ekoo-widget>
7
8<script>
9function onEkooEvent(data) {
10 console.log('[Ekoo]', data.stats.type, data);
11
12 window.dataLayer = window.dataLayer || [];
13 window.dataLayer.push({
14 event: 'ekoo_' + data.stats.type.replace('-', '_'),
15 ekoo_event_type: data.stats.type,
16 ekoo_widget_type: data.stats.widget,
17 ekoo_product_id: data.productRef,
18 ekoo_source: data.source
19 });
20}
21</script>
22
23<script src="https://app.ekoo.co/widgets/widget-4.0.0-standalone.js"</script>
⚠️

Attention

La fonction callback doit être définie avant le chargement du script Ekoo. Si elle est déclarée après, le widget ne pourra pas l'appeler.

Référence rapide des événements

ÉvénementMomentUsage recommandé
printedLe widget est rendu et visible sur la pageMesurer la visibilité / les impressions du widget
played-0L'utilisateur lance la lecture audioMesurer le taux de lancement (intention d'écoute)
played-2525 % du contenu écoutéMesurer l'engagement initial
played-5050 % du contenu écoutéMesurer l'engagement moyen
played-7575 % du contenu écoutéMesurer l'engagement avancé
played-100Écoute complète (déclenché à 98 %)Corréler avec la conversion

Bonnes pratiques de nommage

Pour garantir la compatibilité avec GA4 et faciliter l'analyse, appliquez ces conventions systématiquement :

  • Préfixez tous vos événements avec ekoo_
  • Remplacez les tirets par des underscores — GA4 n'accepte pas les tirets dans les noms d'événements
Événement EkooNom dataLayer / GA4
printedekoo_printed
played-0ekoo_played_0
played-25ekoo_played_25
played-50ekoo_played_50
played-75ekoo_played_75
played-100ekoo_played_100
⚠️

Attention

Les noms d'événements GA4 ne doivent pas contenir de tirets. Utilisez systématiquement data.stats.type.replace('-', '_') pour convertir les noms avant de les envoyer.

Quel événement utiliser pour mesurer quoi ?

  • printed → mesurer la visibilité du widget sur vos pages
  • played-0 → mesurer le taux de lancement audio (intention d'écoute)
  • played-25 / played-50 → mesurer l'engagement en cours d'écoute
  • played-100 → mesurer l'écoute complète — idéal pour corréler avec la conversion

Guides d'intégration

Bonne pratique

Nous recommandons de tracker au minimum played-0 (lancement) et played-100 (écoute complète) pour mesurer l'impact de l'audio sur la conversion.

Vue d'ensemble — Documentation — Ekoo