Adding your first website
Register a domain, pick a display mode, and grab your integration keys: the prerequisite for every widget install.
Every widget install starts with one step: registering your website in the dashboard. This gives you the two keys the script tag needs and anchors all of your analytics and billing to a single domain.
Add a website
From the Overview dashboard or the Websites section in the sidebar, click Add website. You'll fill in:
- Website name: A label you'll recognize later (e.g. "My Casino Blog"). Only visible in your dashboard.
- Domain: The root hostname where the script will run (e.g.
example.com). No protocol, no path. The API enforces this at request time:Originmust match. - Vertical: Your industry (iGaming, finance, sports, crypto, e-commerce, streaming). Drives offer matching.
- Display mode: Pick one of:
- Geo-blocking: Full-screen overlay for visitors on the blocked side of your geo rule. The default for regulated verticals.
- Section: Inline sponsored-offers container placed in your layout. Better for content sites.
- Ownership: Personal (only you see it) or Team (shared with your organization's other members).
Don't overthink the mode
You can switch modes later without redeploying: swap widget.js for widget-section.js (or vice versa) on your site. Both scripts use the same public key and website key. Pick whichever matches your first use case.
Your two keys
After saving, the website detail page shows:
| Key | Prefix | Scope |
|---|---|---|
| Public key | pk_… | Per-website: each website you register gets its own. |
| Website key | web_… | Per-website: identifies this specific site. |
Both are safe in client-side HTML: the API checks the request's Origin against the registered domain, so a leaked key is still scoped to one site.
Staging, preview, or localhost
Each website is pinned to a single domain. For parallel environments you have two clean options:
-
Add a second website: if you deploy to
staging.example.comormy-app.vercel.app, create a separate website in the dashboard with that hostname as the domain. Use its ownpk_/web_pair in staging code. Production analytics stay untouched. -
Test from localhost: while developing on
http://localhost:3000the widget treats the host as "localhost" and honorsdata-dev-country/data-dev-regionfor simulating blocked traffic. No staging domain needed for dev:<script src="https://cdn.retarget.gg/widget.js" data-pub="YOUR_PUBLIC_KEY" data-website="YOUR_WEBSITE_KEY" data-dev-country="DE" ></script>
Production ≠ staging
Don't run production keys on staging. Real impressions and clicks from your team's testing will count against your dashboard analytics.
Next steps
Publisher
Geo Popup & Decline Popup overview
The product framing for the install you just read.
Advertiser
CPC, CPA, eCPM in one auction
The demand side of the network — useful context even for publishers.
Essays
Long-form strategy
How others think about geo-blocking, KYC declines, and bid models.
Need help with setup?
Send us your website stack, target regions, and whether you are installing Geo Popup or Decline Popup.