> ## Documentation Index
> Fetch the complete documentation index at: https://docs.thrad.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# IVT & Verification

> How Thrad filters invalid traffic across the bid lifecycle, what signal we forward to your DSP, and how verification works on the impression event.

Thrad's approach to invalid traffic (IVT) is **layered and transparent**: we filter at the edge, forward the full client signal at bid time, and fire verification pixels on the user's device on render — so your DSP (and any third-party verification vendor you already use — DoubleVerify, IAS, HUMAN, or in-house) can validate independently of Thrad's servers.

Thrad is **not MRC accredited** and does not bundle an in-house sIVT vendor. The integration is designed so the DSP-side verification stack runs against Thrad's forwarded signal.

## Defense layers

### 1. Edge filtering (pre-bid)

All inbound traffic to the Thrad SSP passes through **Cloudflare Bot Management** before any bid request is generated. This strips General Invalid Traffic (GIVT) at the edge:

* Known crawlers and spiders
* Headless browsers and automation frameworks
* Known datacenter IP ranges
* Requests failing TLS / HTTP-level integrity checks

Traffic filtered at the edge never reaches your DSP as a bid request. You are never billed for it.

### 2. Bid-time signal forwarding

Every bid request carries the end-user signal needed for DSP-side IVT checks — IP and User-Agent in the request headers, plus a stable session identifier (`device.ifa`) for per-user velocity and anomaly detection. `source.ext.schain` carries the IAB `SupplyChain` object rooted in Thrad's `sellers.json`.

Full field map: [Targeting Signals](https://docs.thrad.ai/dsp/guides/ortb/targeting.md).

### 3. Impression verification

On render, two independent signals reach your infrastructure.

#### Client-side — independent trust channel

Thrad's publisher-side measurement layer verifies viewability against the **IAB/MRC display standard**: **1 second at 50% of pixels in-view**. On viewability-met, any tracker URLs you supplied in the bid response fire **directly from the user's device to your endpoint**.

The TCP connection lands on your server from the real user, with **native IP and User-Agent** in the request headers — no Thrad server in the middle. This is the signal your verification vendor (DV / IAS / HUMAN) needs to run client-observed validation.

Include trackers in `adm` — for native, use the `eventtrackers` array (Native 1.2) with `event: 1` (impression) and `method: 1` (image pixel). That pair is the only one Thrad advertises and fires; `event: 2` (viewable-MRC50) and `method: 2` (JavaScript) are not supported yet. Because the pixel fires on viewability-met, your `event: 1` tracker already counts only viewable impressions. Only the first tracker you declare is fired — see [Viewability and impression counting](https://docs.thrad.ai/dsp/api-reference/ortb-bid.md#viewability-and-impression-counting).

#### Server-side — billing reconciliation

On impression confirmation, Thrad fires `burl` server-to-server with:

* `X-Forwarded-For` set to the end-user IP
* `User-Agent` set to the end-user UA
* Auction macros substituted (`${AUCTION_PRICE}`, `${AUCTION_ID}`)

Events are deduplicated per `bidId` — one billable impression produces at most one `burl` call. `nurl` fires on win (before delivery) and does not confirm render; `lurl` fires on loss with a reason code. See [Overview](https://docs.thrad.ai/dsp/guides/ortb/overview.md) for the full lifecycle.

### 4. Human-originated vs agent-originated traffic

Thrad operates exclusively on traffic from **contracted publishers with authenticated Thrad integrations**, inside consumer conversational products. Bid requests originate from those authenticated publisher integrations; open API ingestion of conversation traffic from unauthenticated sources is not supported. Every publisher is identifiable in the bid request (`site.publisher.id`) and declared in `sellers.json`.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.