> ## Documentation Index
> Fetch the complete documentation index at: https://docs.aftersell.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Comment utiliser les liens UTM direct-to-checkout

> Découvrez comment déclencher des funnels post-achat à l'aide de paramètres UTM, y compris la configuration des liens direct-to-checkout

Aftersell prend en charge le déclenchement de funnels basé sur les paramètres UTM, une fonctionnalité optionnelle spécifiquement destinée aux cas d'usage avancés. Vous pouvez configurer votre funnel pour qu'il s'active lorsqu'un client visite votre site avec une chaîne de requête UTM spécifique.

Cette configuration est optionnelle et n'est généralement nécessaire que pour des besoins de suivi avancés, comme les liens direct-to-checkout ou les offres spécifiques à une campagne.

<div id="how-utm-triggers-work">
  ## Fonctionnement des déclencheurs UTM
</div>

Les déclencheurs UTM vous permettent d'afficher des funnels post-achat spécifiques en fonction des paramètres UTM présents dans l'URL. C'est utile pour :

* **Offres spécifiques à une campagne** — affichez différents upsells en fonction de la campagne marketing
* **Liens direct-to-checkout** — déclenchez des funnels lorsque les clients contournent la boutique en ligne
* **Attribution par canal** — personnalisez les offres en fonction de la source de trafic (e-mail, réseaux sociaux, publicités)
* **Tests A/B** — testez différentes offres pour différentes variantes de campagne

<div id="quick-start-basic-utm-trigger-setup">
  ## Démarrage rapide : configuration de base des déclencheurs UTM
</div>

Pour les visites standard de la boutique (hors direct-to-checkout), vous pouvez configurer les déclencheurs UTM à l'aide de l'app embed Aftersell. Pour voir comment démarrer rapidement avec les déclencheurs UTM, regardez cette vidéo :

<iframe src="https://go.screenpal.com/player/cOfD38nOD9i" title="How to set up UTM Triggers" allowFullScreen style={{ width: '100%', aspectRatio: '16/9', borderRadius: '12px' }} />

<div id="enable-the-utm-app-embed">
  ### Activer l'app embed UTM
</div>

Pour suivre les paramètres UTM sur les pages de la boutique :

1. Dans votre admin Shopify, accédez à **Online Store > Themes**
2. Cliquez sur **Customize** sur votre thème actif
3. Dans l'éditeur de thème, cliquez sur l'icône **App embeds** (pièce de puzzle) dans la barre latérale gauche
4. Trouvez **Aftersell UTM Tracker** et activez-le (**on**)
5. Cliquez sur **Save**

Une fois activé, Aftersell capturera automatiquement les paramètres UTM lorsque les clients visitent votre boutique via des liens UTM.

<div id="configure-utm-triggers-in-your-funnel">
  ### Configurer les déclencheurs UTM dans votre funnel
</div>

Après avoir activé l'app embed :

1. Accédez à **Post-purchase Funnels** dans l'admin Aftersell
2. Créez ou modifiez un funnel
3. Dans la section **Triggers**, ajoutez un déclencheur **UTM Parameter**
4. Configurez le paramètre UTM et la valeur à faire correspondre
5. Enregistrez votre funnel

<div id="supported-utm-parameters">
  ## Paramètres UTM pris en charge
</div>

Aftersell prend en charge les paramètres UTM standard suivants :

* `utm_source` — identifie la source de trafic (par ex. google, newsletter, facebook)
* `utm_medium` — identifie le support marketing (par ex. email, cpc, social)
* `utm_campaign` — identifie la campagne spécifique (par ex. spring\_sale, product\_launch)
* `utm_term` — identifie les mots-clés de recherche payante (par ex. running+shoes)
* `utm_content` — différencie des contenus ou liens similaires (par ex. banner\_ad, text\_link)
* `utm_id` — identifie l'ID de la campagne (par ex. campaign\_123)

Les six paramètres sont suivis et peuvent être utilisés pour déclencher des funnels.

