Le schéma unifié est un schéma de données en couches, défini à l'aide de Protocol Buffers. Il est conçu pour représenter le modèle de base et ses sorties pour n'importe quel framework MMM (par exemple, Google Meridian ou Robyn de Meta). Ce schéma dissocie les préoccupations liées à l'entraînement du modèle des applications pratiques qui utilisent la sortie du modèle. Il normalise la représentation des entrées du modèle, des statistiques d'adéquation du modèle, des analyses marketing et des optimisations (par exemple, budget, couverture/fréquence), indépendamment du modèle.

Principales fonctionnalités
Voici une liste des principaux avantages et fonctionnalités du schéma unifié pour les modèles de mix marketing (MMM) :
- Normalisation indépendante du framework : établit une structure commune et unifiée pour représenter les entrées et les sorties du MMM, quel que soit le framework sous-jacent (par exemple, Meridian de Google ou Robyn de Meta). Cela permet d'interpréter et de comparer de manière cohérente les résultats de différents modèles.
- Dissociation : sépare les préoccupations liées au framework d'entraînement de la représentation du modèle. Les systèmes en aval (par exemple, les outils de visualisation) peuvent interagir avec la sortie du schéma normalisé sans dépendre des détails d'implémentation internes de la bibliothèque de modélisation.
- Permet l'outillage en aval : fournit un contrat pour diverses applications en aval. Exemples :
- Création de rapports
- Tableaux de bord de visualisation (par exemple, le planificateur de scénarios Meridian)
- Pipelines de traitement des données
- Interopérabilité et collaboration : utilise Protocol Buffers pour le format de sérialisation. Cela permet un échange de données extensible ainsi que neutre en termes de langage et de plate-forme. Les équipes utilisant différents langages de programmation (Python, Java, R, etc.) peuvent ainsi travailler avec les outputs du modèle.
- Extensibilité et évolutivité : la structure modulaire et en couches du schéma unifié permet d'ajouter de nouvelles fonctionnalités, métriques et analyses à mesure que les méthodologies MMM évoluent, ce qui nécessite un minimum de modifications du schéma de base.
- Persistance, partage et gestion des versions : le schéma basé sur protobuf permet de sérialiser les modèles entraînés, les entrées et les analyses dérivées sur le disque, de les partager entre les équipes et d'en gérer les versions.
- Évolution axée sur la communauté : un schéma unifié Open Source invite la communauté MMM au sens large à contribuer. Cet environnement collaboratif permet d'accélérer le développement du schéma, d'intégrer diverses perspectives et d'assurer qu'il reste à jour avec les dernières avancées du secteur des MMM en évolution rapide.
Présentation

