Shopping Top Performers — Campaign Analysis

Summary

A Shopping campaign with a misleading name. Despite being called “Top Performers”, it’s essentially a hairpin legs campaign with 76 dead ad groups and only 2 that generate meaningful revenue. Underperforming relative to Shopping Catch All at nearly double the CPC, with a legacy structure that needs cleanup.

Campaign Configuration

SettingValue
Campaign ID67
NameShopping Top Performers - SC
TypeShopping
Bidding strategyTARGET_ROAS
Target ROASNot captured (NULL)
Daily budget£80
Serving statusSERVING

Ad Group Structure

78 total ad groups. 9 enabled, 69 paused. Only 2 generate meaningful revenue.

Enabled ad groups with data:

Ad GroupClicksCostConvRevenueROASShare of Revenue
Hairpin Legs (£48-£60)975£1,09053.0£4,0803.74x54%
Hairpin Legs (£35-£45)940£1,17037.1£2,9012.48x38%
Square Industrial Legs (£109.95)173£3154.0£5461.73x7%
Tapered Oak Table Legs62£580.7£621.06x1%
Everything else~100~£1500£00x0%

Paused ad groups include:

  • Mobile/Desktop split variants of the same products (legacy device targeting)
  • Product-specific groups at exact price points (“Formica Plywood Table Top (£195)”)
  • 20+ “(30% Discount)” groups — likely from a past promotion
  • Groups labelled “loser” (“Spiral Handle - Loser”, “Knurl 15mm Pull Handle - loser”)

All ad groups have CPC bids set to £0.01, meaning the automated TARGET_ROAS strategy controls all bidding.

Performance Data

Weekly Progression (57 days: Dec 12 – Feb 9)

WeekClicksCostCPCConvRevenueROASIS%£/conv
Dec 8–14109£155£1.426.0£6624.28x82.6%£26
Dec 15–21231£397£1.7215.8£1,0832.73x83.9%£25
Dec 22–2880£82£1.031.5£1321.60x86.5%£55
Dec 29–Jan 4306£315£1.0313.9£9853.13x87.8%£23
Jan 5–11290£328£1.1314.0£8722.66x85.8%£23
Jan 12–18276£307£1.1114.4£7742.52x86.8%£21
Jan 19–25244£276£1.138.5£1,0113.66x87.4%£32
Jan 26–Feb 1255£324£1.278.0£7802.40x87.5%£41
Feb 2–8395£512£1.3011.3£1,1162.18x86.0%£45

Totals: £2,783 cost | 2,250 clicks | £1.24 CPC | 94.7 conversions | £7,588 revenue | 2.73x ROAS

Device Breakdown (30 days, Jan 11 – Feb 9)

DeviceSpend% SpendClicksCPCConvRevenueROAS
Mobile£92158.4%918£1.0028.1£2,0662.24x
Desktop£63840.5%351£1.8215.4£1,7882.80x
Tablet£181.1%19£0.930.0£00.00x

Key findings:

  • Desktop CPC is 82% higher than mobile (£1.82 vs £1.00). This is the largest device CPC gap of any Shopping campaign. Desktop clicks are nearly double the price.
  • Desktop ROAS is 25% better (2.80x vs 2.24x) despite the higher CPC — desktop users convert at a higher rate for these specific products (hairpin legs in the £35–60 range).
  • Tablet is dead: zero conversions from 19 clicks across 30 days.
  • Compared to Shopping Catch All: CPC gap is even wider here. Top Performers desktop CPC (£1.82) is 67% higher than Catch All desktop CPC (£1.09). The campaign is systematically overpaying on desktop auctions, likely because of a higher TARGET_ROAS setting that bids more aggressively.

Search Term Cannibalization with Shopping Catch All >£20

Search term data confirms the suspected overlap — 105 terms appear in both campaigns simultaneously. See shopping-catch-all-analysis.md for the full overlap table.

Summary: Combined overlap spend is £190 over 30 days (Top Performers: £97 + Catch All: £93). On overlapping terms, Top Performers tends to win hairpin-specific queries while Catch All picks up broader product terms. The cannibalization is modest (2.3% of combined spend) but it does mean the account is bidding against itself on these terms.

Cross-campaign term appearances (broader view):

“Hairpin legs” appears in 5 campaigns simultaneously: Brand Search, Brand Shopping, Shopping Catch All >£20, Shopping Catch All <£20, and Shopping Top Performers. Combined spend on this single term: £287. Shopping Top Performers captures the most clicks (149 at £1.08 CPC, 4.0 conv) while Brand Search pays 3x the CPC (£3.24) for fewer clicks.

This pattern supports the recommendation to consolidate. If Shopping Top Performers were folded into Shopping Catch All, these products would still appear in Shopping results — but the algorithm would optimise across a larger pool of products and data rather than competing with itself across campaign boundaries.

Analysis

The Core Problem: Why Does This Campaign Exist Separately?

This campaign targets specific “top performing” products with individual ad groups. But the result is:

  • Higher CPC than Catch All: £1.24 vs £0.73 — 70% more expensive per click
  • Lower ROAS than Catch All: 2.73x vs 3.90x
  • Higher cost per conversion: £29 vs £23
  • Higher impression share: 86% vs 68% — so it’s winning more auctions but paying more to do so

The same products would likely appear in Shopping Catch All >£20 if this campaign didn’t exist. The question is whether the granular ad group structure provides enough control to justify the performance gap. Given that 76 of 78 ad groups are paused or producing nothing, the answer is probably no.

Structural Issues

Legacy architecture: The mobile/desktop ad group splits, price-specific groups, and discount promotion groups suggest this campaign was built when manual Shopping campaign management was the norm. With TARGET_ROAS automated bidding, this granularity is unnecessary — the algorithm optimises at the product level regardless of ad group structure.

The £35-£45 range is dragging the average: At 2.48x ROAS it’s below the campaign average and well below the £48-60 range (3.74x). This could mean:

  • Lower-priced hairpin legs have lower margins and the TARGET_ROAS isn’t accounting for that
  • The keywords attracting £35-45 traffic have worse intent
  • Cannibalisation with Shopping Catch All on the same products (confirmed: 105 overlapping search terms — see “Search Term Cannibalization” section above)

Square Industrial Legs underperforming: 1.73x ROAS on £315 spend — borderline loss-making depending on margins. Only 4 conversions over 26 days of data.

ROAS Trend

The trend is clearly downward:

  • Dec: 2.73-4.28x (variable but with peaks)
  • Jan: 2.40-3.66x (narrowing, trending down)
  • Feb: 2.18x (lowest full week)

This mirrors the broader account trend but is more pronounced here than in Catch All.

  1. Question whether this campaign should exist — if the same products perform better in Shopping Catch All (lower CPC, higher ROAS), consolidating would simplify management and let the algorithm optimise across a larger data set
  2. If keeping it: pause the Square Industrial Legs and Tapered Oak Legs ad groups — they’re spending money at sub-2x ROAS with minimal conversions
  3. Clean up the dead weight — 69 paused ad groups add no value and clutter the account. Remove them.
  4. Compare target ROAS settings — once we capture the actual target ROAS values (Phase 1 item), compare this campaign’s target against Catch All. If Top Performers has a lower target, that explains the higher CPC and worse performance.

What We Can’t See

  • Target ROAS value (NULL — Phase 1 fix)
  • Product-level performance within ad groups (product daily metrics exist but not yet analysed)
  • Whether the same products appear in both campaigns and which wins the auction (search terms show query overlap, but not product-level auction wins)