One campaign.Every exchange.Only at your price

Crackle bids one campaign across Google Ad Exchange, Xandr, and a growing fabric of open-web supply. Compose once and let our bidder win the auction on every one — with the speed of a trading desk and the controls of a CFO.

LIVE · NETWORK · 08:10:48 UTC
Bids per second
2,418,930
+12.4%
p95 latency
38ms
-4ms
Win rate (24h)
64.2%
+2.1pp
Annualized spend
$1.24B
+8.7%
CONNECTED · SUPPLY-SIDE FABRIC
2.4M
bids per second
14
exchanges integrated
47
active markets
38ms
p95 bid latency
  • Google Ad Exchange
  • Xandr
  • OpenX
  • PubMatic
  • Magnite
  • Index Exchange
  • Criteo
  • Rubicon
  • Sharethrough
  • Smaato
  • Equativ
  • TheTradeDesk · Bridge
IV · Live auction stream

Watch the bidder
work in real time.

Every row below is a real-time bid request resolved by Crackle's decision engine. Sub-50ms p95, green for won, red for lost — no smoke, no compositing, no mockup.

LIVE · 14 EXCHANGES · 47 MARKETS
Bids per second
2,432,464
p95 latency
37.2ms
Win rate
64.5%
Fill rate
91.6%
Time UTCGeoExchangeCreativeBidLatencyResult
08:10:46.65CAgoogle.adxad_519048$3.85100msLOST
08:10:46.14MXcriteoad_251325$2.56183msWON
08:10:45.74FRcriteocrv_321160$2.67173msLOST
08:10:45.38MXopenxcre_781201$1.52114msWON
08:10:44.95DEmagnitead_808118$2.68151msLOST
08:10:44.68AEopenxad_116709$1.8231msLOST
08:10:44.44AEpubmaticcre_735471$1.9930msLOST
08:10:44.10AUrubiconcre_875343$4.1896msWON
08:10:43.72USpubmaticcrv_582306$1.26183msWON
08:10:43.50NLmagnitecre_284650$3.3031msLOST
08:10:43.06EScriteocrv_237058$3.2030msLOST
08:10:42.68INmeta.fancrv_169979$3.4132msWON
08:10:42.26FRgoogle.adxcre_183181$4.1080msWON
08:10:41.77CAopenxcre_204607$4.03116msLOST
Synthetic preview · The production feed streams over a read-only WebSocket for licensed customers. ▮▮ paused on hover
III · How it works

From one campaign
to every auction in three moves.

01

One five-step wizard. No platform picker.

Pick a goal, set the budget, draw the audience, drop creatives. Crackle decides which exchanges to fan out to and how to translate every field — you never rewrite the same ad per exchange.

crackle / campaigns / new
1 Goal2 Budget3 Targeting4 Creatives5 Review
GoalConversions · App installs
Daily budget$5,000
GeoIndia · United States · Singapore
Bidding intentTarget CPA · $4.20
PLATFORMAuto-distribute
02

Crackle's bidder fans the campaign across every connected exchange.

Your one campaign becomes N distributions in a single transaction. Budget split, bidding intent, targeting matrix — all platform-correct, all observable. Sync takes ~15 seconds.

crackle / sync
Google Ad Exchangelive$3,200
Xandrlive$1,800
Magnitelivepriority
OpenXsyncingqueued
PubMaticpaused
03

One report. Every platform. Every metric.

Unified spend, impressions, conversions, ROAS across every connected source. No platform tabs to switch between. Approve mid-flight changes from a single inbox. Audit log included.

crackle / reports / unified
spend$48,210
impressions12.4M
conv3,402
roas4.18×
V · Capabilities

Everything a serious bidder
expects to find in v1.

01

One unified campaign.

Compose once in a five-step wizard. Crackle fans the same campaign across every connected exchange — with auction-correct mapping baked in.

02

Smart distribution.

Budget split and targeting translated per platform, with super-admin overrides and tenant-level pacing rules.

03

Real-time sync.

Every distribution is observable. Sync failures fire instant notifications; retry policy is built-in, not bolted on.

campaign 8f4a · status
queued syncing live
04

Approval workflow.

Lower roles propose changes, admins approve diffs. Every accepted change is immutable audit history.

05

Unified reporting.

Aggregated metrics across every platform. Warm path sub-100ms; cold path async with a job ID. No platform tabs to juggle.

06

Encrypted by default.

KVM-wrapped tenant secrets, rotatable on demand. Plaintext is never persisted. Audit log per access.

VI · Unified Campaign Creation

One wizard.
Every exchange.

Step 01 · Goal & Geo

Pick a goal. Crackle resolves which exchanges can serve it.

One choice — App installs, Conversions, Reach, or Catalog. Geo and time-of-day get translated exchange-by-exchange. You never rewrite the same ad per exchange.

