Marketing Measurement
Comment Le Marketing Mix Modeling (MMM) Full-funnel Prend-il En Compte Les Canaux Du Haut De Funnel ?
Les modèles MMM simples attribuent tout le mérite aux canaux de performance, tandis que le MMM full-funnel offre une vision plus équilibrée de la performance des canaux.

Qu’est-ce que le MMM full-funnel ?
Le Marketing Mix Modeling (MMM) full-funnel est un cadre de mesure avancé qui quantifie la manière dont les activités marketing tout au long du parcours client, de la notoriété de marque en haut de funnel jusqu’aux conversions en bas de funnel, interagissent et génèrent du chiffre d’affaires.
Contrairement au MMM traditionnel, qui se concentre principalement sur les conversions directes à court terme, le MMM full-funnel capture les effets inter-funnel des investissements de marque. Il modélise comment les tactiques de haut de funnel, comme la TV connectée et les RP, construisent l’équité de marque et améliorent la performance des canaux de bas de funnel.
En tenant compte de ces parcours indirects et de la persistance à long terme, il offre aux marketeurs une vision unifiée du ROI total, les aidant à allouer les budgets de manière stratégique à chaque étape du parcours d’achat.
Points clés
- Sous-valorisation du haut de funnel : Le MMM standard traite tous les canaux en parallèle, permettant aux canaux de bas de funnel (comme la recherche payante) de capter le crédit de la demande construite par les canaux de haut de funnel (comme la CTV ou le broadcast).
- La recherche comme médiateur : Le MMM full-funnel modélise explicitement les dépenses et les impressions de recherche comme un médiateur multi-étapes afin de capturer les effets indirects de halo de marque.
- Attribution ROAS accrue : Dans notre analyse d’un jeu de données sur 4 ans, la prise en compte de la demande de recherche médiée a attribué 21,7 % de revenus supplémentaires et a augmenté le ROAS du haut de funnel de 28,0 à 35,0.
- Mesure respectueuse de la vie privée : Le MMM bayésien full-funnel s’appuie uniquement sur des données agrégées de séries temporelles, sans suivi au niveau utilisateur ni cookies.
Marketing Mix Model du haut de funnel
Certains canaux marketing orientent les gens vers d’autres canaux.
Dans ces données marketing de démonstration que nous utilisons pour cet article de blog, les publicités Broadcast et Streaming constituent les dépenses de notoriété, « haut de funnel ». Nous voulons tester si ces dépenses incitent les gens à rechercher le produit.
Si, par exemple, nous construisons un modèle plat où Search se trouve à côté de CTV, une partie de l’histoire sera cachée : Search s’appropriera une partie du crédit qui revient à CTV.
Ce notebook construit deux modèles sur un jeu de données hebdomadaires couvrant quatre ans :
- Le premier est un modèle standard, où Search est traité comme n’importe quel autre canal.
- Le second est un modèle tenant compte du funnel, où une partie de Search résulte des canaux du haut de funnel.
Nous comparons ensuite les deux modèles et évaluons dans quelle mesure chacun s’ajuste aux données.
Ce notebook suppose des connaissances introductives sur la modélisation avec pymc-marketing ; reportez-vous au guide pas à pas de la modélisation avec pymc-marketing.
Comment nous pensons le funnel
Commençons par examiner le graphique suivant

