google adscase studyecommerce

Case Study: x49 ROAS and $200,000 AUD Revenue from $4,000 AUD Ad Spend — Foto Ruano Pro

How we generated $200,000 AUD in revenue from $4,000 AUD in Google Ads spend for Spanish photography e-commerce brand Foto Ruano Pro during Black Friday — and why the previous agency's numbers were misleading.

Pau López Cots

Pau López Cots LinkedIn

Founder Adstralis · Ex-Google Ads Consultant at Google

x49 ROAS. $200,000 AUD in revenue from $4,000 AUD in ad spend. These are the numbers from our Black Friday campaign for Foto Ruano Pro, a Spanish photography e-commerce brand.

The story behind those numbers is more useful than the numbers themselves, because the underlying problem is one we see across almost every e-commerce account that comes to us after another agency. The previous results looked reasonable. The actual performance, once you understood what was driving it, was not.

This case study covers what we inherited, what the audit found, the campaign structure we built, why it worked, and what this means for any e-commerce brand currently running Google Ads through an agency.

The client: Foto Ruano Pro

Foto Ruano Pro is a Spanish e-commerce business selling photography equipment and related products. The product catalogue spans cameras, lenses, accessories, and specialty photography items. Before Black Friday, the account had been managed by an external agency for a period of time and was producing ROAS numbers that, on the surface, appeared solid.

When they came to us, it was not because results were clearly failing. It was because they sensed something was not right — the business was investing in Google Ads but the contribution to actual incremental revenue felt smaller than the reported numbers suggested.

That instinct was correct.

What we inherited: the brand spend illusion

The first thing we do with any inherited account is a spend allocation audit. Before touching any campaigns, we categorise every euro of spend for the past 90 days: how much went to branded search terms (terms containing the brand name), how much to non-branded, and how much to Shopping versus Search.

The result at Foto Ruano Pro was stark: more than half of the total Google Ads budget was being spent on branded search terms.

For those unfamiliar with why this matters — branded search terms are searches where users already know and are looking for your brand specifically. “Foto Ruano Pro camera” or “fotoruanopro.es” are branded queries. A user typing these is already a customer or a warm prospect who is going to convert regardless of whether you have a paid ad there or not. Your organic listing appears for these searches. Bidding on your own brand terms with Google Ads is sometimes defensible (to prevent competitors from capturing brand traffic), but it should be managed with very low CPCs and separated from your non-brand campaigns.

When brand spend is mixed into the same campaigns as non-brand spend — and brand terms are not negativised from generic campaigns — something problematic happens to your ROAS metric. Brand conversions (which were going to happen anyway) get attributed to the campaign. Non-brand performance looks artificially better than it is because the denominator is inflated. The agency’s reported ROAS was not wrong in a numerical sense; it was measuring the wrong thing.

The true non-brand ROAS — the number that reflects how well Google Ads was actually generating new demand — was substantially lower. This was the gap between the reported performance and the felt business impact.

The diagnostic: what the audit found

Beyond the brand/non-brand mix, the Shopping campaign audit revealed a second structural problem: zero product-level performance visibility.

The account had a single Performance Max campaign running all products together. There was no segmentation by performance, no mechanism to understand which products were converting at a profitable ROAS, and no way to shift budget toward the SKUs that actually drove revenue versus the ones that were consuming spend without converting. This is a structural issue that affects Google Ads for eCommerce in Australia more broadly, and one the right Shopping campaign setup solves directly.

This is the standard agency setup. It is not intentionally negligent — it is what most agencies do because it is the path of least resistance. Create one PMax campaign, add the Merchant Center feed, let Google optimise. The reporting shows overall ROAS. Nobody asks which products are contributing to it and which are destroying it.

The reality in a diversified catalogue like Foto Ruano Pro’s is that product-level ROAS varies enormously. High-margin, high-converting SKUs subsidise low-margin or low-converting ones within the same campaign. The aggregate number looks acceptable; the actual contribution by product line is wildly uneven.

Without product-level visibility, budget allocation is effectively random from a performance perspective. Google distributes spend based on its own prediction algorithms across the full catalogue. You cannot steer it toward your best performers.

The strategic decision: Shopping-only PMax plus performance scripts

The solution had two components.

First: Restructure PMax to run on Shopping signals exclusively. Performance Max campaigns can draw on six inventory types: Search, Display, YouTube, Gmail, Discovery, and Shopping. For most e-commerce brands with a physical product catalogue in Google Merchant Center, Shopping is where the relevant purchase-intent traffic lives. Display, YouTube, and Gmail placements in PMax can consume a significant portion of budget while contributing very little to bottom-of-funnel conversions.

We configured PMax for Foto Ruano Pro to use Merchant Center as the primary signal, with no creative assets added for Display, YouTube, or Gmail — which forces Google to allocate spend toward Shopping inventory. This is not a hidden trick; it is a deliberate configuration choice that requires understanding what each asset group in PMax does and does not do. For context on how Performance Max compares to Standard Shopping and when each makes sense, there is a dedicated guide.

The result is a PMax campaign that behaves much more like a Smart Shopping campaign: focused on Shopping placements, responding to active purchase searches, spending where buyer intent is highest.

Second: Deploy a performance script that segments products into different campaigns based on actual conversion data. The logic works as follows: products are monitored continuously for conversion performance. Products that convert above a ROAS threshold get promoted to a higher-priority campaign with more budget. Products that fall below the threshold are moved to a lower-priority campaign or paused. Products with insufficient data stay in a general pool until enough signal accumulates.

