Google PPS Doesn't Classify Anything. Here's Why That Makes Bid Enrichment the Real Work
We've been getting the same question from publishers on repeat lately: "we already have Neuwo's contextual signals running through Prebid. Where does Google's PPS fit into that, if at all?"
Fair question. And it comes up enough now that it's worth answering properly.
What PPS Actually Is
PPS stands for Publisher Provided Signals. It's a feature inside Google Ad Manager that lets a publisher hand Google's demand side, and any authorised buyers connected through it, a cleaned-up, standardised description of the page and the audience, without handing over any user-level tracking data.
Strip away the acronym and it's a simple idea. Instead of a bid request going out mostly blank, or full of a third-party cookie, the publisher attaches a label. "This page is about home renovation." "This reader has shown interest in outdoor gear." Google standardised those labels using the IAB's own taxonomies:
- IAB Content Taxonomy 2.2 for what the page is about
- IAB Audience Taxonomy 1.1 for who's likely reading it
That way a buyer on the other end can actually parse the label the same way regardless of which publisher sent it.
That's genuinely useful. A bid request with no context is a coin flip for the buyer. A bid request with standardised content and an audience label is something a DSP can act on with confidence.
One thing worth stating upfront: PPS only exists inside Google Ad Manager 360. If you're on standard GAM, there's no PPS tab to turn on, regardless of how good your contextual signals are. You can still get GAM 360 level access indirectly through a Google Certified Publishing Partner via Multiple Customer Management, but on standard GAM alone, this specific path isn't available. Everything below about Neuwo's bid enrichment through Prebid still applies to you exactly the same, since that runs independent of GAM tier.
It's Been in Beta a Long Time
Here's where a lot of the explainer content out there gets a little too enthusiastic. PPS isn't new. Google started laying the groundwork back in September 2022, integrating the IAB Tech Lab's Seller Defined Audiences spec into what became PPS, and PPS itself carried a formal beta label through 2023. It's still tagged "Beta" in Google's own documentation today.
Why has it stayed there so long? Part of the answer is that the ground shifted under it. PPS was built with a cookieless web in mind, a Chrome without third-party cookies, arriving on Google's own timeline. That timeline didn't hold. Google reversed its plan to deprecate third-party cookies in Chrome back in 2024, citing weak performance from its Privacy Sandbox alternatives and a lack of industry readiness. Chrome still runs cookies today. Safari and Firefox don't, but between them they're only around 9% of desktop browser traffic.
So the single biggest reason publishers were told to adopt PPS urgently quietly became less urgent. Adoption has moved at the pace you'd expect from a feature solving a smaller, more specific problem than originally advertised: Safari and Firefox traffic, apps, and CTV, where contextual signals in the bid stream are genuinely thin.
None of that means PPS is pointless. It means it's a targeted tool, not the sweeping cookie replacement it was pitched as three years ago.
Does It Actually Help Pass the Right Signals?
This is the part publishers don't usually get told plainly: PPS is a delivery mechanism, not a classification engine. It gives you a standardised envelope to put a signal in. It does not generate that signal for you.
Most publishers setting up PPS on their own end up doing it the manual way, mapping existing key-values, or a handful of first-party audience segments they already have, into the taxonomy categories Google supports. That works, but it only covers whatever segments someone already built by hand, and it's limited to the traffic those segments happen to touch. In other words, PPS is only as good as the classification you feed into it. Thin, manually-built segments in means thin signals out. PPS doesn't fix that on its own, it just delivers whatever you give it.
For publishers already running Neuwo's bid enrichment, the content half of this is already handled. Every page Neuwo processes gets classified against IAB Content Taxonomy 2.2 automatically, at the article level, across the full site, not just the pages someone got around to tagging manually, along with the dynamic brand safety scoring PPS is built to carry. So turning on PPS's content and brand safety signals isn't a separate classification project. It's mapping signals Neuwo is already producing into a channel Google already built to receive them.
The content side runs in parallel with your existing setup, off the same underlying analysis. Neuwo feeds the Prebid RTD path for the broader open auction, and the same Content Taxonomy IDs can be routed into Google Ad Manager's PPS settings for Google demand and Authorized Buyers, Google's own third-party DSP marketplace inside Ad Manager, specifically.
How to Actually Get Revenue Out of It
A few things separate publishers who see something from PPS from publishers who turn it on and forget about it.
Enable every demand channel, not just the default one. Google's own setup guidance recommends switching on all four channels together in Demand Channel Settings: Authorized Buyers (Google's own third-party DSP marketplace), Open Bidding and SDK Bidding (other paths third-party bidders use to compete), and Google demand (Google's own advertiser side, Ads and DV360). A lot of publishers leave it scoped to whatever was auto-generated and never revisit it.
Feed it real classification, not a static list. A handful of manually mapped segments goes stale and covers a fraction of your inventory. Signals generated automatically at the point of publish, across every article, is the difference between PPS touching 15% of your traffic and touching all of it.
Check what you're actually sharing per channel. Google's interface lets you control whether secure signals, third-party identifiers, and first-party identifiers go out together on the same request, channel by channel. Defaults aren't always what you'd choose deliberately.
Treat it as additive, not a replacement. PPS strengthens what goes into the Google-connected part of your stack. It doesn't touch the rest of your programmatic setup running through Prebid. Publishers get the most out of it when they think of it as one more place to route signals they're already generating well, not a new signals strategy on its own.
Where to Start
If you're already running Neuwo's bid enrichment, mapping it into PPS is a short conversation, not a new integration. Get in touch and we'll walk through what it looks like on your own inventory.
And if you're not classifying content with Neuwo yet, that's the part worth fixing first. PPS is only ever as good as what you feed it.