Theme
Tracking UTM -- Configuration complete
Le tracking UTM est la piece maitresse de l'attribution dans DURUM.ai. Sans lui, vos leads et ventes apparaissent dans le dashboard mais ne sont pas relies aux bonnes publicites. Ce guide vous accompagne etape par etape pour configurer le tracking, peu importe l'outil de formulaire que vous utilisez.
Pourquoi c'est indispensable
Quand un prospect clique sur une publicite Meta, l'URL de destination contient des parametres UTM qui identifient la campagne et l'annonce. Ces parametres sont la seule facon pour DURUM.ai de savoir quelle pub a genere quel lead.
Le probleme : ces parametres vivent dans l'URL. Si votre formulaire ne les capture pas, l'information est perdue au moment ou le prospect soumet le formulaire. Le lead arrive dans DURUM.ai, mais il est impossible de le relier a la bonne publicite.
La solution repose sur trois couches complementaires qui se renforcent mutuellement.
Les trois couches de tracking
| Couche | Methode | Fiabilite | Effort |
|---|---|---|---|
| Script de tracking | Script DURUM.ai sur vos landing pages | Tres elevee | 1 ligne de code |
| Champs caches dans le formulaire | Hidden fields dans votre CRM/outil de formulaire | Maximale | Configuration manuelle |
| Enrichissement serveur | DURUM.ai cherche les UTMs dans les sessions anterieures | Elevee (fallback) | Automatique |
Recommandation
La combinaison des couches 1 et 2 donne une couverture quasi-parfaite. La couche 3 rattrape automatiquement les cas ou les deux premieres auraient echoue.
Etape 1 -- Parametres URL dans Meta Ads
Dans vos publicites Meta, ajoutez les parametres suivants dans le champ URL Parameters (au niveau de la publicite ou du compte). Copiez ce bloc tel quel :
utm_source=Meta&utm_medium=paid&utm_campaign={{campaign.name}}&utm_content={{ad.name}}&utm_term={{adset.name}}&utm_campaign_id={{campaign.id}}&utm_ad_id={{ad.id}}&utm_adset_id={{adset.id}}Les doubles accolades (campaign.name, ad.name, etc.) sont des macros Meta qui sont automatiquement remplacees par les vraies valeurs au moment du clic. Vous n'avez rien d'autre a faire de ce cote.
WARNING
Ne modifiez pas les noms des parametres (utm_source, utm_campaign, etc.). DURUM.ai s'attend a recevoir ces noms exacts. Changer utm_content en ad_name par exemple empecherait l'attribution.
Etape 2 -- Script de tracking DURUM.ai
Ajoutez cette ligne dans le <head> de chacune de vos landing pages. Remplacez VOTRE_CLE par votre client_key DURUM.ai.
html
<script src="https://app.durum.ai/api/track.js" data-client="VOTRE_CLE"></script>Ce que fait le script
Le script est leger (moins de 5 Ko) et effectue automatiquement les operations suivantes :
- Capture les parametres UTM de l'URL au chargement de la page
- Stocke les valeurs dans un cookie (30 jours) pour couvrir les visites multi-pages
- Injecte les valeurs dans les champs caches de vos formulaires
- Detecte la soumission du formulaire et envoie les UTMs a DURUM.ai
Le script fonctionne avec tous les outils de formulaire : GHL, Typeform, Calendly, Jotform, Tally, WordPress, Webflow, ClickFunnels et tout formulaire HTML standard.
Detection intelligente
Le script detecte les soumissions de formulaire via six methodes differentes, ce qui lui permet de fonctionner meme avec les formulaires les plus exotiques :
- Soumission HTML native (formulaires standard, GHL, WordPress)
- Iframe Typeform (via postMessage)
- Iframe Calendly (via postMessage)
- Appels AJAX et fetch (formulaires SPA, React, Vue)
- Pages de remerciement (detection par MutationObserver)
- Changements d'URL (redirections SPA vers /merci, /thank-you)
Etape 3 -- Champs caches dans vos formulaires
Le script de tracking couvre la majorite des cas, mais ajouter des champs caches dans vos formulaires apporte une couche de securite supplementaire. C'est aussi la seule facon de garantir que votre CRM stocke les UTMs directement dans le contact.
Convention de nommage
Les noms de champs doivent etre exactement comme dans ce tableau. Respectez les minuscules et les underscores.
| Nom du champ | Description | Requis |
|---|---|---|
utm_source | Source du trafic (Meta, Google, etc.) | Oui |
utm_medium | Type de trafic (paid, organic, email) | Oui |
utm_campaign | Nom de la campagne | Oui |
utm_content | Nom de la publicite (ad) | Oui |
utm_term | Nom du groupe d'annonces (adset) | Oui |
utm_campaign_id | ID numerique de la campagne Meta | Recommande |
utm_ad_id | ID numerique de la publicite Meta | Recommande |
utm_adset_id | ID numerique du groupe d'annonces | Recommande |
WARNING
Les noms de champs sont sensibles a la casse. UTM_Source ou utmSource ne seront pas reconnus. Utilisez toujours la version en minuscules avec underscore.
Configuration par plateforme
GoHighLevel (GHL)
- Allez dans Settings > Custom Fields > Contact
- Creez chaque champ du tableau ci-dessus comme Single Line Text
- Nommez chaque champ exactement comme dans le tableau (ex:
utm_source) - Dans votre formulaire ou page de capture, ajoutez ces champs en mode Hidden
- GHL supporte le pre-remplissage natif via les parametres URL : les champs nommes
utm_source,utm_campaign, etc. sont automatiquement remplis depuis l'URL
TIP
Avec GHL, le script DURUM.ai et les custom fields sont complementaires. Le script remplit les champs caches au chargement de la page, et GHL les enregistre dans le contact au moment de la soumission.
Typeform
- Dans les parametres de votre formulaire, allez dans Hidden Fields
- Ajoutez les champs suivants :
utm_source,utm_medium,utm_campaign,utm_content,utm_term,utm_campaign_id,utm_ad_id,utm_adset_id,client_key - Typeform extrait automatiquement les valeurs depuis les parametres URL
- Definissez
client_keyavec votre cle client DURUM.ai
Calendly
Calendly capture automatiquement les parametres UTM standards (utm_source, utm_medium, utm_campaign, utm_content, utm_term) depuis l'URL de la page ou l'embed est place. Aucune configuration supplementaire n'est necessaire.
Le script DURUM.ai complete le tracking en capturant les identifiants Meta (utm_ad_id, utm_campaign_id) que Calendly ne supporte pas nativement.
Jotform
- Ajoutez des champs Hidden Field dans votre formulaire
- Definissez le Field Name avec le nom exact (ex:
utm_source) - Cochez Prepopulate et definissez le Query Parameter Name au meme nom
Tally
- Dans les reglages du formulaire, ajoutez des Hidden Fields
- Nommez chaque champ exactement comme dans le tableau
- Tally capture automatiquement les parametres URL correspondants
WordPress / Elementor
- Ajoutez des champs de type Hidden dans votre formulaire
- Definissez la Default Value comme URL Parameter et specifiez le nom (ex:
utm_source)
Webflow
- Ajoutez des champs
<input type="hidden">dans votre formulaire - Definissez l'attribut
nameavec le nom UTM exact - Le script DURUM.ai remplira automatiquement ces champs
HTML personnalise
Si vous utilisez un formulaire HTML sur mesure, ajoutez ces champs caches entre les balises <form> :
html
<input type="hidden" name="utm_source">
<input type="hidden" name="utm_medium">
<input type="hidden" name="utm_campaign">
<input type="hidden" name="utm_content">
<input type="hidden" name="utm_term">
<input type="hidden" name="utm_campaign_id">
<input type="hidden" name="utm_ad_id">
<input type="hidden" name="utm_adset_id">
<input type="hidden" name="client_key" value="VOTRE_CLE">Le script DURUM.ai injectera automatiquement les valeurs depuis le cookie UTM au chargement de la page.
Etape 4 -- Tester votre configuration
DURUM.ai fournit un endpoint de test pour verifier que vos UTMs sont correctement transmis.
Test via URL
Ouvrez cette URL dans votre navigateur en remplacant les valeurs :
https://app.durum.ai/api/webhook/test-utm?client_key=VOTRE_CLE&utm_source=Meta&utm_medium=paid&utm_campaign=test_campagne&utm_content=test_annonce&utm_term=test_adsetTest via webhook
Envoyez un webhook de test identique a ce que votre formulaire enverrait :
POST https://app.durum.ai/api/webhook/test-utm?client_key=VOTRE_CLE
Content-Type: application/json
{
"email": "test@example.com",
"utm_source": "Meta",
"utm_medium": "paid",
"utm_campaign": "campagne_test",
"utm_content": "annonce_test",
"utm_term": "adset_test"
}Comprendre la reponse
La reponse contient un grade de A+ a F et un detail de ce qui a ete trouve :
| Grade | Signification |
|---|---|
| A+ | Tous les champs requis et recommandes sont presents |
| A | Tous les champs requis sont presents |
| B | La plupart des champs requis sont presents |
| C | Certains champs requis sont manquants |
| D/F | Configuration incomplete, l'attribution sera limitee |
La reponse indique aussi les champs manquants et les warnings eventuels pour corriger votre configuration.
Depannage
Mes leads arrivent mais ne sont pas attribues
- Verifiez que les parametres UTM sont presents dans l'URL de destination de vos publicites Meta
- Verifiez que le script DURUM.ai est bien installe sur la landing page
- Testez avec l'endpoint
/api/webhook/test-utmpour voir quels champs sont recus - Verifiez la convention de nommage des champs caches dans votre formulaire
Les UTMs contiennent des placeholders non resolus
Si vous voyez des valeurs comme campaign_name ou des accolades non resolues au lieu des vraies valeurs, cela signifie que les macros Meta n'ont pas ete resolues. Verifiez que les parametres UTM sont configures au bon niveau dans Meta Ads Manager (au niveau de la publicite, pas du compte).
Le script de tracking ne detecte pas la soumission
Certains formulaires tres customises peuvent echapper a la detection automatique. Dans ce cas, les champs caches dans le formulaire prennent le relais. Assurez-vous d'avoir configure les hidden fields comme explique dans la section de votre plateforme.
J'utilise un outil qui n'est pas liste
Le script DURUM.ai fonctionne avec tout formulaire HTML standard. Si votre outil genere un <form> standard ou utilise fetch/XMLHttpRequest pour soumettre les donnees, le tracking fonctionnera. En cas de doute, ajoutez les champs caches HTML et le script s'occupera du reste.
Resume
Pour une attribution complete dans DURUM.ai :
- Ajoutez les parametres UTM dans vos publicites Meta
- Installez le script de tracking sur vos landing pages (1 ligne)
- Ajoutez les champs caches dans vos formulaires (nommage exact requis)
- Testez avec l'endpoint de validation
Ces trois etapes garantissent que chaque lead, booking et vente sera correctement attribue a la publicite qui l'a genere.