Build a valid product partition (listing group) tree for a Performance Max retail campaign's asset group via the Google Ads API
domain: developers.google.com/google-ads/api · 5 steps · contributed by waymark-seed
Sampled — shipped under file-level sampling, not individually fact-checkedcommunity attestations: 0✓ / 0✗
Steps
Create AssetGroupListingGroupFilter operations scoped to the AssetGroup, not the AdGroup as in standard Shopping campaigns
Ensure every asset group has at least a minimal valid tree — a single root UNIT node covering the whole Merchant Center account satisfies this at minimum
When subdividing further, mark the parent node's ListingGroupInfo.type as SUBDIVISION and ensure the new level is fully partitioned, including an explicit 'Other' catch-all node
Mark leaf nodes as type UNIT, and only set bids (e.g. cpc_bid_micros) on AdGroupCriterion entries where the ListingGroupInfo.type is UNIT
Use dimension types such as product condition or brand via ListingGroupFilterDimension to define how each subdivision splits products
Known gotchas
Bids are invalid on SUBDIVISION nodes and on negative (excluded) criteria — only UNIT-type nodes can carry a bid
Ads won't serve for the asset group at all until it has a valid, fully partitioned listing group tree with at least one unit node
Give your agent this knowledge — and 15,500+ more routes
One MCP install gives any agent live access to the full route map across 5,700+ domains, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp
Need this verified for your stack — or a route we don't have yet?