Connect Google Ads, GA4, and Meta Ads once — sync normalized performance data to every RocketBoard tenant automatically.
3
Ad platforms
1
OAuth app per provider
∞
Tenants supported
AUTO
Token refresh
How it works
The broker handles the entire OAuth lifecycle and data pipeline so your CRM tenants never touch provider tokens directly.
Your CRM calls POST /api/oauth/connect with a signed state containing the tenant key, company ID, and return URL. The broker generates a provider authorization URL.
The user authenticates with Google or Meta. The provider redirects to the broker's single callback domain. Broker exchanges the code, stores tokens centrally, and discovers all linked ad accounts.
GA4 properties, Google Ads customers, Meta ad accounts, pages, and pixels are all upserted. Sync jobs are queued and processed immediately — tokens are auto-refreshed before every run.
Performance rows land in marketing_performance_daily. Your CRM calls GET /api/overview to get spend, sessions, ROAS, leads, and campaigns — normalized across all providers.
Supported platforms
Google Ads
google_adsCampaigns, ad groups, ads, and daily performance at the ad level. Micros-to-currency conversion included.
Google Analytics 4
ga4Session-level campaign performance. Sessions, engaged sessions, key events, and revenue by date.
Meta Ads
meta_adsFull campaign structure with insight data at campaign, ad set, and ad level. Leads and purchase events parsed automatically.
Built right
Google tokens are refreshed 5 minutes before expiry and persisted back to the connection. No stale-token sync failures.
Every OAuth flow uses HMAC-SHA256 signed state with a 15-minute expiry. Forge-proof, replay-proof.
Company ID is baked into every token, asset, and performance row. One broker, isolated data per tenant.
Spend, clicks, sessions, leads, ROAS — one schema regardless of whether the source is Google or Meta.
Every API response is stored verbatim in marketing_raw_payload for auditability and re-processing.
Assets are discovered and a backfill sync is queued and run immediately after each OAuth callback — no manual trigger needed.
Architecture
Tenant A
CRM / App
Tenant B
CRM / App
Tenant C
CRM / App
API key
Ads Broker
Central token store
OAuth tokens
Google Ads
GA4
Meta Ads
Provider access tokens are stored only in the broker's Supabase database. Tenant apps authenticate using an API key and never receive OAuth tokens directly.
API Reference
All broker-facing endpoints require x-broker-api-key header.
/api/health/api/oauth/providers/api/oauth/connect/api/oauth/:provider/callback/api/connections/api/connections/create/api/assets/create/api/sync-jobs/create/api/sync-jobs/run/api/overview/api/raw-payloads