A Meta ads manager promising better ROAS before checking your tracking is offering to improve a broken thermometer. Reported ROAS is purchase value divided by spend; the purchase value and the credit assigned to Meta depend on your pixel, Conversions API, and attribution settings. I have opened accounts showing 4x that fell under 2x after we removed duplicate purchases, stripped out tax and shipping, and separated click sales from view-through credit. Work through these 19 checks in Events Manager, Ads Manager, and your store backend before judging creative or paying someone to scale it. Allow about 30 minutes for the first pass. If you fail three or more checks, fix measurement before you trust the ROAS number.

A. Confirm that Purchase reaches Meta once

  1. Pixel fires on Purchase, once. In Events Manager > Data Sources > Test Events, place a test order and follow it through the thank-you page. Fail if no Purchase appears, or if one order produces two browser Purchase events. Use the order ID to check what happened; a rising event count alone cannot tell you whether Meta received distinct orders or copies of the same one. Start here because value and attribution checks cannot rescue a missing or doubled purchase signal.

  2. Conversions API is connected and live. In Events Manager > Settings > Conversions API, look for active server events and check when the last one arrived. Fail if the last event is more than three days old or if every recent Purchase came from the browser alone. A connection marked as installed is not the same as one sending events. If server events stopped after a store or app change, record that date before you compare this week’s ROAS with last week’s.

  3. Browser and server Purchases deduplicate. Check Purchase > Deduplication % and inspect the event IDs on a test order. The Pixel eventID and Conversions API event_id need matching event names and IDs for Meta to recognize the two reports as one purchase. Fail on a potential-duplicates warning or deduplication below about 80%. Do not fix this by switching off a working event source without checking why the IDs differ.

  4. Purchase event match quality is reviewed. In Events Manager > Overview > Event Match Quality, inspect the 0-to-10 score for Purchase and the parameters sent with it. A practitioner target is 8.8 to 9.3; a score under 7, or missing email and fbc inputs, calls for investigation. Match quality is not a ROAS target. It tells you whether Meta has enough information to connect a received event to an ad interaction, so check the inputs rather than celebrating the score.

  5. Domain and Purchase-event configuration are checked. In Business Settings > Brand Safety > Domains, confirm the store domain is verified; then inspect the relevant event configuration in Events Manager. Fail if the domain is unverified or Purchase is missing from the setup used for the store’s campaigns. Check the domain that receives the order, not merely the one in the ad URL. A checkout that crosses domains is easy to miss when someone inspects only the landing page.

B. Check the dollars attached to each Purchase

  1. Purchase value uses a documented tax-and-shipping definition. Compare the event value for a test order in Events Manager > Overview > Event Details with that order in Shopify or WooCommerce. Fail if Meta shows a $120 order while the store shows about $89 after tax and shipping and nobody can say which figure the report uses. Either definition can be applied consistently; silently switching between them makes two ROAS reports look comparable when they are not. Write the definition beside the metric.

  2. Currency matches the store. Compare the currency code on Purchase events with the storefront’s currency and check any additional pixels feeding the report. Fail if a GBP or EUR store sends values labelled USD, or if multiple currencies enter the same comparison without a stated conversion method. The number beside an order is not useful until you know which currency it represents. Check this before investigating a value gap that may be a labelling problem rather than a sudden change in sales.

  3. Refunds and cancellations are accounted for. Compare store orders with refund-adjusted sales for the period, and state whether the Meta report still includes the original Purchases. Fail if the store nets out refunds while the ROAS report treats every initial order as retained revenue. That difference can explain a 10 to 20% gap without a single bad ad. Do not assume a refunded store order automatically disappears from the Purchase count in a historical Ads Manager report.

  4. Discounted and free orders are inspected. Check 100% discount codes, samples, and zero-value checkouts against the Purchase events they send. Fail if an order bought for nothing sends its full list price as purchase value. A free order reported at $0 does not, by itself, lower value-based ROAS; it can still inflate purchase counts and mislead anyone judging cost per purchase. Separate that count problem from the revenue problem before changing campaign targets.

