Skip to main content
Card class: HeroCategory: Ad Platform

At a glance

Revenue Meta attributes to its ads, summed across every campaign in the ad account. The Insights field is purchase_roas[].value × spend resolved as action_values[type='purchase'], returning revenue tagged to ad-attributed purchases within the configured attribution window.
What it countsSUM(action_values[action_type='purchase']) from the Meta Marketing API Insights endpoint, account-level. Sums purchase value reported by Pixel events, Conversions API events, and modeled conversions Meta auto-fills.
Insights API levelAccount-level, summing across campaigns / adsets / ads. Per-campaign totals reconcile back to this card.
CurrencyAccount currency. Same caveats as Total Spend: ad accounts are single-currency, multi-currency advertisers run separate accounts.
Attribution model7-day click + 1-day view, the post-iOS-14.5 default. Older accounts may still be on 28-day click + 1-day view if they were grandfathered. The window is configurable per ad account, this card uses whatever you’ve set.
iOS 14.5+ ATT impactMajor. Without Conversions API, expect 15, 25% under-reporting on iOS-heavy audiences (consumer DTC, fashion, beauty). With CAPI live, the gap typically narrows to 5, 12%. Android and desktop are largely unaffected.
CAPI vs Pixel-onlyPixel-only: browser-side fires only, blocked by ATT, ad blockers, ITP, and consent rejection. CAPI live: server-side events sent independently of browser; partially backfills the gap. Best practice: dual-implementation (Pixel + CAPI with deduplication via event_id), Meta dedupes and uses whichever fires.
Conversions vs all-conversionsThis card uses action_values for purchase event type only. Meta’s “all conversions” view (visible in Ads Manager column-builder as “Website Purchases (All Conversions)”) includes view-through and across-domain conversions. This card is the conservative, click-attributed view.
Modeled conversionsIncluded. Meta auto-fills attribution gaps with modeled values, currently 8, 18% of total action_values for typical Pixel-only DTC accounts. You cannot opt out (this is by design since iOS 14.5). The model can over- or under-state on a given period; trust the rolling 30-day, not the daily.
Frequency cap relevanceIndirect. High frequency suppresses the conversion-per-impression rate, so revenue per impression falls. The card itself is not frequency-capped, the spend that drove the revenue might be.
Time windowT/7D/30D vsP (default 30D vs prior 30D).
Alert triggerdrop >20% vsP. A 20%+ drop in attributed revenue versus the prior period fires the card.
Rolesowner, marketing, finance

Calculation

Calculated automatically from your Meta Ads (Facebook) data. See the At a glance summary above for what the metric tracks and the worked example below for a typical reading.

Worked example

A UK beauty DTC merchant. iOS skews high in this category. The 30-day window is 02 Apr 26 to 01 May 26. Spend was £18,400, Pixel-only on web (no CAPI yet).
SourceAttributed revenue (£)Notes
Pixel-confirmed conversions38,200Direct Pixel fires, post-consent
Modeled conversions (Meta auto-fill)9,800Statistical fill for ATT-blocked iOS
View-through conversions(excluded)Not in this card; visible in “All Conversions”
Total (this card, action_values[purchase])£48,000Reads as “Meta-attributed revenue”
For the same window, Shopify’s UTM-tagged Meta-source revenue: £21,600. GA4 Paid Social-attributed revenue: £25,400.
  1. The Meta number is 2.2× the Shopify UTM number. Without CAPI, this is the structural pattern for iOS-heavy DTC. The “true” Meta-driven revenue sits between the two: probably £28, 35k. iOS users who clicked through Meta land on Shopify without UTMs (ATT strips them or they’re blocked at the link click), so Shopify counts them as Direct or Organic. Meta uses modeling to claim them; the modeling is partly real, partly inflation.
  2. Modeled conversions auto-fill ~20% of the Meta-reported revenue here. You can’t switch them off. The advice: track a rolling 30-day average and look at the trend, not the daily reading. Modeled values are noisier on the daily, smoother on the rolling.
  3. Advantage+ campaigns dominate but are opaque. £14,200 of the £18,400 spend (77%) sat in Advantage+ Shopping. The breakdown by audience or creative is not exposed; you see the headline ROAS, you don’t see why. Same pattern as Google PMax.
  4. Reported ROAS on this card: 48,000 ÷ 18,400 = 2.61×. Reported ROAS using Shopify-side UTM truth: 21,600 ÷ 18,400 = 1.17×. The CFO will ask which one to believe. Neither. The honest read is “directionally we’re break-even to slightly profitable on Meta, before COGS and overhead”. Don’t quote the Meta 2.61× as fact.
  5. Creative refresh due in ~2 weeks. Meta’s reporting shows frequency at 4.6 in a 7-day rolling window for the Advantage+ Shopping audience. CTR has dropped from 1.4% to 0.9% over the same span; that’s the creative-fatigue cycle. Plan a new ad batch for week 5, 6 of the flight.

