// guide
Meta Ads spend and ROAS in Keel HQ for Shopify brands
Connect Meta Ads to Keel HQ with read-only ads_read access. Ad performance syncs daily and monthly campaign spend feeds MER, blended ROAS and CM3.
David LindahlFounder of Keel HQ, and runs a DTC brand on it
Published Last verified
- Access
- ads_read only
- Daily pull
- 10:00 UTC
- Spend
- Campaign spend by month
- Status
- Limited beta
// the steps
- 01Open Settings → Integrations. Find the Meta Ads card. Connecting needs the member role or above.
- 02Connect the ad account. Click Connect and choose the ad account in Facebook Login for Business. Keel HQ asks only for ads_read.
- 03Let the first pull run. The card shows the connected account id. The daily pull and the monthly campaign sync fill the Ads dashboard.
- 04Read spend and ROAS. Open Ads for performance, and Overview for blended ROAS and MER once spend has synced.
// tl;dr
Keel HQ connects to Meta Ads through Facebook Login with a single read-only permission, ads_read. A daily pull imports ad performance for the Ads dashboard, and monthly campaign spend feeds blended ROAS, MER and the CM3 margin layer. Meta Ads is in a limited beta and isn't available to every workspace yet.
Ad spend is the number every margin layer past CM2 depends on. Keel HQ imports it directly from Meta, so blended ROAS and MER are computed from your Shopify revenue and the spend Meta reports, not a figure you type in.
What syncs
Ad performance, daily. A pull at 10:00 UTC for every connected organization, covering through yesterday. Each day's rows are overwritten if the pull runs again, so a re-run never double-counts.
Campaign spend, by month. Spend, ROAS, conversions and reach per campaign, stored per calendar month.
What it feeds. Blended ROAS, MER and the CM3 margin layer on Overview, and the Ads dashboard.
Connect Meta Ads
- 01Open Settings → Integrations
Find the Meta Ads card. If your workspace isn't part of the beta yet, the card says connections aren't available.
- 02Connect
Click Connect, and in Facebook Login for Business select the ad account Keel HQ should read. The card then shows the connected account id.
- 03Wait for the first pull
Spend appears once the daily pull and monthly sync have run. Until then, an unknown spend reads as unknown, with a reason, never as $0.
- 04Open Ads
Performance and scoring live on the Ads page. Blended ROAS and MER update on Overview.
When something looks wrong
Reconnect needed. The Meta token expired or was revoked. The card says so, and imports resume after you connect again.
This month's spend is partial. A month synced before it ends is marked partial until the finalizing run.
Spend shows as unknown. Nothing has synced for that month yet. Keel HQ shows the reason instead of a zero.
What this doesn't do
No campaign management: it doesn't create, pause or budget ads.
No daily campaign breakdown in the monthly spend figures; campaign spend is stored per calendar month.
Meta Ads is in a limited beta, so not every workspace can connect it yet.
Pair it with Google Ads for platform spend across both channels.
Questions
- Can Keel HQ change my ads or budgets?
- No. The only permission it requests is ads_read, which lets it read ad account insights. It can't create, pause or edit campaigns, ads or budgets.
- How often does Meta Ads sync?
- A daily pull at 10:00 UTC for every organization with an active connection, covering through yesterday. Monthly campaign spend is synced separately.
- Is Meta Ads available to every workspace?
- Not yet. It's in a limited beta, and workspaces that don't have a connection can't start one until it opens up. The page for ad spend shows a clear reason, never a zero, when nothing has synced.
- Why did my connection stop?
- Meta access tokens expire. The card warns before the expiry date, and asks you to reconnect when the token can no longer be used, so imports don't silently stop.
- What if I also run Google Ads?
- Connect Google Ads too. Platform spend from both lands in the same Overview, blended ROAS and MER figures.
// related
- IntegrationsShopify inventory and cash flow integration for Keel HQConnect Shopify to Keel HQ with read-only scopes. Orders, refunds and transactions sync every six hours, products and inventory daily, payouts into your forecast.
- IntegrationsGoogle Ads spend in Keel HQ for MER and margin layersConnect Google Ads to Keel HQ with Google's OAuth. Daily platform spend for one chosen account feeds Overview, MER and CM3. Keel HQ only runs read queries.
// sources
- Permissions reference (ads_read), Meta for Developers · accessed