Widget
Paste one snippet where the cards should appear; rendering, impressions and clicks are handled for you. Layouts, themes and custom templates are covered in Widgets.Backend + First-party
Your server fetches creatives as JSON with the widget API key, renders its own HTML and keeps every link on your own domain: your server resolves each click through our API before redirecting the visitor. Why choose it:- Clean link profile. Your HTML contains no external ad links, so pages that rank in search carry no ad-network footprint.
- Ad blockers can’t cut the click path. A same-origin link can’t be blocked without breaking the site itself.
- You control the referrer. The page URL travels in the resolve call explicitly, and on the final redirect you decide what the destination site sees: a
Referrer-Policy: no-referrerheader hides your domain entirely.
How it works
1
Fetch creatives
Call the widget endpoint from your server with the
X-Api-Key header, forwarding the visitor’s uip, uua and page. The response includes earn_cents, your payout for one valid click on each card.2
Render first-party links
Each creative includes a
click_token and a click_fallback. Link the card to your own route, for example https://yoursite.com/go?t=<click_token>&s=<click_fallback>. Don’t use click_url in this mode: clicks that go straight to click_url from a first-party widget are not paid. Fire the impression pixel (impression_url) only when the card is actually seen; the ready impressions script from the widget form does that for you.3
Resolve the click
When a visitor hits your route, call the resolve endpoint server-to-server:
4
Redirect
The response contains the destination URL. Reply
302 Location: <url>. Optionally add Referrer-Policy: no-referrer so the destination site doesn’t see your domain.What to send on every resolve
The values must describe the visitor’s request to your site, not your server: click validation, geo stats and uniqueness all run on what you forward. A click without a valid
uip or without uua is never paid. A missing uref is recorded and factors into the quality review, so forward it whenever you can. Forwarding the full, honest visitor context is what keeps your placement clean and attractive to advertisers.
The response
url: where to redirect the visitor. Always present for a live token.nullmeans the token expired and noswas passed: redirect to a page of your own instead. Withspassed through, even expired tokens resolve to the creator’s page (logged, not paid).via: how the call was resolved;proxyconfirms your API key was accepted.
uip, uua, uref) and redirect to url every time.
Relay example
A quick smoke test with aclick_token from a fresh widget response:
cURL
/go here, is your choice):
Node
uref normally comes from the Referer header of the same-origin click. If your site sets a global no-referrer policy, append the page URL to your click links yourself (for example /go?t=...&p=<page URL>) and forward that value as uref.
The widget form contains full copy-paste examples for Node and PHP (page render plus relay) and a ready prompt for an AI assistant.
Which one to pick
- You render server-side, the page ranks in search, or you want a clean outbound-link profile: Backend + First-party.
- Everything else: Widget.