Quickstart
Intégrez le widget Ekoo sur votre site en quelques minutes
data-ekooReqdata-ekoo-product-idReqdata-ekoo-localeautodata-ekoo-variantdata-ekoo-review-iddata-ekoo-on-eventdata-ekoo-directionnormaldata-ekoo-scale1data-ekoo-animationpulsedata-ekoo-animation-durationcontinuousdata-ekoo-always-openfalsedata-ekoo-show-imagetruedata-ekoo-not-fully-clickablefalsedata-ekoo-autoplayfalsedata-ekoo-show-transcriptfalsedata-ekoo-show-speed-buttonfalsedata-ekoo-closed-state-main-textdata-ekoo-closed-state-secondary-textdata-ekoo-modeautodata-shadow-modeopenwindow.EKOO_FORCE_SPA = truewindow.ekooShadowMode = "open"1. Code minimal
Ajoutez ces deux éléments sur votre page : un conteneur avec les attributs data-ekoo et le script officiel.
1<!-- Widget container -->2<ekoo-widget3 data-ekoo="YOUR_WEBSITE_ID"4 data-ekoo-product-id="YOUR_PRODUCT_ID"5 data-ekoo-locale="fr"6></ekoo-widget>78<!-- Ekoo script (load once) -->9<script src="https://app.ekoo.co/widgets/widget-4.0.0-standalone.js"</script>Audio publié obligatoire
Le widget ne s'affiche que si au moins un audio est publié pour le product-id indiqué. Vérifiez le statut dans le backoffice Ekoo.
2. Détail des attributs
Attributs du conteneur
| Attribut | Requis | Description |
|---|---|---|
data-ekoo | Obligatoire | Marque l'élément comme conteneur du widget Ekoo. |
data-ekoo-product-id | Obligatoire | Identifiant du produit. Doit correspondre à l'ID configuré dans le backoffice. |
data-ekoo-locale | Optionnel | Langue du widget (fr, en, auto…). Par défaut, détection automatique. |
data-ekoo-type | Optionnel | Type de widget : standalone (défaut). Peut être omis. |
data-ekoo-variant | Optionnel | Référence d'une configuration widget enregistrée dans le backoffice (ex : "homepage"). Sélectionne l'habillage appliqué ; le produit et ses audios restent pilotés par data-ekoo-product-id. |
data-ekoo-on-event | Optionnel | Nom d'une fonction globale appelée lors des événements du widget (played-0, played-25, etc.). |
Attributs du script
| Attribut | Requis | Description |
|---|---|---|
src | Obligatoire | Toujours https://app.ekoo.co/widgets/widget-4.0.0-standalone.js |
defer | Recommandé | Charge le script sans bloquer le rendu de la page. |
Sites multilingues
Utilisez data-ekoo-locale="auto" pour que le widget s'adapte automatiquement à la langue du navigateur de vos visiteurs.
3. Exemple complet
1<!DOCTYPE html>2<html lang="fr">3<head>4 <meta charset="UTF-8" />5 <title>Mon produit</title>6</head>7<body>89 <h1>Mon super produit</h1>1011 <!-- Ekoo Widget -->12 <ekoo-widget13 data-ekoo="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"14 data-ekoo-product-id="my-product-123"15 data-ekoo-locale="fr"16 ></ekoo-widget>1718 <!-- Ekoo Script -->19 <script src="https://app.ekoo.co/widgets/widget-4.0.0-standalone.js"</script>2021</body>22</html>4. Configuration JavaScript
Vous pouvez aussi configurer les widgets via window.ekooOptions au lieu d'utiliser les attributs HTML. C'est utile pour les applications SPA ou lorsque vous devez gérer plusieurs widgets dynamiquement.
1<!-- Target container -->2<div id="ekoo-container"></div>34<script>5 window.ekooOptions = {6 websiteId: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",7 widgets: [8 {9 nodeId: "ekoo-container",10 productId: "my-product-123",11 locale: "fr"12 }13 ]14 };15</script>1617<script src="https://app.ekoo.co/widgets/widget-4.0.0-standalone.js"</script>Si le widget ne s'affiche pas
- Vérifiez que l'audio est bien publié dans le backoffice.
- Vérifiez que le
data-ekoo-product-idcorrespond à l'identifiant du produit dans le backoffice. - Vérifiez que le
data-ekooest correct (UUID du site). - Assurez-vous que le script
widget-4.0.0-standalone.jsest bien chargé (onglet Network des DevTools). - Vérifiez qu'il n'y a pas d'erreur JavaScript dans la console.
- Si vous utilisez un bloqueur de publicités, désactivez-le temporairement.
- Assurez-vous que le conteneur
data-ekooest présent dans le DOM au moment du chargement du script.
Note
Si le problème persiste, contactez le support Ekoo en précisant votre Website ID et le Product ID concerné.
5. Élément personnalisé alternatif
Au lieu d'un <div>, vous pouvez utiliser l'élément personnalisé <ekoo-widget> directement. Les deux syntaxes sont équivalentes — le script Ekoo détecte automatiquement les deux.
1<!-- Alternative: use the custom element directly -->2<ekoo-widget3 data-ekoo="YOUR_WEBSITE_ID"4 data-ekoo-product-id="YOUR_PRODUCT_ID"5 data-ekoo-locale="fr"6></ekoo-widget>6. Options avancées
1<!-- Shadow DOM: opt into full style isolation (default: open) -->2<ekoo-widget3 data-ekoo="YOUR_WEBSITE_ID"4 data-ekoo-product-id="YOUR_PRODUCT_ID"5 data-shadow-mode="closed"6></ekoo-widget>78<!-- Force SPA mode if auto-detection fails (rare) -->9<ekoo-widget10 data-ekoo="YOUR_WEBSITE_ID"11 data-ekoo-product-id="YOUR_PRODUCT_ID"12 data-ekoo-mode="spa"13></ekoo-widget>data-shadow-mode="closed"— Force l'isolation complète du Shadow DOM (par défaut : open, ce qui autorise l'inspection DevTools et le tracking analytics).data-ekoo-mode="spa"— Force le mode SPA si l'auto-détection échoue (rare).- Le mode SPA est auto-détecté pour Next.js, Nuxt, React, Vue, Angular et Sapper.
Configuration distante
Le widget Ekoo récupère automatiquement sa configuration visuelle complète depuis le backoffice Ekoo en se basant sur votre websiteId et productId. Cela inclut : le thème, les couleurs, les textes CTA, les paramètres d'animation, la position, et le CSS personnalisé. Vous n'avez pas besoin de définir des attributs d'apparence dans votre HTML — la configuration du backoffice est appliquée automatiquement. Les attributs data ne sont nécessaires que pour surcharger la configuration du backoffice pour une instance spécifique du widget.
Prochaines étapes
- Guides d'intégration par plateforme (React, Svelte, Shopify, GTM…)
- Gérer votre contenu audio
- FAQ