A placement is a rule that tells Inlay where on your site ads are allowed to appear. Each placement maps URL patterns to a CSS selector that positions the injected ad element.
Placements decouple configuration from code. Instead of hard-coding an ad slot into your template, you define a placement in the dashboard and let the embed script handle injection dynamically. This means you can add, remove, or reconfigure ad positions without touching your site's source code.
Each placement goes through a lifecycle: Active (waiting for a visitor to trigger generation) → Pending approval (template generated, awaiting your review) → Live (template approved, ads serving). You can also pause a placement at any time to stop serving without deleting it.
From Sites → [your site] → Add placement, fill in the placement form. Every field except Floor CPM has a sensible default, so you can be up and running with minimal configuration.
| Field | Required | Description |
|---|---|---|
name | Yes | Internal label. Shown in the dashboard and analytics. Not visible to visitors. |
urlPatterns | Yes | One or more glob patterns. A page must match at least one pattern for the placement to activate. See URL Patterns. |
adFormat | Yes | The visual style of the ad component. See Ad Formats. |
floorCpm | No | Minimum acceptable bid in USD per 1,000 impressions. Bids below this floor are rejected. Defaults to 0 (no floor). |
A newly created placement is immediately Active. The embed script on matching pages will attempt to capture a DOM snapshot and trigger AI template generation on the first visit. Until a visitor arrives, the placement sits idle — nothing is served.
Once a visitor triggers generation, the AI produces an ad component HTML template. The placement moves to Pending approval. Ads are not shown to visitors yet. You must review and approve the template before it goes live.
Why hold for approval?
After approval, matching page impressions serve real ads from the auction pool. The placement's template is reused for every impression — generation only runs once per template lifecycle. If you request a regeneration, the cycle resets.
You can pause any placement from the detail page. A paused placement stops serving ads immediately. Re-activating it resumes from wherever it was in the lifecycle (if the template was approved, it remains approved and starts serving again immediately).
You can create multiple placements per site, for example:
Site: example.com
Placement 1 — "In-article (blog)"
URL patterns: https://example.com/blog/*
Format: Content Card
Floor CPM: $1.00
Placement 2 — "Sidebar (product pages)"
URL patterns: https://example.com/products/*
Format: Editorial Block
Floor CPM: $2.50When a page matches multiple placements, the embed script uses the first matching placement (ordered by creation date, ascending). Ensure your URL patterns are specific enough to avoid unintended overlaps.
The number of placements you can create across all your sites is capped by your plan:
| Plan | Max placements |
|---|---|
| Free | 2 |
| Growth | 20 |
| Pro | Unlimited |
See Plans & Limits for full plan details and upgrade options.