[{"data":1,"prerenderedAt":1185},["ShallowReactive",2],{"article-alternates":3,"article-\u002Fit\u002Fmarketing\u002Fmmm-incrementality-2026-attribution-setup":13},{"i18nKey":4,"paths":5},"marketing-004-2026-05",{"de":6,"en":7,"es":8,"fr":9,"it":10,"ru":11,"tr":12},"\u002Fde\u002Fmarketing\u002Fmmm-incrementality-2026-attribution-setup","\u002Fen\u002Fmarketing\u002Fmmm-incrementality-2026-attribution-setup","\u002Fes\u002Fmarketing\u002Fmmm-incrementality-2026-attribution-setup","\u002Ffr\u002Fmarketing\u002Fmmm-incrementality-2026-attribution-setup","\u002Fit\u002Fmarketing\u002Fmmm-incrementality-2026-attribution-setup","\u002Fru\u002Fmarketing\u002Fmmm-incrementality-2026-attribution","\u002Ftr\u002Fmarketing\u002Fmmm-incrementality-2026nin-attribution-setupi",{"_path":10,"_dir":14,"_draft":15,"_partial":15,"_locale":16,"title":17,"description":18,"publishedAt":19,"modifiedAt":19,"category":14,"i18nKey":4,"tags":20,"readingTime":26,"author":27,"body":28,"_type":1179,"_id":1180,"_source":1181,"_file":1182,"_stem":1183,"_extension":1184},"marketing",false,"","MMM + Incrementality: L'Attribution Setup del 2026","Robyn, Meta Lift, geo experiments — quale usare e quando? Come costruire l'architettura di misurazione corretta nell'era post-cookie?","2026-05-14",[21,22,23,24,25],"mmm","incrementality","attribution","robyn","meta-lift",8,"Roibase",{"type":29,"children":30,"toc":1169},"root",[31,50,57,62,67,81,87,92,97,102,109,277,287,293,298,303,418,950,955,961,966,976,986,996,1006,1016,1028,1038,1044,1049,1054,1062,1067,1108,1114,1124,1134,1144,1154,1158,1163],{"type":32,"tag":33,"props":34,"children":35},"element","p",{},[36,39,48],{"type":37,"value":38},"text","L'attribution su ultimo clic è morta, il segnale del browser non è affidabile, la Conversion API stessa è rumorosa — nel 2026 la misurazione del ",{"type":32,"tag":40,"props":41,"children":45},"a",{"href":42,"rel":43},"https:\u002F\u002Fwww.roibase.com.tr\u002Fit\u002Fppc",[44],"nofollow",[46],{"type":37,"value":47},"performance marketing",{"type":37,"value":49}," si è trasferita su un terreno completamente diverso. Il Marketing Mix Modeling (MMM) non è più solo uno strumento pesante usato dai brand CPG per la pianificazione annuale del budget; è diventato un sistema dinamico integrato nel meccanismo decisionale settimanale e costantemente calibrato dai test di incrementalità. Robyn di Meta è diventato open source, Google ha trasferito il suo stack MMM in BigQuery ML, Snapchat ha portato in production la sua API di geo-experiment. La domanda non è più \"MMM o incrementalità?\" — è \"a quale livello uso quale metodo, e come li integro insieme?\"",{"type":32,"tag":51,"props":52,"children":54},"h2",{"id":53},"perché-mmm-arriva-al-tavolo-adesso",[55],{"type":37,"value":56},"Perché MMM Arriva al Tavolo Adesso",{"type":32,"tag":33,"props":58,"children":59},{},[60],{"type":37,"value":61},"Niente cookie, opt-in ATT al 25%, Privacy Sandbox ancora incerto — i report delle piattaforme funzionano dal 2024 con un margine di errore del 40-60% (Forrester 2025). In questo contesto, basare le decisioni sul modello di ultimo clic o sull'attribution basata sui dati da Google Analytics è come andare veloce su un punto cieco. MMM è l'unico framework di misurazione macro: valuta tutti i canali sulla base della spesa totale e del risultato tramite regressione, non ha bisogno di cookie, estrae relazioni di causa-effetto dalle serie temporali.",{"type":32,"tag":33,"props":63,"children":64},{},[65],{"type":37,"value":66},"La novità di MMM nel 2026 è questa: non è più aggiornato annualmente, ma settimananalmente, si integra in pipeline automatiche e può usare segnali first-party da sGTM e CDP. La libreria Robyn di Meta rende possibile tutto questo: open source, R\u002FPython, refresh settimanale, regressione ridge bayesiana, curve di adstock e saturazione adattate automaticamente con tuning degli iperparametri. In altre parole, l'era \"la configurazione del modello richiede 6 mesi\" è finita — si arriva in production in 2 settimane di sprint.",{"type":32,"tag":33,"props":68,"children":69},{},[70,72,79],{"type":37,"value":71},"Scenario di esempio: un brand DTC con 15 canali ha collegato Robyn a BigQuery. Ha caricato dati settimanali di spesa, impression e ricavi tramite ",{"type":32,"tag":73,"props":74,"children":76},"code",{"className":75},[],[77],{"type":37,"value":78},"bq load",{"type":37,"value":80},". Il modello, osservando 3 settimane di dati storici, ha stimato per ogni canale la curva ROAS, l'adstock (il ritardo dell'effetto pubblicitario) e la saturazione (il rendimento decrescente della spesa crescente). Risultato: il ROAS di TikTok è uscito del 18% inferiore alle aspettative — perché l'attribution su ultimo clic attribuiva troppo credito a TikTok. Google Search, invece, era il contrario: il suo vero contributo era del 22% più alto.",{"type":32,"tag":51,"props":82,"children":84},{"id":83},"dove-entrano-in-gioco-i-test-di-incrementalità",[85],{"type":37,"value":86},"Dove Entrano in Gioco i Test di Incrementalità",{"type":32,"tag":33,"props":88,"children":89},{},[90],{"type":37,"value":91},"MMM guarda da lontano — estrae l'effetto totale di tutti i canali tramite regressione su serie temporali. Ma non può rispondere a questa domanda: \"Se spendessi $10.000 in più su Meta questa settimana, cosa accadrebbe?\" È qui che entra il test di incrementalità: costruisce un vero esperimento, mantiene un gruppo di controllo, misura il lift.",{"type":32,"tag":33,"props":93,"children":94},{},[95],{"type":37,"value":96},"Il test Conversion Lift di Meta lo integra nella piattaforma: divide gli utenti in modo casuale in un gruppo holdout, non mostra annunci al gruppo holdout, e alla fine misura la differenza di conversione tra i due gruppi. Nel 2026 questo metodo non si trova solo su Meta — Google Ads ha Geo Experiments (gruppo di controllo basato sulla geografia), TikTok ha Brand Lift API, Snapchat ha Snap Lift Studio. Tutti usano lo stesso principio: randomizzazione e assegnazione controllata.",{"type":32,"tag":33,"props":98,"children":99},{},[100],{"type":37,"value":101},"La differenza è questa: MMM risponde a \"cosa è successo in passato\", l'incrementalità risponde a \"cosa accadrà in futuro\". MMM estrae correlazione da dati osservazionali, l'incrementalità testa relazioni causali. La configurazione ideale combina le due: prendi il macro trend e il benchmark ROI con MMM, convalida le tattiche specifiche del canale con l'incrementalità.",{"type":32,"tag":103,"props":104,"children":106},"h3",{"id":105},"quale-test-usare-e-quando",[107],{"type":37,"value":108},"Quale Test Usare e Quando",{"type":32,"tag":110,"props":111,"children":112},"table",{},[113,147],{"type":32,"tag":114,"props":115,"children":116},"thead",{},[117],{"type":32,"tag":118,"props":119,"children":120},"tr",{},[121,127,132,137,142],{"type":32,"tag":122,"props":123,"children":124},"th",{},[125],{"type":37,"value":126},"Metodo",{"type":32,"tag":122,"props":128,"children":129},{},[130],{"type":37,"value":131},"Quando",{"type":32,"tag":122,"props":133,"children":134},{},[135],{"type":37,"value":136},"Durata",{"type":32,"tag":122,"props":138,"children":139},{},[140],{"type":37,"value":141},"Costo",{"type":32,"tag":122,"props":143,"children":144},{},[145],{"type":37,"value":146},"Precisione",{"type":32,"tag":148,"props":149,"children":150},"tbody",{},[151,184,215,246],{"type":32,"tag":118,"props":152,"children":153},{},[154,164,169,174,179],{"type":32,"tag":155,"props":156,"children":157},"td",{},[158],{"type":32,"tag":159,"props":160,"children":161},"strong",{},[162],{"type":37,"value":163},"MMM (Robyn)",{"type":32,"tag":155,"props":165,"children":166},{},[167],{"type":37,"value":168},"Pianificazione annuale\u002Ftrimestrale, ottimizzazione del mix di canali",{"type":32,"tag":155,"props":170,"children":171},{},[172],{"type":37,"value":173},"Setup 2-4 settimane, refresh settimanale",{"type":32,"tag":155,"props":175,"children":176},{},[177],{"type":37,"value":178},"Basso (open source)",{"type":32,"tag":155,"props":180,"children":181},{},[182],{"type":37,"value":183},"Media (correlazione)",{"type":32,"tag":118,"props":185,"children":186},{},[187,195,200,205,210],{"type":32,"tag":155,"props":188,"children":189},{},[190],{"type":32,"tag":159,"props":191,"children":192},{},[193],{"type":37,"value":194},"Meta Conversion Lift",{"type":32,"tag":155,"props":196,"children":197},{},[198],{"type":37,"value":199},"Decisioni tattiche a livello di campagna, test di creative",{"type":32,"tag":155,"props":201,"children":202},{},[203],{"type":37,"value":204},"Test 2-4 settimane",{"type":32,"tag":155,"props":206,"children":207},{},[208],{"type":37,"value":209},"Media (spesa holdout)",{"type":32,"tag":155,"props":211,"children":212},{},[213],{"type":37,"value":214},"Alta (RCT)",{"type":32,"tag":118,"props":216,"children":217},{},[218,226,231,236,241],{"type":32,"tag":155,"props":219,"children":220},{},[221],{"type":32,"tag":159,"props":222,"children":223},{},[224],{"type":37,"value":225},"Google Geo Experiments",{"type":32,"tag":155,"props":227,"children":228},{},[229],{"type":37,"value":230},"Cambiamenti di spesa basati sulla geografia",{"type":32,"tag":155,"props":232,"children":233},{},[234],{"type":37,"value":235},"3-6 settimane",{"type":32,"tag":155,"props":237,"children":238},{},[239],{"type":37,"value":240},"Media",{"type":32,"tag":155,"props":242,"children":243},{},[244],{"type":37,"value":245},"Alta (quasi-RCT)",{"type":32,"tag":118,"props":247,"children":248},{},[249,257,262,267,272],{"type":32,"tag":155,"props":250,"children":251},{},[252],{"type":32,"tag":159,"props":253,"children":254},{},[255],{"type":37,"value":256},"Ghost Ads (Snapchat\u002FTikTok)",{"type":32,"tag":155,"props":258,"children":259},{},[260],{"type":37,"value":261},"Convalida ROI della piattaforma",{"type":32,"tag":155,"props":263,"children":264},{},[265],{"type":37,"value":266},"2-3 settimane",{"type":32,"tag":155,"props":268,"children":269},{},[270],{"type":37,"value":271},"Basso",{"type":32,"tag":155,"props":273,"children":274},{},[275],{"type":37,"value":276},"Media-alta",{"type":32,"tag":33,"props":278,"children":279},{},[280,285],{"type":32,"tag":159,"props":281,"children":282},{},[283],{"type":37,"value":284},"Esempio reale:",{"type":37,"value":286}," Un'app fintech vede una crescita organica del 15% sull'App Store. Spegne completamente Apple Search Ads e configura un geo-experiment per misurare l'effetto organico: divide gli Stati Uniti in 10 DMA, spegne completamente ASA in 5 di loro. Dopo 21 giorni, il gruppo di controllo ha il 12% di install in più, ma il gruppo holdout ha solo il 2% di crescita organica in più — quindi ASA ha il 10% di incrementalità. Con questi dati, aumenta il budget ASA del 30% e sale il ROAS da 2,1 a 2,8.",{"type":32,"tag":51,"props":288,"children":290},{"id":289},"costruire-un-pipeline-mmm-pratico-con-robyn",[291],{"type":37,"value":292},"Costruire un Pipeline MMM Pratico con Robyn",{"type":32,"tag":33,"props":294,"children":295},{},[296],{"type":37,"value":297},"Robyn è open source, licenza MIT, derivato dall'infrastruttura MMM interna di Meta. La versione 2026 (v3.11) supporta ora in modo nativo Python (non è solo un wrapper R), ha il connettore BigQuery integrato, e il tuning degli iperparametri è automatico con Optuna.",{"type":32,"tag":33,"props":299,"children":300},{},[301],{"type":37,"value":302},"Passaggi di configurazione semplici:",{"type":32,"tag":304,"props":305,"children":306},"ol",{},[307,363,381,391,408],{"type":32,"tag":308,"props":309,"children":310},"li",{},[311,316,318,324,326,332,333,339,340,346,347,353,355,361],{"type":32,"tag":159,"props":312,"children":313},{},[314],{"type":37,"value":315},"Preparazione dei dati:",{"type":37,"value":317}," Tabella con granularità settimanale — ",{"type":32,"tag":73,"props":319,"children":321},{"className":320},[],[322],{"type":37,"value":323},"date",{"type":37,"value":325},", ",{"type":32,"tag":73,"props":327,"children":329},{"className":328},[],[330],{"type":37,"value":331},"channel",{"type":37,"value":325},{"type":32,"tag":73,"props":334,"children":336},{"className":335},[],[337],{"type":37,"value":338},"spend",{"type":37,"value":325},{"type":32,"tag":73,"props":341,"children":343},{"className":342},[],[344],{"type":37,"value":345},"impressions",{"type":37,"value":325},{"type":32,"tag":73,"props":348,"children":350},{"className":349},[],[351],{"type":37,"value":352},"revenue",{"type":37,"value":354},". Su BigQuery, una tabella ",{"type":32,"tag":73,"props":356,"children":358},{"className":357},[],[359],{"type":37,"value":360},"marketing_data.weekly_agg",{"type":37,"value":362},".",{"type":32,"tag":308,"props":364,"children":365},{},[366,371,373,379],{"type":32,"tag":159,"props":367,"children":368},{},[369],{"type":37,"value":370},"Installazione di Robyn:",{"type":37,"value":372}," ",{"type":32,"tag":73,"props":374,"children":376},{"className":375},[],[377],{"type":37,"value":378},"pip install pyrobyn",{"type":37,"value":380}," (Python 3.10+)",{"type":32,"tag":308,"props":382,"children":383},{},[384,389],{"type":32,"tag":159,"props":385,"children":386},{},[387],{"type":37,"value":388},"Scrittura della configurazione:",{"type":37,"value":390}," File YAML — tipo di adstock (geometrico vs. Weibull), curva di saturazione (Hill), range di iperparametri.",{"type":32,"tag":308,"props":392,"children":393},{},[394,399,400,406],{"type":32,"tag":159,"props":395,"children":396},{},[397],{"type":37,"value":398},"Training del modello:",{"type":37,"value":372},{"type":32,"tag":73,"props":401,"children":403},{"className":402},[],[404],{"type":37,"value":405},"robyn.train()",{"type":37,"value":407}," — ottimizzatore Nevergrad con 2000 iterazioni, scegli il migliore adattamento dalla frontiera di Pareto.",{"type":32,"tag":308,"props":409,"children":410},{},[411,416],{"type":32,"tag":159,"props":412,"children":413},{},[414],{"type":37,"value":415},"Output:",{"type":37,"value":417}," Per ogni canale, curva ROAS, grafico di decomposizione (contributo per settimana), allocatore di budget (spesa ottimale).",{"type":32,"tag":419,"props":420,"children":424},"pre",{"code":421,"language":422,"meta":16,"className":423,"style":16},"from pyrobyn import Robyn\n\n# Estrai i dati da BigQuery\ndata = client.query(\"\"\"\n  SELECT date, channel, spend, revenue\n  FROM `project.marketing_data.weekly_agg`\n  WHERE date BETWEEN '2025-01-01' AND '2026-05-14'\n\"\"\").to_dataframe()\n\n# Configura il modello\nmodel = Robyn(\n    data=data,\n    dep_var='revenue',\n    paid_media_spends=['spend'],\n    adstock='geometric',\n    saturation='hill',\n    hyperparameters='auto'  # Tuning Optuna\n)\n\n# Training (2 ore, 8 core)\nmodel.train(iterations=2000, trials=5)\n\n# Scegli il miglior modello (Pareto NRMSE + convergenza)\nbest = model.select_model('pareto_front', rank=1)\n\n# Riallocazione del budget\nallocator = best.budget_allocator(\n    total_budget=500000,  # Totale mensile\n    scenario='max_response'\n)\nprint(allocator.optimal_allocation)\n","python","language-python shiki shiki-themes github-dark",[425],{"type":32,"tag":73,"props":426,"children":427},{"__ignoreMap":16},[428,456,466,476,501,510,519,528,541,549,558,576,595,618,646,668,690,713,722,730,739,785,793,802,847,855,864,882,910,928,936],{"type":32,"tag":429,"props":430,"children":433},"span",{"class":431,"line":432},"line",1,[434,440,446,451],{"type":32,"tag":429,"props":435,"children":437},{"style":436},"--shiki-default:#F97583",[438],{"type":37,"value":439},"from",{"type":32,"tag":429,"props":441,"children":443},{"style":442},"--shiki-default:#E1E4E8",[444],{"type":37,"value":445}," pyrobyn ",{"type":32,"tag":429,"props":447,"children":448},{"style":436},[449],{"type":37,"value":450},"import",{"type":32,"tag":429,"props":452,"children":453},{"style":442},[454],{"type":37,"value":455}," Robyn\n",{"type":32,"tag":429,"props":457,"children":459},{"class":431,"line":458},2,[460],{"type":32,"tag":429,"props":461,"children":463},{"emptyLinePlaceholder":462},true,[464],{"type":37,"value":465},"\n",{"type":32,"tag":429,"props":467,"children":469},{"class":431,"line":468},3,[470],{"type":32,"tag":429,"props":471,"children":473},{"style":472},"--shiki-default:#6A737D",[474],{"type":37,"value":475},"# Estrai i dati da BigQuery\n",{"type":32,"tag":429,"props":477,"children":479},{"class":431,"line":478},4,[480,485,490,495],{"type":32,"tag":429,"props":481,"children":482},{"style":442},[483],{"type":37,"value":484},"data ",{"type":32,"tag":429,"props":486,"children":487},{"style":436},[488],{"type":37,"value":489},"=",{"type":32,"tag":429,"props":491,"children":492},{"style":442},[493],{"type":37,"value":494}," client.query(",{"type":32,"tag":429,"props":496,"children":498},{"style":497},"--shiki-default:#9ECBFF",[499],{"type":37,"value":500},"\"\"\"\n",{"type":32,"tag":429,"props":502,"children":504},{"class":431,"line":503},5,[505],{"type":32,"tag":429,"props":506,"children":507},{"style":497},[508],{"type":37,"value":509},"  SELECT date, channel, spend, revenue\n",{"type":32,"tag":429,"props":511,"children":513},{"class":431,"line":512},6,[514],{"type":32,"tag":429,"props":515,"children":516},{"style":497},[517],{"type":37,"value":518},"  FROM `project.marketing_data.weekly_agg`\n",{"type":32,"tag":429,"props":520,"children":522},{"class":431,"line":521},7,[523],{"type":32,"tag":429,"props":524,"children":525},{"style":497},[526],{"type":37,"value":527},"  WHERE date BETWEEN '2025-01-01' AND '2026-05-14'\n",{"type":32,"tag":429,"props":529,"children":530},{"class":431,"line":26},[531,536],{"type":32,"tag":429,"props":532,"children":533},{"style":497},[534],{"type":37,"value":535},"\"\"\"",{"type":32,"tag":429,"props":537,"children":538},{"style":442},[539],{"type":37,"value":540},").to_dataframe()\n",{"type":32,"tag":429,"props":542,"children":544},{"class":431,"line":543},9,[545],{"type":32,"tag":429,"props":546,"children":547},{"emptyLinePlaceholder":462},[548],{"type":37,"value":465},{"type":32,"tag":429,"props":550,"children":552},{"class":431,"line":551},10,[553],{"type":32,"tag":429,"props":554,"children":555},{"style":472},[556],{"type":37,"value":557},"# Configura il modello\n",{"type":32,"tag":429,"props":559,"children":561},{"class":431,"line":560},11,[562,567,571],{"type":32,"tag":429,"props":563,"children":564},{"style":442},[565],{"type":37,"value":566},"model ",{"type":32,"tag":429,"props":568,"children":569},{"style":436},[570],{"type":37,"value":489},{"type":32,"tag":429,"props":572,"children":573},{"style":442},[574],{"type":37,"value":575}," Robyn(\n",{"type":32,"tag":429,"props":577,"children":579},{"class":431,"line":578},12,[580,586,590],{"type":32,"tag":429,"props":581,"children":583},{"style":582},"--shiki-default:#FFAB70",[584],{"type":37,"value":585},"    data",{"type":32,"tag":429,"props":587,"children":588},{"style":436},[589],{"type":37,"value":489},{"type":32,"tag":429,"props":591,"children":592},{"style":442},[593],{"type":37,"value":594},"data,\n",{"type":32,"tag":429,"props":596,"children":598},{"class":431,"line":597},13,[599,604,608,613],{"type":32,"tag":429,"props":600,"children":601},{"style":582},[602],{"type":37,"value":603},"    dep_var",{"type":32,"tag":429,"props":605,"children":606},{"style":436},[607],{"type":37,"value":489},{"type":32,"tag":429,"props":609,"children":610},{"style":497},[611],{"type":37,"value":612},"'revenue'",{"type":32,"tag":429,"props":614,"children":615},{"style":442},[616],{"type":37,"value":617},",\n",{"type":32,"tag":429,"props":619,"children":621},{"class":431,"line":620},14,[622,627,631,636,641],{"type":32,"tag":429,"props":623,"children":624},{"style":582},[625],{"type":37,"value":626},"    paid_media_spends",{"type":32,"tag":429,"props":628,"children":629},{"style":436},[630],{"type":37,"value":489},{"type":32,"tag":429,"props":632,"children":633},{"style":442},[634],{"type":37,"value":635},"[",{"type":32,"tag":429,"props":637,"children":638},{"style":497},[639],{"type":37,"value":640},"'spend'",{"type":32,"tag":429,"props":642,"children":643},{"style":442},[644],{"type":37,"value":645},"],\n",{"type":32,"tag":429,"props":647,"children":649},{"class":431,"line":648},15,[650,655,659,664],{"type":32,"tag":429,"props":651,"children":652},{"style":582},[653],{"type":37,"value":654},"    adstock",{"type":32,"tag":429,"props":656,"children":657},{"style":436},[658],{"type":37,"value":489},{"type":32,"tag":429,"props":660,"children":661},{"style":497},[662],{"type":37,"value":663},"'geometric'",{"type":32,"tag":429,"props":665,"children":666},{"style":442},[667],{"type":37,"value":617},{"type":32,"tag":429,"props":669,"children":671},{"class":431,"line":670},16,[672,677,681,686],{"type":32,"tag":429,"props":673,"children":674},{"style":582},[675],{"type":37,"value":676},"    saturation",{"type":32,"tag":429,"props":678,"children":679},{"style":436},[680],{"type":37,"value":489},{"type":32,"tag":429,"props":682,"children":683},{"style":497},[684],{"type":37,"value":685},"'hill'",{"type":32,"tag":429,"props":687,"children":688},{"style":442},[689],{"type":37,"value":617},{"type":32,"tag":429,"props":691,"children":693},{"class":431,"line":692},17,[694,699,703,708],{"type":32,"tag":429,"props":695,"children":696},{"style":582},[697],{"type":37,"value":698},"    hyperparameters",{"type":32,"tag":429,"props":700,"children":701},{"style":436},[702],{"type":37,"value":489},{"type":32,"tag":429,"props":704,"children":705},{"style":497},[706],{"type":37,"value":707},"'auto'",{"type":32,"tag":429,"props":709,"children":710},{"style":472},[711],{"type":37,"value":712},"  # Tuning Optuna\n",{"type":32,"tag":429,"props":714,"children":716},{"class":431,"line":715},18,[717],{"type":32,"tag":429,"props":718,"children":719},{"style":442},[720],{"type":37,"value":721},")\n",{"type":32,"tag":429,"props":723,"children":725},{"class":431,"line":724},19,[726],{"type":32,"tag":429,"props":727,"children":728},{"emptyLinePlaceholder":462},[729],{"type":37,"value":465},{"type":32,"tag":429,"props":731,"children":733},{"class":431,"line":732},20,[734],{"type":32,"tag":429,"props":735,"children":736},{"style":472},[737],{"type":37,"value":738},"# Training (2 ore, 8 core)\n",{"type":32,"tag":429,"props":740,"children":742},{"class":431,"line":741},21,[743,748,753,757,763,767,772,776,781],{"type":32,"tag":429,"props":744,"children":745},{"style":442},[746],{"type":37,"value":747},"model.train(",{"type":32,"tag":429,"props":749,"children":750},{"style":582},[751],{"type":37,"value":752},"iterations",{"type":32,"tag":429,"props":754,"children":755},{"style":436},[756],{"type":37,"value":489},{"type":32,"tag":429,"props":758,"children":760},{"style":759},"--shiki-default:#79B8FF",[761],{"type":37,"value":762},"2000",{"type":32,"tag":429,"props":764,"children":765},{"style":442},[766],{"type":37,"value":325},{"type":32,"tag":429,"props":768,"children":769},{"style":582},[770],{"type":37,"value":771},"trials",{"type":32,"tag":429,"props":773,"children":774},{"style":436},[775],{"type":37,"value":489},{"type":32,"tag":429,"props":777,"children":778},{"style":759},[779],{"type":37,"value":780},"5",{"type":32,"tag":429,"props":782,"children":783},{"style":442},[784],{"type":37,"value":721},{"type":32,"tag":429,"props":786,"children":788},{"class":431,"line":787},22,[789],{"type":32,"tag":429,"props":790,"children":791},{"emptyLinePlaceholder":462},[792],{"type":37,"value":465},{"type":32,"tag":429,"props":794,"children":796},{"class":431,"line":795},23,[797],{"type":32,"tag":429,"props":798,"children":799},{"style":472},[800],{"type":37,"value":801},"# Scegli il miglior modello (Pareto NRMSE + convergenza)\n",{"type":32,"tag":429,"props":803,"children":805},{"class":431,"line":804},24,[806,811,815,820,825,829,834,838,843],{"type":32,"tag":429,"props":807,"children":808},{"style":442},[809],{"type":37,"value":810},"best ",{"type":32,"tag":429,"props":812,"children":813},{"style":436},[814],{"type":37,"value":489},{"type":32,"tag":429,"props":816,"children":817},{"style":442},[818],{"type":37,"value":819}," model.select_model(",{"type":32,"tag":429,"props":821,"children":822},{"style":497},[823],{"type":37,"value":824},"'pareto_front'",{"type":32,"tag":429,"props":826,"children":827},{"style":442},[828],{"type":37,"value":325},{"type":32,"tag":429,"props":830,"children":831},{"style":582},[832],{"type":37,"value":833},"rank",{"type":32,"tag":429,"props":835,"children":836},{"style":436},[837],{"type":37,"value":489},{"type":32,"tag":429,"props":839,"children":840},{"style":759},[841],{"type":37,"value":842},"1",{"type":32,"tag":429,"props":844,"children":845},{"style":442},[846],{"type":37,"value":721},{"type":32,"tag":429,"props":848,"children":850},{"class":431,"line":849},25,[851],{"type":32,"tag":429,"props":852,"children":853},{"emptyLinePlaceholder":462},[854],{"type":37,"value":465},{"type":32,"tag":429,"props":856,"children":858},{"class":431,"line":857},26,[859],{"type":32,"tag":429,"props":860,"children":861},{"style":472},[862],{"type":37,"value":863},"# Riallocazione del budget\n",{"type":32,"tag":429,"props":865,"children":867},{"class":431,"line":866},27,[868,873,877],{"type":32,"tag":429,"props":869,"children":870},{"style":442},[871],{"type":37,"value":872},"allocator ",{"type":32,"tag":429,"props":874,"children":875},{"style":436},[876],{"type":37,"value":489},{"type":32,"tag":429,"props":878,"children":879},{"style":442},[880],{"type":37,"value":881}," best.budget_allocator(\n",{"type":32,"tag":429,"props":883,"children":885},{"class":431,"line":884},28,[886,891,895,900,905],{"type":32,"tag":429,"props":887,"children":888},{"style":582},[889],{"type":37,"value":890},"    total_budget",{"type":32,"tag":429,"props":892,"children":893},{"style":436},[894],{"type":37,"value":489},{"type":32,"tag":429,"props":896,"children":897},{"style":759},[898],{"type":37,"value":899},"500000",{"type":32,"tag":429,"props":901,"children":902},{"style":442},[903],{"type":37,"value":904},",  ",{"type":32,"tag":429,"props":906,"children":907},{"style":472},[908],{"type":37,"value":909},"# Totale mensile\n",{"type":32,"tag":429,"props":911,"children":913},{"class":431,"line":912},29,[914,919,923],{"type":32,"tag":429,"props":915,"children":916},{"style":582},[917],{"type":37,"value":918},"    scenario",{"type":32,"tag":429,"props":920,"children":921},{"style":436},[922],{"type":37,"value":489},{"type":32,"tag":429,"props":924,"children":925},{"style":497},[926],{"type":37,"value":927},"'max_response'\n",{"type":32,"tag":429,"props":929,"children":931},{"class":431,"line":930},30,[932],{"type":32,"tag":429,"props":933,"children":934},{"style":442},[935],{"type":37,"value":721},{"type":32,"tag":429,"props":937,"children":939},{"class":431,"line":938},31,[940,945],{"type":32,"tag":429,"props":941,"children":942},{"style":759},[943],{"type":37,"value":944},"print",{"type":32,"tag":429,"props":946,"children":947},{"style":442},[948],{"type":37,"value":949},"(allocator.optimal_allocation)\n",{"type":32,"tag":33,"props":951,"children":952},{},[953],{"type":37,"value":954},"Output: riduci la spesa Meta del 12%, aumenta Google Search del 18%, mantieni TikTok stabile — con questa distribuzione il ricavo previsto aumenterà del 9%. Per convalidare questa previsione, configura un test di incrementalità di 4 settimane.",{"type":32,"tag":51,"props":956,"children":958},{"id":957},"un-ciclo-decisionale-che-unisce-i-due-metodi",[959],{"type":37,"value":960},"Un Ciclo Decisionale che Unisce i Due Metodi",{"type":32,"tag":33,"props":962,"children":963},{},[964],{"type":37,"value":965},"MMM e il test di incrementalità sono due livelli che si alimentano a vicenda. MMM risponde a \"cosa devo testare\", il test risponde a \"la previsione di MMM era corretta o sbagliata\". Nel 2026, le organizzazioni di successo gestiscono questo ciclo:",{"type":32,"tag":33,"props":967,"children":968},{},[969,974],{"type":32,"tag":159,"props":970,"children":971},{},[972],{"type":37,"value":973},"1. Pianificazione macro (Trimestrale):",{"type":37,"value":975}," Esegui Robyn MMM, estrai curva ROAS e punto di saturazione per ogni canale. In quale canale c'è margine?",{"type":32,"tag":33,"props":977,"children":978},{},[979,984],{"type":32,"tag":159,"props":980,"children":981},{},[982],{"type":37,"value":983},"2. Generazione di ipotesi (Mensile):",{"type":37,"value":985}," Se MMM dice \"Google Display ROAS 1.2, saturazione 70%\", formula l'ipotesi di aumentare il budget.",{"type":32,"tag":33,"props":987,"children":988},{},[989,994],{"type":32,"tag":159,"props":990,"children":991},{},[992],{"type":37,"value":993},"3. Progettazione del test (Sprint 2 settimane):",{"type":37,"value":995}," Geo-experiment su Google Ads o test Conversion Lift su Meta. Holdout 20%, gruppo di controllo spesa 0%, gruppo di test +50%.",{"type":32,"tag":33,"props":997,"children":998},{},[999,1004],{"type":32,"tag":159,"props":1000,"children":1001},{},[1002],{"type":37,"value":1003},"4. Risultato del test (3-4 settimane):",{"type":37,"value":1005}," L'incrementalità reale è 1.8 — più alta della previsione di MMM. Calibra il modello.",{"type":32,"tag":33,"props":1007,"children":1008},{},[1009,1014],{"type":32,"tag":159,"props":1010,"children":1011},{},[1012],{"type":37,"value":1013},"5. Aggiornamento del modello:",{"type":37,"value":1015}," Aggiungi il nuovo risultato del test a MMM come prior bayesiano. Nella prossima iterazione, il modello farà previsioni più accurate.",{"type":32,"tag":33,"props":1017,"children":1018},{},[1019,1021,1026],{"type":37,"value":1020},"Questo ciclo dovrebbe essere al centro della strategia di ",{"type":32,"tag":40,"props":1022,"children":1024},{"href":42,"rel":1023},[44],[1025],{"type":37,"value":47},{"type":37,"value":1027}," — il flusso dei dati non dovrebbe interrompersi da nessuna parte, dalla pianificazione all'esecuzione.",{"type":32,"tag":33,"props":1029,"children":1030},{},[1031,1036],{"type":32,"tag":159,"props":1032,"children":1033},{},[1034],{"type":37,"value":1035},"Caso reale:",{"type":37,"value":1037}," Una piattaforma di viaggi nel Q4 2025 ha previsto con Robyn che il ROAS di TikTok fosse 0,9. Il report della piattaforma mostrava 1,3. Ha configurato un test Conversion Lift di 6 settimane: l'incrementalità reale è risultata 0,85. La piattaforma stava commettendo un errore del 53% (bias dell'ultimo clic). Hanno ridotto il budget di TikTok del 40% e l'hanno trasferito a Google Search — il ROAS totale è salito da 1,8 a 2,3.",{"type":32,"tag":51,"props":1039,"children":1041},{"id":1040},"la-base-dellarchitettura-di-attribution-nel-mondo-post-cookie",[1042],{"type":37,"value":1043},"La Base dell'Architettura di Attribution nel Mondo Post-Cookie",{"type":32,"tag":33,"props":1045,"children":1046},{},[1047],{"type":37,"value":1048},"Nel 2026, l'attribution non è più la domanda \"a quale canale assegno il credito\" — è \"quali segnali combino e come\". Quando il cookie muore, non rimane una singola fonte, ma piuttosto punti dati frammentari: evento first-party da sGTM, segnale server-side dalla Conversion API della piattaforma, conversione offline da CRM. Lo strato che li unisce è CDP + data warehouse — BigQuery, Snowflake, Redshift.",{"type":32,"tag":33,"props":1050,"children":1051},{},[1052],{"type":37,"value":1053},"Lo stack moderno assomiglia a:",{"type":32,"tag":419,"props":1055,"children":1057},{"code":1056},"Web\u002FApp → sGTM → BigQuery\n              ↓\n           dbt transform\n              ↓\n      Robyn MMM + Lift Test\n              ↓\n       Looker Dashboard\n",[1058],{"type":32,"tag":73,"props":1059,"children":1060},{"__ignoreMap":16},[1061],{"type":37,"value":1056},{"type":32,"tag":33,"props":1063,"children":1064},{},[1065],{"type":37,"value":1066},"In questa pipeline, Robyn è solo un nodo. Ma è un nodo critico — perché mostra il macro trend e determina la direzione dei test. I risultati dei test vengono riscritti in BigQuery e usati come prior nella prossima iterazione di MMM.",{"type":32,"tag":33,"props":1068,"children":1069},{},[1070,1075,1077,1083,1085,1091,1093,1098,1100,1106],{"type":32,"tag":159,"props":1071,"children":1072},{},[1073],{"type":37,"value":1074},"Nota tecnica:",{"type":37,"value":1076}," L'integrazione di Robyn con BigQuery funziona tramite SDK Python ",{"type":32,"tag":73,"props":1078,"children":1080},{"className":1079},[],[1081],{"type":37,"value":1082},"google-cloud-bigquery",{"type":37,"value":1084},". Carica i dati settimanali in ",{"type":32,"tag":73,"props":1086,"children":1088},{"className":1087},[],[1089],{"type":37,"value":1090},"marketing_data.robyn_input",{"type":37,"value":1092}," con ",{"type":32,"tag":73,"props":1094,"children":1096},{"className":1095},[],[1097],{"type":37,"value":78},{"type":37,"value":1099},", scrivi l'output del modello in ",{"type":32,"tag":73,"props":1101,"children":1103},{"className":1102},[],[1104],{"type":37,"value":1105},"robyn_output",{"type":37,"value":1107},". Lascia che Looker Studio legga direttamente queste tabelle — così il dashboard del CMO visualizza la curva ROAS in tempo reale e le raccomandazioni di allocazione del budget.",{"type":32,"tag":51,"props":1109,"children":1111},{"id":1110},"errori-comuni-e-controbattute",[1112],{"type":37,"value":1113},"Errori Comuni e Controbattute",{"type":32,"tag":33,"props":1115,"children":1116},{},[1117,1122],{"type":32,"tag":159,"props":1118,"children":1119},{},[1120],{"type":37,"value":1121},"\"MMM richiede un data scientist, noi non possiamo farlo.\"",{"type":37,"value":1123},"\nRobyn è open source, la documentazione è chiara, ci sono notebook Colab pronti. Un growth analyst di medio livello che conosce un po' di Python la impara leggendo la documentazione per 2 settimane e la mette in production. Nel 2026, \"data science\" non è più una scusa valida.",{"type":32,"tag":33,"props":1125,"children":1126},{},[1127,1132],{"type":32,"tag":159,"props":1128,"children":1129},{},[1130],{"type":37,"value":1131},"\"Il test di incrementalità è caro, c'è la perdita dell'holdout.\"",{"type":37,"value":1133},"\nSe mantieni l'holdout al 10-20%, 3 settimane di test significano una perdita di ricavi dell'1,5-3%. Ma se continui su un canale sbagliato, la perdita annuale è del 20-30%. Il ROI del test è 10 volte superiore.",{"type":32,"tag":33,"props":1135,"children":1136},{},[1137,1142],{"type":32,"tag":159,"props":1138,"children":1139},{},[1140],{"type":37,"value":1141},"\"Il reporting della piattaforma è sufficiente.\"",{"type":37,"value":1143},"\nLa dashboard di Meta attribuisce ultimo clic + view-through in 1 giorno. Non vede l'effetto organico, la sinergia cross-canale, le conversioni ritardate. Il report della piattaforma è il segnale tattico, MMM è la verità strategica.",{"type":32,"tag":33,"props":1145,"children":1146},{},[1147,1152],{"type":32,"tag":159,"props":1148,"children":1149},{},[1150],{"type":37,"value":1151},"\"Non è necessario allenare il modello ogni settimana.\"",{"type":37,"value":1153},"\nStagionalità, promozioni, shock economici — tutti influenzano il ROAS. Con il refresh settimanale, catturi il cambio di trend in 2 settimane. Il refresh mensile significa decisioni ritardate di 6-8 settimane.",{"type":32,"tag":1155,"props":1156,"children":1157},"hr",{},[],{"type":32,"tag":33,"props":1159,"children":1160},{},[1161],{"type":37,"value":1162},"Nel 2026, il problema dell'attribution è risolto? No — ma il set di strumenti è completamente cambiato. Il cookie è sparito, al suo posto c'è lo stack MMM + incrementalità + first-party data. Strumenti open source come Robyn hanno messo i grandi brand e le piccole startup allo stesso livello. I test di geo-experiment e Conversion Lift sono integrati nelle piattaforme, non serve più costituire un team di data scientist separato. La domanda non è \"quale metodo\" — è \"a quale livello uso quale metodo, e come lo integro nel ciclo?\" Chi risponde vince.",{"type":32,"tag":1164,"props":1165,"children":1166},"style",{},[1167],{"type":37,"value":1168},"html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}",{"title":16,"searchDepth":468,"depth":468,"links":1170},[1171,1172,1175,1176,1177,1178],{"id":53,"depth":458,"text":56},{"id":83,"depth":458,"text":86,"children":1173},[1174],{"id":105,"depth":468,"text":108},{"id":289,"depth":458,"text":292},{"id":957,"depth":458,"text":960},{"id":1040,"depth":458,"text":1043},{"id":1110,"depth":458,"text":1113},"markdown","content:it:marketing:mmm-incrementality-2026-attribution-setup.md","content","it\u002Fmarketing\u002Fmmm-incrementality-2026-attribution-setup.md","it\u002Fmarketing\u002Fmmm-incrementality-2026-attribution-setup","md",1778738636856]