eCommerce case study: +81,000 orders in just 8 months for the Otter.ro store

+22.9M

Additional sales, RON

60.11 → 83.03 million, +38.1%

281,502

Orders in 2026

up from 200,685, +40.3%

8.26x

Google POAS, on net profit

up from 5.27x the year before

152,587

Meta purchases

+166.9% vs the year before

This case study was produced by the performance marketing agency BigConvert, based on data from the accounts we manage. 
The data was checked and validated by the Otter team.

The Otter.ro account was already performing well when we got the brief. There was nothing to fix, there was something to scale, and that is a different problem: you're not looking for the mistake, you're looking for the room that's left. What follows has no dramatic moment. It has an inventory, and it has a number that tempers it.

The interventions that add up, on each platform separately

Share of the platform's budget · multiple in the period analyzed

Google POAS · on net profit

New non-brand structures34.2%

9.10x

Brand, separated from the rest18.7%

11.78x

An additional CSS, in parallel18.7%

8.86x

Rebuilt feed, hero products, per-product scoring algorithmChanges what gets bid on

Meta ROAS · on revenue

Retargeting, treated as an engine32.2%

16.45x

Two seasonal engines27.6% combined

25.42x / 36.58x

New customers, isolated14.8%

20.81x / 25.05x

New creatives, weeklyKeep audiences from saturating

The two columns don't add up: one measures profit, the other revenue.

01 / Starting point

A good account doesn't tell you where it still has room

The brief wasn't a repair job. The account was making money, and the client wanted to scale it. In a broken account, the first month is a list of mistakes. In an account that works, the first month is a list of hypotheses, and most of them turn out to be false.

There is also a measurement quirk that governs this entire document. The two platforms are run on different units, the same in both periods compared: on Google we import net profit, so the multiple is POAS, while on Meta we import sales value, so the multiple is ROAS.

An 8.26x multiple on profit and a 19.90x multiple on revenue are not comparable and can't be added together.

That is why you won't find any total made by adding the two platforms together. There is, however, a third source, independent of both: the store's analytics, which measures the same sales in the same unit in both periods. That is where the only overall figure that makes sense lives, and section 06 puts it on the table along with what it says about the limits of our work.

02 / Google

Product labels as a decision system

This is the intervention the others flow from. The product score becomes a label, the label becomes a campaign, and the campaign gets a target derived from its group's margin. The labels don't describe the catalog, they allocate the budget.

The difference from a typical structure is that you don't group products by what they look like, but by how much they leave. A product that sells often and leaves little ends up in a group with a low target. A product that sells rarely and leaves a lot ends up in another group, with a different target, and no longer competes with the first for the same budget.

22.33x

What this changed in numbers. The Google budget grew by 21.2%, and attributed net profit by 89.9%, from 6,651,432 RON to 12,633,587 RON. POAS climbed from 5.27x to 8.26x. On the added budget, every additional RON produced 22.33 RON in net profit, far above the account average. That is the sign that it wasn't budget that was missing, but the way it was split.

  • Brand, separated from the rest of the account

    11.78x

    Brand demand stayed efficient and stopped masking the economics of acquisition. It is 18.7% of the budget, and now it shows separately instead of lifting the average of all the other campaigns.

  • Non-brand structures built from scratch

    9.10x

    They received 34.2% of the Google budget and delivered on new demand, not existing demand. It is the biggest slice of budget in the account and the one that measures real acquisition.

  • An additional CSS, tested in parallel

    8.86x

    18.7% of the Google budget ran through CSS. The lower cost per click in Shopping turns directly into additional volume, at the same margin.

  • Rebuilt feed and seasonal hero products

    Titles rewritten around real search logic, plus lifestyle and frame images tested in parallel. In Shopping and Performance Max, the feed is the creative. A small set of products, with the best margin-conversion combination, gets its own campaigns instead of competing with the whole catalog.

03 / Google

What the account shows, on net profit

Google Ads, January 1 - August 13, year over year, on a net profit basis
Metric20252026Change
Attributed net profit6,651,432 RON12,633,587 RON+89.9%
POAS5.27x8.26x+56.7%
Conversions45,074118,561+163.0%
Net profit per conversion147.57 RON106.56 RON−27.8%
Clicks1,856,7222,888,427+55.6%
Impressions127,065,203180,714,326+42.2%

One row deserves a careful read. Net profit per conversion fell by 27.8%, from 147.57 RON to 106.56 RON, while the number of conversions grew by 163.0%. The account went deeper into the catalog and into demand, where orders are more numerous and each leaves less. Overall the trade was a good one, but it is a trade, not a free win.

In 2025 there was a tracking issue with one of the payment methods, and in 2026 it was fixed. For transparency on the channel's total sales, we also add the growth at Analytics level.

