Overview
Verified impressions over time
By campaign
| Campaign | Impressions | Est. spend | Last served |
|---|---|---|---|
| No verified impressions in this range yet. | |||
Campaigns
New campaign
Your campaigns
No campaigns yet — create one above to start serving.
Ad Groups
A lightweight, organizational layer over campaigns — for grouping creative variants under one name for reporting. It doesn't change targeting or serving; every campaign still competes for slots independently in adselect.js.
New ad group
Your ad groups
No ad groups yet.
Assets
Upload an image
Your assets
No assets yet — upload one above.
Reports
Verified impressions
| Group | Impressions | Est. spend |
|---|---|---|
| No data in this range yet. | ||
Docs & API
Everything below matches the deployed worker exactly — there's no separate "real" API behind it.
/v1/adFetch a raw JSON ad payload. Always $0 — nothing is billed on a fetch, only on a verified impression.
curl https://worker.lemprage.cobinar.com/v1/ad \ -H "X-Lemprage-Api-Key: YOUR_KEY"
Response includes headline, body, image_url, cta_link, brand_name, category, and a security block with a single-use impression_id + signing_key your SDK uses to sign the Proof-of-Impression, plus a hidden _canary_pixel — never request it from real code.
/v1/impressionsSubmit a signed Proof-of-Impression once an ad has been ≥50% in viewport for ≥1s with window focus. This is the only call that results in a charge.
POST /v1/impressions
{
"impression_id": "...",
"poi": { "viewportRatio": 0.8, "dwellMs": 1400, "windowFocused": true, ... },
"signature": "HMAC-SHA256(signing_key, JSON.stringify(poi))"
}
/v1/billing/checkoutAdvertiser-authenticated. Requires Authorization: Bearer <Firebase ID token>. Creates a Stripe Checkout session to top up ad balance.
POST /v1/billing/checkout
Authorization: Bearer <id token>
{ "amountCents": 2500 }
-> { "url": "https://checkout.stripe.com/..." }
Client SDK
Not published yet — the IntersectionObserver + visual-safety-check + PoI-signing client is the natural next piece once the endpoints above are stable.
Settings
API key
No key yet. Generate one to start requesting ads from worker.lemprage.cobinar.com.
Shown once. Store it now — Lemprage can't show it to you again.
Key active and ready.
Allowed domains
Your key won't serve any ads until at least one domain is added here — this isn't optional, it's the difference between "anyone who finds this key can use it anywhere" and "only your site can."
No domains yet.
Ad categories
Only these categories will ever be served on your site. Leave everything unchecked to accept all categories.
Billing
Ad balance
Spent against campaign delivery. Stripe test/live keys are configured per Worker environment, not in this page.
Add funds
Admin
Publishers
—
Campaigns
—
Verified impressions
—
Fraud blacklist
IPs blocked by the canary honeypot, ASN filtering, bot score, or a signature mismatch — see fraud.js.
| IP | Reason | Blocked | |
|---|---|---|---|
| Loading… | |||
Grant admin
Promotes another signed-up account to admin. They'll need to sign out and back in for it to take effect.