Inventory Quality

Part of Programmatic inventory quality

Reviewing domain and app placement reports

A placement report is useful when every important row can be tied to a decision.

A placement report is useful when every important row can be tied to a decision. Start with spend and identity, then examine outcomes. Sorting by the worst click-through rate alone often promotes tiny, noisy rows while hiding where most of the budget went.

Build a report that preserves context

Export the same date range for domain or app ID, environment, device, geography, impressions, spend, clicks and the campaign's meaningful outcome. Keep the source report intact, then work on a copy.

In Google Ads, use group_placement_view, equivalent to Content > Where ads showed, to review where Display Network and YouTube ads actually appeared. It includes websites, YouTube channels and videos, and apps, whether placements were explicitly targeted or automatically detected. Use managed_placement_view, equivalent to Content > Placements, for performance on explicitly targeted placements.

For more detail, detail_placement_view goes beyond the domain or channel level, such as to a specific URL or YouTube video ID. The Google Ads API example pulls campaign.id, ad_group.id, placement.url, impressions, clicks and cost_micros for LAST_30_DAYS.

If the platform groups sites or apps behind a channel, retrieve the composite list before assuming the channel label describes every placement. Check the report's target type before interpreting a channel label.

Set a minimum amount of spend or impressions for individual review. Put smaller rows into a separate watch group, rather than calling them good or bad.

Look for concentrated spend, unrecognised app IDs, mismatch with the intended market and repeated visits that never reach the next useful action. Compare within the same format and device before making a placement-level judgement.

A Performance Max placement report can show placement domains, network type, placement type and impression volume. Treat performance_max_placement_view as an impressions-only view: it does not provide individual-placement clicks, conversions or cost, so it cannot show a placement's return.

Some low-activity placements may be grouped into an “Other” row instead of appearing individually. The individual rows may therefore not add up to the campaign or ad group total.

Trace a questionable row

Open the site or app listing where feasible and verify what the ID represents. Check whether the page or app context matches the ad's message. Compare the landing-page URL and campaign parameters for that row with known-good placements.

For a domain, inspect the publisher's ads.txt. For an app, find the developer website in the app's store listing and inspect app-ads.txt there; compare the SSP domain, seller account ID and DIRECT or RESELLER relationship, and use sellers.json as part of the seller-authorisation check.

A broken redirect or missing event can make legitimate traffic look poor. Write a short finding: “This placement used 12% of the period's spend, delivered mainly outside the chosen device context, and had no completed lead forms.” That is a hypothetical example, not a benchmark or fraud finding.

The action might be an environment-targeting correction, a creative adjustment or a narrow exclusion. Document which signal led to which action.

Re-export after the change. Confirm that the placement actually stopped receiving spend and that delivery did not simply move to another unexamined identifier. Keep a small sample of good placements in view as a control for wider changes in demand or tracking.

More from Inventory Quality