The same campaigns in GA4 · January 1 - August 13, year over year, with all payment methods tracked
Metric20252026Change
Sales50,70076,362+50.6%
Sales value15,670,115 RON23,337,688 RON+48.9%

Screenshot · year-over-year comparison from Otter's Google account

Screen showing attributed net profit, conversions, clicks and the value-to-cost ratio, 2026 versus 2025.

04 / Meta

We didn't optimize Otter's existing structure, we replaced it

On Meta, the entire 2026 budget ran through campaigns that didn't exist before we took over. It isn't an optimization of what was there, it's a new structure put in place of the old one, with all the risk that comes from giving up a history that worked.

Then came the hard part. Investment grew by 150.5%, and efficiency had to hold. It held and edged up, from 19.09x to 19.90x. When you scale two and a half times on Meta, holding efficiency is already the result. The fact that it rose means the structure still had room.

Meta Ads, January 1 - August 13, year over year, on a revenue basis
Metric20252026Change
Attributed revenue16,274,764 RON42,485,719 RON+161.1%
ROAS19.09x19.90x+4.2%
Purchases57,163152,587+166.9%
Average order value284.71 RON278.44 RON−2.2%
Reach, Meta accounts1,921,0703,097,025+61.2%
Impressions60,660,477139,124,137+129.3%

05 / Meta

Four engines, not one big campaign

  • Two seasonal engines

    25.42x / 36.58x

    CBO campaigns with near-broad targeting, split across the two retail seasons, handing budget over to each other as the season changes. It isn't one big campaign, it's two taking turns at the wheel.

  • Retargeting treated as an engine, not an add-on

    16.45x

    32.2% of the Meta budget, segmented by funnel depth and stock status, including clearance campaigns on the variant the user has already viewed.

  • New customers, isolated and measured separately

    20.81x / 25.05x

    Prospecting and lookalikes with buyers excluded, 14.8% of the budget. Without this separation, retargeting slowly eats the growth budget and nobody notices, because the average looks good.

  • New creatives, weekly, through an automated process

    Reach up 61.2%, with CPM almost stable, up 9.2%. That is the sign audiences haven't saturated, not the number of ads launched.

7.7 → 11.3

Frequency did rise, though, from 7.7 to 11.3. The account is talking to the same people more often than a year ago, and this is the threshold to watch in the period ahead, not ROAS.

Screenshot · year-over-year comparison from Otter's Meta account

Screen showing attributed revenue, ROAS, purchases and reach, 2026 versus 2025.

06 / The total

The only overall figure comes from the store, not the platforms

Any reader used to case studies expects a total here. We don't build it by adding the two platforms together, because one reports profit and the other revenue, and their sum would be neither profit nor revenue. We take it from somewhere else: the otter.ro store's analytics, which measures the same sales in the same unit in both periods.

Analytics, store revenue, same basis in both periods
Metric20252026Change
Store revenue60,114,004 RON83,031,849 RON+38.1%
Sessions10,147,21617,378,065+71.3%
Key events200,685281,502+40.3%
Revenue through the managed channels20,354,628 RON45,191,761 RON+122.0%
Their share of store revenue33.9%54.4%+20.6 points
Revenue through the other channels39,759,376 RON37,840,088 RON−4.8%
108.4%

The number that tempers everything you've read so far. The channels we manage grew by 24,837,133 RON. The store, overall, grew by 22,917,845 RON. So our growth is 108.4% of the store's growth, i.e. bigger than it, and the other channels fell by 4.8%.

07 / Limits

What we don't take credit for

The account was doing well before. The bigger the numbers, the more this section matters.

  1. 5.27x · 19.09x

    We didn't start from zero

    The account was already profitable on both platforms, and growth is measured from a base that worked: 5.27x on Google and 19.09x on Meta.

  2. 11.78x

    Brand demand would have come anyway

    On Google, brand runs at 11.78x on 18.7% of the budget. We separated it precisely so it would stop lifting the average of the rest of the account, but we don't claim to have created it.

  3. ×1.9

    Platforms report more than the store does

    The revenue reported by Meta is roughly 1.9 times higher than the revenue attributed to the same sources on last click. It is a property of attribution models, present in both periods compared.

    Revenue reported by Meta 100%

    Same sources on last click in analytics 53%

    Platform tables are not to be read as store sales. Section 06 is the one that measures the store.

08 / The system

What can be repeated

None of the interventions above would have made the difference alone. Together, and in this order, they did.

  1. Phase 1

    You decide what each platform measures

    Before any structure, you decide what value gets imported. An account that receives profit behaves differently from one that receives revenue, and the two are never compared with each other.

  2. Phase 2

    Structure follows margin, not the catalog

    Product groups are built by how much they leave, not by what they look like. The label becomes a campaign, and the campaign gets a target derived from its group's margin.

  3. Phase 3

    You check the result in the store, not in the platform

    Platforms tell you how much each one attributes to itself. Only the store's analytics tells you whether the total grew and how much of the growth is credit moving between channels.