<div id="partial-field-matching">
  ## Correspondance partielle des champs
</div>

Lors de la configuration des déclencheurs UTM, Aftersell prend en charge la **correspondance partielle** pour les valeurs des paramètres UTM. Cela signifie :

* ✅ **Valeur du déclencheur :** `spring` → **Correspond à :** `spring_sale`, `spring_2026`, `early_spring`
* ✅ **Valeur du déclencheur :** `email` → **Correspond à :** `email_newsletter`, `promotional_email`
* ✅ **Valeur du déclencheur :** `sale` → **Correspond à :** `spring_sale`, `flash_sale`, `sale_2026`

Cette flexibilité vous permet de créer des déclencheurs plus larges correspondant à plusieurs variantes de campagne sans créer de déclencheurs distincts pour chacune.

**Exemple :** si vous configurez un déclencheur pour que `utm_campaign` contienne `sale`, il correspondra à toute campagne dont le nom contient « sale », comme `spring_sale`, `summer_sale` ou `flash_sale_2026`.

<div id="direct-to-checkout-utm-links">
  ## Liens UTM direct-to-checkout
</div>

La configuration de base présentée dans la vidéo ci-dessus ne prend **pas** en charge les liens qui envoient les clients **directement au paiement**. Par défaut, Aftersell ne peut détecter les paramètres UTM que sur les pages de la boutique. C'est parce qu'il repose sur un app embed de thème, qui ne fonctionne que sur les pages de la boutique et pas sur la page de paiement ou de remerciement.

<div id="enable-utm-tracking-on-checkout-pages">
  ### Activer le suivi UTM sur les pages de paiement
</div>

Pour suivre les paramètres UTM sur la page de paiement (pour les liens direct-to-checkout), vous devez **ajouter un pixel Shopify** à votre boutique.

⚠️ **Limitations importantes :**

* Cette configuration nécessite que le visiteur dispose d'un **cart token** lorsqu'il arrive au paiement via un lien UTM. Sans cart token, les données UTM ne seront pas capturées.
* **Les méthodes de paiement express (Shop Pay, Apple Pay, Google Pay) ne sont pas prises en charge** car elles contournent le panier et ne génèrent pas de cart token. Les clients utilisant le paiement express ne déclencheront pas les funnels basés sur les UTM.

<div id="setting-up-the-shopify-pixel">
  ### Configurer le pixel Shopify
</div>

Suivez ces instructions étape par étape pour configurer le suivi UTM direct-to-checkout :

1. Dans votre admin Shopify, accédez à **Settings > Customer Events**.
2. Cliquez sur **Add Custom Pixel** et donnez-lui le nom de votre choix.
3. Dans la liste déroulante **Permission**, sélectionnez **Analytics**. C'est la seule autorisation requise.
4. Pour la liste déroulante **Data Sale**, vous pouvez choisir **Data collected does not qualify as data sale**. Aftersell garde toutes les données collectées privées et ne les partage jamais avec quiconque en dehors de vous.
5. Dans l'éditeur de code qui apparaît, collez le code fourni ci-dessous.
6. Cliquez sur **Save**, puis sur **Connect**.