Le schéma ci-dessus montre deux groupes de canaux : haut de funnel et bas de funnel. Il montre aussi, en bas, une chaîne de boîtes qui explique comment la recherche fonctionne réellement
Les deux groupes de canaux. Broadcast et Streaming sont les canaux du haut de funnel : des dépenses de notoriété qui, selon nous, créent aussi de la demande de recherche.
DirectMail et les canaux digitaux (canaux du bas de funnel) qui ne pensent pas qu’ils alimentent la recherche ; ainsi, chaque groupe a une flèche intitulée « direct » allant tout droit vers le revenu.
La demande cachée. En plus d’influencer directement le revenu, les canaux du haut de funnel créent une « demande de recherche cachée ». Ce sont des personnes qui deviennent plus susceptibles de rechercher le produit. Nous ne pouvons pas observer cette demande directement ; c’est pourquoi elle est représentée par un nœud en pointillés.
Le médiateur. Cette demande cachée se combine avec les dépenses de recherche en un seul « médiateur ». C’est le volume total d’intérêt généré par la recherche sur une semaine donnée, qu’il provienne d’activités du haut de funnel ou des dépenses de recherche.
Le médiateur remplit deux fonctions :
- Il est mesuré par les impressions de recherche. Les impressions sont une mesure bruitée du médiateur.
- Indépendamment des flèches directes des canaux du haut de funnel, le médiateur a sa propre flèche indirecte vers le revenu. Le modèle passerait à côté de ce crédit s’il traite la recherche comme un canal ordinaire.
Ainsi, chaque dollar dépensé en haut de funnel peut contribuer au revenu directement, et indirectement via la demande qu’il crée dans la recherche. Le modèle conscient du funnel estime les deux ; le modèle standard (décrit ci-dessous) ne voit que le chemin direct.
Configuration
Tout le code Python, les jeux de données et les modèles utilisés dans cette analyse sont disponibles sur Explore the Full-Funnel MMM GitHub Repository.
Tout d’abord, nous importons les bibliothèques fondamentales pour la modélisation probabiliste, la manipulation des données et les diagnostics bayésiens.
Chargement des données
Ensuite, nous chargeons le jeu de données et définissons les variables clés qui structurent notre cadre de modélisation. À cette étape, nous analysons la date principale et les métriques de revenus, précisons quels canaux média agissent comme moteurs du haut de l’entonnoir par rapport aux médiateurs du bas de l’entonnoir, isolons des variables de contrôle comme les indicateurs de jours fériés, et divisons le jeu de données entre nos variables explicatives () et la variable cible ().
Un rapide coup d’œil aux données
Nous commençons par visualiser notre métrique cible sur l’ensemble de la période d’observation, de mi-2020 à mi-2024.

Le graphique met en évidence une forte saisonnalité annuelle, caractérisée par d’importantes flambées de revenus à chaque période des fêtes (avec un pic proche de 350–370 M$ en fin d’année), ainsi qu’un revenu de base stable oscillant autour de 50–100 M$ hors périodes de pointe.
Décomposons les dépenses marketing par canal afin de mettre en évidence des stratégies d’investissement distinctes et des schémas de « flighting ».

Alors que DirectMail affiche des dépenses hebdomadaires continues et à haute fréquence, les canaux haut de funnel comme Streaming et Broadcast présentent des tactiques plus pulsées, avec des pics marqués pendant les fenêtres de fêtes du T4 afin de capter la demande saisonnière.
Pour évaluer la recherche comme médiateur de milieu à bas de funnel, nous superposons les dépenses de recherche et les impressions de recherche sur un graphique en lignes à double axe.