C. Find out which sales Meta claims

  1. Every report states its attribution window. In Ads Manager > Columns > Compare Attribution Settings, compare the same spend under the windows available to the campaign. One illustration shows $500 in spend yielding 18 conversions and 2.88x on 1-day click, versus 32 conversions and 5.12x on 7-day click plus 1-day view. Fail if a manager quotes 5.1x without naming the window. Changing the window changes the ruler, not the ads; put it next to every ROAS figure.

  2. View-through share is known. Compare 1-day view with the click-based attribution figures in Ads Manager. Fail if more than 30% of reported Purchases are view-only and the manager presents all of them as sales the ads generated. A view can earn platform credit without proving it created demand. This is the gap behind Meta reporting 4x while Shopify shows 1.8x: label the credit before arguing over the headline number.

  3. Returning-customer share is known. Compare your CRM or post-purchase survey with Meta-reported Purchases, and isolate new customers where the business goal calls for acquisition. Fail if repeat buyers sit inside a prospecting ROAS figure with no split. Repeat revenue is real revenue; the mistake is paying to acquire new customers and then using an unsplit total to judge whether that job got done. Keep the customer definition beside the campaign goal.

  4. Advantage+ spend on existing customers is visible. In Ads Manager > Breakdown > Audience Segments, check spend and conversions for New, Engaged, and Existing audiences. Fail if a campaign described as prospecting has no segment split. One Advantage+ test found 35.4% of spend going to engaged plus existing audiences. That is a reason to inspect your account, not a percentage to assume applies to it. Ask how much of its ROAS came from people already close to buying.

D. Reconcile the report with the store

  1. Meta-reported revenue is compared with store revenue weekly. Compare Ads Manager purchase conversion value for seven full days with store sales for the corresponding order dates, using the value definition from check 6. Wait 48 to 72 hours before reading the week: Meta can credit an interaction date while the store records an order date, and time zones can differ. Fail if Meta sits 40% or more above the store for two weeks and nobody investigates. A gap is a prompt to inspect credit, dates, and values, not proof that one system alone is broken.

  2. Blended ROAS is tracked beside platform ROAS. Divide total store revenue by total ad spend for the week, then put that figure next to Meta’s reported ROAS. This blended ROAS, also called MER, is a cross-channel check, not a way to assign every sale to Meta. Fail if Meta reports 4x while blended ROAS sits under 2x and nobody can explain the difference. Include all ad spend in the denominator; leaving out another channel defeats the point of a blended number.

  3. Break-even ROAS is calculated from margin. Start with one divided by gross margin: at 40% margin the baseline is 2.5x, while at 20% it is 5x, before other costs. Fail if a manager celebrates 3x for a store with 20% margin. ROAS can also be read as average order value divided by CPA. Either way, a platform number below the store’s break-even point is not a win because the chart points up.

Score the first 16 before judging performance:

  • 0–2 fails: Fix them, document what changed, then use the report with its remaining noise in mind.
  • 3–5 fails: Treat ROAS as directional. Do not scale spend, kill creative, or claim a win from it yet.
  • 6 or more fails: Treat the headline number as decorative. Repair arrival, then value, then attribution; reconcile again after the definitions hold steady for a full week.

Send a prospective manager these four screenshots before accepting a ROAS target:

  • Events Manager > Overview: seven days of Purchase count, value, deduplication %, and Event Match Quality.
  • Ads Manager: Compare Attribution Settings, plus the 1-day view and click-based conversion figures.
  • Store backend: net sales for the corresponding order dates, after refunds, with tax and shipping shown separately.
  • Audience Segments: spend and conversions for New, Engaged, and Existing in any Advantage+ campaign.

E. Check what changed before you judge the manager

  1. Tracking changes have dates. Ask for a written record of pixel edits, Conversions API changes, new domains, attribution switches, and event-configuration updates. Fail if ROAS jumps in March and nobody can say what changed on March 4. Compare performance on either side of a change only after you have named it. Otherwise a deduplication repair can look like falling demand, and an attribution switch can look like a creative win.

  2. The optimization event matches the business goal. In Ads Manager, check Ad Set > Optimization Event against the Purchase ROAS being reported. Fail if the campaign optimizes for ViewContent, AddToCart, or InitiateCheckout while its manager judges it solely on purchases. Those events can be useful, but they are not purchases. At groas, Meta Ads management runs audiences, budgets, and ads around the clock; that execution is only useful when the signal and the stated goal agree. Verify the signal before paying anyone to act on it faster.

  3. Every ROAS report shows a dated change log beside the chart. Check for tracking fixes, budget moves, audience changes, and creative launches next to the numbers, not buried in a separate conversation. Fail if a clean upward chart hides when deduplication was repaired or view-through credit was removed. This is the check most often skipped: without it, a lower reported ROAS can be mistaken for worse ads, prompting a manager to kill a winner or move budget for the wrong reason. At $20k a month in spend, that mistake costs twice: once for the false read and again for the decision it causes. Demand the log before you apply for the free trial, and bring the four screenshots. Fix the thermometer before anyone adjusts the temperature.