Protected Audience auctions are splitting your reporting
Confirmed: on-device Protected Audience (formerly FLEDGE) auctions resolve separately from the contextual auction, and GAM reports them in a way that can double-count or strand impressions if your setup isn't reconciled. Ops teams see 'phantom' delivery gaps that are really just two auctions stitched badly.
— Separate Protected Audience line items in your delivery reports
— Reconcile component-auction wins against rendered impressions
Impact: split auctions break naive revenue reconciliation. Confidence: confirmed.
Confirmed: on-device Protected Audience (formerly FLEDGE) auctions resolve separately from the contextual auction, and GAM reports them in a way that can double-count or strand impressions if your setup isn't reconciled. Ops teams see 'phantom' delivery gaps that are really just two auctions stitched badly.
— Separate Protected Audience line items in your delivery reports
— Reconcile component-auction wins against rendered impressions
Impact: split auctions break naive revenue reconciliation. Confidence: confirmed.
SSP consolidation is collapsing your duplicate paths
Heard: when two SSPs you both work with merge, the acquirer often de-dupes overlapping supply post-close — meaning a publisher who relied on two paths to one DSP wakes up with one, and bid density drops without any setting changing on your end.
— Map which DSPs you reach through more than one SSP
— Flag the overlaps that share an acquirer for path resilience
Impact: M&A quietly thins your demand redundancy. Confidence: rumor.
Heard: when two SSPs you both work with merge, the acquirer often de-dupes overlapping supply post-close — meaning a publisher who relied on two paths to one DSP wakes up with one, and bid density drops without any setting changing on your end.
— Map which DSPs you reach through more than one SSP
— Flag the overlaps that share an acquirer for path resilience
Impact: M&A quietly thins your demand redundancy. Confidence: rumor.
One publisher ID, twelve seller_ids
Watching: a single SSP relationship can map to multiple seller_ids — one per pub property or per integration. Buyers de-duping at the seller_id level see twelve sellers where there's one entity, inflating your apparent footprint and triggering quality models that penalize sprawl.
— seller_id sprawl reads as low-quality long-tail supply
— Consolidation under owner_domain fixes the optics
Impact: map all your seller_ids to one declared owner_domain so audits see one clean entity. (sourced)
Watching: a single SSP relationship can map to multiple seller_ids — one per pub property or per integration. Buyers de-duping at the seller_id level see twelve sellers where there's one entity, inflating your apparent footprint and triggering quality models that penalize sprawl.
— seller_id sprawl reads as low-quality long-tail supply
— Consolidation under owner_domain fixes the optics
Impact: map all your seller_ids to one declared owner_domain so audits see one clean entity. (sourced)
Client-side vs server-side Prebid: the cookie tax
Heard: everyone moving s2s 'for speed' is quietly eating a 20-40% match-rate haircut from server-to-server cookie syncs.
— Client-side: best match rates, full SPO control, but 8-12 bidders maxes out browser CPU and tanks CLS on mobile.
— Server-side: scales to 30+ demand partners, lighter page, but you trust the s2s vendor's auction and lose per-bidder timeout granularity.
— Hybrid: top 4 revenue bidders client-side, long-tail s2s. That's where the real operators live.
Impact: Don't go full s2s on a cookie-dependent stack without measuring match-rate first. (sourced)
—
Если merchant feed shutdowns — твоя тема, посмотри @deal_wire
Heard: everyone moving s2s 'for speed' is quietly eating a 20-40% match-rate haircut from server-to-server cookie syncs.
— Client-side: best match rates, full SPO control, but 8-12 bidders maxes out browser CPU and tanks CLS on mobile.
— Server-side: scales to 30+ demand partners, lighter page, but you trust the s2s vendor's auction and lose per-bidder timeout granularity.
— Hybrid: top 4 revenue bidders client-side, long-tail s2s. That's where the real operators live.
Impact: Don't go full s2s on a cookie-dependent stack without measuring match-rate first. (sourced)
—
Если merchant feed shutdowns — твоя тема, посмотри @deal_wire
The owner_domain field nobody fills out
Watching: sellers.json has an optional
— If you resell through 3 SSPs, blank owner_domain hides the duplication from DSP de-dupe
— Buyers reading it as a quality signal, not just a curiosity
Impact: fill owner_domain before a buyer's path-dedup logic decides your seat is the redundant one. (sourced)
Watching: sellers.json has an optional
owner_domain field that ties an SSP entry to the legal entity that controls it. Almost nobody populates it. Buyers running supply-path audits now use it to collapse the same parent across multiple SSPs — when it's blank, your inventory looks like a fresh seller instead of a known reseller.— If you resell through 3 SSPs, blank owner_domain hides the duplication from DSP de-dupe
— Buyers reading it as a quality signal, not just a curiosity
Impact: fill owner_domain before a buyer's path-dedup logic decides your seat is the redundant one. (sourced)
DIRECT relationships that are quietly RESELLER
Heard: a recurring audit finding — publishers list an SSP as
— ads.txt says DIRECT, sellers.json says RESELLER = laundered path
— DSPs increasingly drop bids on the conflict rather than guess
Impact: reconcile your DIRECT/RESELLER tags across both files or watch eligible demand silently shrink. (sourced)
Heard: a recurring audit finding — publishers list an SSP as
DIRECT in ads.txt while that SSP's sellers.json marks the same seat as RESELLER. The mismatch is the tell. It usually means a managed-service team is reselling under the pub's name without the pub knowing.— ads.txt says DIRECT, sellers.json says RESELLER = laundered path
— DSPs increasingly drop bids on the conflict rather than guess
Impact: reconcile your DIRECT/RESELLER tags across both files or watch eligible demand silently shrink. (sourced)
Unified Pricing Rules leak your floors
Confirmed: GAM's Unified Pricing Rules apply one floor to open auction and Open Bidding alike — and that floor is observable. Bidders that lose repeatedly at the same price reverse-engineer your floor curve over a week and shade bids to land a cent above it.
— Static UPR floors = a published price list to anyone testing
— Per-buyer floors and target-CPM rules muddy the signal
Impact: rotate floor logic or add randomized target-CPM rules so the curve isn't trivially mapped. (confirmed)
Confirmed: GAM's Unified Pricing Rules apply one floor to open auction and Open Bidding alike — and that floor is observable. Bidders that lose repeatedly at the same price reverse-engineer your floor curve over a week and shade bids to land a cent above it.
— Static UPR floors = a published price list to anyone testing
— Per-buyer floors and target-CPM rules muddy the signal
Impact: rotate floor logic or add randomized target-CPM rules so the curve isn't trivially mapped. (confirmed)
One to follow
For RPM optimization done right, @LiftLabRPM is the move. Hands-on tests of every RPM lever — lazy load, refresh, sticky units, layout…
For RPM optimization done right, @LiftLabRPM is the move. Hands-on tests of every RPM lever — lazy load, refresh, sticky units, layout…
Your sellers.json gets crawled hourly
Heard: large DSPs snapshot SSP sellers.json files on a tight cadence — sometimes hourly — and diff them. A seller_id that appears, vanishes, then reappears reads as instability and can get the seat throttled, not just flagged.
— Churning seller_ids looks like spoof-prone inventory
— Confidential entries (name/domain redacted) draw extra scrutiny, not less
Impact: treat sellers.json as a stability signal — stop hot-editing it, stage changes. (rumor)
Heard: large DSPs snapshot SSP sellers.json files on a tight cadence — sometimes hourly — and diff them. A seller_id that appears, vanishes, then reappears reads as instability and can get the seat throttled, not just flagged.
— Churning seller_ids looks like spoof-prone inventory
— Confidential entries (name/domain redacted) draw extra scrutiny, not less
Impact: treat sellers.json as a stability signal — stop hot-editing it, stage changes. (rumor)
There is no second price to hide behind
Confirmed: GAM has run a unified first-price auction for years, but plenty of stacks still carry bid-shading logic and reserve assumptions written for second-price behavior. In first-price, every cent of an over-high floor that clears is margin you keep — and every floor that's too high is a blank you eat.
— Old second-price reserve math under-prices first-price inventory
— Bid shading lives buyer-side now, not yours
Impact: re-audit any floor logic older than the first-price switch. (confirmed)
Confirmed: GAM has run a unified first-price auction for years, but plenty of stacks still carry bid-shading logic and reserve assumptions written for second-price behavior. In first-price, every cent of an over-high floor that clears is margin you keep — and every floor that's too high is a blank you eat.
— Old second-price reserve math under-prices first-price inventory
— Bid shading lives buyer-side now, not yours
Impact: re-audit any floor logic older than the first-price switch. (confirmed)
The incomplete flag in your SupplyChain object
Watching: the
— One undeclared intermediary forces complete:0 on the whole chain
— Buyers treat the flag as binary trust, not a nuance
Impact: verify every node declares its upstream, or your fully-legit path gets binned with the spoofers. (sourced)
Watching: the
schain object carries a complete flag — 1 means every hop from publisher to exchange is declared. Drop one reseller node and you must set it to 0, and many DSPs hard-filter complete:0 on premium line items.— One undeclared intermediary forces complete:0 on the whole chain
— Buyers treat the flag as binary trust, not a nuance
Impact: verify every node declares its upstream, or your fully-legit path gets binned with the spoofers. (sourced)
app-ads.txt and the bundle-ID lookup
Heard: app-ads.txt validation hinges on the developer URL in the store listing pointing to a domain that hosts the file — but the matching key is the store bundle ID, not the app name. A renamed app or migrated developer account quietly breaks the chain and zeroes authorized demand.
— Store developer URL → root domain → /app-ads.txt must align
— Bundle ID is the join key crawlers actually use
Impact: after any store-listing change, re-verify the developer URL resolves to your app-ads.txt host. (sourced)
Heard: app-ads.txt validation hinges on the developer URL in the store listing pointing to a domain that hosts the file — but the matching key is the store bundle ID, not the app name. A renamed app or migrated developer account quietly breaks the chain and zeroes authorized demand.
— Store developer URL → root domain → /app-ads.txt must align
— Bundle ID is the join key crawlers actually use
Impact: after any store-listing change, re-verify the developer URL resolves to your app-ads.txt host. (sourced)
Protected Audience bids arrive blind
Watching: Privacy Sandbox's Protected Audience runs the interest-group auction in a fenced frame, so the winning ad renders without GAM seeing the user signal that produced it. Your reporting gets a fill with no addressable context attached — reconciliation against the buyer's logs starts diverging.
— Fenced-frame renders break the usual signal-to-revenue audit trail
— Reporting deltas widen as more demand routes through PA
Impact: build a separate reconciliation lane for fenced-frame fills now, before the volume matters. (sourced)
Watching: Privacy Sandbox's Protected Audience runs the interest-group auction in a fenced frame, so the winning ad renders without GAM seeing the user signal that produced it. Your reporting gets a fill with no addressable context attached — reconciliation against the buyer's logs starts diverging.
— Fenced-frame renders break the usual signal-to-revenue audit trail
— Reporting deltas widen as more demand routes through PA
Impact: build a separate reconciliation lane for fenced-frame fills now, before the volume matters. (sourced)
The rebate hiding in the take rate
Heard: some SSPs quote a modest published fee, then earn the spread through buy-side rebates the sell-side never sees. Your effective take looks fine on the seller dashboard; the demand-path study a buyer runs shows a fatter total tax.
— Published seller fee ≠ total path tax once buy-side rebates land
— Buyers cut paths on total tax, not your quoted rate
Impact: ask your SSP for the all-in path cost, not the sell-side fee — that's the number deciding your demand. (rumor)
Heard: some SSPs quote a modest published fee, then earn the spread through buy-side rebates the sell-side never sees. Your effective take looks fine on the seller dashboard; the demand-path study a buyer runs shows a fatter total tax.
— Published seller fee ≠ total path tax once buy-side rebates land
— Buyers cut paths on total tax, not your quoted rate
Impact: ask your SSP for the all-in path cost, not the sell-side fee — that's the number deciding your demand. (rumor)
Key-value targeting you forgot is still firing
Watching: GAM line items keyed on custom key-values from old campaigns keep matching traffic long after the campaign ends if the key still ships in the ad request. Stale targeting quietly diverts inventory to a paused-looking line item that's technically eligible.
— Orphaned key-values = silent inventory leaks
— Inventory shows delivered, revenue doesn't reconcile
Impact: audit which custom key-values your page actually sends vs. what line items target. (sourced)
Watching: GAM line items keyed on custom key-values from old campaigns keep matching traffic long after the campaign ends if the key still ships in the ad request. Stale targeting quietly diverts inventory to a paused-looking line item that's technically eligible.
— Orphaned key-values = silent inventory leaks
— Inventory shows delivered, revenue doesn't reconcile
Impact: audit which custom key-values your page actually sends vs. what line items target. (sourced)
buyers.json is the mirror nobody checks
Heard: sellers.json gets all the attention, but the DSP-side
— Sellers audit upstream supply but rarely downstream demand
— Thin buyers.json adoption = blind spot for made-for-arbitrage demand
Impact: start logging declared buyer identity per path so you can spot arbitrage flips early. (rumor)
Heard: sellers.json gets all the attention, but the DSP-side
buyers.json / DemandChain spec lets sellers verify who's actually buying through a path. Adoption is thin, so spoofed buyer identities pass uninspected on the sell side.— Sellers audit upstream supply but rarely downstream demand
— Thin buyers.json adoption = blind spot for made-for-arbitrage demand
Impact: start logging declared buyer identity per path so you can spot arbitrage flips early. (rumor)
