Dashboard

Spark Ads docs

Spark Ads sells attention by the hour. The day has 24 of them, each one belongs to a single advertiser, and every app in the Spark network leads its carousel with whoever holds the hour that is running now.

What a slot is

One UTC hour, one advertiser, $9 a month.

24

hours for sale

The whole inventory, all of it.

1

advertiser per hour

Not a rotation. The hour is yours.

$9

per month

Flat. No auction, no CPM, no bidding.

Hours are counted in UTC, because the network runs in one clock and 24 slots only divide cleanly in one. You buy the hour that lands where your audience is: pick a country when you claim, and the board shows each free UTC hour on that country's clock, with the evening ones flagged first.

Your ad is live when three things are true
The hour is yours, the card is approved, and the subscription is paying. Miss any one of them and the network skips the slot for that hour rather than showing a half-approved card.

Buy, claim, approve, live

Four steps, and only the third one waits on a human.

BuyStep 1

Checkout happens on SparkPay, $9 a month. No second account: the email you sign in with is the one that holds the slot.

ClaimStep 2

Pick a free hour on the board. Tell it your target country and it ranks the free hours by local evening attention.

ApproveStep 3

Write the card, then a person reads it. Nothing runs on somebody else’s dashboard without being read first.

LiveStep 4

Your hour comes round and every app in the network leads its carousel with your card until the hour is up.

Editing an approved card sends it back
A card that changed after approval is a card nobody has read, so any edit resets it to pending and it stops running until it is approved again. That is true whether you edit it in the dashboard or through Claude.

Where the stats come from

Counted at the carousel, aggregated by the hour, read back over 30 days.

Every carousel in the network reports what it showed and what was clicked to POST /api/track. Counts land in an hourly row keyed by hour, app, creative and source, so the database holds a running total rather than a log of individual views.

Your dashboard reads the last 30 days of those rows, split three ways: by day, by app in the network, and by traffic source. The MCP server answers the same question from the same query, so what Claude tells you and what the dashboard draws cannot disagree.

Impressions are honest about caching
The serve endpoint is cached for five minutes at the edge, so an ad can start up to five minutes late into its hour. That is the cost of not hitting the database on every pageview across the whole network.

One hour, every dashboard

Twenty four hours in the day, one advertiser in each. $9 a month while you hold yours.

See which hours are free