Black Friday series

Meta Ads Budget for Black Friday: How to Decide

Key takeaways

  • Define the maximum CPA per attributed sale before spending: max CPA = contribution margin per sale × the share the client is willing to give to media.
  • Split the budget into validation (the week before) and expansion (the event), and release the second only with confirmed sales and known attribution coverage.
  • Compare November's cost with the account's own previous November; the auction gets more competitive and there is no reliable public percentage.
  • Cohort and cash are different readings: leads from the period can buy after the period; do not pause on yesterday's CPA if the cycle takes days.
  • Service capacity and stock set the budget ceiling, not the cost per conversation.

How does a Meta Ads budget work on Black Friday for WhatsApp sales?

The budget of a WhatsApp campaign works differently from a website campaign because Meta optimizes for conversations started, not for sales. A campaign with an engagement or messages objective delivers conversations; the sale happens later, in the conversation, and only gets back to Meta if you record it and send it.

That changes the logic of scaling. On a website, the pixel sends Purchase back and the algorithm learns. On WhatsApp, scaling on cost per conversation means scaling the metric Meta already optimizes on its own, without knowing whether the conversation is worth anything. The mechanism is the reason Meta optimizes for conversations and not for sales. Two terms:

  • Attributed CPA: spend divided by the sales whose origin (ad, ad set or campaign) was proven. Sales without origin are left out.
  • Attribution coverage: sales with proven origin divided by total sales. It tells you how much of the result the report explains.

What is the maximum CPA per sale the budget can accept?

The maximum CPA is the contribution margin per sale multiplied by the share the client is willing to give to media. Without that number there is no criterion to scale or pause; there is opinion. Hypothetical example:

  1. Black Friday selling price: R$ 240 (reference price from the last 60 days: R$ 300, following the Procon-SP (2025) recommendation to avoid "half of double").
  2. Product cost + shipping + payment fee: R$ 150. Contribution margin: 240 − 150 = R$ 90.
  3. The client accepts giving up to 50% of the margin to media. Max CPA: 90 × 0.5 = R$ 45.
  4. Historical conversation-to-sale conversion: 8%. Maximum cost per conversation: 45 × 0.08 = R$ 3.60.
  5. Cost per conversation during validation: R$ 2.80 with 8% conversion. Projected CPA: 2.80 ÷ 0.08 = R$ 35, below the ceiling. There is room to scale.
  6. If conversion drops to 5% as you scale, CPA rises to 2.80 ÷ 0.05 = R$ 56, above the ceiling, with the same cost per conversation.

Step 6 is what sinks most campaigns: the cost per conversation does not move, the conversion does, and only those who record sales with origin can see it. The margin math is in discounting without destroying margin.

How do you split the budget between validation and expansion?

Split it into phases with dates and written criteria to move on. Validation answers "does the path work?"; expansion answers "how far can it go?".

PhaseWhenBudget (hypothetical reference)Question it answersCriterion to move on
Validation7 to 14 days before15% to 25%Does the ad generate conversations, and do conversations generate recorded sales with origin?Attributed CPA ≤ ceiling and coverage ≥ 70%
ExpansionBlack Week50% to 60%Does CPA hold at double the volume?CPA ≤ ceiling for 2 days and queue within SLA
ReserveFriday and the weekend15% to 35%Where does the last budget earn the most?Only on the ad set with the best attributed CPA and stock

