Problem
reporting_dimensions gives buyers limit + sort_by (+ sort_direction per #6622) on the negotiated breakdown dimensions (geo, device_type, device_platform, audience, demographic, placement, format per #6616). But three breakdowns — by_creative, by_keyword, by_catalog_item — are returned automatically when the seller supports them and are not controlled by this object (request schema's own words). They have no limit, no sort_by, and no by_X_truncated disclosure.
Consequence: "top creatives by completion" — arguably the single most common buyer reporting question — is only answerable if the seller happens to return all creative rows. A seller with 500 creatives that returns 50 rows has no way to say which 50 or whether the list is complete, and the buyer has no way to ask for the top 50 by quartile_100 (sortable as of #6618).
Proposed direction
Add optional creative, keyword, catalog_item keys to reporting_dimensions with the standard {limit, sort_by, sort_direction} shape, plus by_creative_truncated / by_keyword_truncated / by_catalog_item_truncated and the applied-sort echo per the #6622 pattern.
The design wrinkle that makes this an RFC rather than a rider: these breakdowns are automatic today, so the semantics of omitting the new request key must stay "seller returns what it returns" (backward compatible), while presence upgrades the contract to negotiated limit/sort/truncation-disclosure. That presence/absence dual contract is new — every existing dimension is opt-in from scratch.
Relationship
🤖 Generated with Claude Code
Problem
reporting_dimensionsgives buyerslimit+sort_by(+sort_directionper #6622) on the negotiated breakdown dimensions (geo, device_type, device_platform, audience, demographic, placement, format per #6616). But three breakdowns —by_creative,by_keyword,by_catalog_item— are returned automatically when the seller supports them and are not controlled by this object (request schema's own words). They have nolimit, nosort_by, and noby_X_truncateddisclosure.Consequence: "top creatives by completion" — arguably the single most common buyer reporting question — is only answerable if the seller happens to return all creative rows. A seller with 500 creatives that returns 50 rows has no way to say which 50 or whether the list is complete, and the buyer has no way to ask for the top 50 by
quartile_100(sortable as of #6618).Proposed direction
Add optional
creative,keyword,catalog_itemkeys toreporting_dimensionswith the standard{limit, sort_by, sort_direction}shape, plusby_creative_truncated/by_keyword_truncated/by_catalog_item_truncatedand the applied-sort echo per the #6622 pattern.The design wrinkle that makes this an RFC rather than a rider: these breakdowns are automatic today, so the semantics of omitting the new request key must stay "seller returns what it returns" (backward compatible), while presence upgrades the contract to negotiated limit/sort/truncation-disclosure. That presence/absence dual contract is new — every existing dimension is opt-in from scratch.
Relationship
🤖 Generated with Claude Code