```text theme={"theme":{"light":"snazzy-light","dark":"github-dark"}}
/**  
 * IMPORTANT: This pixel can only fire on sessions where the  
 * customer has a cart object, otherwise it will be skipped.  
 * For example, clicking "Buy Now" on a product page skips the cart,  
 * going directly to checkout.  
**/  
function processData({event, cartToken}) {  
  // TODO: Edit MYSHOPIFY_DOMAIN to your domain. E.g.  
  // const MYSHOPIFY_DOMAIN = 'example-store.myshopify.com';  
  const MYSHOPIFY_DOMAIN = '';  
  
  const enableDebug = false;  
  
  // DO NOT EDIT PAST HERE  
  const SESSION_STORAGE_KEY = 'as-customer-trigger-data';  
  const HOST = 'https://start.aftersell.app';  
  
  if (!MYSHOPIFY_DOMAIN) {  
    if (enableDebug) {  
      console.log("UTM pixel didn't fire because of missing Shopify domain");  
    }  
    return;  
  }  
  if (!cartToken) {  
    if (enableDebug) {  
      console.log("UTM pixel didn't fire because of missing cart token");  
    }  
  }  
    
  let existingCustomerData = null;  
  try {  
      existingCustomerData = JSON.parse(  
          sessionStorage.getItem(SESSION_STORAGE_KEY) || 'null'  
      );  
  } catch (ignore) {  
    if (enableDebug) {  
      console.log("UTM pixel didn't fire because malformed user data json");  
    }  
  }  
    
  const allowedUrlParams = [  
        'utm_source',  
        'utm_medium',  
        'utm_campaign',  
        'utm_term',  
        'utm_id',  
        'utm_content',  
    ];  
    
  const searchParams = new URLSearchParams(event.context.window.location.search);  
  let hasCustomerData = false;  
  const customerData = {};  
  for (const param of allowedUrlParams) {  
    const paramValue = searchParams.get(param) || existingCustomerData?.[param];  
    if (paramValue) {  
        hasCustomerData = true;  
        customerData[param] = paramValue;  
    }  
  }  
  
  if (hasCustomerData) {  
    sessionStorage.setItem(SESSION_STORAGE_KEY, JSON.stringify(customerData));  
  
    const postBody = {  
      shop: MYSHOPIFY_DOMAIN,  
      cartToken,  
      checkoutToken: event.data.checkout.token ?? undefined,  
      customerTriggerData: customerData,  
    };  
  
    if (enableDebug) {  
      console.log("UTM pixel fired with the following data:", postBody);  
    }  
      
    fetch(`\${HOST}/api/v1/storefrontSessions`, {  
        method: 'POST',  
        headers: {  
            'Content-Type': 'application/json',  
        },  
        body: JSON.stringify(postBody),  
    });  
  } else {  
    if (enableDebug) {  
      console.log("UTM pixel didn't fire because there was no data to send");  
    }  
  }  
}  
  
analytics.subscribe('checkout_started', (event) => {  
   // minimum realistic time between adding item to cart and clicking checkout  
    const COOKIE_POLLING_INTERVAL_MS = 500;  
  
    let currentCookieValue = getCookieValue({ cookie: document.cookie, cookieName: 'cart' });  
    processData({event, cartToken: currentCookieValue});  
  
    setInterval(() => {  
        const newCookieValue = getCookieValue({ cookie: document.cookie, cookieName: 'cart' });  
        if (newCookieValue !== currentCookieValue) {  
            currentCookieValue = newCookieValue;  
            processData({event, cartToken: newCookieValue});  
        }  
    }, COOKIE_POLLING_INTERVAL_MS);  
});  
  
function getCookieValue({ cookie, cookieName }) {  
    const cartCookieRegex = new RegExp(`^\${cookieName}=`);  
    const cartCookie = cookie  
        .split(';')  
        .map((val) => val.trim())  
        .find((val) => cartCookieRegex.test(val));  
    if (!cartCookie) return null;  
    const cartCookieValue = cartCookie.replace(`\${cookieName}=`, '');  
    return cartCookieValue;  
}
```

**Remarques de configuration importantes :**

* **Modifiez `MYSHOPIFY_DOMAIN` :** vous devez remplacer la chaîne vide par le domaine myshopify.com de votre boutique (par ex. `'example-store.myshopify.com'`)
* **Activez le mode debug (optionnel) :** réglez `enableDebug = true` pour voir les journaux de console lors du dépannage
* **Paramètres pris en charge :** le pixel suit les six paramètres UTM standard listés dans le tableau `allowedUrlParams`

<div id="testing-your-utm-trigger-setup">
  ## Tester votre configuration de déclencheurs UTM
</div>

Après avoir configuré les déclencheurs UTM, utilisez cette liste de vérification pour vous assurer que tout fonctionne correctement :

