How It Works
Adkit replaces programmatic advertising with a direct marketplace. Publishers set fixed prices, advertisers book slots, and you approve every ad before it goes live.
The Adkit model
Traditional ad networks use real-time auctions where your page loads arbitrary third-party content for fractions of a cent per impression. Adkit works differently: you define placement slots on your site, set a fixed daily price, and advertisers book directly through your own pages. No auctions, no tracking pixels, no mystery about what runs on your site.
Every booking goes through your approval queue. You review the creative and destination URL before anything goes live. If something doesn't meet your standards, reject it — the advertiser is refunded automatically.
The booking flow
You create a slot
Add an ad placement to your site using the React SDK or the JavaScript snippet. Give it a name, an aspect ratio, and a daily price. The SDK renders a dashed-border placeholder where the ad will appear.
A visitor clicks the placeholder
Anyone browsing your site can click an empty slot. A booking modal opens inline — no redirect, no third-party page. They see your price, slot dimensions, and what's included.
The advertiser completes booking
They select dates, upload their creative (image), and pay by credit card via Stripe. The price they pay is validated server-side — it cannot be manipulated from the client.
You review and approve
A notification arrives in your Adkit dashboard. You review the creative, destination URL, and advertiser details. Approve it to schedule the ad, or reject it for a full refund.
The ad runs on the booked dates
On the start date, the placeholder is replaced with the advertiser's image and link. Impressions and clicks are tracked automatically. The ad stops running automatically when the booking expires.
You get paid
Adkit processes payouts weekly via Stripe. You keep 85% of each booking. If your site experiences downtime during a campaign, advertisers receive a prorated refund automatically.
Key concepts
Fixed-price slots
You set a daily price per slot. There are no auctions, no CPM floors, and no surprise fluctuations. Advertisers know exactly what they'll pay before they book.
Self-serve booking
Your audience books directly on your site. Demand comes from people already reading your content, not from a third-party ad exchange matching unrelated advertisers.
Publisher approval
Every submission enters your approval queue. Nothing runs without your explicit sign-off. You can reject any booking and the advertiser is refunded without dispute.
Server-authoritative pricing
Prices are set in your dashboard and validated server-side at checkout. Client-side code never controls what the advertiser is charged — manipulation is not possible.
Automatic payouts
Earnings are deposited weekly via Stripe Connect. No manual invoicing, no minimum threshold, no chasing payments. Refunds for downtime are calculated and issued automatically.
No cookies or fingerprinting
Adkit uses anonymous impression IDs. No user tracking, no cross-site data collection, no GDPR cookie banners required for the ad units themselves.
Revenue share
Publishers keep 85% of every booking. Adkit retains 15% to cover payment processing, CDN delivery, uptime monitoring, and platform maintenance.
| Party | Share | Notes |
|---|---|---|
| Publisher | 85% | Paid weekly via Stripe Connect |
| Adkit | 15% | Platform fee (processing, CDN, ops) |
| Compare: Google AdSense publishers typically keep ~68%. | ||
Automatic event tracking
The SDK tracks ad lifecycle events automatically. You don't need to wire up any analytics calls.
| Event | When it fires |
|---|---|
| slot_mount | Once per slot per page load, when the component initializes |
| slot_view | When at least 50% of the slot enters the viewport (once per mount) |
| slot_click | When a visitor clicks a live ad (not a placeholder click) |
Events are sent via navigator.sendBeacon() with a fetch keepalive fallback. They never block rendering and never throw errors.
Browser requirements
Both SDKs require modern browser APIs. The following table shows the minimum versions for full support.
| Browser | Minimum version |
|---|---|
| Chrome / Edge | 88+ |
| Firefox | 89+ |
| Safari | 15+ |
Required APIs: IntersectionObserver, fetch, CSS aspect-ratio. The JavaScript SDK also requires MutationObserver; the React SDK requires ResizeObserver.