What can't be repeated is the number. What can be repeated is the habit of putting the platform report next to the store report before drawing a conclusion. Almost always, the second is smaller and more useful.

The client's voice

I scaled without losing profit. Quite the opposite.

“I came from a model where I wanted weekly reports, meetings, to be in on every detail. That's how I felt in control. Now I wake up in the morning, look at the dashboard, see that things are working, and I have no reason to message anyone. That's a good sign.”

Alin Vlad Ecommerce Director, Otter Read the post on LinkedIn →

+52%

POAS year over year, on each platform separately

The first four months of 2026

Conclusion

In an account that's doing well, the average is where the remaining room hides.

Brand lifted the average. Retargeting lifted the average. Products that sold easily lifted the average. Separating them didn't change performance, it changed what you can see.

See more about the methodology

The period, the sources, each platform's units of measurement and what can't be added together. 13 notes.

  • Period analyzed: January 1 - August 13, 2026, compared with the same calendar window in 2025.
  • Sources: campaign-level exports from Google Ads and Meta Ads, plus a traffic acquisition export from the store's analytics, by source and medium, for both periods. Google totals are calculated exclusively from campaign rows, after removing 8 Total rows.
  • The currency is the Romanian leu (RON). The market is Romania.
  • The two platforms are run on different units of measurement, though identical in both periods compared. On Google we import net profit, so the reported multiple is POAS. On Meta we import sales value, so the reported multiple is ROAS.
  • Because each platform kept its base in both periods, the year-over-year comparison is valid within each platform. Across platforms it isn't, which is why the document contains no total formed by adding the two: no revenue, no profit, no multiple, no volume.
  • Payment method tracking: in 2025, one payment method wasn't being recorded correctly, and in 2026 the issue was fixed. For a like-for-like comparison, section 03 also shows the GA4 figures, where tracking worked for all payment methods in both periods.
  • The only overall figures in the document are the ones from analytics, in section 06. They measure the store's sales on last-click attribution, in the same unit and with the same method in both periods, so they are comparable with each other. They are not comparable with the figures reported by the platforms.
  • The channels we manage are defined as paid traffic from Google and Meta, i.e. the google, facebook and instagram sources on the cpc medium. The rest includes organic, direct, email, price comparison sites, programmatic and any other source recorded by the store.
  • Total ad budget adds up the budgets of the two platforms. These are amounts of money spent, so adding them is valid, unlike adding the conversion values they report.
  • The profit imported on Google is calculated after COGS, shipping, packing and VAT, with cancelled orders removed from the data daily, and is before ad spend and fixed costs. It is not the company's final profit.
  • At the client's request, budgets are not published. Percentage changes in budget and CPM are published, absolute cost figures are not.
  • The attribution model is unchanged from the previous period, on the same account and the same calendar window (Meta: 7-day click or 1-day view).
  • The results reflect one specific account, category and period. They are not a promise of performance.

Frequently asked questions

Why don't you add up the figures from the two platforms?

Because they measure different things. On Google we import net profit, so the multiple is POAS. On Meta we import sales value, so the multiple is ROAS. An 8.26x on profit and a 19.90x on revenue are not comparable, and their sum would be neither profit nor revenue. The only overall figure in the document comes from the store's analytics, which measures the same sales in the same unit in both years.

How much of the store's growth do you take credit for?

The managed channels grew by 24,837,133 RON, and the store overall by 22,917,845 RON. So our growth is 108.4% of the store's growth, and the other channels fell by 4.8%. Put plainly: part of what we added is new revenue, and part is credit moving from one channel to another. That is why we put the number on the table instead of publishing only the platform percentages.

Why did net profit per conversion fall by 27.8%?

Because the number of conversions grew by 163.0%. The account went deeper into the catalog and into demand, where orders are more numerous and each leaves less. Total net profit still grew by 89.9%, so the trade was a good one - but it is a trade, not a free win.

Why does the multiple on the added budget matter more than the average?

The average also includes the budget that was already running, on demand that already existed - it's a number about the past. The marginal figure shows what the next RON does. On Google the average was 8.26x, and the marginal figure 22.33x; on Meta the average was 19.90x, the marginal figure 20.43x. When the marginal figure sits above the average, the account still has room to grow.

Can these results be replicated on any account?

An account with a different margin, a different catalog and a different starting point will produce a different result. What repeats is the order of decisions: first you decide what each platform measures, then structure follows margin, and only at the end do you check the result in the store, not in the platform.

Are the platform report and the store report telling you the same thing?

We put the platform export next to your store's analytics and show you how much of the growth is new revenue and how much is credit moving between channels. Plus where the account still has room. No commitments.

Sales generated€350M+
eCommerce brands120+
In-house team100%

Services used in this project

The same three things sit behind every account we run on profit.

Ready for the next level? Get your

Free audit