<div id="for-storefront-utm-tracking-app-embed">
  ### Pour le suivi UTM de la boutique (app embed)
</div>

* ✅ **App embed activé :** vérifiez que l'app embed Aftersell UTM Tracker est activé dans les paramètres de votre thème
* ✅ **URL de test :** visitez votre boutique avec un paramètre UTM (par ex. `yourstore.com?utm_campaign=test`)
* ✅ **Achat complet :** ajoutez un produit au panier et finalisez le paiement
* ✅ **Vérifiez le funnel :** vérifiez que le bon funnel apparaît sur la page de remerciement
* ✅ **Order Browser :** consultez l'Order Browser d'Aftersell pour confirmer que le déclencheur UTM a été détecté

<div id="for-direct-to-checkout-utm-tracking-shopify-pixel">
  ### Pour le suivi UTM direct-to-checkout (pixel Shopify)
</div>

* ✅ **Pixel installé :** vérifiez que le pixel personnalisé est enregistré et connecté dans Settings > Customer Events
* ✅ **Domaine configuré :** confirmez que `MYSHOPIFY_DOMAIN` est correctement défini dans le code du pixel
* ✅ **Cart token présent :** assurez-vous que le client a des articles dans son panier avant d'aller au paiement (requis pour le suivi)
* ✅ **URL de test :** utilisez un lien direct-to-checkout avec des paramètres UTM (par ex. `yourstore.com/checkout?utm_campaign=test`)
* ✅ **Achat complet :** finalisez le processus de paiement
* ✅ **Vérifiez le funnel :** vérifiez que le bon funnel apparaît sur la page de remerciement
* ✅ **Order Browser :** consultez l'Order Browser d'Aftersell pour confirmer que le déclencheur UTM a été détecté
* ⚠️ **Paiement express :** rappelez-vous que Shop Pay, Apple Pay et Google Pay ne fonctionneront PAS avec les déclencheurs UTM

<div id="troubleshooting-tips">
  ### Conseils de dépannage
</div>

Si les déclencheurs UTM ne fonctionnent pas :

1. **Activez le mode debug :** réglez `enableDebug = true` dans le code du pixel et consultez la console du navigateur pour les messages d'erreur
2. **Vérifiez le cart token :** assurez-vous que les clients ont des articles dans leur panier avant d'atteindre le paiement (le pixel nécessite un cart token)
3. **Vérifiez la configuration du déclencheur :** vérifiez que le paramètre UTM et la valeur de votre déclencheur de funnel correspondent aux paramètres de l'URL
4. **Testez la correspondance partielle :** rappelez-vous que les déclencheurs utilisent la correspondance partielle — `sale` correspondra à `spring_sale`, `flash_sale`, etc.
5. **Vérifiez la priorité des funnels :** si plusieurs funnels correspondent, seul le funnel de priorité la plus élevée s'affichera
6. **Consultez l'Order Browser :** utilisez l'Order Browser d'Aftersell pour voir quels déclencheurs se sont activés pour chaque commande

<div id="best-practices-for-utm-triggers">
  ## Bonnes pratiques pour les déclencheurs UTM
</div>

* **Utilisez une nomenclature cohérente :** établissez une convention de nommage pour vos paramètres UTM (par ex. `utm_campaign=email_spring_2026`)
* **Exploitez la correspondance partielle :** utilisez des valeurs de déclencheur plus larges pour correspondre à plusieurs variantes de campagne
* **Testez avant de lancer :** testez toujours vos liens UTM et vos déclencheurs avant de les envoyer aux clients
* **Documentez vos campagnes :** conservez une trace des paramètres UTM que vous utilisez pour chaque campagne
* **Combinez avec d'autres déclencheurs :** utilisez les déclencheurs UTM avec des déclencheurs de produit ou de valeur de commande pour un ciblage plus précis
* **Surveillez les performances :** consultez régulièrement l'Order Browser pour voir quelles campagnes UTM génèrent le plus d'upsells
