Beauty & skincare case study: ₹10L+ to ₹23.4L monthly revenue in 3 months
Case study
Month by month
Revenue by month
| Month | Phase | Ad spend | Revenue | ROAS | Purchases | Cost per purchase |
|---|---|---|---|---|---|---|
| Start | – | – | ₹10L+ | – | – | – |
| Month 1 | Learning | ₹5,10,800 | ₹9,98,687 | 1.96x | 512 | ₹998 |
| Month 2 | Scaling | ₹7,71,609 | ₹15,28,206 | 1.98x | 806 | ₹957 |
| Month 3 | Scaling | ₹10,78,401 | ₹23,44,727 | 2.17x | 1,177 | ₹916 |
| Total | ₹23,60,810 | ₹48,71,620 | 2.06x | 2,495 | ₹946 |
Funnel
Funnel, first view to purchase month 3
- Impressions1,53,59,917
- Link clicks2,12,1151.38% of impressions
- Landing-page views1,29,64461.12% of link clicks0.844% of impressions
- Added to cart8,7316.73% of landing-page views0.057% of impressions
- Checkout started4,18747.96% of added to cart0.027% of impressions
- Purchases1,17728.11% of checkout started0.008% of impressions
0.008% of impressions became purchases
Mix
Where the budget goes month 3
| Segment | Ad spend | Share of spend | Purchases | ROAS | Cost per purchase |
|---|---|---|---|---|---|
| ₹6,86,375 | 63.6% | 746 | 2.17x | ₹920 | |
| ₹3,63,908 | 33.7% | 400 | 2.19x | ₹910 | |
| Audience Network | ₹28,118 | 2.6% | 31 | 2.21x | ₹907 |
| Segment | Ad spend | Share of spend | Purchases | ROAS | Cost per purchase |
|---|---|---|---|---|---|
| Instagram Reels | ₹3,11,354 | 28.9% | 339 | 2.17x | ₹918 |
| Instagram Feed | ₹2,56,803 | 23.8% | 287 | 2.22x | ₹895 |
| Facebook Feed | ₹1,81,841 | 16.9% | 194 | 2.13x | ₹937 |
| Facebook Reels | ₹1,49,887 | 13.9% | 170 | 2.26x | ₹882 |
| Instagram Stories | ₹1,18,218 | 11.0% | 120 | 2.02x | ₹985 |
| Audience Network | ₹28,118 | 2.6% | 31 | 2.21x | ₹907 |
| Facebook Stories | ₹18,607 | 1.7% | 21 | 2.21x | ₹886 |
| Facebook Video | ₹13,573 | 1.3% | 15 | 2.21x | ₹905 |
| Segment | Ad spend | Share of spend | Purchases | ROAS | Cost per purchase |
|---|---|---|---|---|---|
| Prospecting (cold audiences) | ₹8,96,237 | 83.1% | 974 | 2.16x | ₹920 |
| Retargeting (warm audiences) | ₹1,24,717 | 11.6% | 141 | 2.25x | ₹885 |
| Advantage+ shopping | ₹33,411 | 3.1% | 37 | 2.17x | ₹903 |
| Lookalike audiences | ₹24,036 | 2.2% | 25 | 2.11x | ₹961 |
Creatives
Creative mix month 3
New ads per month
| Creative type | Tier | Ad spend | Purchases | ROAS | Cost per purchase |
|---|---|---|---|---|---|
| Static image | Moderate | ₹2,42,149 | 317 | 2.61x | ₹764 |
| UGC / creator video | Moderate | ₹68,771 | 86 | 2.49x | ₹800 |
| Catalogue (dynamic product ads) | Moderate | ₹1,28,929 | 151 | 2.33x | ₹854 |
| Video | Watchlist | ₹5,76,968 | 565 | 1.95x | ₹1,021 |
| Carousel | Watchlist | ₹61,584 | 58 | 1.88x | ₹1,062 |
How we run it
How we run it, why, and how it works
Research & offer Month 1
What we do
We focus the first month on scaling ad spend, the brand’s main problem, on a mid-sized base. We build the account in layers so each can be read on its own: testing, scaling, new-buyer prospecting and cart retargeting. We use cart-value tiers so larger baskets earn a better offer.
Why
A mid-sized beauty and skincare brand grows monthly revenue in 3 months, from ₹10L+ to ₹25L (2.5x). That is faster than nine in ten of our measured accounts grew over the same time, so the case study below is on what that fastest tenth reached and shows where it lands against the number this scenario calls for. The main problem in this scenario is scaling ad spend. Layers keep each budget line readable, so a weak campaign cannot hide inside a strong one. Each extra item in a basket is revenue the ad has already paid for.
How it works
Warm layers run beside prospecting, not instead of it. The tiers follow real order values, not round numbers.
Measurement & reviews Month 1 to 3
What we do
We keep a shared daily sheet with the ad platform's revenue next to real store orders. We match the return the brand in this scenario reports to what the store actually took in, before touching budget. We agree a written number for every month on the way from ₹10L+ to ₹25L, and start each review with the month-to-date figure against it.
Why
At the return on ad spend it reported, extra budget costs more than it brings, so return has to climb first. Platform attribution over-counts, so budget decisions sit on the store-side number. A missed month shows up early instead of at the end of the case study.
How it works
Every budget call starts from the store's orders. The store-side return becomes the number every review uses. The month's number is on the page at every review.
Creative testing Month 1
What we do
We test with video, static image and catalogue ads first, rising to several dozen new ads a month by the final month, with carousel watched closely since it returns less than the rest. We run every lead product in a campaign of its own, read every week. The learning month runs with a deliberately small daily budget until orders prove the buyer. We work in creative batches with a fixed read window each.
Why
Products that do not sell show up inside a week, not after a month of shared budget. The first rupees are for finding the buyer, not for volume. The read window keeps creative spending tied to evidence.
How it works
A product that does not sell is paused inside the week. Only confirmed orders at the low budget unlock the next step. Only ads that convert inside the window keep running. New ads rise with the budget, most of them video, then static image.
Scaling Month 2 to 3
What we do
Through Month 2 to Month 3, we push as far toward ₹25L as return allows: the budget climbs in steps while return rises, and Instagram Reels carries the most spend and Instagram Feed the next. We run cost caps, bid caps, CBO and ABO as parallel versions before budget steps up. We tie every budget increase to return: we step up while it holds, and step back when it drops.
Why
In Month 2 to Month 3 the budget climbs in steps, while return on spend rises. Return rises through these months as it climbs from where the account started toward what measured stores of its size hold. Parallel controls reveal which setup keeps cost per purchase down as spend grows.
How it works
The version that keeps cost per purchase lowest stays. There is no fixed ramp; each month's budget follows the return of the last. Instagram Reels carries the largest share of spend in the final month, with Instagram Feed next. Most spend reaches people who have not bought yet; past visitors return more per rupee.
Milestones
Milestones by month
- Month 1
First, the set-up: the first ads run on a small daily budget while tracking is checked against store orders. The daily sheet now matches platform revenue to store orders. The cart-value tiers are live.
- Revenue ₹10L
- ROAS 1.96x
- Ad spend ₹5.1L
- Month 2
Scaling starts: products that do not sell are paused and budget moves to the winners. Return holds as the budget steps up sharply.
- Revenue ₹15.3L
- ROAS 1.98x
- Ad spend ₹7.7L
- Month 3
This batch's read is done: winners stay, the rest are cut. Return rises as the budget steps up. Revenue is now past halfway from ₹10L+ to ₹25L. The case study finishes short of ₹25L: the case study follows what the fastest tenth of our measured accounts reached. Cost per purchase ends close to the learning phase.
- Revenue ₹23.4L
- ROAS 2.17x
- Ad spend ₹10.8L
Learnings
Learnings from brands we measured
Instagram Reels carries the largest share of spend in measured accounts across all industries.
Tracked store revenue and cost per order daily, beside Meta's own number
Test catalogue ads state-wise and city-wise, with 1% lookalikes and festive retargeting.
Services: Performance marketing Ads video creation Beauty & skincare marketing guide Book a call
More Beauty & skincare case studies
Ready to grow with one team?
Book a call. If we can help you grow, we show you how; if we cannot, we tell you that too.
