Overview
Connecting Meta Ads lets the dashboard:- Create, update, pause, resume, and remove campaigns, ad sets, and ads.
- Upload creative assets (image, video, carousel) into the connected ad account.
- Pull spend, impressions, clicks, conversions, and conversion value via the Insights API.
- Run native creative experiments via Meta’s A/B Split Test feature.
- Receive realtime ad-disapproval and account-status events via webhooks.
Prerequisites
Before connecting, make sure you have:- A Meta Ads account in good standing.
- Admin role on the Meta Business account that owns the ad account.
- (Optional) A Meta Pixel or Conversions API source if you want conversion-based optimization.
OAuth scopes
The connection requests:Connect
- Open the Paid UA → Integrations page in the dashboard.
- Click Connect on the Meta Ads tile.
- Sign in with the Facebook account that has access to your Business Manager.
- Approve the requested scopes.
- Pick the ad account to use.
What lives on the platform vs the dashboard
| Lives on Meta | Lives on the dashboard |
|---|---|
| Campaign / ad-set / ad ids | Spend caps + agent-control matrix |
| Creative library | Vendor-neutral creative briefs |
| Audience configurations | Idempotency keys + retry attempts |
| Insights (spend / impressions / clicks) | Daily roll-ups in ua_daily_metrics |
Webhooks
Meta posts ad-status, account-status, and disapproval events to:X-Hub-Signature-256 HMAC-SHA256 over the raw body, keyed by
the platform-side META_WEBHOOK_SIGNING_KEY_CURRENT secret. The
META_WEBHOOK_SIGNING_KEY_PREVIOUS secret is also accepted during a
7-day rotation window.
Disconnect
Disconnecting revokes the dashboard’s stored OAuth token and stops all background syncs. Campaigns created via the dashboard remain on the platform — disconnect does not pause or delete them.Limits
- Token rotation: long-lived token, rotated before expiry by the hourly token-refresh cron.
- Rate limits: per-ad-account token bucket; 429s back off via the
Retry-Afterheader. - Creative size: image up to 8 MB, video up to 4 GB; format-specific limits enforced server-side before upload.

