Aller au contenu principal
Guide indépendant rédigé par un audioprothésiste diplômé d'État — sources médicales vérifiées

Documentation d'intégration

Le widget de dépistage auditif s'intègre en une ligne : le script widget.js insère une iframe sécurisée dans votre page, sans dépendance ni framework. L'iframe se redimensionne automatiquement et remonte les coordonnées captées dans votre espace partenaire.

Démarrage rapide

Copiez ce code juste avant la balise </body> de votre page, en remplaçant VOTRE-SLUG par l'identifiant fourni à la création de votre compte partenaire :

<script src="https://leguideauditif.fr/widget.js" data-partner="VOTRE-SLUG" async></script>

C'est tout : le widget apparaît à l'emplacement du script. Pour le placer ailleurs, voir Placement.

Attributs disponibles

Attribut Requis Rôle
data-partner Oui Votre identifiant partenaire (lettres minuscules, chiffres, tirets ; 1 à 64 caractères).
data-target Non Sélecteur CSS du conteneur où insérer le widget (ex. #depistage-auditif). Absent : le widget s'insère à l'emplacement du script.
async Recommandé Charge le script sans bloquer le rendu de votre page.

Exemple avec un conteneur cible :

<script src="https://leguideauditif.fr/widget.js" data-partner="VOTRE-SLUG" data-target="#depistage-auditif" async></script>

Placement et dimensionnement

Sans data-target, le widget s'insère immédiatement après la balise <script>. Avec data-target, il est ajouté dans le conteneur indiqué. La largeur occupe 100 % de l'espace disponible ; prévoyez donc un conteneur à la largeur souhaitée.

La hauteur est gérée automatiquement : l'iframe communique sa hauteur à votre page (via postMessage) et s'ajuste à chaque étape du parcours. Vous n'avez aucune hauteur à fixer.

Événements JavaScript

Pour les intégrations avancées, le loader émet des événements sur l'objet window que vous pouvez écouter :

window.addEventListener('lga-widget:widget.ready', function (e) {
  console.log('Widget pret, hauteur :', e.detail.height);
});

Intégration selon votre CMS

Le widget est un simple bloc de code : collez le snippet là où votre CMS accepte du HTML personnalisé.

Sur un site sur mesure, placez le snippet dans le gabarit de la page concernée.

Où arrivent les leads

Lorsqu'un visiteur laisse ses coordonnées, le lead est enregistré et consultable dans votre espace partenaire (le point de capture est configurable : après le résultat, à côté du résultat, etc.). Les offres Pro, Réseau et Enterprise peuvent en plus recevoir chaque lead en temps quasi réel via un webhook.

Webhook (Pro, Réseau, Enterprise)

Si votre offre inclut le webhook et que vous avez renseigné une URL de réception, chaque lead capté est envoyé en POST à cette URL, au format JSON :

{
  "id": "f1e2d3c4-...",
  "partner_slug": "votre-slug",
  "session_id": "a1b2c3...",
  "email": "patient@exemple.fr",
  "fields": { "nom": "Dupont", "telephone": "0600000000" },
  "verdict": "perte_legere",
  "reliability": 0.92,
  "capture_point": "post_result",
  "consent_given": true,
  "consent_text": "J'accepte d'être recontacté...",
  "consent_given_at": "2026-05-27T10:12:00.000Z",
  "created_at": "2026-05-27T10:11:58.000Z"
}

En-têtes

Vérifier la signature

La signature est un HMAC-SHA256 calculé sur la chaîne <timestamp>.<corps brut> avec votre clé secrète, préfixé par sha256=. Recalculez-la et comparez en temps constant :

import { createHmac, timingSafeEqual } from 'node:crypto';

// secret = votre cle de signature webhook (espace partenaire)
function verifierSignature(corpsBrut, signatureRecue, timestamp, secret) {
  const attendu =
    'sha256=' + createHmac('sha256', secret)
      .update(`${timestamp}.${corpsBrut}`)
      .digest('hex');
  const a = Buffer.from(signatureRecue);
  const b = Buffer.from(attendu);
  return a.length === b.length && timingSafeEqual(a, b);
}

Accusé de réception et réessais

Répondez avec un statut 2xx pour accuser réception. En cas d'échec (statut non-2xx, ou délai dépassé : 8 secondes), l'envoi est réessayé automatiquement, jusqu'à 5 tentatives, avant abandon.

Origines autorisées et quota

Vous pouvez restreindre l'affichage du widget à une liste de domaines (origines autorisées) depuis votre espace partenaire. Laissée vide, la liste est permissive : le widget fonctionne partout.

Chaque offre comporte un quota mensuel de tests. Le dépassement n'interrompt jamais un test en cours (priorité à l'usager) : les tests au-delà du quota sont comptabilisés et facturés en supplément selon votre offre. Le détail est visible dans votre tableau de bord.

Dépannage

Le widget ne s'affiche pas, que vérifier ?
Vérifiez que l'attribut data-partner est présent et valide (lettres minuscules, chiffres et tirets uniquement). Ouvrez la console du navigateur : le loader y écrit un avertissement [lga-widget] si le slug manque ou si l'origine du script est introuvable. Assurez-vous enfin qu'aucun bloqueur de scripts n'empêche le chargement de widget.js.
La hauteur du widget est coupée ou figée.
Le redimensionnement est automatique : l'iframe ajuste sa hauteur via postMessage. Si la hauteur reste figée, vérifiez qu'aucune règle CSS du conteneur parent ne force une hauteur fixe ou un overflow: hidden. La largeur est de 100 % par défaut.
Le test affiche un message de domaine non autorisé.
Si vous avez renseigné une liste d'origines autorisées dans votre espace partenaire, ajoutez-y le domaine exact (schéma + nom d'hôte, par exemple https://www.votresite.fr). Une liste vide est permissive : le widget fonctionne sur tous vos domaines.
Puis-je placer le widget dans une modale ou un onglet ?
Oui. Utilisez l'attribut data-target en pointant un conteneur de la page (par exemple data-target="#depistage-auditif"). Le widget se dimensionne correctement lorsqu'il devient visible.

Aller plus loin

Besoin de prendre en main votre tableau de bord (leads, quota, personnalisation) ? Consultez le guide de l'espace partenaire. Pas encore partenaire ? Découvrez les offres.

Accéder à mon espace partenaire

Vous cherchez un audioprothésiste ?

9 398 centres auditifs référencés dans toute la France

Consulter la carte