Six platforms · one tracker

Every platform you spend on, in one honest tracker

Meta, Google, Reddit, LinkedIn, X, and Snapchat. Connect once with OAuth, sync nightly, and read every campaign through one normalized schema.

Read-only OAuth · 90-day backfill · KMS-encrypted tokens

overads
MC

Integrations

Six platforms, one schema

3 live3 in review

30d spend, all platforms

$48,210

+4.2%
Meta Ads51%Google Ads30%Reddit Ads19%

Live

Synced nightly
Meta

Meta Ads

Live

4 accounts · synced 4m ago

30d spend

$24.6k

google logo

Google Ads

Live

3 accounts · synced 6m ago

30d spend

$14.5k

reddit logo

Reddit Ads

Live

2 accounts · synced 9m ago

30d spend

$9.1k

Coming soon

linkedin logo

LinkedIn Ads

Soon

Pending platform review

x logo

X Ads

Soon

Pending platform review

Snapchat

Snapchat Ads

Soon

Pending platform review

Available today

Live now

3 platforms
Meta
Live

Meta Ads

Scopes
ads_read, ads_management
Cadence
Nightly + on-demand
Connect
google logo
Live

Google Ads

Scopes
adwords (dev token)
Cadence
Nightly + on-demand
Connect
reddit logo
Live

Reddit Ads

Scopes
adsread, adsread:campaign
Cadence
Nightly + on-demand
Connect
In review

Coming soon

3 pending review
linkedin logo
Pending

LinkedIn Ads

Get notified

x logo
Pending

X Ads

Get notified

Snapchat
Pending

Snapchat Ads

Get notified

Anatomy of a connection

From OAuth to nightly dashboard, in four moves

accounts.google.com/oauth

overads wants to read

  • Read campaigns & ads
  • Read daily metrics
AllowCancel

Authorize

01

OAuth in your browser. Read-only scopes by default; no passwords stored.

Pick accounts to sync

MetaUS Core
MetaEU retarget
google logoBrand search

Discover

02

We list every ad account the user has access to. You pick which to sync.

Syncing 90 days

Meta
1.8s
google logo
2.3s
reddit logo
syncing…

Sync

03

Worker pulls campaigns, ad sets, ads, and 90 days of daily metrics.

Morning brief

06:02

Scale Brand search (+30%)

Pause PMax, Gear

Refresh EU retarget

Brief

04

AI runs each morning, ranks suggestions, and surfaces anomalies before standup.

One schema

How native fields collapse into the normalized model

Each platform calls things differently, "cost_micros", "spend", "impressions". We normalize once at the connector boundary so the rest of the app reads one shape.

overads fieldTypeMetaGoogle AdsReddit
spendMinorbigintspend × 100cost_micros / 10⁴spend × 100
revenueMinorbigintpurchase_valueconversions_valueconv_value
impressionsbigintimpressionsimpressionsimpressions
clicksbigintclicksclicksclicks
conversionsnumberactions[]conversionsconversions
ctrderivedclicks/impclicks/impclicks/imp
roasderivedvalue/spendvalue/spendvalue/spend

LinkedIn, X, and Snapchat join the same schema once their app reviews land.

What we sync

The data we pull, and the shape it takes

US Core Q2campaign
Retarget · Cartad set
Variant Aad
Variant Bad
Prospecting · USad set

Campaigns, ad sets, ads

Hierarchy preserved per platform; mapped to one normalized schema.

Daily spend

$48,210
May 10May 21

Daily metrics

Spend, impressions, clicks, conversions, revenue. The smallest grain each platform supports.

MetaAdd to cart
google logoClick → site
reddit logoSubreddit visit

Conversion

$84.20

Conversion attribution

Per-platform conversion events. Multi-touch attribution lands in v2.

Same source, six currencies

  • USD

    $48,210

  • EUR

    €44,732

  • GBP

    £37,914

  • JPY

    ¥7.38M

  • INR

    ₹40.6L

  • AUD

    A$73,182

Six currencies, no float drift

All money stored as bigint minor units. The number you see is the number you spent.

Sync reliability

Sync that doesn't ask you to babysit it

Each platform has its own retry budget, backoff curve, and rate-limit policy. We handle the bookkeeping so dashboards just show the latest data.

  • Exponential backoff with jitter

    Transient failures retry up to 5×; the worker never thunders the platform.

  • Rate-limit aware

    Honors X-RateLimit headers. Sync chunks pause and resume cleanly.

  • Idempotent writes

    Every metrics row is keyed by (workspace, account, campaign, ad, date). Re-runs upsert.

Last 24h syncsHealthy
AccountTimeStatusΔ
MetaUS Core
03:12 UTCok1.8s
google logoBrand search
03:14 UTCok2.3s
reddit logoSubreddit promo
03:15 UTCok0.9s
MetaEU retarget
03:16 UTCretried4.1s
google logoPMax, Gear
03:18 UTCok2.1s
Security

Read-only scopes. Tokens encrypted. No PII in logs.

Sacred-geometry flower of life over a deep navy gradientRead-only

Read-only by default

We request the minimum scopes needed to read campaigns, ad sets, ads, and metrics. No write access.

Two intersecting circles on a warm orange gradientEncrypted

KMS-encrypted tokens

OAuth access + refresh tokens live encrypted at rest with per-tenant key context. Never logged.

Vertical orbit geometry with purple and teal light leaksIsolated

Workspace isolation

Every query is scoped by workspace before it touches the database. Tenants can't see each other.

Read the full security overview at /legal/security.

Platform FAQ

Common questions about connecting

How long does the first sync take?

About 2 to 8 minutes per ad account, depending on history depth. We backfill 90 days by default; you can extend in settings.

Can I disconnect a platform?

Yes, any time, from Settings → Integrations. Disconnecting revokes the OAuth grant and stops syncs immediately. Historical data stays unless you delete it.

What permissions do you ask for?

Read-only by default. We never request write access to your campaigns. Per-platform scopes are listed on each platform card above.

How often does data refresh?

Nightly at 02:00 UTC by default, plus an on-demand button in the dashboard. Most accounts sync in under five minutes.

What about historical data?

We backfill 90 days on first connect. Longer histories are available on Growth and Scale plans, capped by what the platform's API exposes.

Are tokens stored in plaintext?

No. OAuth access and refresh tokens are encrypted with AWS KMS, scoped per workspace, and never appear in logs or audit events.

Start syncing in five minutes

Free for 14 days. No credit card. Connect Meta, Google, or Reddit and have nightly spend in your dashboard tomorrow morning.