This creates a self-organising budget allocation system. Your best-performing products receive the most spend. Products that are consuming budget without converting get throttled. The total account ROAS improves not because your ads got better, but because your money is going to the right places.

The contrast with the industry default is significant. Most agencies run one PMax with everything in it and report aggregate ROAS monthly. Nobody reviews individual SKU performance. Nobody asks why the ROAS in December was x12 when it should be x25. The spend just continues.

The execution: Black Friday campaign

We had a defined window for the Black Friday push. The campaign needed to be live and optimised before the high-intent traffic started spiking in late November.

The brand terms were negativised from all non-brand campaigns immediately. Brand search was moved to a separate, low-budget branded campaign with significantly lower CPCs — protecting brand traffic from competitors without inflating the non-brand reporting.

The PMax campaign was configured with Shopping-only asset groups. The product feed was reviewed for completeness: product titles, descriptions, prices, and images were verified against Google’s requirements. Merchant Center disapprovals were resolved before launch — a step many accounts have outstanding issues with that silently remove products from serving.

The performance script was deployed and the product segmentation logic was set with thresholds calibrated to the account’s historical conversion rates.

During the campaign period, Google’s Shopping system matched Foto Ruano Pro’s inventory to active searches for products the store carried. Users who searched specifically for a camera model, lens, or accessory that was in the store’s catalogue were shown a Shopping ad. Budget was concentrated on searches with explicit product intent — users who knew what they wanted and were ready to buy.

This is the opposite of the typical PMax approach, which casts broadly across display and video audiences on the assumption that top-funnel reach will generate bottom-funnel conversions. For a Black Friday campaign with a hard spend window and a performance target, you cannot afford to learn your way through the funnel.

The results

Over the Black Friday campaign period:

  • Revenue: $200,000 AUD
  • Ad spend: $4,000 AUD
  • ROAS: x49
  • All product categories performed — the precision came from matching ads to specific product-level searches for items in the catalogue

The x49 ROAS is not a manipulated metric. The brand terms were separated, the non-brand spend was tracked independently, and the conversion data flowed correctly through the account. $4,000 AUD in genuine non-brand spend generated $200,000 AUD in trackable revenue.

The performance is notable not just for the headline number but for what it demonstrates about the gap between how most Google Shopping accounts are managed and what is possible with correct segmentation and spend control.

What this means for your e-commerce brand

The Foto Ruano Pro result was not an anomaly. It was the logical consequence of fixing structural problems that are present in the majority of e-commerce Google Ads accounts managed by agencies.

If your Google Ads account has any of the following, there is a reasonable probability that your reported ROAS is higher than your true incremental ROAS:

  • Brand terms are not separated from non-brand campaigns — check whether branded keywords or brand name queries appear in your Search terms report within your non-brand campaigns
  • All products are in a single PMax campaign with no segmentation — you have no visibility into which products are generating the ROAS and which are destroying it
  • Your PMax has asset groups with Display and YouTube creatives mixed with your Shopping feed — budget is leaking into low-intent placements

None of these problems require a large account or a large budget to cause significant waste. They are present in accounts spending $1,500 AUD/month and accounts spending $80,000 AUD/month. The common factor is agencies who configure campaigns to run with minimal oversight and report aggregate metrics that look acceptable.

The fix is not complicated. It is not expensive. It requires knowing what to look for in the account and being willing to rebuild around actual performance data rather than inherited structure. For the practical steps behind optimising a Shopping feed and structuring campaigns by margin, see Google Shopping for eCommerce in Australia.


Frequently asked questions

Is x49 ROAS realistic for an e-commerce Google Ads campaign? During high-intent periods like Black Friday, with correct product segmentation and Shopping-focused spend, yes — for the right type of product category. The key factor is that this figure represents non-brand ROAS only. Including brand spend in the calculation, as most agencies do, would produce a lower but more flattering-looking number that mixes together very different types of traffic.

What is the brand spend illusion in Google Ads? When branded search terms (searches containing your brand name) are allowed to run within the same campaigns as non-brand terms, the conversions from branded searches (which were going to happen organically regardless) inflate the reported ROAS. Your non-brand performance looks better than it actually is. Separating brand from non-brand and measuring them independently is the correct approach.

Does Performance Max work for e-commerce? PMax can work, but it depends entirely on how it is configured. A PMax campaign that is allowed to spend across all six inventory types (Search, Display, YouTube, Gmail, Discovery, Shopping) will dilute e-commerce spend into low-intent placements. A PMax campaign focused on Merchant Center signals and Shopping inventory behaves more like a targeted Shopping campaign and can produce strong results.

How does the product performance script work? The script monitors each product’s conversion data within the account and reassigns products between campaigns based on their ROAS or conversion rate against defined thresholds. High-performing products move to a higher-budget, higher-priority campaign. Underperformers are throttled or paused until performance changes. This creates dynamic budget allocation without requiring manual product-by-product management.

Can small e-commerce brands apply this approach? Yes. The structural problems (brand mixed with non-brand, single PMax with no segmentation) are not scale-dependent. The fixes work at $1,500 AUD/month as well as at $80,000 AUD/month. The main requirement is that the account accumulates enough conversion data for product-level segmentation to be meaningful — typically 30+ conversions per month at the account level before the script logic can make reliable decisions.


If you want us to audit your Google Ads account and identify whether the same structural issues are present, contact us. We will show you exactly what your true non-brand ROAS looks like and what it would take to close the gap.

Want to apply this to your account?

Let's talk about your project

If you have active campaigns and want to understand what's actually working, tell us your situation.