# Connecting Meta Ads

> How to connect your Meta (Facebook/Instagram) Ads account so spend and performance show up in Ordinary reports.

Source: https://help.tryordinary.com/integrations/meta

---

> Connecting Meta Ads requires **Starter or higher**. Free-tier stores
> see organic + pixel attribution but no paid-ad spend or performance.

Meta is how you pull Facebook, Instagram, Reels, and Audience Network
campaign spend + performance into Ordinary.


## Before you start

- You're on Starter or higher.
- You have **admin access** on the Meta Business Manager that owns
  the ad account.
- Your Facebook account has `ads_read` permission on that ad account.

## Step 1 — start the OAuth flow

1. Open **Settings → Integrations → Meta**.
2. Click **Connect Meta account**.
3. You'll be redirected to Facebook to sign in.

Ordinary requests these permissions:

- `ads_read` — pull campaign, ad-set, and ad data.
- `ads_management` — minimal (read-only in practice; Meta bundles it).
- `business_management` — see which business managers and ad accounts
  your user has access to.

## Step 2 — pick an ad account

After approving, you'll land on a picker showing every ad account
your Facebook user can see. Select the one that runs ads for your
Shopify store.

If you run multiple ad accounts per store (e.g. brand vs. DTC
performance), pick the primary one now — we only support one Meta ad
account per Shopify store in the public app today.

## Step 3 — wait for first sync

Ordinary immediately kicks off:

- **Last 60 days of daily campaign data** — ~3-10 minutes depending
  on volume.
- **Ad-set and ad-level data** — same window, pulled after campaigns.
- **Creative thumbnails** — for the Creatives page (Starter+).

You can keep using the app — the sync runs in the background. The
Settings → Integrations → Meta card shows a progress indicator.


## After it's connected

- **Campaigns → Meta** — see spend, impressions, clicks, orders
  attributed, revenue attributed, ROAS. See [Campaigns — Meta ads](https://help.tryordinary.com/features/campaigns-meta).
- **Creatives** — (Starter+) thumbnails of your running ads with
  per-ad performance. See [Creatives](https://help.tryordinary.com/features/creatives).
- **Attribution reports** — Meta appears as a source in UTM breakdowns
  alongside organic + other paid channels.

## Refresh cadence

- **Today's data** — hourly.
- **Historical (yesterday+)** — finalized each morning for the
  previous day's full data (Meta takes a few hours post-UTC-midnight
  to close their own reporting windows).
- **On-demand refresh** — click **Refresh** on Settings → Integrations → Meta
  to force-pull. Rate-limited to once every 15 minutes per store.

You can monitor sync progress for every connected integration at
**Settings → Sync status** — per-integration last-sync timestamp,
last-data timestamp, and active backfill jobs with progress
indicators.

## Disconnecting

Settings → Integrations → Meta → **Disconnect**.

This revokes Ordinary's access token with Meta, stops future syncs,
and marks historical ad data as read-only in the app. Your past
reports stay visible.

To fully delete ad data, also click **Delete historical Meta data**
in the disconnect confirmation dialog.

## Troubleshooting

- **"Needs reauth"** — token expired (happens every 60 days per Meta
  policy unless your Business Manager has long-lived tokens enabled).
  Click Reconnect.
- **Ad account missing from picker** — your Facebook user doesn't have
  access to that ad account in Business Manager. Ask a BM admin to
  grant `ads_read` on your user.
- **Zero spend for yesterday** — usually a sync timing issue. See
  [Meta data is stale or empty](https://help.tryordinary.com/troubleshooting/meta-stale).
- **Numbers don't match Meta Ads Manager** — expected. Ordinary
  cross-references Meta spend against pixel-observed attribution,
  which uses click-only data. See
  [Campaigns — Meta ads § Click-through vs view-through](https://help.tryordinary.com/features/campaigns-meta#click-through-vs-view-through-why-metas-numbers-dont-match).

## Related articles

- [Campaigns — Meta ads](https://help.tryordinary.com/features/campaigns-meta)
- [Creatives](https://help.tryordinary.com/features/creatives)
- [Meta data is stale or empty](https://help.tryordinary.com/troubleshooting/meta-stale)
- [Attribution models explained](https://help.tryordinary.com/concepts/attribution-models)