Decision rules:

  • If validation does not reach 70% attribution coverage (hypothetical), fix tracking before releasing expansion: scaling with poor attribution is scaling without knowing what. The article on tracking from the ad to WhatsApp lists what to check.
  • If attributed CPA is below the ceiling but the WhatsApp queue exceeds the SLA, expansion stops. More budget becomes more queue, not more sales.
  • If advertised stock drops below 20% (hypothetical), redirect the budget or pause; under article 30 of the CDC (Brazil's Consumer Protection Code) the advertised offer is binding.

Common mistake: saving the whole budget for Friday. Confi Neotrust (2025) recorded revenue growing by double digits in the first 48 hours of the event. An account that only spends on Friday enters the most expensive auction with no conversion history.

How do you scale without losing control of CPA?

Scale in steps with an observation window, never in a jump. A step is a budget increase followed by a fixed reading period.

  1. Raise the ad set's budget by a fixed step (20% to 30%, hypothetical) at the start of the day.
  2. Wait for the observation window set in the brief (24 hours for a fast decision; 48 to 72 hours for a long cycle).
  3. Read the attributed CPA by cohort: sales from the leads that came in that day, on any date.
  4. If the cohort CPA stays within the ceiling and the queue within the SLA, go up another step. If not, hold the budget and investigate conversion before cutting.

On media cost: the auction gets more competitive in November, and the right comparison is the account's own history from the previous November. There is no reliable public CPM figure for Brazil in that period. Without history, validation is the history.

Common mistake: doubling the budget after every win. A big step brings in a colder audience; conversion drops before the cost per conversation rises.

When should you pause a Black Friday campaign?

Pause when the rule written in the brief fires, not when the day's number scares you. The rule combines a sales metric, an observation window and capacity. One distinction prevents wrong pauses:

  • Sales by cash (what came in during the period): useful for finance, terrible for media decisions, because it mixes leads from different days.
  • Sales by cohort (what the leads from that day bought, on any date): this is the metric for deciding a pause, because it ties the spend to its result.

If the decision cycle is 3 days, yesterday's cash CPA compares yesterday's spend with sales from leads who came in the day before. Pausing on that number is pausing for the wrong reason. A CRM with attribution, such as RASTRO, shows spend and ROAS per campaign, ad set and ad and separates what has no origin as "unattributed", which lets you read the cohort without splitting.

Triggers that make sense (hypothetical): cohort CPA above 1.5× the ceiling for 2 consecutive windows; WhatsApp queue above the SLA for more than 1 hour; stock below the minimum you can advertise.

Which budget mistakes cost the most on Black Friday?

The most expensive mistakes spend on the wrong metric or add up what cannot be added:

  1. Scaling on CPL. CPL measures conversations, and Meta already optimizes for conversations. Scaling on CPL is scaling interest, not sales.
  2. Calculating ROAS on all sales. ROAS = attributed revenue ÷ spend. Dividing total revenue (including unattributed) by spend credits the ad with what it did not prove.
  3. Adding up currencies. A client selling in reais and in dollars has two ROAS figures. Add them after converting, or do not add them.
  4. Budgeting without capacity. The Harvard Business Review (2011) showed that companies responding within 1 hour are about 7 times more likely to qualify the lead. Budget that creates a queue creates cold leads.

What should you measure to decide budget, with formula and range?

Measure five numbers, each with a formula and a range:

  • Cost per conversation = spend ÷ conversations started. Good: up to the ceiling derived from the max CPA (R$ 3.60 in the example). Bad: above the ceiling with no improvement in conversion.
  • Attributed CPA (cohort) = the day's spend ÷ sales from that day's leads. Good: ≤ max CPA. Bad: > 1.5× max CPA for two windows.
  • Attribution coverage = sales with origin ÷ total sales. Good: ≥ 70% (hypothetical). Bad: < 50%; below that, the per-ad report cannot support a decision.
  • Attributed ROAS = revenue from sales with origin ÷ spend. Always report it next to coverage.
  • First response time = median between the first message and the reply. Above the SLA, the budget is buying a queue.

How to present these numbers is in a report that helps the client decide.

Action plan: what to do this week

Turn the article's rules into dates and owners.

WhenActionOwnerDone when
TodayCalculate the contribution margin per sale and the share accepted for mediaClient/owner and media buyerMax CPA and max cost per conversation written into the brief
By FridayWrite phases, step size, observation window, pause triggers, and loss limit into the briefMedia buyerBrief approved by the client
D-14Turn on the validation budget, recording each confirmed sale on the originating leadMedia buyer and CRM ownerFirst sales in the CRM with origin, value, and currency
D-7Calculate attributed CPA by cohort and attribution coverage for the validationMedia buyerCPA ≤ ceiling and coverage ≥ 70% (hypothetical), or expansion postponed
D-3Confirm the first-response SLA and the minimum advertisable stockClient/owner and customer serviceBoth limits in the brief
Black WeekRaise one step per day only with cohort CPA and queue within limitsMedia buyerEach step logged with the cohort reading before the next
D+3Read sales by cohort for the event's leadsMedia buyerReport with attributed ROAS, coverage, and "unattributed" separately

Frequently asked questions

Sources

How much should I spend on Meta Ads for Black Friday?

Enough to buy the conversations the team can handle within the max CPA. Calculate: desired sales ÷ historical conversion = conversations; conversations × expected cost per conversation = budget. Then check whether the team absorbs that volume per hour. If it does not, the right budget is smaller.

Should I pause a campaign with no sales in the first 24 hours?

It depends on the decision cycle. If the product closes in hours and spend has already passed the max CPA, pause. If it closes in days, 24 hours is early: read by cohort and wait for the observation window agreed in the brief before cutting.

Does a low cost per conversation mean I can scale?

No. A low cost per conversation shows that Meta is delivering what it optimizes for. Only scale when the cohort's CPA per attributed sale is within the ceiling and the WhatsApp queue within the SLA. Cheap conversations with low conversion mean a high CPA.

Meta's ROAS and the CRM's ROAS do not match. Which one do I use?

Use both, with a caption. Meta attributes within its own window and only sees what it received through the Conversions API; the CRM records the sale with origin at payment. Report the CRM's attributed ROAS as the basis for decisions and explain the difference in window and coverage.