[{"data":1,"prerenderedAt":1599},["ShallowReactive",2],{"article-alternates":3,"article-\u002Fit\u002Fmarketing\u002Fcreative-operations-bidding-algoritmi-per-variations":13},{"i18nKey":4,"paths":5},"marketing-005-2026-05",{"de":6,"en":7,"es":8,"fr":9,"it":10,"ru":11,"tr":12},"\u002Fde\u002Fmarketing\u002Fcreative-operations-variation-strategie-fuer-bidding-algorithmen","\u002Fen\u002Fmarketing\u002Fcreative-operations-bidding-algorithm-variation-strategy","\u002Fes\u002Fmarketing\u002Fcreative-operations-variaciones-algoritmo-bidding","\u002Ffr\u002Fmarketing\u002Fstrategie-des-variations-pour-l-algorithme-d-encheres","\u002Fit\u002Fmarketing\u002Fcreative-operations-bidding-algoritmi-per-variations","\u002Fru\u002Fmarketing\u002Fcreative-operations-bidding-algoritmasina-beslenecek-variation-stratejisi","\u002Ftr\u002Fmarketing\u002Fcreative-operations-bidding-algoritmasina-beslenecek-variation-stratej",{"_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":1593,"_id":1594,"_source":1595,"_file":1596,"_stem":1597,"_extension":1598},"marketing",false,"","Creative Operations: Strategia di Variazione per l'Algoritmo di Bidding","Architettura di test creativi per Performance Max e Advantage+: produrre segnali per l'algoritmo, costruire un sistema di variazioni, scalare i vincitori.","2026-05-16",[21,22,23,24,25],"creative-operations","performance-max","advantage-plus","bidding-algorithm","creative-testing",8,"Roibase",{"type":29,"children":30,"toc":1585},"root",[31,39,46,51,56,72,78,83,88,93,563,569,574,579,707,712,717,723,728,733,759,773,779,784,843,848,1514,1520,1525,1569,1574,1579],{"type":32,"tag":33,"props":34,"children":35},"element","p",{},[36],{"type":37,"value":38},"text","In Google Performance Max e Meta Advantage+, il creativo non è più solo un messaggio — è il materiale di apprendimento dell'algoritmo. La potenza del bidding automatico è direttamente proporzionale alla ricchezza del set di variazioni che lo alimenta. Eppure molti team affidano ancora il creativo al dipartimento design e aspettano \"bei visual\". Il risultato: la campagna passa 2 settimane senza segnali, l'algoritmo si blocca in un ottimo locale, il CPA sale. Creative operations — costruire la produzione creativa, l'architettura di test e il processo di alimentazione dei segnali con disciplina ingegneristica — è critico per spezzare questo ciclo.",{"type":32,"tag":40,"props":41,"children":43},"h2",{"id":42},"il-creativo-non-è-più-un-problema-di-design-è-un-problema-di-iterazione",[44],{"type":37,"value":45},"Il creativo non è più un problema di design, è un problema di iterazione",{"type":32,"tag":33,"props":47,"children":48},{},[49],{"type":37,"value":50},"In formati di campagna automatici come Performance Max e Advantage+, il creativo è diventato un'operazione quotidiana quanto l'aggiustamento delle offerte. Fornire a una campagna 3 immagini + 5 titoli e aspettare \"fase di apprendimento 14 giorni\" non crea nemmeno il pool minimo di dati per cui l'algoritmo possa prendere una decisione ragionevole. Nella propria documentazione, Google consiglia per Performance Max almeno 4 asset group, ciascuno con 5-15 immagini + 5 combinazioni di titoli — il motivo è che l'algoritmo ha bisogno di varietà sufficiente per bilanciare esplorazione e sfruttamento.",{"type":32,"tag":33,"props":52,"children":53},{},[54],{"type":37,"value":55},"Ma il problema non è solo il numero — se non ci sono differenze significative tra i creativi, l'algoritmo continua a girare in tondo. 5 foto dello stesso prodotto da angoli diversi sono lo stesso cluster di segnale per la macchina. Invece, bisogna costruire variazioni intorno a diverse proposte di valore (prezzo vs. consegna vs. social proof), diversi formati (statico vs. carousel vs. video), diversi proxy di audience (lifestyle vs. product-focused). La produzione creativa deve uscire dal file Adobe del designer e trasformarsi in una matrice template × variabili del team di growth.",{"type":32,"tag":33,"props":57,"children":58},{},[59,61,70],{"type":37,"value":60},"Nella pratica di ",{"type":32,"tag":62,"props":63,"children":67},"a",{"href":64,"rel":65},"https:\u002F\u002Fwww.roibase.com.tr\u002Fit\u002Fdijitalpazarlama",[66],"nofollow",[68],{"type":37,"value":69},"digital marketing",{"type":37,"value":71}," di Roibase, costruiamo creative operations così: sprint settimanali, ogni sprint produce 8-12 nuove variazioni, ogni variazione testa un'ipotesi (cambio di angolazione, test di hook, iterazione CTA). Il designer non rallenta il processo — con library di componenti in Figma + set di variabili + export in bulk, l'operazione accelera. Una campagna può ricevere 20+ creativi unici in 2 settimane, abbastanza perché l'algoritmo trovi il cluster vincente entro la 2ª settimana.",{"type":32,"tag":40,"props":73,"children":75},{"id":74},"produzione-di-segnali-tramite-architettura-di-test-cohort-holdout",[76],{"type":37,"value":77},"Produzione di segnali tramite architettura di test: cohort + holdout",{"type":32,"tag":33,"props":79,"children":80},{},[81],{"type":37,"value":82},"Produrre variazioni creative non basta — bisogna organizzarle in modo che l'algoritmo possa imparare. In Performance Max, ogni asset group funziona come una cella di test separata — ma se distribuite le variazioni a caso, non sapete quale vince, perché la performance a livello di asset group rimane nella scatola nera di Google. Invece, costruiamo un'architettura di test basata su cohort: in ogni periodo (ad esempio 2 settimane), creiamo un nuovo asset group, lo alimentiamo con il set di variazioni di quel periodo, i vincitori precedenti rimangono nel gruppo \"control\". Dopo 2 settimane, confrontiamo la performance del nuovo gruppo (ROAS, CVR, CPA) con il control e spostiamo le variazioni vincitrici sul budget principale.",{"type":32,"tag":33,"props":84,"children":85},{},[86],{"type":37,"value":87},"Questa struttura si combina con la logica dei test bayesiani: ogni asset group crea una distribuzione indipendente, l'aggiornamento posteriore si calcola istantaneamente (tramite Google Ads API estrai i dati di conversioni + costo e calcoli tu stesso). Se una variazione raggiunge il 95% di confidenza entro 7 giorni, la sposti subito all'asset group principale. Se non lo raggiunge, aspetti fino al giorno 14 e poi chiudi il cohort. In questo modo, al posto di un setup statico della campagna, crei una pipeline continua di segnali.",{"type":32,"tag":33,"props":89,"children":90},{},[91],{"type":37,"value":92},"Su Meta Advantage+, la situazione è leggermente diversa — la performance a livello di asset appare nel \"Ads Reporting\" di Meta, ma per breakdown. Qui è più critico usare una cella di holdout: separi il test del nuovo set creativo in una campagna a parte (nuovi creativi) vs. campagna di controllo (vincitori vecchi), con split di budget 20\u002F80. Per 1 settimana, assicuri che entrambe accedono allo stesso targeting di audience (CBO acceso, placement automatico, lookalike largo). Al giorno 7, se il CPA della campagna di test è del 15%+ più basso della campagna di controllo, dichiara il nuovo set vincente e sposta la campagna di controllo al nuovo creativo.",{"type":32,"tag":94,"props":95,"children":99},"pre",{"className":96,"code":97,"language":98,"meta":16,"style":16},"language-python shiki shiki-themes github-dark","# Calcolo semplice del vincitore bayesiano (una volta estratti conversioni + costo da Google Ads API)\nimport numpy as np\nfrom scipy import stats\n\ndef bayesian_winner(conversions_a, cost_a, conversions_b, cost_b, prior_alpha=1, prior_beta=1):\n    # Posterior con distribuzione Beta per conversion rate\n    posterior_a = stats.beta(prior_alpha + conversions_a, prior_beta + (cost_a\u002F10 - conversions_a))\n    posterior_b = stats.beta(prior_alpha + conversions_b, prior_beta + (cost_b\u002F10 - conversions_b))\n    \n    # Monte Carlo: P(B > A)\n    samples = 10000\n    prob_b_wins = np.mean(posterior_b.rvs(samples) > posterior_a.rvs(samples))\n    \n    return prob_b_wins\n\n# Esempio: Asset Group A: 120 conversioni, $2400 costo vs. B: 95 conversioni, $1800 costo\nprob = bayesian_winner(120, 2400, 95, 1800)\nprint(f\"Probabilità che B vinca: {prob:.2%}\")\n# Se > 0.95, B vince e sposti il budget su B\n","python",[100],{"type":32,"tag":101,"props":102,"children":103},"code",{"__ignoreMap":16},[104,116,142,165,175,224,233,290,341,350,359,377,405,413,427,435,444,500,554],{"type":32,"tag":105,"props":106,"children":109},"span",{"class":107,"line":108},"line",1,[110],{"type":32,"tag":105,"props":111,"children":113},{"style":112},"--shiki-default:#6A737D",[114],{"type":37,"value":115},"# Calcolo semplice del vincitore bayesiano (una volta estratti conversioni + costo da Google Ads API)\n",{"type":32,"tag":105,"props":117,"children":119},{"class":107,"line":118},2,[120,126,132,137],{"type":32,"tag":105,"props":121,"children":123},{"style":122},"--shiki-default:#F97583",[124],{"type":37,"value":125},"import",{"type":32,"tag":105,"props":127,"children":129},{"style":128},"--shiki-default:#E1E4E8",[130],{"type":37,"value":131}," numpy ",{"type":32,"tag":105,"props":133,"children":134},{"style":122},[135],{"type":37,"value":136},"as",{"type":32,"tag":105,"props":138,"children":139},{"style":128},[140],{"type":37,"value":141}," np\n",{"type":32,"tag":105,"props":143,"children":145},{"class":107,"line":144},3,[146,151,156,160],{"type":32,"tag":105,"props":147,"children":148},{"style":122},[149],{"type":37,"value":150},"from",{"type":32,"tag":105,"props":152,"children":153},{"style":128},[154],{"type":37,"value":155}," scipy ",{"type":32,"tag":105,"props":157,"children":158},{"style":122},[159],{"type":37,"value":125},{"type":32,"tag":105,"props":161,"children":162},{"style":128},[163],{"type":37,"value":164}," stats\n",{"type":32,"tag":105,"props":166,"children":168},{"class":107,"line":167},4,[169],{"type":32,"tag":105,"props":170,"children":172},{"emptyLinePlaceholder":171},true,[173],{"type":37,"value":174},"\n",{"type":32,"tag":105,"props":176,"children":178},{"class":107,"line":177},5,[179,184,190,195,200,206,211,215,219],{"type":32,"tag":105,"props":180,"children":181},{"style":122},[182],{"type":37,"value":183},"def",{"type":32,"tag":105,"props":185,"children":187},{"style":186},"--shiki-default:#B392F0",[188],{"type":37,"value":189}," bayesian_winner",{"type":32,"tag":105,"props":191,"children":192},{"style":128},[193],{"type":37,"value":194},"(conversions_a, cost_a, conversions_b, cost_b, prior_alpha",{"type":32,"tag":105,"props":196,"children":197},{"style":122},[198],{"type":37,"value":199},"=",{"type":32,"tag":105,"props":201,"children":203},{"style":202},"--shiki-default:#79B8FF",[204],{"type":37,"value":205},"1",{"type":32,"tag":105,"props":207,"children":208},{"style":128},[209],{"type":37,"value":210},", prior_beta",{"type":32,"tag":105,"props":212,"children":213},{"style":122},[214],{"type":37,"value":199},{"type":32,"tag":105,"props":216,"children":217},{"style":202},[218],{"type":37,"value":205},{"type":32,"tag":105,"props":220,"children":221},{"style":128},[222],{"type":37,"value":223},"):\n",{"type":32,"tag":105,"props":225,"children":227},{"class":107,"line":226},6,[228],{"type":32,"tag":105,"props":229,"children":230},{"style":112},[231],{"type":37,"value":232},"    # Posterior con distribuzione Beta per conversion rate\n",{"type":32,"tag":105,"props":234,"children":236},{"class":107,"line":235},7,[237,242,246,251,256,261,265,270,275,280,285],{"type":32,"tag":105,"props":238,"children":239},{"style":128},[240],{"type":37,"value":241},"    posterior_a ",{"type":32,"tag":105,"props":243,"children":244},{"style":122},[245],{"type":37,"value":199},{"type":32,"tag":105,"props":247,"children":248},{"style":128},[249],{"type":37,"value":250}," stats.beta(prior_alpha ",{"type":32,"tag":105,"props":252,"children":253},{"style":122},[254],{"type":37,"value":255},"+",{"type":32,"tag":105,"props":257,"children":258},{"style":128},[259],{"type":37,"value":260}," conversions_a, prior_beta ",{"type":32,"tag":105,"props":262,"children":263},{"style":122},[264],{"type":37,"value":255},{"type":32,"tag":105,"props":266,"children":267},{"style":128},[268],{"type":37,"value":269}," (cost_a",{"type":32,"tag":105,"props":271,"children":272},{"style":122},[273],{"type":37,"value":274},"\u002F",{"type":32,"tag":105,"props":276,"children":277},{"style":202},[278],{"type":37,"value":279},"10",{"type":32,"tag":105,"props":281,"children":282},{"style":122},[283],{"type":37,"value":284}," -",{"type":32,"tag":105,"props":286,"children":287},{"style":128},[288],{"type":37,"value":289}," conversions_a))\n",{"type":32,"tag":105,"props":291,"children":292},{"class":107,"line":26},[293,298,302,306,310,315,319,324,328,332,336],{"type":32,"tag":105,"props":294,"children":295},{"style":128},[296],{"type":37,"value":297},"    posterior_b ",{"type":32,"tag":105,"props":299,"children":300},{"style":122},[301],{"type":37,"value":199},{"type":32,"tag":105,"props":303,"children":304},{"style":128},[305],{"type":37,"value":250},{"type":32,"tag":105,"props":307,"children":308},{"style":122},[309],{"type":37,"value":255},{"type":32,"tag":105,"props":311,"children":312},{"style":128},[313],{"type":37,"value":314}," conversions_b, prior_beta ",{"type":32,"tag":105,"props":316,"children":317},{"style":122},[318],{"type":37,"value":255},{"type":32,"tag":105,"props":320,"children":321},{"style":128},[322],{"type":37,"value":323}," (cost_b",{"type":32,"tag":105,"props":325,"children":326},{"style":122},[327],{"type":37,"value":274},{"type":32,"tag":105,"props":329,"children":330},{"style":202},[331],{"type":37,"value":279},{"type":32,"tag":105,"props":333,"children":334},{"style":122},[335],{"type":37,"value":284},{"type":32,"tag":105,"props":337,"children":338},{"style":128},[339],{"type":37,"value":340}," conversions_b))\n",{"type":32,"tag":105,"props":342,"children":344},{"class":107,"line":343},9,[345],{"type":32,"tag":105,"props":346,"children":347},{"style":128},[348],{"type":37,"value":349},"    \n",{"type":32,"tag":105,"props":351,"children":353},{"class":107,"line":352},10,[354],{"type":32,"tag":105,"props":355,"children":356},{"style":112},[357],{"type":37,"value":358},"    # Monte Carlo: P(B > A)\n",{"type":32,"tag":105,"props":360,"children":362},{"class":107,"line":361},11,[363,368,372],{"type":32,"tag":105,"props":364,"children":365},{"style":128},[366],{"type":37,"value":367},"    samples ",{"type":32,"tag":105,"props":369,"children":370},{"style":122},[371],{"type":37,"value":199},{"type":32,"tag":105,"props":373,"children":374},{"style":202},[375],{"type":37,"value":376}," 10000\n",{"type":32,"tag":105,"props":378,"children":380},{"class":107,"line":379},12,[381,386,390,395,400],{"type":32,"tag":105,"props":382,"children":383},{"style":128},[384],{"type":37,"value":385},"    prob_b_wins ",{"type":32,"tag":105,"props":387,"children":388},{"style":122},[389],{"type":37,"value":199},{"type":32,"tag":105,"props":391,"children":392},{"style":128},[393],{"type":37,"value":394}," np.mean(posterior_b.rvs(samples) ",{"type":32,"tag":105,"props":396,"children":397},{"style":122},[398],{"type":37,"value":399},">",{"type":32,"tag":105,"props":401,"children":402},{"style":128},[403],{"type":37,"value":404}," posterior_a.rvs(samples))\n",{"type":32,"tag":105,"props":406,"children":408},{"class":107,"line":407},13,[409],{"type":32,"tag":105,"props":410,"children":411},{"style":128},[412],{"type":37,"value":349},{"type":32,"tag":105,"props":414,"children":416},{"class":107,"line":415},14,[417,422],{"type":32,"tag":105,"props":418,"children":419},{"style":122},[420],{"type":37,"value":421},"    return",{"type":32,"tag":105,"props":423,"children":424},{"style":128},[425],{"type":37,"value":426}," prob_b_wins\n",{"type":32,"tag":105,"props":428,"children":430},{"class":107,"line":429},15,[431],{"type":32,"tag":105,"props":432,"children":433},{"emptyLinePlaceholder":171},[434],{"type":37,"value":174},{"type":32,"tag":105,"props":436,"children":438},{"class":107,"line":437},16,[439],{"type":32,"tag":105,"props":440,"children":441},{"style":112},[442],{"type":37,"value":443},"# Esempio: Asset Group A: 120 conversioni, $2400 costo vs. B: 95 conversioni, $1800 costo\n",{"type":32,"tag":105,"props":445,"children":447},{"class":107,"line":446},17,[448,453,457,462,467,472,477,481,486,490,495],{"type":32,"tag":105,"props":449,"children":450},{"style":128},[451],{"type":37,"value":452},"prob ",{"type":32,"tag":105,"props":454,"children":455},{"style":122},[456],{"type":37,"value":199},{"type":32,"tag":105,"props":458,"children":459},{"style":128},[460],{"type":37,"value":461}," bayesian_winner(",{"type":32,"tag":105,"props":463,"children":464},{"style":202},[465],{"type":37,"value":466},"120",{"type":32,"tag":105,"props":468,"children":469},{"style":128},[470],{"type":37,"value":471},", ",{"type":32,"tag":105,"props":473,"children":474},{"style":202},[475],{"type":37,"value":476},"2400",{"type":32,"tag":105,"props":478,"children":479},{"style":128},[480],{"type":37,"value":471},{"type":32,"tag":105,"props":482,"children":483},{"style":202},[484],{"type":37,"value":485},"95",{"type":32,"tag":105,"props":487,"children":488},{"style":128},[489],{"type":37,"value":471},{"type":32,"tag":105,"props":491,"children":492},{"style":202},[493],{"type":37,"value":494},"1800",{"type":32,"tag":105,"props":496,"children":497},{"style":128},[498],{"type":37,"value":499},")\n",{"type":32,"tag":105,"props":501,"children":503},{"class":107,"line":502},18,[504,509,514,519,525,530,535,540,545,550],{"type":32,"tag":105,"props":505,"children":506},{"style":202},[507],{"type":37,"value":508},"print",{"type":32,"tag":105,"props":510,"children":511},{"style":128},[512],{"type":37,"value":513},"(",{"type":32,"tag":105,"props":515,"children":516},{"style":122},[517],{"type":37,"value":518},"f",{"type":32,"tag":105,"props":520,"children":522},{"style":521},"--shiki-default:#9ECBFF",[523],{"type":37,"value":524},"\"Probabilità che B vinca: ",{"type":32,"tag":105,"props":526,"children":527},{"style":202},[528],{"type":37,"value":529},"{",{"type":32,"tag":105,"props":531,"children":532},{"style":128},[533],{"type":37,"value":534},"prob",{"type":32,"tag":105,"props":536,"children":537},{"style":122},[538],{"type":37,"value":539},":.2%",{"type":32,"tag":105,"props":541,"children":542},{"style":202},[543],{"type":37,"value":544},"}",{"type":32,"tag":105,"props":546,"children":547},{"style":521},[548],{"type":37,"value":549},"\"",{"type":32,"tag":105,"props":551,"children":552},{"style":128},[553],{"type":37,"value":499},{"type":32,"tag":105,"props":555,"children":557},{"class":107,"line":556},19,[558],{"type":32,"tag":105,"props":559,"children":560},{"style":112},[561],{"type":37,"value":562},"# Se > 0.95, B vince e sposti il budget su B\n",{"type":32,"tag":40,"props":564,"children":566},{"id":565},"varietà-di-formato-statico-carousel-video-collection",[567],{"type":37,"value":568},"Varietà di formato: statico, carousel, video, collection",{"type":32,"tag":33,"props":570,"children":571},{},[572],{"type":37,"value":573},"Il punto in cui gli algoritmi ricevono più segnali è il cambio di formato. Testare lo stesso messaggio sia su immagine statica che su video che su carousel, offre alla macchina diverse pattern di comportamento utente da imparare. Ad esempio, in Performance Max gli asset video di solito vengono serviti su discovery e YouTube, le immagini statiche su display — ma non sai quale porti un ROAS migliore, l'algoritmo sì. Se non gli dai opzioni, usa il suo mix di placement predefinito e non trova la distribuzione ottimale.",{"type":32,"tag":33,"props":575,"children":576},{},[577],{"type":37,"value":578},"Praticamente, puoi costruire la pipeline creativa così:",{"type":32,"tag":580,"props":581,"children":582},"table",{},[583,612],{"type":32,"tag":584,"props":585,"children":586},"thead",{},[587],{"type":32,"tag":588,"props":589,"children":590},"tr",{},[591,597,602,607],{"type":32,"tag":592,"props":593,"children":594},"th",{},[595],{"type":37,"value":596},"Formato",{"type":32,"tag":592,"props":598,"children":599},{},[600],{"type":37,"value":601},"Tempo di produzione",{"type":32,"tag":592,"props":603,"children":604},{},[605],{"type":37,"value":606},"Tempo di test",{"type":32,"tag":592,"props":608,"children":609},{},[610],{"type":37,"value":611},"Tasso di vincita (media dati Roibase)",{"type":32,"tag":613,"props":614,"children":615},"tbody",{},[616,640,663,686],{"type":32,"tag":588,"props":617,"children":618},{},[619,625,630,635],{"type":32,"tag":620,"props":621,"children":622},"td",{},[623],{"type":37,"value":624},"Statico (5 variazioni)",{"type":32,"tag":620,"props":626,"children":627},{},[628],{"type":37,"value":629},"2 giorni",{"type":32,"tag":620,"props":631,"children":632},{},[633],{"type":37,"value":634},"7 giorni",{"type":32,"tag":620,"props":636,"children":637},{},[638],{"type":37,"value":639},"40% (almeno 1 vincitore)",{"type":32,"tag":588,"props":641,"children":642},{},[643,648,653,658],{"type":32,"tag":620,"props":644,"children":645},{},[646],{"type":37,"value":647},"Carousel (3 set, 3 carte ciascuno)",{"type":32,"tag":620,"props":649,"children":650},{},[651],{"type":37,"value":652},"3 giorni",{"type":32,"tag":620,"props":654,"children":655},{},[656],{"type":37,"value":657},"10 giorni",{"type":32,"tag":620,"props":659,"children":660},{},[661],{"type":37,"value":662},"25% (meno vincitori ma lift grande quando vince)",{"type":32,"tag":588,"props":664,"children":665},{},[666,671,676,681],{"type":32,"tag":620,"props":667,"children":668},{},[669],{"type":37,"value":670},"Video (15 sec, 3 variazioni)",{"type":32,"tag":620,"props":672,"children":673},{},[674],{"type":37,"value":675},"5 giorni",{"type":32,"tag":620,"props":677,"children":678},{},[679],{"type":37,"value":680},"14 giorni",{"type":32,"tag":620,"props":682,"children":683},{},[684],{"type":37,"value":685},"50% (quando vince, calo di costo 20%+)",{"type":32,"tag":588,"props":687,"children":688},{},[689,694,698,702],{"type":32,"tag":620,"props":690,"children":691},{},[692],{"type":37,"value":693},"Collection (1 hero + 4 prodotti)",{"type":32,"tag":620,"props":695,"children":696},{},[697],{"type":37,"value":629},{"type":32,"tag":620,"props":699,"children":700},{},[701],{"type":37,"value":634},{"type":32,"tag":620,"props":703,"children":704},{},[705],{"type":37,"value":706},"30% (potente per e-commerce)",{"type":32,"tag":33,"props":708,"children":709},{},[710],{"type":37,"value":711},"La produzione video sembra 5 giorni, ma non è ripresa professionale — è template: stock footage + product shot + text overlay. Strumenti come CapCut e Canva fanno già assembly automatico con AI. Quello che conta è che il video ganci nei primi 3 secondi e che il CTA sia netto. Il report Creative Guidance di Meta guarda al watch rate nei primi 3 secondi — se sotto il 50%, il video non funziona.",{"type":32,"tag":33,"props":713,"children":714},{},[715],{"type":37,"value":716},"Nel formato carousel, l'attenzione: ogni carta deve portare un messaggio indipendente. Una sequenza \"Carta 1: prodotto, Carta 2: prezzo, Carta 3: consegna\" non genera segnale per l'algoritmo Meta, perché l'utente nel 80% dei casi scorre dopo la prima carta. Invece, ogni carta dovrebbe mostrare una value prop diversa o SKU diverso — così l'algoritmo deduce \"questo utente ha cliccato sulla carta 2, quindi è interessato a questa caratteristica\".",{"type":32,"tag":40,"props":718,"children":720},{"id":719},"misurazione-dellincrementalità-è-il-creativo-vincente-o-uno-shift-di-audience",[721],{"type":37,"value":722},"Misurazione dell'incrementalità: è il creativo vincente o uno shift di audience?",{"type":32,"tag":33,"props":724,"children":725},{},[726],{"type":37,"value":727},"Nel interpretare i risultati dei test creativi, la trappola maggiore è: lancio il nuovo set creativo, il ROAS sale, \"abbiamo vinto\" — ma in realtà l'algoritmo ha solo fatto shift verso un segmento di audience più facile da convertire, e il volume totale di conversioni è sceso. Lo chiamiamo pseudo-winner. Per evitarlo, devi fare un incrementality check: quando testi il nuovo set creativo, assicurati che il numero totale di conversioni (non solo il ROAS) non scenda. Se il ROAS sale del 20% ma le conversioni scendono del 15%, l'algoritmo si è ristretto a un segmento — questo crea problemi di scala nel lungo termine.",{"type":32,"tag":33,"props":729,"children":730},{},[731],{"type":37,"value":732},"Due metodi:",{"type":32,"tag":734,"props":735,"children":736},"ol",{},[737,749],{"type":32,"tag":738,"props":739,"children":740},"li",{},[741,747],{"type":32,"tag":742,"props":743,"children":744},"strong",{},[745],{"type":37,"value":746},"Test geo con holdout:",{"type":37,"value":748}," Fai uno split a livello di stato negli USA (ad esempio California + Texas con nuovo creativo, Florida + New York con creativo vecchio). Dopo 2 settimane, guarda l'aumento totale di conversioni. Se le geo con nuovo creativo hanno il 10%+ di conversioni in più, è un lift reale.",{"type":32,"tag":738,"props":750,"children":751},{},[752,757],{"type":32,"tag":742,"props":753,"children":754},{},[755],{"type":37,"value":756},"Budget pacing check:",{"type":37,"value":758}," Dai al test creativo il 20% di budget, al control l'80%. Se la campagna di test consuma velocemente il budget e raggiunge \"limited by budget\" pur mantenendo ROAS alto, è un vero vincente. Se consuma lentamente, l'algoritmo sta navigando in un segmento stretto.",{"type":32,"tag":33,"props":760,"children":761},{},[762,764,771],{"type":37,"value":763},"Nei progetti di ",{"type":32,"tag":62,"props":765,"children":768},{"href":766,"rel":767},"https:\u002F\u002Fwww.roibase.com.tr\u002Fit\u002Fppc",[66],[769],{"type":37,"value":770},"performance marketing",{"type":37,"value":772}," di Roibase, il test di incrementalità basato su geo è obbligatorio — soprattutto con budget mensile $50K+. Usiamo uno script Python semplice: Google Ads API + BigQuery per estrarre conversioni per dimensione geo e fare un t-test. Se il lift è statisticamente significativo al 95%, il creativo vince; altrimenti si itera.",{"type":32,"tag":40,"props":774,"children":776},{"id":775},"automazione-figma-api-bulk-upload-pipeline",[777],{"type":37,"value":778},"Automazione: Figma API + bulk upload pipeline",{"type":32,"tag":33,"props":780,"children":781},{},[782],{"type":37,"value":783},"Il flusso manuale di upload creativo non scala. 20 variazioni × 3 formati = 60 asset, caricarli uno a uno su Google Ads richiede 2 ore. Invece, costruisci una pipeline di automazione:",{"type":32,"tag":734,"props":785,"children":786},{},[787,797,807,833],{"type":32,"tag":738,"props":788,"children":789},{},[790,795],{"type":32,"tag":742,"props":791,"children":792},{},[793],{"type":37,"value":794},"Figma → Export:",{"type":37,"value":796}," Plugin che esporta automaticamente tutte le variazioni dalla component library (Figma REST API). Ogni variazione: file JSON + export PNG\u002FMP4.",{"type":32,"tag":738,"props":798,"children":799},{},[800,805],{"type":32,"tag":742,"props":801,"children":802},{},[803],{"type":37,"value":804},"Metadata injection:",{"type":37,"value":806}," Nel JSON, taggerla ogni variazione (angle, formato, proxy audience). Questi tag vengono usati dopo per l'assegnazione di asset group.",{"type":32,"tag":738,"props":808,"children":809},{},[810,815,817,823,825,831],{"type":32,"tag":742,"props":811,"children":812},{},[813],{"type":37,"value":814},"Google Ads \u002F Meta bulk upload:",{"type":37,"value":816}," Usa l'endpoint ",{"type":32,"tag":101,"props":818,"children":820},{"className":819},[],[821],{"type":37,"value":822},"AssetService",{"type":37,"value":824}," dell'API di Google Ads per batch upload. Per Meta, usa Campaign Creation API, crea l'oggetto ",{"type":32,"tag":101,"props":826,"children":828},{"className":827},[],[829],{"type":37,"value":830},"ad_creative",{"type":37,"value":832}," per ogni creativo.",{"type":32,"tag":738,"props":834,"children":835},{},[836,841],{"type":32,"tag":742,"props":837,"children":838},{},[839],{"type":37,"value":840},"Auto asset group assignment:",{"type":37,"value":842}," Assegna automaticamente le nuove variazioni all'asset group con meno impressioni (accelera il test).",{"type":32,"tag":33,"props":844,"children":845},{},[846],{"type":37,"value":847},"Con questa pipeline, l'upload creativo scende da 2 ore a 15 minuti. Puoi persino automatizzare con cron job ogni lunedì mattina, spostando automaticamente i creativi vincenti della settimana precedente all'asset group principale.",{"type":32,"tag":94,"props":849,"children":853},{"className":850,"code":851,"language":852,"meta":16,"style":16},"language-javascript shiki shiki-themes github-dark","\u002F\u002F Export di componenti via Figma REST API (esempio Node.js)\nconst axios = require('axios');\nconst fs = require('fs');\n\nconst FIGMA_TOKEN = process.env.FIGMA_TOKEN;\nconst FILE_KEY = 'your-figma-file-key';\n\nasync function exportVariations() {\n  const response = await axios.get(`https:\u002F\u002Fapi.figma.com\u002Fv1\u002Ffiles\u002F${FILE_KEY}`, {\n    headers: { 'X-Figma-Token': FIGMA_TOKEN }\n  });\n  \n  const components = response.data.document.children\n    .filter(node => node.type === 'COMPONENT')\n    .map(node => ({ id: node.id, name: node.name }));\n\n  for (const comp of components) {\n    const imageUrl = await axios.get(`https:\u002F\u002Fapi.figma.com\u002Fv1\u002Fimages\u002F${FILE_KEY}?ids=${comp.id}&format=png`, {\n      headers: { 'X-Figma-Token': FIGMA_TOKEN }\n    });\n    \n    \u002F\u002F Download e carica su Google Cloud Storage\n    const image = await axios.get(imageUrl.data.images[comp.id], { responseType: 'arraybuffer' });\n    fs.writeFileSync(`.\u002Fexports\u002F${comp.name}.png`, image.data);\n  }\n}\n\nexportVariations();\n","javascript",[854],{"type":32,"tag":101,"props":855,"children":856},{"__ignoreMap":16},[857,865,902,935,942,973,998,1005,1028,1084,1111,1119,1127,1148,1195,1224,1231,1263,1334,1358,1367,1375,1384,1428,1474,1483,1492,1500],{"type":32,"tag":105,"props":858,"children":859},{"class":107,"line":108},[860],{"type":32,"tag":105,"props":861,"children":862},{"style":112},[863],{"type":37,"value":864},"\u002F\u002F Export di componenti via Figma REST API (esempio Node.js)\n",{"type":32,"tag":105,"props":866,"children":867},{"class":107,"line":118},[868,873,878,883,888,892,897],{"type":32,"tag":105,"props":869,"children":870},{"style":122},[871],{"type":37,"value":872},"const",{"type":32,"tag":105,"props":874,"children":875},{"style":202},[876],{"type":37,"value":877}," axios",{"type":32,"tag":105,"props":879,"children":880},{"style":122},[881],{"type":37,"value":882}," =",{"type":32,"tag":105,"props":884,"children":885},{"style":186},[886],{"type":37,"value":887}," require",{"type":32,"tag":105,"props":889,"children":890},{"style":128},[891],{"type":37,"value":513},{"type":32,"tag":105,"props":893,"children":894},{"style":521},[895],{"type":37,"value":896},"'axios'",{"type":32,"tag":105,"props":898,"children":899},{"style":128},[900],{"type":37,"value":901},");\n",{"type":32,"tag":105,"props":903,"children":904},{"class":107,"line":144},[905,909,914,918,922,926,931],{"type":32,"tag":105,"props":906,"children":907},{"style":122},[908],{"type":37,"value":872},{"type":32,"tag":105,"props":910,"children":911},{"style":202},[912],{"type":37,"value":913}," fs",{"type":32,"tag":105,"props":915,"children":916},{"style":122},[917],{"type":37,"value":882},{"type":32,"tag":105,"props":919,"children":920},{"style":186},[921],{"type":37,"value":887},{"type":32,"tag":105,"props":923,"children":924},{"style":128},[925],{"type":37,"value":513},{"type":32,"tag":105,"props":927,"children":928},{"style":521},[929],{"type":37,"value":930},"'fs'",{"type":32,"tag":105,"props":932,"children":933},{"style":128},[934],{"type":37,"value":901},{"type":32,"tag":105,"props":936,"children":937},{"class":107,"line":167},[938],{"type":32,"tag":105,"props":939,"children":940},{"emptyLinePlaceholder":171},[941],{"type":37,"value":174},{"type":32,"tag":105,"props":943,"children":944},{"class":107,"line":177},[945,949,954,958,963,968],{"type":32,"tag":105,"props":946,"children":947},{"style":122},[948],{"type":37,"value":872},{"type":32,"tag":105,"props":950,"children":951},{"style":202},[952],{"type":37,"value":953}," FIGMA_TOKEN",{"type":32,"tag":105,"props":955,"children":956},{"style":122},[957],{"type":37,"value":882},{"type":32,"tag":105,"props":959,"children":960},{"style":128},[961],{"type":37,"value":962}," process.env.",{"type":32,"tag":105,"props":964,"children":965},{"style":202},[966],{"type":37,"value":967},"FIGMA_TOKEN",{"type":32,"tag":105,"props":969,"children":970},{"style":128},[971],{"type":37,"value":972},";\n",{"type":32,"tag":105,"props":974,"children":975},{"class":107,"line":226},[976,980,985,989,994],{"type":32,"tag":105,"props":977,"children":978},{"style":122},[979],{"type":37,"value":872},{"type":32,"tag":105,"props":981,"children":982},{"style":202},[983],{"type":37,"value":984}," FILE_KEY",{"type":32,"tag":105,"props":986,"children":987},{"style":122},[988],{"type":37,"value":882},{"type":32,"tag":105,"props":990,"children":991},{"style":521},[992],{"type":37,"value":993}," 'your-figma-file-key'",{"type":32,"tag":105,"props":995,"children":996},{"style":128},[997],{"type":37,"value":972},{"type":32,"tag":105,"props":999,"children":1000},{"class":107,"line":235},[1001],{"type":32,"tag":105,"props":1002,"children":1003},{"emptyLinePlaceholder":171},[1004],{"type":37,"value":174},{"type":32,"tag":105,"props":1006,"children":1007},{"class":107,"line":26},[1008,1013,1018,1023],{"type":32,"tag":105,"props":1009,"children":1010},{"style":122},[1011],{"type":37,"value":1012},"async",{"type":32,"tag":105,"props":1014,"children":1015},{"style":122},[1016],{"type":37,"value":1017}," function",{"type":32,"tag":105,"props":1019,"children":1020},{"style":186},[1021],{"type":37,"value":1022}," exportVariations",{"type":32,"tag":105,"props":1024,"children":1025},{"style":128},[1026],{"type":37,"value":1027},"() {\n",{"type":32,"tag":105,"props":1029,"children":1030},{"class":107,"line":343},[1031,1036,1041,1045,1050,1055,1060,1064,1069,1074,1079],{"type":32,"tag":105,"props":1032,"children":1033},{"style":122},[1034],{"type":37,"value":1035},"  const",{"type":32,"tag":105,"props":1037,"children":1038},{"style":202},[1039],{"type":37,"value":1040}," response",{"type":32,"tag":105,"props":1042,"children":1043},{"style":122},[1044],{"type":37,"value":882},{"type":32,"tag":105,"props":1046,"children":1047},{"style":122},[1048],{"type":37,"value":1049}," await",{"type":32,"tag":105,"props":1051,"children":1052},{"style":128},[1053],{"type":37,"value":1054}," axios.",{"type":32,"tag":105,"props":1056,"children":1057},{"style":186},[1058],{"type":37,"value":1059},"get",{"type":32,"tag":105,"props":1061,"children":1062},{"style":128},[1063],{"type":37,"value":513},{"type":32,"tag":105,"props":1065,"children":1066},{"style":521},[1067],{"type":37,"value":1068},"`https:\u002F\u002Fapi.figma.com\u002Fv1\u002Ffiles\u002F${",{"type":32,"tag":105,"props":1070,"children":1071},{"style":202},[1072],{"type":37,"value":1073},"FILE_KEY",{"type":32,"tag":105,"props":1075,"children":1076},{"style":521},[1077],{"type":37,"value":1078},"}`",{"type":32,"tag":105,"props":1080,"children":1081},{"style":128},[1082],{"type":37,"value":1083},", {\n",{"type":32,"tag":105,"props":1085,"children":1086},{"class":107,"line":352},[1087,1092,1097,1102,1106],{"type":32,"tag":105,"props":1088,"children":1089},{"style":128},[1090],{"type":37,"value":1091},"    headers: { ",{"type":32,"tag":105,"props":1093,"children":1094},{"style":521},[1095],{"type":37,"value":1096},"'X-Figma-Token'",{"type":32,"tag":105,"props":1098,"children":1099},{"style":128},[1100],{"type":37,"value":1101},": ",{"type":32,"tag":105,"props":1103,"children":1104},{"style":202},[1105],{"type":37,"value":967},{"type":32,"tag":105,"props":1107,"children":1108},{"style":128},[1109],{"type":37,"value":1110}," }\n",{"type":32,"tag":105,"props":1112,"children":1113},{"class":107,"line":361},[1114],{"type":32,"tag":105,"props":1115,"children":1116},{"style":128},[1117],{"type":37,"value":1118},"  });\n",{"type":32,"tag":105,"props":1120,"children":1121},{"class":107,"line":379},[1122],{"type":32,"tag":105,"props":1123,"children":1124},{"style":128},[1125],{"type":37,"value":1126},"  \n",{"type":32,"tag":105,"props":1128,"children":1129},{"class":107,"line":407},[1130,1134,1139,1143],{"type":32,"tag":105,"props":1131,"children":1132},{"style":122},[1133],{"type":37,"value":1035},{"type":32,"tag":105,"props":1135,"children":1136},{"style":202},[1137],{"type":37,"value":1138}," components",{"type":32,"tag":105,"props":1140,"children":1141},{"style":122},[1142],{"type":37,"value":882},{"type":32,"tag":105,"props":1144,"children":1145},{"style":128},[1146],{"type":37,"value":1147}," response.data.document.children\n",{"type":32,"tag":105,"props":1149,"children":1150},{"class":107,"line":415},[1151,1156,1161,1165,1171,1176,1181,1186,1191],{"type":32,"tag":105,"props":1152,"children":1153},{"style":128},[1154],{"type":37,"value":1155},"    .",{"type":32,"tag":105,"props":1157,"children":1158},{"style":186},[1159],{"type":37,"value":1160},"filter",{"type":32,"tag":105,"props":1162,"children":1163},{"style":128},[1164],{"type":37,"value":513},{"type":32,"tag":105,"props":1166,"children":1168},{"style":1167},"--shiki-default:#FFAB70",[1169],{"type":37,"value":1170},"node",{"type":32,"tag":105,"props":1172,"children":1173},{"style":122},[1174],{"type":37,"value":1175}," =>",{"type":32,"tag":105,"props":1177,"children":1178},{"style":128},[1179],{"type":37,"value":1180}," node.type ",{"type":32,"tag":105,"props":1182,"children":1183},{"style":122},[1184],{"type":37,"value":1185},"===",{"type":32,"tag":105,"props":1187,"children":1188},{"style":521},[1189],{"type":37,"value":1190}," 'COMPONENT'",{"type":32,"tag":105,"props":1192,"children":1193},{"style":128},[1194],{"type":37,"value":499},{"type":32,"tag":105,"props":1196,"children":1197},{"class":107,"line":429},[1198,1202,1207,1211,1215,1219],{"type":32,"tag":105,"props":1199,"children":1200},{"style":128},[1201],{"type":37,"value":1155},{"type":32,"tag":105,"props":1203,"children":1204},{"style":186},[1205],{"type":37,"value":1206},"map",{"type":32,"tag":105,"props":1208,"children":1209},{"style":128},[1210],{"type":37,"value":513},{"type":32,"tag":105,"props":1212,"children":1213},{"style":1167},[1214],{"type":37,"value":1170},{"type":32,"tag":105,"props":1216,"children":1217},{"style":122},[1218],{"type":37,"value":1175},{"type":32,"tag":105,"props":1220,"children":1221},{"style":128},[1222],{"type":37,"value":1223}," ({ id: node.id, name: node.name }));\n",{"type":32,"tag":105,"props":1225,"children":1226},{"class":107,"line":437},[1227],{"type":32,"tag":105,"props":1228,"children":1229},{"emptyLinePlaceholder":171},[1230],{"type":37,"value":174},{"type":32,"tag":105,"props":1232,"children":1233},{"class":107,"line":446},[1234,1239,1244,1248,1253,1258],{"type":32,"tag":105,"props":1235,"children":1236},{"style":122},[1237],{"type":37,"value":1238},"  for",{"type":32,"tag":105,"props":1240,"children":1241},{"style":128},[1242],{"type":37,"value":1243}," (",{"type":32,"tag":105,"props":1245,"children":1246},{"style":122},[1247],{"type":37,"value":872},{"type":32,"tag":105,"props":1249,"children":1250},{"style":202},[1251],{"type":37,"value":1252}," comp",{"type":32,"tag":105,"props":1254,"children":1255},{"style":122},[1256],{"type":37,"value":1257}," of",{"type":32,"tag":105,"props":1259,"children":1260},{"style":128},[1261],{"type":37,"value":1262}," components) {\n",{"type":32,"tag":105,"props":1264,"children":1265},{"class":107,"line":502},[1266,1271,1276,1280,1284,1288,1292,1296,1301,1305,1310,1315,1320,1325,1330],{"type":32,"tag":105,"props":1267,"children":1268},{"style":122},[1269],{"type":37,"value":1270},"    const",{"type":32,"tag":105,"props":1272,"children":1273},{"style":202},[1274],{"type":37,"value":1275}," imageUrl",{"type":32,"tag":105,"props":1277,"children":1278},{"style":122},[1279],{"type":37,"value":882},{"type":32,"tag":105,"props":1281,"children":1282},{"style":122},[1283],{"type":37,"value":1049},{"type":32,"tag":105,"props":1285,"children":1286},{"style":128},[1287],{"type":37,"value":1054},{"type":32,"tag":105,"props":1289,"children":1290},{"style":186},[1291],{"type":37,"value":1059},{"type":32,"tag":105,"props":1293,"children":1294},{"style":128},[1295],{"type":37,"value":513},{"type":32,"tag":105,"props":1297,"children":1298},{"style":521},[1299],{"type":37,"value":1300},"`https:\u002F\u002Fapi.figma.com\u002Fv1\u002Fimages\u002F${",{"type":32,"tag":105,"props":1302,"children":1303},{"style":202},[1304],{"type":37,"value":1073},{"type":32,"tag":105,"props":1306,"children":1307},{"style":521},[1308],{"type":37,"value":1309},"}?ids=${",{"type":32,"tag":105,"props":1311,"children":1312},{"style":128},[1313],{"type":37,"value":1314},"comp",{"type":32,"tag":105,"props":1316,"children":1317},{"style":521},[1318],{"type":37,"value":1319},".",{"type":32,"tag":105,"props":1321,"children":1322},{"style":128},[1323],{"type":37,"value":1324},"id",{"type":32,"tag":105,"props":1326,"children":1327},{"style":521},[1328],{"type":37,"value":1329},"}&format=png`",{"type":32,"tag":105,"props":1331,"children":1332},{"style":128},[1333],{"type":37,"value":1083},{"type":32,"tag":105,"props":1335,"children":1336},{"class":107,"line":556},[1337,1342,1346,1350,1354],{"type":32,"tag":105,"props":1338,"children":1339},{"style":128},[1340],{"type":37,"value":1341},"      headers: { ",{"type":32,"tag":105,"props":1343,"children":1344},{"style":521},[1345],{"type":37,"value":1096},{"type":32,"tag":105,"props":1347,"children":1348},{"style":128},[1349],{"type":37,"value":1101},{"type":32,"tag":105,"props":1351,"children":1352},{"style":202},[1353],{"type":37,"value":967},{"type":32,"tag":105,"props":1355,"children":1356},{"style":128},[1357],{"type":37,"value":1110},{"type":32,"tag":105,"props":1359,"children":1361},{"class":107,"line":1360},20,[1362],{"type":32,"tag":105,"props":1363,"children":1364},{"style":128},[1365],{"type":37,"value":1366},"    });\n",{"type":32,"tag":105,"props":1368,"children":1370},{"class":107,"line":1369},21,[1371],{"type":32,"tag":105,"props":1372,"children":1373},{"style":128},[1374],{"type":37,"value":349},{"type":32,"tag":105,"props":1376,"children":1378},{"class":107,"line":1377},22,[1379],{"type":32,"tag":105,"props":1380,"children":1381},{"style":112},[1382],{"type":37,"value":1383},"    \u002F\u002F Download e carica su Google Cloud Storage\n",{"type":32,"tag":105,"props":1385,"children":1387},{"class":107,"line":1386},23,[1388,1392,1397,1401,1405,1409,1413,1418,1423],{"type":32,"tag":105,"props":1389,"children":1390},{"style":122},[1391],{"type":37,"value":1270},{"type":32,"tag":105,"props":1393,"children":1394},{"style":202},[1395],{"type":37,"value":1396}," image",{"type":32,"tag":105,"props":1398,"children":1399},{"style":122},[1400],{"type":37,"value":882},{"type":32,"tag":105,"props":1402,"children":1403},{"style":122},[1404],{"type":37,"value":1049},{"type":32,"tag":105,"props":1406,"children":1407},{"style":128},[1408],{"type":37,"value":1054},{"type":32,"tag":105,"props":1410,"children":1411},{"style":186},[1412],{"type":37,"value":1059},{"type":32,"tag":105,"props":1414,"children":1415},{"style":128},[1416],{"type":37,"value":1417},"(imageUrl.data.images[comp.id], { responseType: ",{"type":32,"tag":105,"props":1419,"children":1420},{"style":521},[1421],{"type":37,"value":1422},"'arraybuffer'",{"type":32,"tag":105,"props":1424,"children":1425},{"style":128},[1426],{"type":37,"value":1427}," });\n",{"type":32,"tag":105,"props":1429,"children":1431},{"class":107,"line":1430},24,[1432,1437,1442,1446,1451,1455,1459,1464,1469],{"type":32,"tag":105,"props":1433,"children":1434},{"style":128},[1435],{"type":37,"value":1436},"    fs.",{"type":32,"tag":105,"props":1438,"children":1439},{"style":186},[1440],{"type":37,"value":1441},"writeFileSync",{"type":32,"tag":105,"props":1443,"children":1444},{"style":128},[1445],{"type":37,"value":513},{"type":32,"tag":105,"props":1447,"children":1448},{"style":521},[1449],{"type":37,"value":1450},"`.\u002Fexports\u002F${",{"type":32,"tag":105,"props":1452,"children":1453},{"style":128},[1454],{"type":37,"value":1314},{"type":32,"tag":105,"props":1456,"children":1457},{"style":521},[1458],{"type":37,"value":1319},{"type":32,"tag":105,"props":1460,"children":1461},{"style":128},[1462],{"type":37,"value":1463},"name",{"type":32,"tag":105,"props":1465,"children":1466},{"style":521},[1467],{"type":37,"value":1468},"}.png`",{"type":32,"tag":105,"props":1470,"children":1471},{"style":128},[1472],{"type":37,"value":1473},", image.data);\n",{"type":32,"tag":105,"props":1475,"children":1477},{"class":107,"line":1476},25,[1478],{"type":32,"tag":105,"props":1479,"children":1480},{"style":128},[1481],{"type":37,"value":1482},"  }\n",{"type":32,"tag":105,"props":1484,"children":1486},{"class":107,"line":1485},26,[1487],{"type":32,"tag":105,"props":1488,"children":1489},{"style":128},[1490],{"type":37,"value":1491},"}\n",{"type":32,"tag":105,"props":1493,"children":1495},{"class":107,"line":1494},27,[1496],{"type":32,"tag":105,"props":1497,"children":1498},{"emptyLinePlaceholder":171},[1499],{"type":37,"value":174},{"type":32,"tag":105,"props":1501,"children":1503},{"class":107,"line":1502},28,[1504,1509],{"type":32,"tag":105,"props":1505,"children":1506},{"style":186},[1507],{"type":37,"value":1508},"exportVariations",{"type":32,"tag":105,"props":1510,"children":1511},{"style":128},[1512],{"type":37,"value":1513},"();\n",{"type":32,"tag":40,"props":1515,"children":1517},{"id":1516},"scalare-il-vincente-creative-refresh-cycle",[1518],{"type":37,"value":1519},"Scalare il vincente: creative refresh cycle",{"type":32,"tag":33,"props":1521,"children":1522},{},[1523],{"type":37,"value":1524},"Una volta che un creativo vince, usarlo per sempre è sbagliato — il creative fatigue è reale. Su Meta, entro 14 giorni la frequency dello stesso creativo raggiunge 3,5+, il CTR scende del 30%+. Su Google Performance Max il fatigue è più lento (grazie alla varietà di placement), ma a 30 giorni cala l'effetto. Per questo, stabilisci un creative refresh cycle:",{"type":32,"tag":1526,"props":1527,"children":1528},"ul",{},[1529,1539,1549,1559],{"type":32,"tag":738,"props":1530,"children":1531},{},[1532,1537],{"type":32,"tag":742,"props":1533,"children":1534},{},[1535],{"type":37,"value":1536},"0-14 giorni:",{"type":37,"value":1538}," Testa una nuova variazione, trova il vincente.",{"type":32,"tag":738,"props":1540,"children":1541},{},[1542,1547],{"type":32,"tag":742,"props":1543,"children":1544},{},[1545],{"type":37,"value":1546},"14-30 giorni:",{"type":37,"value":1548}," Alza il vincente al 70% di budget, mantieni il control al 30%.",{"type":32,"tag":738,"props":1550,"children":1551},{},[1552,1557],{"type":32,"tag":742,"props":1553,"children":1554},{},[1555],{"type":37,"value":1556},"30-45 giorni:",{"type":37,"value":1558}," Testa micro-iterazioni del creativo vincente (stesso angle, immagini diverse).",{"type":32,"tag":738,"props":1560,"children":1561},{},[1562,1567],{"type":32,"tag":742,"props":1563,"children":1564},{},[1565],{"type":37,"value":1566},"45+ giorni:",{"type":37,"value":1568}," Ritira il creativo vincente, inizia un nuovo ciclo.",{"type":32,"tag":33,"props":1570,"children":1571},{},[1572],{"type":37,"value":1573},"Così la campagna non dipende mai da un singolo creativo, c'è sempre un flusso di segnali. In alcuni settori (fashion, gaming) il ciclo è più veloce — 7 giorni di refresh. Lo rilevi dal calo istantaneo di CTR: se il CTR degli ultimi 3 giorni di un creativo è del 20%+ più basso dei primi 3, il fatigue è iniziato.",{"type":32,"tag":33,"props":1575,"children":1576},{},[1577],{"type":37,"value":1578},"Trasformare creative operations in un sistema disciplinato significa alimentare il carburante fondamentale delle campagne algoritmiche. Convertire la produzione creativa in sprint settimanali, costruire l'architettura di test per cohort, misurare l'incrementalità, accelerare con l'automazione — questi quattro pilastri alimentano continuamente il materiale che l'algoritmo ha bisogno per imparare. Il risultato: il bidding automatico trova la distribuzione ottimale dalla 2ª settimana, il CPA scende, la scala diventa possibile.",{"type":32,"tag":1580,"props":1581,"children":1582},"style",{},[1583],{"type":37,"value":1584},"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":144,"depth":144,"links":1586},[1587,1588,1589,1590,1591,1592],{"id":42,"depth":118,"text":45},{"id":74,"depth":118,"text":77},{"id":565,"depth":118,"text":568},{"id":719,"depth":118,"text":722},{"id":775,"depth":118,"text":778},{"id":1516,"depth":118,"text":1519},"markdown","content:it:marketing:creative-operations-bidding-algoritmi-per-variations.md","content","it\u002Fmarketing\u002Fcreative-operations-bidding-algoritmi-per-variations.md","it\u002Fmarketing\u002Fcreative-operations-bidding-algoritmi-per-variations","md",1778940272799]