Le schéma unifié est globalement divisé en quatre parties : le cœur du modèle lui-même et trois groupes d'extensions (l'ajustement du modèle, l'analyse marketing et l'optimisation marketing). Ces trois derniers éléments sont dérivés du premier. Les extensions de modèle sont des structures de données facultatives qui sont associées au noyau du modèle. Alors que le noyau représente l'état d'un modèle de mix marketing entraîné en tant que données au repos, une extension de modèle représente une analyse dérivée du cœur.
// mmm.proto
// A schema that contains derived metrics and modeled analysis by a trained
// marketing mix model.
message Mmm {
// A MMM kernel contains the core information about the model used to generate
// this output.
model.MmmKernel mmm_kernel = 1;
// Model fit result.
fit.ModelFit model_fit = 2;
// A list of marketing analysis generated by the MMM kernel.
marketing.analysis.MarketingAnalysisList marketing_analysis_list = 3;
// Marketing optimization on different perspectives using the MMM kernel.
marketing.optimization.MarketingOptimization marketing_optimization = 4;
}
Cœur du modèle : mmm_kernel
Le message MmmKernel est un wrapper de modèle général. Il inclut les éléments suivants :
- marketing_data : données utilisées pour entraîner le modèle, effectuer des analyses marketing et optimiser l'allocation du budget.
- model : champ de type "Any" (Tout) qui encapsule un formulaire sérialisé pour l'implémentation du modèle. L'utilisation du type "Any" (Tout) permet de représenter l'implémentation du modèle sous forme de boîte noire.
Données marketing
Les informations marketing de MarketingDataPoint incluent des données de KPI, des détails sur les canaux média et d'autres facteurs non média.
Le KPI peut être de type "lié aux revenus" ou "non lié aux revenus". Pour le type non lié aux revenus, en plus de spécifier la valeur du KPI, l'utilisateur peut aussi spécifier le taux de conversion du KPI en revenus. C'est ce qu'on appelle revenue_per_kpi.
Les détails des canaux média comportent un champ pour les informations géographiques, les informations temporelles, le KPI, les variables de contrôle, les variables média, les variables non média, et les variables de couverture et de fréquence.
Si une MediaVariable d'un canal média payant et sa répartition des dépenses média par zone géographique et par période ne sont pas disponibles (c'est-à-dire que les dépenses média sont agrégées pour toutes les zones géographiques et toutes les périodes), un message MarketingDataPoint distinct doit être affiché avec media_spend, où geo_info n'est pas défini et où date_interval couvre l'ensemble des coordonnées de la dimension temporelle.
Les facteurs non média incluent les variables ou les facteurs qui ne sont pas directement liés au média, mais qui ont tout de même un impact sur la réponse cible. Par exemple, les promotions, les facteurs de saisonnalité et les facteurs macroéconomiques. Le choix de ce qui doit être inclus dépend du modèle. Le champ facultatif des métadonnées des données marketing contient des informations sur la période, la zone géographique et les KPI, ce qui est utile pour les processus de sérialisation et de désérialisation.
Extension "Adéquation du modèle" : model_fit
L'extension "Adéquation du modèle" affiche la prédiction par rapport à la vérité terrain dans le temps, ainsi que les métriques de performances. Elle contient également des statistiques sur la qualité de l'adéquation (coefficient de détermination, MAPE, wMAPE, RMSE). Notez que la structure pour l'adéquation du modèle capture des concepts génériques qui devraient s'appliquer à tous les MMM. Pour ce faire, nous capturons différents points de prédiction indépendants du modèle et nous les comparons aux valeurs observées réelles. Nous dérivons ensuite des métriques à partir de l'agrégat.
Extension "Analyse marketing" : marketing_analysis_list
L'extension "Analyse marketing" contient des insights sur les données d'entrée et sur l'impact des dépenses média et des facteurs non média sur les résultats.
Analyse média et analyse non média
Une MediaAnalysis fournit des insights sur l'impact d'un canal média sur les KPI (liés aux revenus et non liés aux revenus). Lorsque le média n'est pas payant, la courbe de réponse et les métriques d'impact liées aux dépenses ne seront pas disponibles en raison du manque d'informations sur les dépenses. Une NonMediaAnalysis est semblable à une analyse média, sauf qu'elle n'est pas associée à une valeur de dépenses. Par conséquent, elle ne contient pas de courbe de réponse et les champs dérivés des valeurs de dépenses ne seront pas définis dans son résultat.
Résultat
Le résultat correspond au résultat commercial (par exemple, le revenu total des ventes ou les conversions). Il représente l'impact estimé des canaux média ou des facteurs média non payants à l'aide de différentes métriques. Il s'agit de la métrique d'intérêt principale qui mesure l'effet causal des variables de traitement.
Le résultat peut être défini par l'un des éléments suivants :
- KPI : métrique spécifique et quantifiable utilisée pour mesurer la progression vers un résultat. Il s'agit de la variable de réponse du modèle. Il existe deux types de KPI : (a) ceux qui prennent la forme de revenus (par exemple, une valeur monétaire) et (b) ceux qui prennent la forme d'un KPI générique, défini par l'utilisateur et non lié aux revenus (par exemple, le taux de clics).
- ROI, ROIm, coût par contribution : les canaux média peuvent être basés ou non sur les revenus. Cela signifie que tous les champs proto (ROI, ROIm, coût par contribution) peuvent être renseignés. Les canaux non média n'ont pas de dépenses. Les champs associés aux dépenses (ROI, ROIm) ne doivent donc pas être renseignés.
- Contribution et efficacité : ces termes peuvent avoir des significations légèrement différentes selon le contexte. Pour les KPI liés aux revenus dans les médias, des valeurs monétaires des revenus sont utilisées dans les calculs, tandis que les KPI non liés aux revenus utilisent des valeurs génériques définies par l'utilisateur.
Groupe d'extensions d'optimisation marketing : marketing_optimization
L'optimisation marketing peut être effectuée de différentes manières. Ce groupe d'extensions inclut toutes les extensions liées à l'optimisation.
Extension BudgetAllocation
Les structures définies ici capturent des concepts indépendants du modèle pour une allocation optimale du budget sur plusieurs canaux marketing, en fonction de certaines entrées utilisateur pour les contraintes, les objectifs d'optimisation, etc.
BudgetOptimizationResult est effectué pour les dépenses marketing sur tous les canaux applicables, en fonction de sélections de période spécifiques. Cela nécessite une saisie utilisateur avec un objectif d'optimisation et des contraintes budgétaires sur chaque canal. Il existe deux types d'optimisation : à budget fixe et à budget flexible. Pour une optimisation à budget fixe, l'objectif est de maximiser la valeur d'une métrique objective en optimisant la répartition du budget entre les canaux sans modifier le montant total du budget. En revanche, l'optimisation à budget flexible vise à maximiser la valeur d'une métrique objective en optimisant la répartition du budget entre les canaux avec un montant total de budget flexible, tout en gardant à l'esprit certaines contraintes prédéfinies.
Le résultat optimisé est exprimé par canal. Chaque résultat de canal indique le résultat réel du canal, le résultat optimisé par le modèle et les contraintes budgétaires appliquées au canal lors du processus d'optimisation.
En plus des résultats d'optimisation, BudgetOptimization contient une liste de IncrementalOutcomeGrids qui présentent différents types de résultats incrémentaux ou différents niveaux de détail des quadrillages. Chaque IncrementalOutcomeGrid représente un quadrillage qui détaille le résultat incrémental des dépenses marketing par canal. Ce quadrillage est utile pour, par exemple, représenter la tendance des impacts incrémentaux en fonction des dépenses ou pour exécuter une optimisation du budget en ligne basée sur un algorithme d'optimisation de la recherche par quadrillage. Notez que ce quadrillage est construit en supposant qu'il n'y a pas d'effet d'interaction entre les canaux, c'est-à-dire que les dépenses sur un canal n'affecteront pas les autres canaux.
Extension OptimalFrequency
La fréquence moyenne optimale (facultative et dépendante de la présence de données de couverture et de fréquence dans le modèle) indique une fréquence optimale pour les impressions publicitaires par utilisateur unique dans le canal afin de maximiser un objectif. La disponibilité de cette extension dépend des données et de la fonctionnalité de MMM.
Installation
Installez le package du schéma unifié en clonant le dépôt GitHub Meridian, puis en incluant le [schema] supplémentaire lors de l'installation de Meridian. Ce package contient les définitions proto adaptées.
$ git clone https://github.com/google/meridian.git;
$ cd meridian;
$ pip install .[schema];
Couche de traduction
La couche de traduction ou les processeurs qui produisent un message proto MMM correspondant varient en fonction du framework MMM et des algorithmes spécifiques au modèle. Pour commencer, consultez un exemple de processeurs de Google Meridian.