Aller au contenu principal
Guides & Stratégie• 7 min de lecture

Attribution multi-touch WhatsApp : comprendre le parcours client complet

Comprendre comment WhatsApp s'intègre dans le parcours client multi-canal. Modèles d'attribution, tracking du parcours, et mesure de l'influence WhatsApp sur les conversions en Afrique.

La plupart des entreprises africaines qui utilisent WhatsApp mesurent mal sa contribution réelle aux conversions. Elles voient les conversations WhatsApp mais ne connectent pas ces interactions à l'achat final. Résultat : WhatsApp est sous-valorisé dans les bilans marketing, et les investissements sont sous-dimensionnés par rapport à sa vraie valeur.

L'attribution multi-touch corrige ce problème en cartographiant le parcours client complet — de la découverte à l'achat — et en attribuant à chaque canal, dont WhatsApp, sa juste contribution.

Le parcours client africain type

Le parcours client en Afrique francophone a des spécificités qui impactent l'attribution :

PARCOURS TYPE E-COMMERCE CÔTE D'IVOIRE

Jour 1 : Publicité Instagram → visite site web (pas d'achat)
Jour 2 : Lien WhatsApp sur site → premier message bot (catalogue)
Jour 3 : Message WhatsApp de relance (panier abandonné)
Jour 4 : Question via WhatsApp sur tailles disponibles
Jour 5 : Commande finalisée via WhatsApp + paiement Wave

Attribution last-touch : WhatsApp (100%)
Attribution first-touch : Instagram (100%)
Attribution multi-touch équitable : Instagram (25%) + WhatsApp (75%)

En Afrique, WhatsApp est souvent le canal de finalisation de l'achat — même si la découverte s'est faite sur d'autres canaux. Attribuer l'achat à "l'Instagram" alors que la vente s'est concrétisée sur WhatsApp conduit à des décisions marketing erronées.

Modèles d'attribution et leur applicabilité

Modèle 1 : Last-touch (dernier contact)

const lastTouchAttribution = {
  logic: 'Le dernier canal à avoir interagi avant la conversion reçoit 100% du crédit',
  
  calculate: async (conversionEvent) => {
    const touchpoints = await db.getCustomerTouchpoints(
      conversionEvent.customer_id,
      { before: conversionEvent.timestamp, limit: 20 }
    );
    
    const lastTouch = touchpoints[touchpoints.length - 1];
    
    return {
      model: 'last_touch',
      attributed_channel: lastTouch.channel,
      attributed_value: conversionEvent.value,
      conversion_id: conversionEvent.id
    };
  },
  
  // Avantages et limites
  pros: ['Simple à implémenter', 'Mesure le canal de clôture'],
  cons: ['Ignore la découverte et la nurture', 'Surévalue WhatsApp (souvent dernier canal)']
};

Modèle 2 : First-touch (premier contact)

const firstTouchAttribution = {
  logic: 'Le premier canal à avoir interagi reçoit 100% du crédit',
  
  calculate: async (conversionEvent) => {
    const firstTouch = await db.getFirstCustomerTouchpoint(conversionEvent.customer_id);
    
    return {
      model: 'first_touch',
      attributed_channel: firstTouch.channel,
      attributed_value: conversionEvent.value
    };
  },
  
  // En Afrique : le premier contact est souvent Instagram/Facebook Ads ou bouche-à-oreille
  pros: ['Valorise l\'acquisition', 'Simple'],
  cons: ['Ignore la conversion', 'Sous-valorise WhatsApp comme canal de closing']
};

Modèle 3 : Multi-touch linéaire (recommandé pour débuter)

const linearAttribution = {
  logic: 'Chaque canal impliqué dans le parcours reçoit une part égale du crédit',
  
  calculate: async (conversionEvent) => {
    const touchpoints = await db.getCustomerTouchpoints(
      conversionEvent.customer_id,
      { 
        before: conversionEvent.timestamp,
        lookback_window_days: 30 // Fenêtre de 30 jours
      }
    );
    
    // Dédupliquer par canal
    const uniqueChannels = [...new Set(touchpoints.map(t => t.channel))];
    const sharePerChannel = 1 / uniqueChannels.length;
    
    const attribution = uniqueChannels.reduce((acc, channel) => {
      acc[channel] = {
        credit_pct: sharePerChannel,
        credited_value_fcfa: conversionEvent.value * sharePerChannel
      };
      return acc;
    }, {});
    
    return { model: 'linear', attribution, total_value: conversionEvent.value };
  }
};

Modèle 4 : Time decay (pondération temporelle)

const timeDecayAttribution = {
  logic: 'Les touches récentes reçoivent plus de crédit que les touches anciennes',
  half_life_days: 7, // La valeur est divisée par 2 tous les 7 jours
  
  calculate: async (conversionEvent) => {
    const touchpoints = await db.getCustomerTouchpoints(
      conversionEvent.customer_id,
      { before: conversionEvent.timestamp }
    );
    
    const now = new Date(conversionEvent.timestamp);
    
    // Calculer le poids de chaque touchpoint
    const weightedTouchpoints = touchpoints.map(tp => {
      const daysAgo = (now - new Date(tp.timestamp)) / (1000 * 60 * 60 * 24);
      const weight = Math.pow(0.5, daysAgo / timeDecayAttribution.half_life_days);
      return { ...tp, weight };
    });
    
    const totalWeight = weightedTouchpoints.reduce((sum, tp) => sum + tp.weight, 0);
    
    // Attribuer la valeur proportionnellement
    const attribution = {};
    for (const tp of weightedTouchpoints) {
      const share = tp.weight / totalWeight;
      if (!attribution[tp.channel]) attribution[tp.channel] = 0;
      attribution[tp.channel] += conversionEvent.value * share;
    }
    
    return { model: 'time_decay', attribution };
  }
};

Tracker le parcours client multi-canal

// Système de tracking multi-canal unifié
class CustomerJourneyTracker {
  
  async trackTouchpoint(customerId, channel, event, metadata = {}) {
    await db.insertTouchpoint({
      customer_id: customerId,
      channel,
      event,
      metadata,
      timestamp: new Date(),
      session_id: this.getSessionId(customerId, channel)
    });
    
    // Mettre à jour le profil client avec les canaux connus
    await db.updateCustomerChannels(customerId, channel);
  }
  
  // Lier un contact WhatsApp à son identité cross-canal
  async linkWhatsAppToCustomer(phone, identifiers) {
    const { email, crm_id, loyalty_id } = identifiers;
    
    // Rechercher un profil existant
    let customer = await db.findCustomerByIdentifiers({ email, crm_id, loyalty_id });
    
    if (!customer) {
      // Créer un nouveau profil unifié
      customer = await db.createCustomer({
        whatsapp_phone: phone,
        email,
        crm_id,
        loyalty_id,
        first_seen: new Date()
      });
    } else {
      // Enrichir le profil existant avec le numéro WhatsApp
      await db.updateCustomer(customer.id, { whatsapp_phone: phone });
    }
    
    // Lier rétrospectivement les touchpoints WhatsApp anonymes
    await db.linkAnonymousTouchpoints(phone, customer.id);
    
    return customer;
  }
  
  // Calculer la contribution WhatsApp au CA total
  async calculateWhatsAppROI(period) {
    const allConversions = await db.getConversions(period);
    
    let directRevenue = 0; // Commandes finalisées via WhatsApp
    let assistedRevenue = 0; // Commandes où WhatsApp était dans le parcours
    
    for (const conversion of allConversions) {
      const journey = await db.getCustomerTouchpoints(conversion.customer_id, { before: conversion.timestamp });
      const whatsappTouches = journey.filter(tp => tp.channel === 'whatsapp');
      
      if (whatsappTouches.length === 0) continue;
      
      const lastTouch = journey[journey.length - 1];
      if (lastTouch.channel === 'whatsapp') {
        directRevenue += conversion.value;
      } else {
        assistedRevenue += conversion.value;
      }
    }
    
    return { directRevenue, assistedRevenue, totalInfluenced: directRevenue + assistedRevenue };
  }
}

Fenêtre d'attribution adaptée au contexte africain

La fenêtre d'attribution doit être calibrée selon le cycle de vente :

const attributionWindowsByIndustry = {
  ecommerce_impulse: { days: 7 },    // Achat impulse : court
  ecommerce_considered: { days: 14 }, // Achat réfléchi (high ticket)
  real_estate: { days: 90 },          // Immobilier : cycle long
  banking_product: { days: 30 },      // Ouverture de compte
  healthcare_rdv: { days: 3 },        // Prise de RDV : très court
  tourism_booking: { days: 45 }       // Réservation voyage
};

Pour approfondir, consultez notre guide sur la segmentation audience WhatsApp et notre article sur la corrélation WhatsApp et ventes.

FAQ

Q: Comment construire un tracking multi-canal sans investissement technologique lourd ?

A: Pour débuter sans investissement lourd : (1) utilisez des UTM parameters sur tous vos liens WhatsApp vers le web (pour capter les clics dans Google Analytics), (2) créez un champ "source" dans votre CRM pour noter comment chaque lead est arrivé, (3) formez vos agents à demander "comment nous avez-vous trouvé ?" et à noter la réponse. Cette approche manuelle capture 60-70% des parcours avec zéro coût technologique.

Q: Quelle est la fenêtre d'attribution la plus pertinente pour l'e-commerce en Afrique ?

A: 14 jours est une bonne valeur par défaut pour l'e-commerce africain. Les études sur les marchés africains montrent que 80% des achats influencés par WhatsApp se concluent dans les 7 jours, et 95% dans les 14 jours. Au-delà, le lien de causalité entre la visite WhatsApp et l'achat devient incertain. Pour les produits haut de gamme (immobilier, voiture, voyage), étendez à 30-60 jours.

Q: WhatsApp cannibalize-t-il d'autres canaux ou les complète-t-il ?

A: En Afrique, WhatsApp complète généralement les autres canaux sans les cannibaliser. Les données montrent que les clients qui utilisent WhatsApp + email ont des taux de conversion plus élevés que ceux qui n'utilisent qu'un seul canal. WhatsApp sert souvent à finaliser une intention d'achat déclenchée ailleurs (Instagram, bouche-à-oreille). La présence de WhatsApp dans le parcours client augmente la conversion globale de 15-25% sans réduire l'efficacité des autres canaux.

Q: Comment attribuer une valeur aux conversations WhatsApp qui n'aboutissent pas directement à une vente ?

A: Valorisez les "micro-conversions" : une qualification de prospect, une prise de RDV, une demande de devis, un dossier complet. Assignez une valeur monétaire estimée à chaque micro-conversion (valeur d'un lead qualifié = CA moyen × taux de closing). Un lead qualifié via WhatsApp à 5000 FCFA de valeur estimée est une conversion, même sans achat immédiat.


L'attribution multi-touch révèle la vraie valeur de WhatsApp dans votre mix marketing africain. Les entreprises qui l'implémentent découvrent souvent que WhatsApp contribue à 30-50% de leur CA alors qu'il ne représente qu'une fraction des coûts marketing.

Activez le tracking multi-canal sur Whakup et mesurez la vraie contribution WhatsApp à votre chiffre d'affaires.

#whatsapp-business-api-guide#automatisation-whatsapp-flows#chatbot-whatsapp-guide
Pablo Lenormand
Pablo LenormandCo-fondateur & CPO

Co-fondateur et Chief Product Officer de Whakup, Pablo conçoit les fonctionnalités qui permettent aux marques africaines de maximiser leur impact sur WhatsApp.

🚀

Prêt à passer à l'action ?

Essayez Whakup gratuitement pendant 15 jours. Aucune carte bancaire requise.

Démarrer l'essai gratuit