Les deux métriques se reflètent presque parfaitement, passant d’un niveau de base d’environ 200 k impressions à des pics abrupts de plus de 900 k impressions autour de novembre et décembre, confirmant que le volume d’impressions augmente de manière fiable en parallèle de l’allocation budgétaire de recherche.
Construire le composant « Search-as-Mediator »
Pour capturer comment la notoriété génère de l’intérêt avant de se transformer en ventes, nous définissons une classe d’effet personnalisée PyMC, FunnelEffect, afin de modéliser notre structure full-funnel.
La bibliothèque pymc-marketing vous permet de brancher un terme supplémentaire personnalisé dans la moyenne d’un modèle, et ce terme personnalisé est autorisé à apporter ses propres données observées avec lui. C’est ce que nous utilisons pour ajouter le comportement de médiation.
Voici ce que fait notre composant personnalisé :
- Prend les dépenses de Broadcast et Streaming, applique l’adstock et la saturation à chacune (comme le ferait un canal normal), puis les additionne pour obtenir un chiffre de demande cachée
- Ajoute par-dessus cette demande cachée une version mise à l’échelle de search_spend
- Compare ce total combiné aux search_impressions réelles que nous avons observées, en traitant la différence comme du bruit
- Fait passer le total combiné par une étape supplémentaire d’adstock et de saturation, puis ajoute le résultat au revenu, aux côtés des contributions directes de chaque canal
De cette façon, le modèle estime un seul ensemble de valeurs qui doit expliquer à la fois les données de recherche et les données de revenu, en même temps.
Ce que définit la cellule suivante : upper_dim est le nom (« channel_upper ») d’une nouvelle coordonnée PyMC utilisée uniquement à l’intérieur de cet effet, distincte de la dimension « channel » habituelle du modèle. FunnelEffect hérite de pymc_marketing.mmm.additive_effect.DataVarMuEffect et implémente les quatre méthodes requises par cette interface :
- to_dict : sérialise la configuration de l’effet (utilisé si le modèle est sauvegardé/chargé).
- incrementality_spec : indique au module d’incrémentalité de pymc-marketing combien de carryover supplémentaire (retards l_max_lf) l’adstock propre du médiateur ajoute, afin que les calculs de ROAS ultérieurs en tiennent compte.
- create_data : enregistre upper_dim comme coordonnée du modèle.
- create_effect : construit le graphe PyMC réel — demande, médiateur, la vraisemblance TruncatedNormal sur search_impressions, et le terme funnel_effect_contribution renvoyé qui est ajouté à la moyenne du revenu.
Rien de tout cela ne s’exécute tant que la classe n’est pas instanciée plus tard, dans make_funnel_effect.
Mise en place des deux modèles
Ensuite, nous mettons en place nos assistants de configuration de modèle et instancions notre effet d’entonnoir personnalisé. Nous écrivons une fonction pour mettre automatiquement à l’échelle les a priori de saturation des canaux en fonction des parts de dépenses relatives, définir les fenêtres maximales de carryover de l’adstock (l_max) et configurer la fonction factory make_funnel_effect, en câblant des transformations d’adstock géométrique et de saturation logistique distinctes à la fois pour le chemin upper-funnel des canaux upper-channel et pour le chemin lower-funnel de la demande vers le revenu.
Le modèle d’entonnoir a besoin de ses données d’entrée dans un format légèrement différent afin que search_spend et search_impressions l’accompagnent, y compris lorsque nous lui demanderons plus tard de prédire sur de nouvelles données. Nous gérons cela avec une petite sous-classe ci-dessous.
Définissons la fonction utilitaire suivante qui construit le jeu de données
Enfin, nous sommes prêts à définir les deux modèles
Ajuster les deux modèles
Nous ajustons les deux modèles sur l’historique complet :
- Le modèle standard place search_spend à côté des quatre autres canaux comme un canal supplémentaire.
- Le modèle funnel conserve les mêmes quatre canaux directs et ajoute la partie médiatrice afin que les deux canaux du haut du funnel obtiennent aussi du crédit pour la demande de recherche qu’ils créent.
Les deux utilisent sinon les mêmes paramètres. L’ajustement des deux modèles prend un certain temps ; n’hésitez pas à réduire les valeurs de draws/tuning ci-dessous pour un test plus rapide.


Après avoir ajusté les deux modèles, passons maintenant à la vérification de l’éventuelle présence de divergences.
Vérifier que les modèles ont été correctement échantillonnés
Avant d’examiner les résultats, il vaut la peine de vérifier que l’ajustement du modèle s’est effectivement bien déroulé pour les deux modèles.
Les résultats ont montré zéro divergence pour les deux modèles, avec un r-hat maximal de 1,004 et 1,005 pour le modèle standard et le modèle funnel, respectivement.
Chaque modèle reproduit-il ce que nous avons réellement observé ?
Le modèle d’entonnoir doit expliquer deux choses à la fois : le chiffre d’affaires et les chiffres de search_impressions qu’il utilise comme substitut à une demande cachée. Nous vérifions les deux.

