Product
For publishers
You are being asked to protect readers from creatives you cannot see, using a vendor you cannot audit, at a cost to revenue nobody will quantify for you. This page is about the third part.
How much revenue does ad quality blocking cost me?
With PubTrust, that is a number in your dashboard rather than an argument with your vendor. When a block comes from header-bidding demand we know the winning bid's CPM at the moment of the decision, so every blocked impression carries an estimated revenue impact, and every policy carries a running total for the day, the week and the month. Two things follow. First, you can weigh a policy honestly: if the Clickbait pack is costing you more per month than the reader experience is worth to you, you will be able to see that and turn it down. Second, you can settle the internal argument between the revenue team and the audience team with a figure instead of an anecdote — which, in our experience of how these decisions actually get made, is the whole game.
Pre-render blocking makes the arithmetic kinder than it looks. Google Ad Manager counts an impression on begin-to-render, so a creative stopped before render was never counted and was never earned. The estimated impact we show you is the bid you turned down, not revenue clawed back after the fact.
What happens when PubTrust blocks an advertiser it should not have?
You find it in seconds and undo it in one click, and we designed for this happening rather than for it not happening. Every violation row names the pack, the rule, the exact matched value, its weight, the layer that caught it and the language the rule came from — so "why was this blocked" is answered on the row, not in a support ticket. Beside it is a one-click allowlist: allow this advertiser domain, this creative, or this rule, at site or organisation scope. You can also lower a single rule's weight in your own policy without touching anything else. And because sites start in Monitor, the first week of false positives costs you nothing at all — which is the point of Monitor.
A missed ad is recoverable. A blocked legitimate advertiser is lost revenue and a phone call from a sales director. The whole corpus is calibrated around which of those two is worse.
What does the tag do to my page performance?
It loads async, with nothing synchronous on the critical path, at 11.4 KB gzipped from Cloudflare's edge. Blocking uses visibility:hidden rather than display:none, so the slot keeps its box and Cumulative Layout Shift from a block is zero. Long tasks are reported while ads are on the page, so you can see when advertising is hurting Interaction to Next Paint — a feature, not just an obligation. And the decision latency is measured in the tag and displayed in your dashboard at median and p95, per site and per layer, so you can hold us to it rather than trust us on it.
The failure guarantees, listed plainly
- Every hook and callback wrapped in
try/catch. The tag can fail; the page cannot. - A self-disabling watchdog: too many throws or too much CPU and it unhooks everything at once, goes dormant, and reports why.
- A remote kill switch — global or your site alone — so a bad build is gone within about five minutes without you deploying anything.
window.__ptDisable = true, your own escape hatch, permanently.- Every monkey-patch reversible, preserving original behaviour and
Function.prototype.toStringfidelity, so we do not trip another vendor's integrity checks and start a fight on your page. - The full readable source of your exact tag build, downloadable from your dashboard with its git SHA and bundle hash, for your security team to audit.
Can I stop the same bad ad from coming back?
Yes, and this is the feature we would most like you to test. Google Publisher Tag exposes responseIdentifier on slotRenderEnded, and Google documents it as the value that blocks that exact ad in Ad Manager's Ad Review Center — a tool that is otherwise retrospective and gated behind an impression threshold before an ad even appears in it. PubTrust captures the identifier on every violation and puts it on the row. One catch on your page becomes a permanent, one-click, upstream block in your own ad server. Separately, every confirmed verdict from our server-side deep scan is compiled into the shared policy bundle, so a creative condemned anywhere in the network is blocked everywhere on a lookup.
Which of my demand partners is sending me the worst inventory?
Every violation carries the bidder, the deal ID, the advertiser domain, the creative identifier, the size and the slot, so violation rate by bidder is a standard view rather than a custom report. The more interesting number is one nobody else surfaces: the rate at which a partner's declared advertiser domain disagrees with what we observe. adomain is self-declared with no verification step anywhere in OpenRTB and is frequently absent altogether. Measuring the gap between declaration and observation, per bidder, gives you a concrete, evidenced conversation to have in a QBR — and it is not a number a bad actor can fake away.
What can I show my board, my advertisers and my regulator?
Drill down and group by any dimension we carry — time, site, slot, policy, pack, severity, layer, advertiser domain, bidder, landing URL, page URL, country, region, city, ASN, device, OS, browser, truncated IP — and save the view. Export it as a PDF generated server-side with vector charts, share it as a signed, expiring, revocable link, optionally password-protected, or schedule it as a daily, weekly or monthly email digest. Colour is never the only signal in our interface, which among other things means the PDFs are readable in greyscale — where, in our experience, they usually end up.
Who in my organisation uses this?
Organisations contain Teams, Teams are scoped to Sites, and members carry one of five roles: owner, admin, analyst, viewer and billing. An analyst at a group publisher can be given three of your forty titles and nothing else. Every action is written to an append-only, hash-chained audit log that you can read. Staff impersonation, when our support team needs it, requires a typed reason, is time-limited, is read-only by default with a second explicit confirmation to gain write access, shows a permanent banner to the staff member — and appears in your audit trail, not just ours. There is no silent impersonation in this product.