Sibling cards merchants should reference together

Total Revenue is the numerator of ROAS. Look at it with these to know if the headline is real:
CardWhy pair it with Total RevenueWhat the combination tells you
Total SpendThe denominator of ROAS. Revenue without spend is meaningless.Revenue × Spend together produce the ROAS gauge.
ROASThe efficiency reading.Whether Meta thinks you made money on the spend.
Conversions TrendDaily series of conversion count. Revenue can rise on fewer high-AOV conversions or many low-AOV ones, the trend exposes which.Diverging count and value lines = AOV shifted. Same direction = volume play.
All ConversionsIncludes view-through conversions and cross-domain. The “more generous” attribution view.If the “all” number is meaningfully higher (say 30%+), view-through is doing real work.
Conversion Rate TrendClick-to-purchase rate.If revenue drops while CR also drops, the post-click experience changed (landing page, stockouts, pricing).
GA4 Revenue by ChannelIndependent attribution check. GA4 last-non-direct vs Meta last-click.Meta usually reports 30, 80% higher than GA4 for the same period; that’s the iOS attribution gap, not double-counting.
Shopify Total RevenueThe truth side. Real Meta-driven revenue is a subset of Shopify total revenue.If Meta-attributed revenue exceeds 70% of total Shopify revenue, attribution is over-claiming. Reset the model.
Klaviyo Email RevenueCross-channel sanity check.Email and Meta both claim revenue from the same purchase if attribution is naive last-click.

Reconciling against the vendor’s own dashboard

Where to look in Meta Ads Manager: Meta Ads Manager → Campaigns → Columns → Performance and Clicks → “Purchases Conversion Value”. Make sure the date range matches this card’s window. The footer total should match this card to within sub-percent rounding. Other Ads Manager views that look similar but aren’t the same:
  • Website Purchases (All Conversions): includes view-through and cross-domain. This card uses the click-attributed purchase action only.
  • Mobile App Purchases: a separate event for app conversions (SDK-tracked). This card is web-purchase only.
  • Offline Conversions: server-uploaded conversions. Reported separately unless explicitly merged via Conversions API.
Why our number may legitimately differ from Meta:
ReasonDirectionWhy
Time zoneBoundary days offMeta uses ad-account time zone (set at account creation, immutable). This card uses UTC. For “today” or “yesterday” reads on US Pacific accounts, expect 3, 8 hour boundary effects.
Attribution window changesDirection dependsDefault reset from 28-day click + 1-day view to 7-day click + 1-day view after iOS 14.5. If your account was created post-Sep-2021 it’s already on 7-day-click; older accounts may still be 28-day if grandfathered. A window change re-baselines retroactively in Meta’s UI; Vortex IQ matches whatever you’ve configured.
Modeled conversions inclusionOurs matches Meta UIMeta’s action_values includes modeled conversions and we read the same field. Both inflate by the same amount.
Ingest lagLower for “today” / “this hour”Insights ingestion is 1, 4 hours typical. Modeled conversions can take longer (up to 72h to converge). Yesterday and earlier are stable.
Advantage+ opacityNone on the headlineAdvantage+ Shopping aggregates audience and placement breakdowns internally; the headline action_values reconciles fully.
Cross-connector reconciliation:
CardExpected relationshipWhat causes legitimate divergence
google_analytics.ga_revenue_by_channelMeta action_values should be 30, 80% higher than GA4 Paid Social-attributed revenue for the same period.Meta reports last-click within its 7d/1d window with modeling; GA4 uses last-non-direct click. Meta typically wins the click in cases where the user also visited via direct or organic. The gap is structural, not an error.
shopify.total_revenueMeta action_values is a subset of Shopify total revenue, but iOS gap means UTM-tagged Meta revenue is much smaller than Meta claims. Expected pattern: Meta claims 1.5, 2.5× the UTM-truth Shopify number.The “true” answer sits between the Meta claim and the Shopify UTM truth. Use a probabilistic attribution model (or just average them) for the CFO read.
google_ads.gads_conversions_valueIndependent paid channel. Sum to total paid-attributed revenue.Different channels, no overlap. Don’t compare directly.

Known limitations / merchant FAQs

Why does Meta say I made £150k and Shopify says only £30k from Meta? The single most common question. Three reasons stack up:
  1. iOS 14.5 ATT. Roughly 60, 70% of UK iOS users decline tracking. Pixel can’t fire fully; CAPI catches some but not all. The clicks that converted to purchase still happened, but Meta’s UTM tags get stripped or rejected, so when the user lands on Shopify, the UTM is absent. Shopify counts the order as Direct or Organic. Meta uses statistical modeling to claim it; that modeling can be optimistic.
  2. Last-click vs last-non-direct attribution. Meta credits a 7-day-click window. If a user clicked Meta on Monday, browsed away, came back via Google search on Friday, and bought, Meta claims the sale. GA4 (and most Shopify UTM-based logic) credits the Google search as the last-non-direct touch. Same purchase, different platform claims it.
  3. View-through and cross-domain conversions. Meta sometimes leaks view-through into the headline if your account is misconfigured. Check the column-builder, you should be reading “Purchases” (click-only), not “Website Purchases (All Conversions)”. This card pins to click-only.