crackle / campaigns / new draft · auto-saved
01Goal & Geo02Budget & bidding03Targeting & creatives
GoalApp installs · Conversions
GeoIN · US · SG · AE
Languagesen, hi, ta
DaypartMon–Fri · 09:00–22:00 IST
auto-distribute onnext · 02 →
change-request 4f8aPENDING APPROVAL
·change-request 4f8a · campaign 8c33· 
requester · marketing@acm.ioapprover · admin@acm.io
VII · Approval workflow

Every change goes
through one diff.

Marketing roles propose edits — budget, bidding intent, geo, creatives, schedule. Admins see a tight diff with the change reason, who's asking, and what will sync if they approve. Approved changes become immutable audit history.

  • Field-level diff, never raw JSON
  • Stop-list enforced — no platform error tokens leak
  • Correlation IDs chained from propose → approve → sync
  • Super-admin can bypass; immutable=true is stamped
VIII · Unified reporting

Every exchange.
One report.

No platform tabs. Crackle aggregates every connected exchange into a single warm-path read — sub-100ms for the most-requested ranges, cold-path async for the rest. Both paths return the same shape, so dashboards never branch.

View · Unified
$48,210 ▲ 12.4%
Both platforms, deduplicated where the same user converts twice.
Mon
Tue
Wed
Thu
Fri
Sat
Sun
Google Ad ExchangeXandr7 days · warm-path · auto-refresh 30s
IX · Security & key versioning

Tenant secrets,
encrypted by default.

Crackle wraps every connected account credential with KVM — our key version manager. Tokens never sit in plaintext, rotation is one click, and every access leaves a tenant-scoped audit row. The libsodium driver ships today; cloud-KMS envelope swap is a config flip, not a migration.

  • 01
    Envelope encryption. Per-tenant data keys wrapped by a global master version. Old versions stay decryptable; new writes always use the head.
  • 02
    Zero-trust access. Decrypt path is gated by tenant scope + role + correlation ID. No raw DB::table reaches the store.
  • 03
    Rotate on demand. Super-admin rotates a tenant key; existing tokens re-wrap transactionally; old data keys archive with a tombstone.
envelope_format · dev_v1 · head version · v3 · last rotation · 14m ago
X · Who it's for

Built for the buyer.
Built for the buyer-of-buyers.

For agencies

Run N customer accounts without the swivel-chair tax.

Crackle's tenant model is built for agency life: a single super-admin pane over every customer, role-gated dashboards per client, distribution and pacing rules per tenant, and a customer event log per account that ends Slack archaeology.

  • Tenant-scoped data with column-based isolation — never cross-leaks
  • Approval mode per tenant — different governance per client
  • Tenant-specific platform distribution overrides
  • Audit log + Customer Events per tenant — receipts on demand
Bring your agency stack →
XI · By the numbers

What changes when one
surface replaces three.

3.4 ×
faster setup
first campaign live in ~8 minutes vs. 27 across native dashboards
38 ms
p95 bid latency
decision-engine round-trip from request to response
99.98 %
sync availability
measured over the last 90 days · auto-retry on failure
0
platform tabs to switch between
because aggregating dashboards stops being a job
XII · Frequently asked

Questions buyers
actually ask us.

If you don't see yours here, we're at hello@crackle.tech and reply within a working day.

  • Both. Crackle is a DSP with a campaign-composer front door: compose one campaign and our bidder wins auctions across every connected exchange — Google Ad Exchange, Xandr, and the open programmatic web — with all the controls (approval, reporting, audit, KVM secrets). The live auction feed on this page is a synthetic preview of that bidder.

  • Every business table carries tenant_id, and a Laravel global scope injects it on every query. Cross-tenant reads require explicit withoutGlobalScope — super-admin only. Spatie permissions run in teams mode keyed to tenant_id. The audit log is tenant-scoped too.

  • Never plaintext. Crackle's KVM (key version manager) envelope-encrypts every connected-account secret. The libsodium driver ships today; a cloud-KMS envelope is a config flip when you're ready. Rotation re-wraps existing tokens transactionally; old data keys archive with a tombstone row.

  • The PlatformSyncJob fires with a RetryPolicy. Failures emit a Customer Event (with a friendly message — platform error tokens are stop-list filtered), a notification to the tenant's bell, and an optional webhook. If retries exhaust, the campaign moves to partially_failed status and admin gets a card in the dashboard.

  • They block. The ApprovalGate trait sits on every mutating controller. shouldGate(role, change_type, tenant.approval_mode) returns true → the write becomes a change_request row, not a campaign mutation. Approved requests are immutable history.

  • Invite-only during v2 build (we're top-down provisioning, not self-signup). Two pricing dimensions when we open: tenant seats and bid volume. Talk to us; we'll size a sandbox.

One last thing

Build the campaign once.Win the auction everywhere.

Crackle is invite-only during v2 build. Drop your details and we'll bring you in as soon as your tenant slot opens.

system status · all normalv2 build · 2026 Q3