Post-Bid Fraud Analysis — MediaSafe
RTB / Programmatic

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:

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" }
FieldDescription
decisionallow / block — advisory verdict
verdictclean / givt / sivt (IAB categories)
score0–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}
MacroValue
{win_id}Auction / win ID
{verdict}clean / givt / sivt
{score}0–100
{reason}Top fraud reason
{ssp}SSP / exchange

What you get

Open dashboard →