← Ecomatrix

Winning Ad Case Study

Hi, I'm Sebastian 👋

I created this landing page to break down three of my winning ads.

The goal is to give you an idea of how I approach research, ideation, briefing, scripting, feedback loops, and how I iterate on winners.

About Me

I started in e-commerce four years ago.

At the beginning I was dropshipping random products.

Then I moved into branding but that didn't work because my creative sucked.

So I decided to learn how to make ads properly.

I started as a video editor and worked my way up to strategist.

Since April, the brand has spent around $8.6 million on Meta.

Meta Ads Manager at campaign level: $8,644,320.76 total spent, 54,640 website purchases, $13,328,516.10 purchase conversion value, 1.54 average ROAS, 1 April to 27 July 2026.

Swipe the image to read it →

The three ads, combined

$977,284
Ad spend
6,406
Purchases
$1,558,223
Purchase conv. value
1.59x
Blended ROAS

Brand: Westmonth, a D2C brand selling mattress toppers

Channel: Meta

Figures are in USD, taken from Meta Ads Manager between February and June 2026.

Process

How I work

01

Research

Market, customer and competitor research.

02

Ideation

Turn research into an ad angle.

03

Briefing

Write the script and put it in a brief for the editor.

04

Feedback Loop

Review the ad and performance data.

05

Iteration

Test again if the ad shows potential.

How I come up with ad angles

I start from the desires that drive the purchase and define one to three core avatars around them.

Each core avatar breaks into sub-avatars.

Every sub-avatar then produces its own set of angles to test.

CORE AVATARS 1–3, from desires SUB-AVATARS several per core ANGLES the test queue Core avatar 1 Core avatar 2 Sub 1.1 Sub 1.2 Sub 2.1 Sub 2.2 Angle 1 Angle 2 Angle 3 Angle 4 Angle 5 Angle 6 Angle 7 Angle 8
Batch 18, 63 and 100 all came out of one core avatar and two sub-avatars.Swipe the diagram →

Ad #1 — "Batch 18"

The original ad

$117,957
Ad spend
835
Purchases
$184,071
Purchase conv. value
1.56x
ROAS

01 — Research

I was reading through different threads in the subreddit r/sleep.

Found a post from someone who had stayed at a Westin hotel.

She had slept better there than she does at home and wanted to know why.

She flipped the mattress and found a thick topper underneath it.

Look for validation

I went deeper and did more research.

Learnt that luxury hotels like the Ritz-Carlton and the Sheraton also use this setup.

A standard mattress with a thick topper on top of it.

I noticed more and more people talking about this issue.

Even on comments of our past ads.

02 — Ideation

This is how I got the idea.

Let's just make a storytelling ad where a traveller is sharing their experience.

Like the person in the Reddit thread.

03 — Scripting & editing

I wrote the script and even edited the ad myself.

Batch 18

Premiere Pro timeline for Westmonth Batch #018, showing hotel footage on the video track and the script voiceover on the audio track.

The Batch 18 Premiere Pro timeline.Swipe the image to read it →

04 — Analysis

Meta Ads Manager showing Batch 18 results: $117,956.74 spent, 835 website purchases, $184,071.09 purchase conversion value across 28 ads.

Meta Ads Manager — Batch 18, 28 ads, 1 Feb – 31 May 2026.Swipe the image to read it →

$117,957 spent at 1.56x ROAS.

That met our benchmarks for both spend and ROAS.

But performance declined after a few weeks.

Conclusion: the concept resonated and justified to do an iteration.

Ad #2 — "Batch 63"

First iteration

$668,030
Ad spend
4,335
Purchases
$1,059,844
Purchase conv. value
1.59x
ROAS

What the comments showed

The comments under Batch 18 repeated the same experience.

People described sleeping better in hotels than at home:

"This happens to me every time I stay in a hotel."

The audience for this story was larger than the one Batch 18 was written for.

Change 1 — the hook

Batch 18 addressed people already thinking about their bed.

I rewrote the hook for an unaware audience: anyone who has slept well in a hotel.

That widened the addressable market.

Change 2 — length

I extended the ad by 28 seconds, from 76 seconds to 1:44.

The added time went into the story rather than the product.

The intent was to make it more relatable and more authentic.

Change 3 — language

I wrote the script using customer language from our own ad comments and from Reddit threads.

Batch 63 — 1:44. Researched, scripted and edited by me. Opening frame: "POV: Your hotel kicked you out for exposing them."

