Skip to main content
Upstack Data

Meta Ads integration: ad spend and delivery joined to your orders

Pull Meta cost and delivery data into Upstack alongside your orders, so blended ROAS and true CAC are computed from both halves of the equation rather than one.

Role
Source
Category
Ad platforms
Plans
All plans
Conversions out
Meta Conversions API

About Meta Ads

Upstack pulls Meta spend into the same reports as your orders, so ROAS and CPA come from both halves.

Spend is imported at the ad level and rolled up to ad sets and campaigns. On the Attribution board it sits next to the orders and revenue each source drove, and each order is credited once, under first or last click, from the visits recorded on your site.

What Meta Ads is

Meta Ads is where the spend happens: campaigns, ad sets and ads across Facebook and Instagram, each with its own budget, delivery and creative.

Meta reports what it costs and what it believes it drove. It cannot report what your business actually earned, because it never sees the order.

How Meta Ads works

Meta exposes delivery and cost through its Marketing API, reported against its own hierarchy of campaign, ad set and ad. Those numbers are Meta’s view: spend it charged you, and conversions it attributed to itself under its own attribution window and its own rules about which touch gets credit. Two platforms asked about the same order will both claim it, because each is answering the question “did I contribute” rather than “who earned this”.

What you can do with it

Three jobs Meta Ads does once it is connected.

01

Cost next to revenue

Spend, impressions, link clicks and reach arrive daily at campaign, ad set and ad level, so ROAS and CPA come from your orders and what Meta actually charged rather than from one dashboard.

02

Blended and per-channel in one place

With every platform reporting its own cost into the same store, blended CAC stops being a monthly spreadsheet exercise and becomes a number you can look at on a Tuesday.

03

Down to the ad

Upstack syncs at the ad level, so a strong ad inside a weak ad set is visible before a pause decision averages it away.

How it works

How Meta Ads ROAS reporting works.

A read-only connection that imports what you spent on Meta, refreshes it every 15 minutes and lines it up with the orders your store recorded.

What comes in

Spend, impressions, link clicks and reach at daily granularity, with CPM, CPC and CTR calculated. Campaigns, ad sets and ads arrive with their names, objectives, status and budgets. The metrics reference lists 75 Meta metrics, including Meta-reported ROAS, CPA and new-customer ROAS.

How often it refreshes

The first sync imports up to 36 months of history and usually finishes in 2 to 4 hours. After that Upstack checks every 15 minutes and re-pulls the last 2 days, so late-arriving spend is captured.

Read-only access

Upstack asks for ads_read and read_insights only. It can’t create, change or spend on your campaigns. Each connected ad account appears as its own source.

How spend meets orders

The Attribution board shows orders, revenue, new customers, channel spend, CPA and ROAS for each source. Its Campaign, Ad set and Ad tabs group visits by utm_campaign, utm_term and utm_content, so ads without UTM tags show as (not set).

Raw spend, in UTC

Upstack imports what you actually spent, not attributed spend, and normalizes it to UTC. Meta’s own conversion columns keep Meta’s attribution, by default 7-day click and 1-day view.

Measures you can query

meta.spend holds Meta’s numbers as Meta reports them; channel.spend, channel.roas and channel.cpa add up every connected ad account; orders.total_roas computes ROAS from your store’s orders.

Setup

What you need, and how to connect it.

What you need

  • Admin access to a Meta Business Manager.
  • At least one Facebook ad account with active or past campaigns.
  • A Facebook login that can complete OAuth in the browser you use for Upstack. No token to paste.
Connect Facebook Ads as a source
  1. Step 1

    Open Data Sources

    In Upstack, go to System, then Data Sources.

  2. Step 2

    Connect Facebook Ads

    On the Facebook ads card, open the three-dot menu, click Connect and sign in with the right Facebook account.

  3. Step 3

    Pick the ad accounts

    Select every ad account that drives traffic to your store. A wrong account makes cost and conversion data disagree.

  4. Step 4

    Save

    Click Save. The card shows Connected and the backfill starts.

Check it

How to verify it’s working, and common fixes.

How to verify it’s working

  • The Facebook Ads source shows Connected under System, Data Sources, with a Last synced time.
  • Campaign data appears on the source’s detail page within 2 to 4 hours of connecting.
  • Spend shows in Reports, Attribution, and ROAS fills in for campaigns with both spend and attributed orders.

Common problems and fixes

No data after connecting.
The backfill takes 2 to 4 hours. After that, check that the account has spend in the last 36 months and that the authorization still exists, or disconnect and reconnect.
Spend doesn’t match Ads Manager.
Under 5% is normal (timezone and Meta’s post-attribution adjustments). Bigger gaps come from UTC versus account time, comparing raw spend with attributed numbers, or ad accounts left unconnected.
Auth Error or Token Expired.
Upstack refreshes Meta’s 60-day tokens itself, but a password change or 2FA reset needs a manual reconnect. Reconnect with the same account, re-select the ad accounts, save and click Sync Now.
An ad account is missing.
The connecting user needs admin access to the ad account and Business Manager. Reconnect with every account checked under Edit Settings and allow 10 to 15 minutes.
Meta traffic lands in organic or campaigns show (not set).
Ad links have no UTM parameters. Add them to every ad, with utm_medium=paid, so visits are labeled Meta Ads and grouped by campaign.

Documentation

Set-up reference.

Set-up, event schema and field mapping for Meta Ads as a source, next to the Meta Ads developer docs.

FAQ

Meta Ads integration questions.

What does Upstack import from Meta Ads?

Daily spend, impressions, link clicks and reach for every campaign, ad set and ad, with CPM, CPC and CTR calculated, plus campaign names, objectives, status and budgets. It imports spend only; sending conversions to Meta is a separate destination.

How far back does the import go, and how often does it refresh?

Up to 36 months of history on the first sync, which usually takes 2 to 4 hours. After that Upstack checks every 15 minutes and re-pulls the last 2 days.

Can Upstack change my Meta campaigns?

No. The connection is read-only, with ads_read and read_insights permissions. It can’t create, modify or spend on campaigns.

Can I connect more than one Meta ad account?

Yes. Each ad account you select appears as its own source. Connect every account that drives traffic to your store, and no others.

Why doesn’t Upstack’s spend match Ads Manager exactly?

A gap under 5% is normal, from timezones and Meta’s post-attribution adjustments. Upstack stores raw spend in UTC, so a large gap usually means a timezone mismatch, attributed numbers compared with raw spend, or a missing ad account.

Why do Upstack and Meta disagree on conversions?

Meta counts the conversions it links to its own ads under its own windows. Upstack credits each order once, under first or last click, from the visits recorded on your site.

Where do I see Meta spend next to revenue?

On the Attribution board, which has channel spend, CPA and ROAS columns beside orders and revenue, and in queries using meta.spend or channel.spend.

Which plans include the Meta Ads integration?

All plans. Upstack has three plans that scale with your order volume, and the same integrations are on every plan.

Can Upstack also send conversions to the Meta Conversions API?

Yes, through the Meta Conversions API integration. Forward deduplicated, identity-resolved conversions to Meta through the Conversions API, and give the model a customer instead of a session.

Guides

Guides and related pages.

Background reading for the Meta Ads integration, and the Upstack pages that go with it.

Similar integrations

Other sources to connect.

See all integrations

Get Meta Ads tracking right.

A 15-minute walkthrough tailored to your stack and channels.