Layouts
| Mode | What it does |
|---|---|
| Responsive grid | Cards fill the container width, count adjusts to screen size |
| Single row | One horizontal row of cards |
| Carousel | Auto-scrolling strip |
| Custom HTML | Your own card markup with placeholders, rendered by our script |
| Backend (S2S) | No script at all: your server requests ads and renders them itself |
Appearance
Widgets ship with a theme (Light, Dark or Auto following the visitor’s system), a density (Comfortable or Compact) and an optional Show more button: you choose how many cards are visible at first, the rest load in batches on click. The form shows a live preview of every combination before you save.Embedding
Copy the snippet from the widget form and paste it where the cards should appear. Appearance settings are baked into the snippet as data attributes, so changing them in the form gives you an updated snippet; the widget itself also picks up saved changes on the next page load. The widget counts an impression only when a card is actually visible in the viewport, and a per-visitor frequency setting caps how many times the same visitor sees the same creator within 24 hours.Backend (S2S)
If you want full control over markup, or render pages server-side, request ads from your backend with the widget API key and build your own HTML. The widget form contains ready examples for Node and PHP plus a small impressions script, and a prompt you can hand to an AI assistant to generate the integration for your stack. Two rules matter for S2S:- Use the returned URLs as-is. Each creative comes with its own click and impression URLs; don’t rewrite or cache them across page views.
- Report viewable impressions. Fire the impression only when the card is at least half-visible for about a second. The provided script does this with an IntersectionObserver; copying it is the easiest way to stay accurate.