A ₹5,000 conversion campaign run end to end on a live Shopify store. Real money, real data, and a funnel problem that moved rather than disappeared.
The House of Goods is a D2C graphic apparel brand on Shopify, where I work as marketing lead on a freelance basis across paid social, organic content, SEO and store conversion. In August I ran the brand's first paid campaign on a ₹2,000 traffic objective. It reached 109K users at a ₹0.66 CPC and drove 3,700+ store sessions, but almost none of that traffic converted.
Cheap clicks are easy to buy. The interesting question was why they weren't turning into carts.
Working through Shopify analytics alongside the campaign data, the drop-off was sitting between sessions and add to carts. The ads were doing their job; the product pages weren't. Every listing used flat mockups rather than photographs of the product on a person, so visitors had no way to judge fit, fabric or scale.
That gave me something specific to fix before spending again.
Split deliberately so that budget couldn't drift toward the cheaper-converting retargeting audience and starve prospecting.
| Cold Prospecting | Retargeting | |
|---|---|---|
| Objective | Sales | Sales |
| Optimised for | Add to Cart | Purchase |
| Daily budget | ₹350 | ₹150 |
| Duration | 10 days | 10 days |
| Audience | Broad, 18–34, 7 metros | 3 custom audiences stacked |
| Exclusions | Website + IG audiences | — |
| Creatives | 3 | 1 carousel |
Meta needs roughly 50 conversion events per week to exit the learning phase. At ₹350/day a purchase-optimised campaign would have generated single-digit events and never learned. Optimising one step up the funnel gave the algorithm enough signal to work with.
Advantage+ treated my audience inputs as suggestions rather than limits, which meant no hard age cap. I switched to limited-reach controls to keep delivery within 18–34, accepting a lower Meta campaign score in exchange for knowing where the money actually went.
| Metric | Cold | Retargeting |
|---|---|---|
| Spend | ₹3,471 | ₹1,490 |
| Reach | 15,255 | 4,403 |
| Impressions | 18,419 | 20,971 |
| Link clicks | 2,218 | 157 |
| CTR | 12.04% | 0.75% |
| CPC | ₹1.57 | ₹9.49 |
| CPM | ₹188.47 | ₹71.06 |
| Frequency | 1.21 | 4.76 |
| Add to carts | 146 | 1 |
| Cost per ATC | ₹23.78 | ₹1,490.26 |
| Purchases | 1 | 0 |
| ROAS | 0.24 | — |
A 0.7% cart-to-purchase rate. That's a bad number, and it's the most useful thing the campaign produced.
In August the funnel was breaking between session and cart. After the photography fix, it was breaking between cart and checkout. The problem didn't go away, it moved — which told me the imagery diagnosis had been right, and that there was a second blocker underneath it.
Typical D2C cold traffic runs 1–2%. 2,218 link clicks produced only 1,342 landing page views, meaning around 40% of clicks never loaded the page. That gap points to low-intent or accidental clicks rather than genuine interest, which reframes the whole cold result.
A 4,403-person pool at ₹150/day over ten days pushed frequency to 4.76 and CTR down to 0.75%. The same people saw the same ad five times. The pool was too small for the budget, and I should have either lowered the spend or widened the audience.
The clearest single lesson in the campaign. Spending retargeting money on an audience that small was a structural error, not a creative one.
A ₹1.57 CPC and a 12% CTR look excellent on a screenshot and meant very little here. The metrics that mattered were the ones further down the funnel, and they were the ones I had the least control over.
The photography fix worked — session to add-to-cart performance improved substantially. It just exposed a checkout problem that had been invisible while nobody was reaching checkout.
I set the retargeting budget first and fitted the audience to it. It should have been the reverse.
Advantage+ and Meta's campaign score both pushed toward broader delivery and less control. Overriding them cost me a lower score and gave me data I could actually read.