Lesson 2 explained what each attribute does; this one teaches you to change them at scale without asking the shop's developer for anything. The tool is the supplemental feed in Google Sheets (or the Merchant API once you have volume), fed by formulas and scripts. It is the most profitable workshop in Shopping: titles and labels move more than bids do.
The control layer: a supplemental feed in Google Sheets
- Merchant Center → Products → Data sources → Add supplemental source → Google Sheets (Google's template or your own sheet).
- Columns:
id(required) + the ones you want to overwrite:title,custom_label_0…4,google_product_category,product_type,product_highlight,sale_price,excluded_destination… - Link the supplemental source to the primary feed; daily fetch frequency (or "fetch now" after editing).
- Precedence rules: the supplemental source overwrites the primary one for the attributes present; empty cells touch nothing.
The spreadsheet becomes the feed's control panel: one row per product with the primary feed's data (imported through a Merchant Center export or by script) + calculated columns + output columns.
Titles: the formula by vertical
Build the title with a formula from clean attributes. Patterns that work (the first 70 characters decide):
| Vertical | Pattern | Example |
|---|---|---|
| Apparel | Brand + Garment + Gender + Colour + Size | Levi's 501 Jeans Men's Blue 32/32 |
| Electronics | Brand + Model + Type + Key feature | Samsung Galaxy S25 128 GB Black SIM-Free |
| Homeware | Product + Material + Dimension + Brand | Non-stick frying pan 28 cm induction Tefal |
| Beauty | Brand + Product + Type + Size | La Roche-Posay Effaclar Cleansing gel 400 ml |
| Spares/industrial | Product + Part number + Compatibility + Brand | Oil filter OC90 Bosch for BMW 3 Series |
| Food | Brand + Product + Format + Quantity | Lavazza Coffee beans Qualità Rossa 1 kg |
A typical formula (Spanish locale, ;):
=TRIM(B2 & " " & C2 & " " & IF(D2<>""; D2 & " "; "") & E2 & " " & F2)
Two sources for the words: the Shopping search terms (what people actually type) and the Keyword Planner queries for the category. The rule: include the highest-volume term that genuinely describes the product (without padding it out with synonyms: Google reads the title the way a human does).
Then: LEN() to keep an eye on the 150-character limit, and a "new
title ≠ old title" column so you only review what changed.
Automatic labels (custom labels)
Assign labels with formulas over your performance and business columns:
custom_label_0= performance: using clicks, cost and conversions from the last 30-60 days (exported from Google Ads):=IF(conv>=5;"top";IF(coste>50 AND conv=0;"sangria";IF(clics<10;"sin-datos";"medio")))(top / bleeding money / no data / middling).custom_label_1= margin: from the product cost: high / medium / low bands.custom_label_2= price: bands (<20, 20-50, 50-150, >150) — the CPC you can afford depends on the basket value.custom_label_3= seasonality/newness: date added (< 45 days = new arrival), season derived fromproduct_type.custom_label_4= stock: units (high = clear it, low = protect it).
The campaigns (lesson 4) are built on top of these labels; when performance changes, the label moves the product from one campaign to another by itself on the next fetch. That is the automation that matters.
The Merchant Center rules that are worth it
For simple transformations, with no spreadsheet involved:
- Put the brand in front of the title when it is missing: "set
title=brand+ ' ' +title" with the condition "title does not contain brand". - Fill
google_product_categoryfromproduct_type(if it contains "frying pan" → category 668). - Normalise
colorandsize(value maps). - A
custom_labelfrom a simple condition (price > 100 → "premium"). - Extract the size/colour from the title when the shop does not export them.
The limit: rules cannot cross-reference Google Ads data. For performance and margin, use a spreadsheet + a script.
A/B testing titles
Merchant Center has no native A/B test for titles; you do it by product groups: split comparable products into two sets (labels "test-A"/"test-B"), rewrite the ones in B, and compare CTR and impressions per group over 2-4 weeks (the Google Ads products report, segmented by label). Only change titles in bulk once you have a result; the title affects relevance and a mass change can move impressions in either direction.
Descriptions and images
- Description: put the searchable content in the first 150-300 characters (brand, type, use, dimension, compatibility); no HTML, no empty marketing copy, no capitals. It can be generated with a template formula when the shop leaves them empty.
- Images: a clean
image_linkper variant;additional_image_linkwith 3-5 views; Merchant Center's image improvement tool (automatic background removal) can be switched on.
The weekly feed workflow (45 min)
- Export per-product performance (30 days) from Google Ads into the spreadsheet (or let the script do it).
- Recalculate the labels (formulas) → review the products that change campaign.
- Titles: the 20-50 products with the most impressions and the worst CTR → rewrite them with real terms.
- "Bleeding" products (spend with no sale over 60 days) →
excluded_destination: Shopping_adsfrom the spreadsheet (or an exclusion in the campaign). - Fetch the supplemental source now; check in Diagnostics that no new errors have appeared.
- Note it in the log (date, product, change).
What you should not automate blindly
- Price changes (a business decision; the feed should reflect the website, not decide it).
- Excluding new products for "no data" (they are still incubating).
- Titles with generated text that nobody reviews (agreement errors, false data): review samples.
🔧 The Shopping Ninja script solves this: it implements this whole workshop in a Google spreadsheet: it downloads per-product performance, cross-references it with real sales and margin (manual columns that it preserves), works out POAS and a traffic light, and offers checkbox actions to exclude products, negativise terms and propose optimised titles for the supplemental feed — with TEST mode, a preview, verification and a history. The titles sheet it generates gets linked as a supplemental source in Merchant Center and the weekly cycle comes down to reviewing checkboxes.
What to remember
- The supplemental feed in Google Sheets is the control layer: it overwrites titles, labels and categories without touching the shop.
- Titles by formula and vertical, using real search terms; the first 70 characters decide.
- Automatic labels by performance, margin, price, seasonality and stock → products change campaign on their own.
- Merchant Center rules for the simple things; spreadsheet + script for anything that cross-references Google Ads data.
- Only change in bulk once you have a test result; never automate prices.