3.7 million weekly impressions, unmonetized and untraceable

A real Supply Path diagnostic on a multi-site publisher network

What the diagnostic found

The "default" ad unit problem

3.7 million weekly impressions were landing in GAM's generic default bucket instead of their real ad units, invisible to targeting or proper monetization.

Nearly two decades of tag debt

Ad tags built by different developers across different years, no consistent naming convention, described by the client's own developer as a bit of dirty code.

A hidden traffic-source blind spot

Nearly 90% of one site's traffic arrived through Facebook's in-app browser, not a standard browser, a context with different consent and rendering behavior a surface-level audit would miss.

AdSense and Ad Exchange overlap

Both networks were running in parallel on the same inventory with no clear priority set between them.

The Client

AdHub Media runs a network of publisher sites, including Notizie.it and Donne Magazine, monetized primarily through Google Ad Manager alongside AdSense and Ad Exchange.

The Challenge

GAM reports showed a large share of ad requests landing under a generic "default" ad unit, meaning Google Ad Manager could not identify which real ad unit was actually making the request. Impressions sitting there could not be properly targeted or monetized. Fixing it meant finding the actual broken implementation across a live, multi-site network without disrupting traffic.

Globe

The Solution

Rather than guessing at the fix, we enabled GAM's own "Suggested Ad Units" feature and let a few days of live request data reveal exactly which ad units were misimplemented and on which pages, turning an invisible problem into a specific, page-by-page punch list.

Diagnostic first, not fix first

Detail

Enabled Suggested Ad Units and let GAM's own data identify the broken implementations before touching any code, avoiding guesswork on a live, revenue-generating site.

Standardizing the ad unit structure

Detail

Replaced years of inconsistent naming with one parent ad unit per site and child units by size, a structure the client's own developer confirmed was already the clean pattern used on their newest site.

Piloting on the cleanest site first

Detail

Started with the one site running no competing ad network, to validate the fix cleanly before extending the same structure across the rest of the network.

Cross-checking AdSense vs. Ad Exchange

Detail

Both networks were serving the same inventory with no confirmed priority between them, reviewed whether Ad Exchange's higher-CPM setting was actually resolving the overlap the way it's meant to.

A structural fix, not a one-off patch, the same naming convention now applies as new sites join the network.

What This Shows

This is what a real Supply Path Health Check engagement looks like: methodical, grounded in the ad server's own request data rather than guesswork, working page by page across a live multi-site network.

John Carter, CEO & Co-Founder

Grounded in the platform's own data

Every finding traced back to GAM's own reporting, not assumptions, using the Suggested Ad Units feature rather than manual page-by-page guessing.

Sophie Moore, Community Lead

A phased rollout, not a big-bang fix

Piloted on one site, confirmed the structure worked, then extended it, rather than pushing an untested change across the whole network at once.

Alex Turner, Operations

Real constraints, stated plainly

This account's actual monetization level was modest, which is now part of how we qualify engagements before taking them on: we look at absolute recoverable revenue, not just the percentage of leak, before pricing an audit.