A 4.0 ROAS in Ads Manager can rise while your store sells exactly the same amount. I used to report that number as revenue divided by spend. I was wrong.
Say you sell an $80 skincare set and spend $20,000 on Meta in October. Ads Manager reports $80,000 in purchase value: 4.0 ROAS. That does not mean Meta produced $80,000 that landed in your bank account. It means Meta took credit for purchases under a chosen attribution window, using the signals your Pixel and Conversions API sent and, in part, modeled conversions. Change the counting rules or the quality of those signals, and the number can move without a matching change in sales.
Keep the $80,000 in your head as a claim, not a deposit. We will build that claim one layer at a time. Then we can judge an agency promising to “improve ROAS” by something more useful than the size of the promise.
First, Meta needs a purchase signal
A purchase appears in Meta’s reporting only if Meta receives a signal that it happened. Two pipes can carry it: the Pixel watches the browser, while the Conversions API (CAPI) sends the event from your server. The recommended setup uses both, deduplicated by a shared event_id. Pixel-only setups capture around 70 to 80% of true conversions; Pixel plus CAPI with hashed customer data captures 90 to 98%. Meta reported 17.8% lower cost per result for the combined setup versus Pixel-only in April 2026.
The mechanism matters more than the headline. A more complete signal lets the delivery system learn from purchases it previously missed. It can also lift reported ROAS simply because purchases that were already happening become visible. Those are different reasons for the number to rise, and a report alone does not tell you which one did the work.
Now picture one $80 skincare order. The Pixel sends a Purchase event. CAPI sends the same Purchase event. Meta counts it once only if event_name and event_id match exactly. If the IDs do not line up, that one order can arrive twice in reporting. I have seen this bug often in audits: someone adds CAPI through an app, the Pixel keeps firing, and nobody checks whether the two events identify the same checkout. Purchases and ROAS inflate while Advantage+ learns from the bad count.
The practical check is boring. Open Events Manager, look for browser and server Purchase events for the same order with different IDs, and fix the integration so they share an event_id. Do that before debating creative. A 4.0 ROAS built on duplicate purchases is not performance. It is a tracking error with a media budget attached.
Next, decide which ad gets credit
Once Meta knows about a purchase, it has another question to answer: does an ad get credit for it? Meta’s default attribution setting is 7-day click or 1-day view. A purchase qualifies if it happens within seven days of an ad click, or within one day of a view without a click. The default allowed a 28-day click window before 2021; after iOS 14, it moved to 7-day click plus 1-day view. Video adds a 1-day engaged-view option for someone who watched at least 10 seconds and converted within a day without clicking. On January 12, 2026, Meta’s Ads Insights API stopped returning 7-day view and 28-day view.
A wider window gives an ad more opportunities to claim a purchase. It does not, by itself, create another purchase. In one worked comparison, removing 1-day view takes ROAS from 3.2x to 2.8x on the same ad set. In another, 1-day click shows 50 purchases and 2.5x ROAS, while 7-day click shows 85 purchases and 4.25x on identical spend.
Apply that logic to our skincare store. Its $80,000 in reported value under 7-day click plus 1-day view might show as $50,000 under 1-day click only: 4.0 ROAS becomes 2.5. The store has not lost $30,000 in sales because someone changed a reporting setting. Meta has lost the right to claim those purchases under the narrower rule. Never compare two ROAS figures without checking that they use the same window.
Then account for purchases Meta cannot observe directly
A window can only sort purchases the system knows or estimates happened. After iOS 14, some buyers became harder for Meta to observe: they opt out of tracking, the Pixel may not fire, and CAPI may lack the browser signal needed to match an event. Meta uses modeled conversions to estimate part of what it cannot see directly. Less observed signal means more reliance on inference, and inferred purchases can contribute to the $80,000 reported for our skincare store.
That is not automatically a trick. Reporting still has to work when a phone does not provide a complete trail. But an estimate can move with the model rather than with customer purchases. If an agency shows a ROAS jump after changing tracking, ask what changed in the observed purchase signals and what changed in the reported total. Do not treat the difference as new revenue without checking.
One older complication has gone away. The 8-event Aggregated Event Measurement limit, under which only the highest-priority event fired per opted-out iOS session, was removed in June 2025. Eligible events now aggregate per domain, and the manual prioritization tab is gone from Events Manager. I used to spend late nights debugging that particular kind of undercounting. Its removal does not remove the larger problem: thin signals leave more work to estimation. A brand with 30 purchases a week has a noisier basis for that estimate than a store with 3,000.
The question is not whether modeling exists. It is whether a change in the model is being sold to you as a change in sales.
Finally, the reported value feeds the next bids
Our $80,000 does not just sit in a report. Meta’s delivery system uses conversion signals to predict the value of auctions and bid accordingly. The purchases you count today help shape where the budget goes next week. That is why the event_id problem is more than untidy bookkeeping. If duplicate orders make a placement look like it produced more buyers, the bidder can put more money behind the wrong signal.
Minimum ROAS bidding makes the relationship especially clear. Set a floor of 3.0, and Meta bids for auctions it predicts will meet that return. Unlike Highest Value, this approach does not promise to spend your full budget. Raise the floor too far and fewer auctions qualify. Spend can fall, while ROAS on the remaining spend looks better because the bidder has stopped reaching buyers it considers less certain.
So a higher target can produce a prettier ratio and less total revenue. It also needs reliable purchase-value tracking and enough verified history to make those predictions useful. On a thin or broken CAPI setup, turning up the target does not repair the input. Check spend and total contribution alongside ROAS before calling a higher floor a win.
Five ways the report improves before the business does
Here is where an agency pitch gets slippery. I keep this list in mind because I used to judge some of my own work by the report before I looked hard enough at what produced it. These moves are not all the same kind of mistake, but each can make the on-screen ratio look better without proving that your store earned more:
- Widen the attribution window. In the worked comparison above, moving from 1-day click to 7-day click claims 35 more purchases on identical spend. ROAS moves from 2.5x to 4.25x without the window change creating a sale.
- Add view-through credit. Buyers who saw an ad without clicking can enter the report. Some views may have mattered; some buyers would have purchased anyway. The setting alone cannot separate them.
- Break deduplication. If Pixel and CAPI send the same order without matching event_ids, duplicate Purchase events can inflate the count until someone audits Events Manager.
- Choke delivery with a high Minimum ROAS floor. Spend falls, the bidder sticks to safer-looking auctions, and ROAS on the remainder rises while total contribution can shrink.
- Shift budget toward existing demand. Retargeting past visitors and reaching brand searchers can lift attributed ROAS by concentrating spend on people already close to buying. A higher ratio does not tell you how many purchases that spend caused.
These are reasons to ask how ROAS improved, not reasons to ignore it. If the answer is “we changed the window,” you have learned about reporting. If the answer is “we fixed the signal,” you still need to find out what happened to the business. Only a like-for-like comparison can start that conversation.
Check the store total, then check the margin
Meta, Google and your email tool can all claim credit for the same order. Your store counts that order once. That is why the next check lives outside Ads Manager: blended ROAS is total store revenue divided by total paid-media spend. MER uses total store revenue divided by your defined total marketing spend.
Take a separate worked example. A store earns $120,000 in revenue on $30,000 in media spend: 4.0x blended ROAS. Its all-in marketing spend is $40,000, so MER is 3.0x. Meta alone claims $90,000 on $20,000 of its spend, or 4.5x platform ROAS. The numbers answer different questions. Meta reports purchases it can claim under its rules. Blended ROAS and MER put the store’s revenue against broader spending totals. If Meta ROAS rises from 3.0 to 4.0 while blended ROAS stays flat, the platform report has improved; a business gain has not yet been shown.
Even blended revenue needs margin math. Break-even MER equals one divided by contribution margin: at a 40% margin, that is 2.5x; at 25%, it is 4.0x. Typical direct-attribution ranges run 4 to 8x for Google Shopping and 2 to 4x for Meta and TikTok. None makes a universal 4.0x target useful without the margin context.
Blended reporting has a limit, too. It counts store revenue once, but it cannot establish whether an ad caused a particular purchase. In a geo-holdout example, 4.2x platform ROAS can look closer to 1.8x in true incremental lift because some attributed sales would have happened anyway. I would rather judge an agency on blended ROAS and MER moving with profit than celebrate Meta ROAS on its own. Count the sales once, check what they cost, and do not confuse credit with cause.
Put the model to work on an agency proposal
Before you sign a promise of better ROAS, ask four questions in order:
- What attribution window will you report, and will you keep it fixed? Without that, a before-and-after comparison tells you little.
- Are Pixel and CAPI deduplicated by matching event_id? Ask to see Events Manager, not just a slide saying tracking is “dialed in.”
- Will you report blended ROAS and MER beside Meta ROAS, with my margin math? A platform ratio should not be the only number on the page.
- Could a higher ROAS target cut spend and total contribution? Ask what happens to the dollars, not only the ratio.
An agency that answers those questions specifically gives you a way to judge its work. One that answers only with “creative testing” and “scaling winners” has skipped the counting system that defines its promise. I also prefer a setup where the fee does not rise with spend. With around-the-clock management for one flat fee, groas avoids the percentage-of-budget incentive. I would still audit its numbers. A sensible fee does not make a reporting definition self-explanatory.
Now let a proposal land tomorrow: take our $20,000-a-month skincare account from 2.8x to 4.0x ROAS in 60 days. Start at the first principle. At $20,000 in spend, those ratios represent different amounts of attributed purchase value, not a guaranteed increase in store revenue. Ask whether the starting 2.8x and promised 4.0x use the same attribution window. If they do not, the worked window comparisons show how much of a jump can come from counting more purchases rather than making more sales.
Next, open Events Manager. If Pixel and CAPI disagree about event_ids, fix the purchase signal before trusting either figure. Then inspect the bidding plan: will a higher Minimum ROAS floor leave budget unspent? Finally, put total store revenue, paid-media spend, marketing spend and margin beside the Meta report. If the plan mainly shifts budget toward people already close to buying, the platform may claim more of the store’s existing sales.
Meta can still help grow this business. But the 4.0 worth paying for is one achieved under unchanged counting rules, alongside stronger blended results that clear the store’s margin requirement. Demand that version of the promise. Most ROAS pitches get quiet. The few that survive are worth hearing out.