Premiere Pro timeline for Westmonth Batch #063, showing the caption track, the mirror selfie and hotel footage on V1, and the script voiceover on A1.

The Batch 63 Premiere Pro timeline. Captions on V2–V5, footage on V1, the script read on A1 and the music bed on A2.Swipe the image to read it →

The result

Meta Ads Manager showing Batch 63 results: $668,029.84 spent, 4,335 website purchases, $1,059,843.60 purchase conversion value across 27 ads.

Meta Ads Manager — Batch 63, 27 ads, 1 Mar – 17 Jun 2026. It runs in the account as "Iteration18 C".Swipe the image to read it →

$668,030 spent at 1.59x ROAS.

That is 5.7x the spend of Batch 18 at a comparable ROAS.

Ad breakdown

This is the breakdown I write when doing feedback loops on ad.

It is also the foundation for the next iteration.

Primary desire

Comfort. Status as the secondary desire.

Angle

This is how you make your bed feel like a luxury hotel bed.

Mechanism

1000 GSM mattress topper.

Authority

Luxury hotels, which use thick toppers on their beds.

And the creator, positioned as an expert through frequent travel, telling a real and relatable story.

Emotion

Zone 3 → Zone 1.

Opens in low valence, low intensity, on the struggle of sleeping well at hotels and not at home. Moves to high valence, low intensity when the solution is introduced.

Awareness level

Unaware.

Brand positioning

Our mattress topper uses the same technology as luxury hotel toppers.

It helps you sleep better without having to buy a new mattress.

Sub Avatar — "The Hotel Sleep Chaser"

Desire: I want to upgrade my bed without spending a fortune on a new mattress.

Experience: Has slept in a hotel that felt better than home — and now their own bed feels like a downgrade.

Who is this person?

This person slept in a nice hotel and something clicked.

The bed was better than theirs. Not a little better — a lot better.

They sank in, fell asleep fast, and woke up feeling rested.

Then they went home.

Their own bed didn't feel nearly as good as the hotel bed, even though they spend a significant amount of money on it.

That gap bothered them.

Before that hotel stay, their bed was "fine." They had nothing to compare it to.

But the hotel created a new reference point.

Now "fine" feels like a downgrade. And every future hotel stay makes it worse.

The desire doesn't fade.

Why this sub-avatar works

The hotel creates the desire for you. You don't have to convince this person they need better sleep. The hotel already did that. You just give them a way to close the gap.

It makes luxury feel okay to want. Most people won't admit they want a fancier bed. That sounds like a waste of money. But "I just want my bed to feel like the hotel where I actually slept well" — that sounds reasonable. The hotel gives them a reason to want something better without feeling guilty about it.

It's an identity wound. Home is supposed to be your sanctuary. The one space you control. And then a stranger's temporary room outperforms it. That contradiction is uncomfortable to sit with. The purchase resolves it.

The experience is temporary, so the desire repeats. You check out. You go home. The great sleep disappears. That creates loss aversion that fires again with every trip. This is a desire with maximum staying power.

Ad #3 — "Batch 100"

Second iteration

Same structure, slightly different sub avatar.

$191,297
Ad spend
1,236
Purchases
$314,308
Purchase conv. value
1.64x
ROAS

What the breakdown showed

Reviewing the Batch 63 breakdown, comfort was not the only desire the ad addressed.

Status was a strong secondary desire.

The creator travels frequently and stays in good hotels, which signals a lifestyle the audience aspires to.

The iteration

I kept the angle, mechanism, authority and emotional arc.

I just slightly changed the avatar.

From a woman who travels frequently to a male business traveller telling the same story from his perspective.

Production

I wrote the script and the brief.

And gave it to one of our editors.

Batch 100

The result

Meta Ads Manager showing Batch 100 results: $191,297.27 spent, 1,236 website purchases, $314,307.93 purchase conversion value across 43 ads.

Meta Ads Manager — Batch 100, 43 ads, 1 Mar – 17 Jun 2026.Swipe the image to read it →

$191,297 spent at 1.64x ROAS.

It did not perform as well as Batch 63, which took 3.5x the spend.

But it still performed well and had the highest ROAS of all three.

Summary

Three ads, built from one research finding: $977,284 in spend and $1,558,223 in purchase conversion value.

Batch 18 validated the angle and sub avatar.

Batch 63 widened the audience and scaled the ad account.

Batch 100 built on the previous two ads and added one more sub-avatar.

Want this loop running on your account?

sebastian@ecomatrix.ch

← Back to Ecomatrix