Les deux modèles suivent de près les principaux pics des fêtes et les fluctuations hors pics à l’intérieur de leurs bandes d’incertitude, confirmant que l’ajout d’une médiation indirecte via la recherche et d’une structure d’adstock multi-étapes préserve une forte qualité prédictive tout en tenant compte des dynamiques inter-étapes de l’entonnoir.
Au-delà du chiffre d’affaires, notre modèle full-funnel inclut une vraisemblance secondaire pour valider l’étape intermédiaire du parcours client : les impressions de recherche. En extrayant les échantillons de posterior predictive pour funnel_search_impressions_likelihood, nous traçons le volume de recherche prédit par rapport aux données observées, ainsi que l’HDI à 94 %.

Le graphique confirme que le modèle suit avec précision la demande de recherche en bas de l’entonnoir, en capturant à la fois les niveaux d’impressions de base et les fortes hausses de volume au T4, ce qui valide la recherche comme un médiateur efficace et correctement modélisé dans l’entonnoir. Cette vérification a une valeur business directe pour les équipes search : si la demande prédite par le modèle contredisait les impressions de recherche observées dans le monde réel, la logique de l’entonnoir serait fondamentalement erronée d’une manière que l’évaluation du seul ajustement des ventes ne pourrait jamais révéler.
Répartir le crédit du haut de l’entonnoir en parts directe et indirecte
Seul le modèle d’entonnoir peut répondre à cette question : sur l’ensemble du chiffre d’affaires que nous attribuons à Broadcast et Streaming, quelle part provient de leur effet direct et quelle part provient de la demande de recherche supplémentaire qu’ils génèrent ? Pour isoler la part indirecte, nous comparons la contribution du médiateur telle qu’elle est ajustée à ce à quoi elle ressemblerait si les dépenses du haut de l’entonnoir avaient été nulles pendant toute la période ; la différence correspond à la part réellement causée par les dépenses du haut de l’entonnoir, plutôt qu’à la demande de base ou aux dépenses propres de la recherche.
Le graphique de décomposition suivant illustre comment les investissements en haut de funnel se traduisent en revenus via les deux voies au fil du temps.
Part indirecte de l’effet du haut de funnel (moyenne a posteriori) : 10.0%

Alors que la contribution directe du haut de funnel fournit la principale hausse de référence (avec un pic proche de 50 M$ lors des poussées de Q4), la voie indirecte, passant par la demande de recherche, apporte une hausse secondaire fiable culminant autour de 3 M$ à 5 M$ sur des fenêtres saisonnières clés. En combinant ces composantes, nous obtenons l’effet total du haut de funnel et pouvons calculer la part exacte a posteriori des revenus qui serait manquée si l’on ignorait la médiation indirecte via la recherche.
Comparer les deux modèles en confrontation directe
Voici le chiffre qui compte vraiment pour une décision d’investissement : combien de revenus totaux Broadcast et Streaming génèrent-ils ? Dans le modèle standard, c’est simplement leur contribution directe combinée. Dans le modèle en funnel, c’est le total direct + indirect que nous venons de calculer.
Le modèle en funnel attribue +21.7% de revenus moyens supplémentaires au haut de funnel par rapport au modèle standard.

Nous comparons également le retour sur dépenses publicitaires (revenu généré par dollar dépensé) pour ces deux mêmes canaux du haut de l’entonnoir dans les deux modèles.