Practical answer: roll out CAPI immediately, then expect Meta-vs-Shopify gap to narrow from 5× to maybe 2, 3×. The remaining gap is structural and won’t close further. The truth is between the two; use a weighted blend (commonly 40% Meta-claim + 60% Shopify-UTM-truth) for the CFO read. What’s the practical CAPI rollout playbook? For Shopify: install the official Meta Sales Channel app (free), enable Conversions API, choose “Maximum” data sharing. Implementation time: 30 minutes. Expect 7, 14 days of attribution model retraining before numbers stabilise. For BigCommerce: Meta Pixel app + manual CAPI setup via Tag Manager, ~2, 4 hours. For Adobe Commerce: Meta extension + custom API endpoint, 1, 3 days dev time. For headless / custom: build a server-side Pixel proxy with event_id for deduplication, 1, 2 weeks dev time. In all cases, deduplicate via event_id so Meta doesn’t double-count Pixel + CAPI. How do I interpret modeled conversions? Meta blends them into action_values invisibly. Two patterns to watch:
  • Modeled lift after iOS 14.5: typical 8, 18% of total revenue. Reasonable.
  • Modeled lift after a CAPI rollout: should decrease (CAPI catches conversions Meta no longer needs to model). If modeling stays high after CAPI, you have a CAPI implementation issue.
You can roughly back out the modeled portion by comparing this card against “Pixel-only” conversions in the Ads Manager column-builder; the delta is the modeled component. Why is Advantage+ Shopping so opaque? Same trade-off as Google Performance Max. Meta’s optimiser auto-selects audience, creative, placement, bidding. You see headline ROAS, you don’t see why. Advantage+ typically out-performs manual setups by 20, 40% on cold-prospecting, but you give up granular optimisation control. Run a manual broad-audience campaign in parallel for visibility if you need to know audience signals. My Meta revenue is up 30% but my Shopify revenue is flat, what’s going on? Two possibilities. (1) Attribution shift: Meta is claiming more of your existing revenue (better tracking, CAPI rollout, attribution-window change) without driving incremental sales. (2) iOS modeling drift: Meta’s modeled-conversion auto-fill spiked, possibly inflating the headline. Action: check Shopify’s true revenue trend; if it’s flat, the Meta lift is attribution noise, not real growth. Don’t scale spend on the back of an attribution-only lift. Meta says my Pixel and CAPI are both firing, do I get double-credit? No, if you’ve set deduplication properly. Each event needs a unique event_id and matching event timestamps; Meta dedupes server-side. Without dedup, you do double-count, this is the #1 CAPI mis-implementation. Test it: the Meta Events Manager → Test Events tab shows whether dedup is working. If both events fire with the same event_id, dedup is on. My today value looks much lower than yesterday at the same hour, normal? Yes. Today’s attributed revenue is built from incomplete data: Pixel/CAPI events are still ingesting (1, 4h lag), modeled conversions take up to 72h to converge, and view-through windows accumulate over multiple days. Read the rolling 7-day or 30-day average, not the today value. Don’t make decisions on a single day’s reading. Should I trust this number for budget decisions? For directional (“Meta is in profitable / unprofitable territory”) yes. For exact ROI (“Meta drove £X of profit”) no, blend it with Shopify UTM-truth and your own MMM (media mix model) if you have one. Rule of thumb: if Meta’s claimed ROAS is over 4×, you’re directionally profitable on Meta even after the iOS gap. If it’s under 2×, you’re directionally unprofitable. Between 2, 4× it’s measurement-method-sensitive. Why is my Meta revenue different from Google Ads revenue for the same period? Different ecosystems, different attribution. Meta sees Pixel + CAPI events; Google Ads sees Google Tag Manager + Enhanced Conversions. Both use last-click within their own window. Both will independently claim the same purchase if the user touched both channels. Sum of “Meta-claimed + Google-claimed” almost always exceeds total Shopify revenue because of double-claim across channels. This is a known structural artefact. Use commerce-platform truth (Shopify) as the denominator, not the sum of platform claims.

Tracked live in Vortex IQ Nerve Centre

Total Revenue is one of hundreds of KPI pulses Vortex IQ tracks across Meta Ads (Facebook) and 70+ other ecommerce connectors. Nerve Centre runs the detection layer; Vortex Mind investigates the cause when something moves; Ask Viq lets you interrogate any number in plain English. Start for free or book a demo to see this metric running on your own data.