Post-Bid Fraud Analysis
Measure invalid traffic on impressions you already won. Get fraud rates by SSP, publisher domain and campaign — plus reverse postbacks to mark impressions non-billable.
What is post-bid?
Post-bid analysis scores an impression after the auction is won, at render time. Unlike pre-bid (which blocks before the bid), post-bid measures what you actually bought: how many of your won impressions were served to bots, datacenters or non-viewable slots.
Two ways to feed data — use either or both:
- Server-side win-notice: your DSP sends a POST for each won impression.
- Creative pixel: a tag embedded in the creative measures viewability and reports at render.
1. Win-notice endpoint
Send a POST to https://ingest.mediasafe.cc/pb for each won impression. We score it synchronously (GIVT: datacenter, known bots, headless) and store it for reporting.
POST https://ingest.mediasafe.cc/pb
Content-Type: application/json
{
"site": "as_XXXXXXXX",
"ip": "203.0.113.9",
"ua": "Mozilla/5.0 ...",
"win_id": "AUCTION_ID",
"ssp": "pubmatic",
"domain": "publisher.com",
"campaign": "summer_sale",
"price": 2.35,
"currency": "USD",
"viewable": true
}
Response:
{ "decision": "block", "verdict": "givt", "score": 100,
"reasons": ["datacenter"], "win_id": "AUCTION_ID" }
| Field | Description |
|---|---|
decision | allow / block — advisory verdict |
verdict | clean / givt / sivt (IAB categories) |
score | 0–100 fraud confidence |
2. Creative pixel
Alternative when you have no server-side win-notice. Embed this in the creative; the SSP substitutes the macros at render time. The pixel measures viewability with IntersectionObserver and reports to /pb.
<script src="https://ingest.mediasafe.cc/postbid.js"
data-site="as_XXXXXXXX"
data-win="${AUCTION_ID}"
data-ssp="${EXCHANGE}"
data-domain="${PUBLISHER_DOMAIN}"
data-campaign="${CAMPAIGN}"
data-price="${AUCTION_PRICE}" async></script>
Macro names vary by SSP/DSP (e.g. ${AUCTION_PRICE}, %%TZ%%, {price}). Unsubstituted macros are ignored automatically.
3. Reverse postback
When an impression is scored as fraud, MediaSafe fires a GET to your configured URL so your DSP can mark it non-billable or optimize sourcing. Configure it in the dashboard under RTB → Settings. Available macros:
https://dsp.example.com/nobill?win={win_id}&v={verdict}&s={score}
| Macro | Value |
|---|---|
{win_id} | Auction / win ID |
{verdict} | clean / givt / sivt |
{score} | 0–100 |
{reason} | Top fraud reason |
{ssp} | SSP / exchange |
What you get
- IVT rate across won impressions (GIVT + SIVT).
- Breakdowns by SSP, publisher domain and campaign.
- Wasted spend — money spent on fraudulent impressions.
- Reverse postbacks to your DSP/SSP for non-billing.