Installation
You add this once. Every ad slot you create afterwards is served through the same tag — you never go back into your theme.
Your real site key is shown on the site page in your dashboard as soon as you add a site.
There are two ways, and the second one needs no code at all.
Put this wherever the ad should appear. Best when you can edit the template.
In the dashboard, give the placement a selector like #sidebar and choose whether the ad goes before, after, or inside it. We inject it at page load. No theme editing, nothing to break on your next theme update.
The tag is identical everywhere. The only difference is where each platform hides its header-code box.
Online Store → Themes → ⋯ → Edit code → layout/theme.liquid
Appearance → Theme File Editor → header.php, or any header-scripts plugin
Settings → Custom Code → Add Custom Code
Settings → Advanced → Code Injection → Header
Project settings → Custom code → Head code
Settings → Code injection → Site header
app/layout.tsx
New Tag → Custom HTML
An ad slot with no campaign booked collapses instead of leaving a gap. Check that a campaign is active, is booked on that placement, and has an approved creative — a campaign with no creative can't serve.
Expected, and it happens to every ad server. On Growth and above you can serve from your own subdomain (ads.yoursite.com), which improves delivery substantially.
Changes propagate within about a minute. If it's been longer, confirm the campaign is active and its dates include today.
The tag is under 2KB and loads asynchronously, so it never blocks rendering. Every slot on a page is fetched in a single request rather than one per slot, and you can enable lazy loading so ads are only requested as they scroll into view — which also reduces your bill.
Add a site, copy your tag, and have your first ad slot live in about ten minutes.
Start free