1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[11570],{68872:(e,s,r)=>{r.d(s,{d:()=>d});var t=r(47631),n=r(64122),o=r(75581);let a="https://www.newformai.com/blog/how-many-ads-should-you-be-making";function d({panel:e}){return(0,t.jsxs)(o.Nt,{className:"mt-4",children:[(0,t.jsxs)(o.R6,{className:"flex items-center gap-1.5 text-sm text-muted-foreground hover:text-foreground transition-colors group",children:[(0,t.jsx)(n.A,{className:"h-4 w-4 transition-transform group-[:is([data-open],[data-popup-open],[data-panel-open])]:rotate-180"}),"How we calculated this"]}),(0,t.jsxs)(o.Ke,{className:"mt-3 rounded-lg border bg-muted/30 p-4 text-sm text-muted-foreground space-y-2",children:["fatigue"===e&&(0,t.jsx)(i,{}),"production"===e&&(0,t.jsx)(l,{}),"cost"===e&&(0,t.jsx)(c,{})]})]})}function i(){return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("p",{children:[(0,t.jsx)("strong",{children:"Weekly fatigue rate"})," uses the spend-pressure model from"," ",(0,t.jsx)("a",{href:a,target:"_blank",rel:"noopener noreferrer",className:"underline hover:text-foreground",children:"Newform AI's cross-portfolio analysis"}),": ",(0,t.jsx)("code",{className:"text-xs bg-muted px-1 py-0.5 rounded",children:"1 - exp(-0.03 \xd7 weekly_spend / (CPM/1000 \xd7 audience))"}),". This approximates how quickly your audience becomes saturated at your spend level."]}),(0,t.jsxs)("p",{children:[(0,t.jsx)("strong",{children:"Conversion decay"})," follows"," ",(0,t.jsx)("a",{href:"https://medium.com/@AnalyticsAtMeta/creative-fatigue-how-advertisers-can-improve-performance-by-managing-repeated-exposures-830f2e055904",target:"_blank",rel:"noopener noreferrer",className:"underline hover:text-foreground",children:"Meta's published research"})," ","on creative fatigue (May 2023), validated across ~26,000 ad sets. The formula ",(0,t.jsx)("code",{className:"text-xs bg-muted px-1 py-0.5 rounded",children:"(N+1)^(-0.43)"}),' models how conversion likelihood drops with each repeated exposure. There is no "wear-in" period â every repeat view costs more for direct response ads.']}),(0,t.jsx)("p",{className:"text-xs",children:"Wasted spend is a conservative estimate assuming fatigued ads run at reduced efficiency rather than being paused. Actual impact depends on your campaign optimization strategy."})]})}function l(){return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("p",{children:[(0,t.jsx)("strong",{children:"Active winners"})," are capped at 15 based on"," ",(0,t.jsx)("a",{href:a,target:"_blank",rel:"noopener noreferrer",className:"underline hover:text-foreground",children:"Newform AI's cross-portfolio data"}),", which found ~15 assets hold 2%+ spend share at any given time."]}),(0,t.jsxs)("p",{children:[(0,t.jsx)("strong",{children:"Hit rate"})," (what % of ads become winners) averages 8-9% across portfolios, with competitive accounts at ~2% and easier ones at ~15%. Only ~50% of testing winners actually scale at production budgets (graduation rate)."]}),(0,t.jsxs)("p",{children:["The formula:"," ",(0,t.jsx)("code",{className:"text-xs bg-muted px-1 py-0.5 rounded",children:"ceil(winners_needed / (hit_rate / 100) / 0.5)"})," ","accounts for both the hit rate and the graduation rate."]}),(0,t.jsx)("p",{className:"text-xs",children:"Industry benchmark: only 2% of creatives capture 43% of ad spend (AppsFlyer). Volume is required to find the rare winners."})]})}function c(){return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("p",{children:[(0,t.jsx)("strong",{children:"DIY cost"})," = recommended volume \xd7 minutes per variation \xf7 60 \xd7 hourly rate."]}),(0,t.jsxs)("p",{children:[(0,t.jsx)("strong",{children:"Freelance"})," uses $75/variation (midpoint of the $50â100 industry range from Upwork/Fiverr data)."]}),(0,t.jsxs)("p",{children:[(0,t.jsx)("strong",{children:"In-house editor"})," assumes $5,000/mo salary midpoint for a full-time video editor."]}),(0,t.jsxs)("p",{children:[(0,t.jsx)("strong",{children:"Sovran"})," pricing is based on current plans. The recommended plan is auto-selected based on your production volume needs."]}),(0,t.jsx)("p",{className:"text-xs",children:"All costs are estimates. Freelance rates and in-house salaries vary by market and experience level. Sovran pricing as of March 2026."})]})}},89189:(e,s,r)=>{r.r(s),r.d(s,{ProductionGapPanel:()=>a});
1var t=r(47631),n=r(62293),o=r(68872);function a({volume:e,hitRate:s,monthlyDecay:r,targetVolume:d,targetMonthlySpend:i}){let l=(100*r).toFixed(0),c=Math.ceil(1/(s/100)/.5),u=null!=d&&null!=i,m=u?d.totalAdsToProduction-e.totalAdsToProduction:0;return(0,t.jsxs)(n.Zp,{children:[(0,t.jsx)(n.aR,{children:(0,t.jsxs)(n.ZB,{className:"text-xl sm:text-2xl",children:["You Need"," ",(0,t.jsxs)("span",{className:"text-primary",children:[e.totalAdsToProduction," New Creatives"]})," ","Per Month",u&&m>0&&(0,t.jsxs)("span",{className:"text-muted-foreground font-normal",children:[","," ",(0,t.jsxs)("span",{className:"text-destructive font-semibold",children:[d.totalAdsToProduction," to Scale"]})]})]})}),(0,t.jsxs)(n.Wu,{className:"space-y-6",children:[(0,t.jsxs)("div",{className:"grid gap-4 sm:grid-cols-3",children:[(0,t.jsxs)("div",{className:"rounded-lg border bg-muted/30 p-4",children:[(0,t.jsx)("p",{className:"text-2xl font-bold tabular-nums text-primary",children:e.totalAdsToProduction}),(0,t.jsx)("p",{className:"mt-1 text-sm text-muted-foreground",children:"new creatives/month to maintain performance"})]}),(0,t.jsxs)("div",{className:"rounded-lg border bg-muted/30 p-4",children:[(0,t.jsx)("p",{className:"text-2xl font-bold tabular-nums",children:e.winnersNeeded}),(0,t.jsx)("p",{className:"mt-1 text-sm text-muted-foreground",children:"winners/month needed to replace fatigued top performers"})]}),(0,t.jsxs)("div",{className:"rounded-lg border bg-muted/30 p-4",children:[(0,t.jsxs)("p",{className:"text-2xl font-bold tabular-nums",children:[s,"%"]}),(0,t.jsxs)("p",{className:"mt-1 text-sm text-muted-foreground",children:["hit rate â at this rate, produce ",c," ads to find 1 winner"]})]})]}),u&&m>0&&(0,t.jsx)("div",{className:"rounded-lg border border-amber-200 bg-amber-50 p-4 dark:border-amber-900 dark:bg-amber-950/30",children:(0,t.jsxs)("p",{className:"text-sm text-foreground",children:[(0,t.jsxs)("strong",{children:["To scale to $",i.toLocaleString(),"/mo"]}),", you'll need"," ",(0,t.jsxs)("strong",{className:"text-destructive",children:[d.totalAdsToProduction," creatives/month"]})," ","â that's"," ",(0,t.jsxs)("strong",{children:["+",m," more"]})," than today (",e.totalAdsToProduction," â"," ",d.totalAdsToProduction,")."]})}),(0,t.jsxs)("div",{className:"rounded-lg border p-4 space-y-2 text-sm",children:[(0,t.jsx)("p",{children:(0,t.jsxs)("strong",{children:["How we get to ",e.totalAdsToProduction,":"]})}),(0,t.jsxs)("ul",{className:"list-disc list-inside space-y-1 text-muted-foreground",children:[(0,t.jsxs)("li",{children:["Your ",e.activeWinners," active winners lose ~",l,"% effectiveness each month"]}),(0,t.jsxs)("li",{children:["That means"," ",(0,t.jsxs)("strong",{className:"text-foreground",children:[e.winnersNeeded," winner",1!==e.winnersNeeded?"s":""]})," ","need replacing each month"]}),(0,t.jsxs)("li",{children:["At a ",s,"% hit rate, only half of testing winners actually scale"]}),(0,t.jsxs)("li",{children:["So you need to produce"," ",(0,t.jsxs)("strong",{className:"text-foreground",children:[e.totalAdsToProduction," total ads"]})," ","to find ",e.winnersNeeded," true winner",1!==e.winnersNeeded?"s":""]})]})]}),(0,t.jsxs)("div",{className:"rounded-lg bg-muted/50 border-l-4 border-primary px-4 py-3 text-sm text-muted-foreground",children:["Industry data shows only ",(0,t.jsx)("strong",{children:"2% of creatives"})," get"," ",(0,t.jsx)("strong",{children:"43% of spend"})," (AppsFlyer). At your hit rate of"," ",s,"%, you need to produce ",c," ads to find 1 winner."]}),(0,t.jsx)(o.d,{panel:"production"})]})]})}}}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.