Log in / Create free account🌐 ES☀️

Intermediate training · Module 5 — Shopping in depth — Merchant Center, structure and per-product profitability

Shopping campaign structure: product groups, priorities and the architecture by intent

⏱️ 10 min read · 🛒 Shopping 🔎 Search · updated on 2026-09-02

🎧 Listen to the lesson · ≈ 4 min🔒 Subscribers only

In short: "All products" with a single bid is the structure that loses the most money: the cheap product eats the expensive one's budget and your brand pays the same as generic searches. Subdivide by different economics — above all by a margin label —, use campaign priority to decide who gets in, and always watch the "Everything else" branch.

A freshly created Shopping campaign has a single group, "All products", with a single bid. It is the structure that loses the most money: the cheap, low-margin product eats the budget of the expensive one, and searches for your brand pay the same as generic ones. This lesson builds the structure that separates what deserves different bids.

How do you subdivide the catalogue into product groups?

Inside a Shopping ad group, the catalogue is subdivided into a tree by feed attributes:

Subdivision criterion What for
Category (google_product_category) or product type (product_type) Bidding differently by family (running shoes vs accessories)
Brand Own brands vs distributed ones; brands with different margins
Custom labels (custom_label_0..4) Whatever you want: high/medium/low margin, season, best sellers, stock, new arrivals
Item ID A specific product (hero products, clearance)
Condition / channel New vs refurbished; online vs local

Each leaf of the tree has its own bid (manual) or inherits the strategy's target (Smart Bidding), and any leaf can be excluded (not advertised). Rule: subdivide by what has different economics, not by taste; five or six well-thought-out groups beat fifty.

Custom labels are the key tool: you fill them in the feed (or with rules, module 6) with the criterion the business knows and Google does not — the margin. custom_label_0 = high_margin / medium / low is the most profitable subdivision that exists.

What is campaign priority for in Shopping?

When several campaigns advertise the same product, the priority (high / medium / low) decides which one enters the auction: always the highest-priority one that still has budget, regardless of the bid. It looks like a technical detail and it is the basis of the architecture by intent.

What is the classic three-tier Shopping structure?

The idea: the same product listing can show for «running shoes» (generic, converts poorly), «nike pegasus running shoes» (specific product, converts well) or «nike pegasus shop X» (brand, converts enormously). With one campaign you pay the same for all three. With three campaigns and priorities + negatives, each intent pays its own way:

Campaign Priority Negatives What it captures Bid/target
Generic High Product/model names + your brand Generic searches («running shoes») Low / demanding ROAS
Product Medium Your brand Searches with the product's model/brand («nike pegasus 41») Medium
Brand Low None Searches with your brand High / relaxed ROAS

How it flows: a generic search enters the High campaign (it is not negativised there). A search with a model is negativised in High → it drops to Medium. A search with your brand is negativised in High and Medium → it drops to Low, where you pay what it is worth. Priority directs; negatives filter. Maintenance: the negative lists for High and Medium are fed from the search terms report (lesson 3).

Does that structure still hold with Smart Bidding?

Yes, with caveats. Target ROAS already bids differently per search depending on the probability of conversion; but the architecture by intent still delivers separate reporting (you know what brand sells and what generic sells), different targets per intent and brand protection. The simplified 2026 version: two campaigns (brand / the rest) with priorities and negatives, each with its own target ROAS.

Which Shopping structures fail?

💡 Ninja trick: the margin label is what makes it possible to judge Shopping by profit rather than by revenue. The Shopping Ninja reads the margin custom_label (or a margin table in its spreadsheet) and calculates POAS (return on profit) as well as ROAS per product: a product with a ROAS of 4 and a 15 % margin is running at a loss, and the script flags it red. Without the label, that truth does not exist.

What you should remember

📎 Sources and further reading

⚠️ Free training with no support. Ninja Scripts support channels (email and Telegram) are only for the use of the scripts, not for Google Ads questions or questions about this training.

Pick up here

← BeforeShopping from the inside: how Google decides which product to show (with no keywords)Shopping in depth — Merchant Center, structure and per-product profitabilityAfter →Search terms and negatives in Shopping: your only control over searchesShopping in depth — Merchant Center, structure and per-product profitabilityRelacionadaApp campaigns and the final map: which campaign type for each objectiveThe other campaign types — an introductory mapRelacionadaAd Rank and Quality Score: what the «quality» Google rewards is made ofHow advertising on Google worksRelacionadaAI Max Analyzer in practice: install it, read the verdict and actAI Max — the black box of automatic Search expansionRelacionadaHow to measure what you can't see: split by source, before/after with a control, and reconcileAI Max — the black box of automatic Search expansion

Ver el temario completo

🎓
You're reading the Ninja Academy in the open

Create your free account (no card) to save your progress, take the graded quizzes, earn the Basic level certificate and unlock part of the Intermediate and Advanced training.

Create my free account →
🥷

Subscriber feature

This option is part of the Ninja Scripts Suite subscription.

See the subscription →