Skip to content
Ecommerce Google Ads

How I Rebuilt a Single Performance Max Campaign Into a Growth Engine

An online retailer with strong organic demand was running a single Performance Max campaign trying to do everything at once. I rebuilt the structure around brand isolation, smart feed segmentation, and clean server-side tracking, and turned a flat account into a predictable growth engine.

01   The numbers

  • 1.9x lift Blended ROAS
  • +147% Non-Brand Revenue
  • GA4 ↔ Ads parity restored Tracking Accuracy
  • 90 days Timeline to Result
How I Rebuilt a Single Performance Max Campaign Into a Growth Engine: hero screenshot

02   The breakdown

The Setup

The brand had real organic demand, a healthy Shopify catalog, and a single Performance Max campaign doing all the work. Spend was flat, ROAS was flat, and the team couldn’t tell whether PMax was producing incremental revenue or just intercepting branded search traffic that would have converted anyway.

To make it worse, Google Ads reported strong conversions while GA4 reported a different story. Nobody trusted the numbers.

That combination is the most common shape I see on Shopify accounts at this size. One Performance Max campaign is what Google’s own onboarding recommends, and it works well enough at first that nobody questions it. The problem surfaces later, when the account has to answer a question the structure cannot answer: how much of this revenue would have arrived without the spend. A campaign that absorbs brand search, non-brand search, Shopping, display, and YouTube gives you one number and no way to take it apart.

The brand is Sugar Babies, a baby boutique with a store in Washington and a national DTC catalog of premium third-party brands. This is part one of four.

What Was Broken

  1. PMax was eating the brand. No brand-keyword exclusions on the campaign, so it was claiming credit for “[brand name]” searches that would have converted through organic anyway.
  2. The product feed was thin. Missing GTINs on a chunk of the catalog, no custom labels, no margin or best-seller tagging. PMax had no signal to prioritize the products that mattered most.
  3. Server-side tracking was misfiring. sGTM was running but the Shopify checkout-extensibility migration had broken the purchase event on the alternate checkout domain. Google Ads was counting roughly 68% of the conversions GA4 saw, with the rest landing in “direct / none.”

What I Did

Isolated brand. Pulled a dedicated branded Search campaign out from under PMax, added the brand term as a campaign-level exclusion on PMax, and watched non-brand performance separate from brand for the first time.

The mechanism is worth stating plainly, because the move looks like it costs performance and briefly does. Branded search converts at several times the rate of anything else in an ecommerce account, so a campaign allowed to serve on brand queries reports a conversion rate propped up by demand the brand already earned. Smart Bidding reads that inflated rate as evidence its non-brand decisions are working. Excluding brand pulls the number down to what the campaign produces on its own, which is the only number worth optimizing against.

Rebuilt the feed. Filled in missing GTINs, added custom labels for margin tier (high / mid / low) and product velocity (top seller / mid / clearance). Created three PMax asset groups segmented by these labels with separate budgets and creative. Without labels, Performance Max optimizes across the whole catalog toward whatever converts most often, which on a mixed catalog means the cheapest accessories. Margin tier is how you tell it that a low-priced accessory and a four-figure nursery piece are different businesses.

Repaired sGTM. Audited the Shopify GTM container, fixed the purchase event firing on the wrong domain, validated end-to-end via Tag Assistant and the Google Ads diagnostic tools. Conversion-counting gap went from 32% (Google Ads under-counting GA4) to within 4% in two weeks, well inside the 5 to 20% range attribution-logic alone explains.

Google Ads conversion events list showing properly tagged Shopify checkout actions
Conversion stack after the sGTM repair. Every Shopify event firing on the right campaign, on the right domain.

Layered in search themes. Added intent-based search themes to PMax asset groups so the bid model had a steer toward the queries worth winning.

The Result

Within 90 days:

  • Blended ROAS lifted 1.9x on the rebuilt measurement basis. Part of that lift IS the repaired counting, which is the point.
  • Non-brand revenue grew 147%, and I could finally measure it
  • Google Ads and GA4 conversion data agreed within 4% at the end of the rebuild window. Keeping that parity is an ongoing discipline, not a one-time fix.
  • The account had a clean structure the brand could scale into
Google Ads overview showing ROAS trending up over the 60-day rebuild window
ROAS trend across the rebuild window. The dip in week three is the brand-isolation move pulling reported PMax performance back to reality; non-brand performance climbed from there.

What I Did Not Claim

Part of the 1.9x is measurement. The account was under-counting conversions by roughly a third before the sGTM repair, so some of the reported lift is conversions that were always happening and finally got recorded. I say so in the bullet above and I will say it again here, because a case study that quietly banks a measurement fix as a performance win is a case study that cannot be trusted on anything else.

The non-brand revenue figure is the cleaner number. Brand was excluded from the campaign before that comparison window, so the growth is measured on traffic the account had to earn.

I did not run a geo holdout, so incrementality is not established. Four changes shipped inside 90 days. The honest claim is that the account went from unreadable to readable and grew while it did.

What Came Next

Fourteen months later the single campaign became a six-campaign geo and value-band matrix, seeded with 26 Customer Match segments. The storefront it lands on was upgraded in place without a replatform. And a later audit of this same tracking spine found the entire mid-funnel missing, two add-to-carts recorded in ten days, which is the reminder that tracking is a maintained system rather than a finished one.

The Takeaway

PMax works. It works better when you stop asking it to do everything. Isolate brand, feed it real signal through your product feed, fix your tracking before you fix your bidding strategy. In that order.

The hardest part of this rebuild wasn’t the campaign structure. It was the two weeks I spent in sGTM untangling the Shopify checkout migration. That’s where most ecom accounts I see lose their attribution.

If you want to check your own account for the same problem in ten minutes: open your Performance Max campaign, add a brand-term segment to the search-terms view, and read what share of conversions carry your own name. If it is over half, your reported ROAS is describing demand you already had. The full architecture I rebuild these accounts on is the Tracking Stack.

If your ROAS looks suspicious or your GA4 and Ads numbers don’t agree, start with a tracking audit.

Ready to talk

Want this kind of breakdown on your account?

Thirty minutes on the phone. One clear set of next steps. Same person on the call as on the work.

Book a Call