Le MMM standard, qui ne prend en compte que les conversions directes, sous-estime la valeur réelle des investissements en haut de l’entonnoir, avec un ROAS moyen historique de 28,0. En intégrant à la fois l’impact direct et les effets de halo médiés par la recherche, le modèle full-funnel décale la distribution a posteriori vers le haut, pour un ROAS moyen de 35,0. Cette comparaison met en évidence la manière dont les modèles d’attribution traditionnels sous-évaluent systématiquement les canaux de notoriété en ne créditant pas la demande en aval qu’ils génèrent.
Pour conclure
Ce que nous avons constaté
- Traiter search_spend comme un simple canal parmi d’autres masque une partie de la valeur réelle du haut de l’entonnoir : le modèle standard attribue moins de crédit à Broadcast et Streaming que le modèle funnel, car il n’a nulle part où placer l’effet indirect.
- Le modèle funnel sépare ce crédit en une partie directe et une partie indirecte (médiée par la recherche), en ajustant les deux en même temps, aux côtés des données d’impressions de recherche.
- Les deux modèles peuvent prédire le chiffre d’affaires à peu près aussi bien même s’ils ne sont pas d’accord sur l’attribution, donc la seule précision de prédiction ne suffit pas à détecter ce type d’erreur.
Questions fréquemment posées sur le MMM full-funnel
En quoi le MMM full-funnel diffère-t-il du MMM à une seule étape ?
Le MMM à une seule étape traite chaque canal marketing comme un moteur direct et parallèle d’un seul résultat (comme le chiffre d’affaires). Le MMM full-funnel modélise explicitement les dépendances multi-étapes, en cartographiant comment les investissements en haut de funnel (comme la CTV ou les RP) génèrent une demande de marque latente, qui se propage ensuite vers des médiateurs intermédiaires (tels que les impressions de recherche de marque ou le trafic du site) avant de se convertir en ventes.
Pourquoi l’attribution standard ou le MMM à une seule étape sous-valorise-t-il les campagnes en haut de funnel ?
Lorsque les canaux en haut de funnel stimulent l’intérêt de recherche, l’attribution standard attribue 100 % du crédit de conversion à l’annonce de recherche en bas de funnel qui a capturé le dernier clic. Le MMM à une seule étape fait face à un dilemme similaire : inclure des métriques de bas de funnel comme variables de contrôle retire aux canaux de haut de funnel le crédit d’avoir créé cette demande au départ. Le MMM full-funnel élimine ce biais en tenant compte à la fois des chemins directs et des effets de halo indirects.
Le MMM full-funnel nécessite-t-il un suivi individuel des utilisateurs ou des cookies ?
Non. Comme le MMM traditionnel, les modèles full-funnel fonctionnent entièrement sur des données de séries temporelles agrégées, telles que les dépenses hebdomadaires, les impressions et le chiffre d’affaires. Il est entièrement respectueux de la vie privée et n’est pas affecté par la disparition des cookies.
Comment ELIYA aide à construire des modèles full-funnel personnalisés
Bien que des packages open source comme pymc-marketing fournissent des composants modulaires, la mise en œuvre de modèles de production robustes nécessite une intégration des données à l’échelle de l’entreprise et des a priori causaux validés. Le Multi-Stage Demand-Bridge Framework propriétaire d’ELIYA relie les investissements en haut de funnel aux canaux de conversion en aval sans perdre le crédit d’attribution
- Architecture d’entonnoir bayésienne sur mesure : ELIYA construit des graphes multi-étapes adaptés, calibrés sur votre cycle d’achat spécifique, le report d’adstock et vos courbes de saturation.
- Impact prouvé : Dans des déploiements B2B SaaS en entreprise, l’attribution full-funnel d’ELIYA a permis de réattribuer en moyenne 18 % à 25 % de crédit de revenus supplémentaires aux campagnes de notoriété en haut de funnel que les modèles standards à contact unique ou à une seule étape ignoraient.
- Validation par des experts PhD : Chaque spécification de modèle est auditée par des praticiens en data science titulaires d’un doctorat afin d’éviter des crêtes de paramètres non identifiables et de garantir la convergence.
Vos dépenses en haut de funnel sont-elles injustement réduites à cause d’une attribution défaillante en bas de funnel ?
Si vous êtes une entreprise B2B SaaS en phase de croissance ou une marque grand public multicanale investissant sur la TV connectée, les RP ou la vidéo digitale, le programme MMM full-funnel d’ELIYA est conçu pour quantifier votre véritable effet halo cross-canal. Demandez une évaluation de mesure personnalisée avec ELIYA.










