Skip to main content
A widget defines how creator cards look and behave on your pages. Each widget belongs to one property and serves only on that property’s domains.

Layouts

For Custom HTML there is a template gallery (Classic, Dark, Minimal, Wide banner) to start from instead of writing markup from scratch.

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. Forward the visitor’s context with every request: IP, user agent and the URL of the page being viewed (the page URL is what fills your By page report). The widget form contains ready examples for Node and PHP that do all of this, plus a small impressions script and a prompt you can hand to an AI assistant to generate the integration for your stack. Three rules matter for S2S:
  1. 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.
  2. 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.
  3. Don’t strip the referrer from ad links. No rel="noreferrer" and no no-referrer policy on them: a click that arrives without a referrer is treated as suspicious and not paid. The browser default policy is fine as-is.
Accurate impressions matter beyond stats: they feed frequency capping and how campaigns are matched to your placement.

Backend + First-party

The same server-side fetch as S2S, but the click links on your page point to your own domain: your server resolves each click through our API and redirects the visitor itself. The page ends up with zero external ad links, which matters for pages that rank in search and for placements hit by ad blockers. It takes one extra piece on your side, a small relay endpoint (ready code in the widget form). The Integration types page compares all three modes and documents the resolve call: required and optional fields, the response format and relay examples.