- Place ads in visible, high-attention areas — inline in the conversation flow, not below the fold or behind collapsible sections. If the user is unlikely to see it, it won’t count.
- Follow the Acceptable Ads Standard — ads should be clearly labeled (“Sponsored”), non-intrusive, and blend with your UI without deceiving users.
- Fire the view ping only on viewability — see Tracking → Fire Impressions on Viewability. Firing before the ad is visible inflates unverified impressions and hurts your payout ratio.
Avoiding Ad Blockers
Most ad blockers use CSS selector and network request pattern matching. If your ad component is blocked, the impression is never rendered and you don’t get paid. Follow these rules:- Do not use class names or IDs containing
ad,ads,advert,banner,sponsor, orpromo(e.g. avoid.ad-container,#sidebar-ad,.ad-banner). Use neutral names like.message-card,.info-block, or.content-item. - Do not use
<div>or<section>elements withdata-ad,data-advert, or similar attributes. - Do not load ad images from URLs containing
/ads/,/ad-assets/, or/banners/. Proxy through your own CDN or use generic paths. - Do not make network requests to domains or paths that match common ad-block filter lists (e.g.
pagead,doubleclick,adserver). Thrad tracking URLs (ssp.thrads.ai/api/v1/tracking/...) are not on standard block lists. - Do render ads using the same UI components as your regular chat messages — the more native the ad looks in your component tree, the less likely it is to be filtered.
Thrad ad responses are plain JSON over your existing API connection — there are no third-party scripts, iframes, or tracking pixels that trigger ad blockers. The main risk is your own frontend code using naming patterns that get caught by cosmetic filters.
Impression Quality Assurance
Thrad uses a multi-factor verification engine for Impression Quality Assurance (IQA). Every impression ping is analyzed for telemetry consistency, network signals, and behavioral patterns before it is counted toward billing.How it works
Our IQA engine analyzes network telemetry, IP reputation, and behavioral patterns across the full impression lifecycle. Impressions that fail verification are classified as Invalid Traffic (IVT) and are automatically filtered during the billing cycle.What publishers need to do
For server-to-server (S2S) integrations — where your backend fires view URLs on behalf of the user — you must forward the end-user’s original headers:X-Forwarded-For— the user’s real IP addressUser-Agent— the user’s real device string
For browser integrations using the publisher tag, or mobile apps firing view URLs directly from the device, these headers are sent automatically. No additional work is needed.
