Shopify Marketing Agency
Scaling a Shopify store on a flattering ROAS is how brands scale a loss. We grow on the numbers that actually pay: contribution margin, LTV and repeat rate.
Acquisition against margin, not vanity ROAS
ROAS ignores product cost, shipping, fees and returns. A healthy ROAS can still lose money per order. We instrument contribution margin (CM2), LTV and blended CAC and scale only where the unit economics work: the core idea in what’s a good ROAS and beyond ROAS. Model it on the ROAS calculator.
Retention & lifecycle automation
Acquisition gets pricier every quarter; retention is where D2C makes money. We build email and WhatsApp lifecycle flows. Welcome, post-purchase, replenishment, win-back and cart recovery, on our D2C automation stack, so repeat rate and LTV climb. More in D2C retention marketing.
Shopify SEO & CRO that compound
Paid traffic converts better on a fast, well-structured store. We fix Shopify SEO (structure, speed, collection and product pages), see the Shopify SEO guide — and run CRO on the PDP and checkout, tied to honest analytics so you see what actually moves profit. Part of the e-commerce growth engine.
What we run on a Shopify account, and in what order
A Shopify store has four levers and they have to be pulled in order. Store economics first, meaning contribution margin per order after every deduction. Then the store itself, meaning theme speed, product page structure, collection architecture, checkout friction. Then acquisition, meaning paid social, search, shopping feed, whatever mix your category supports. Then retention, meaning email, cohorts, subscription if it fits, and the second order that decides whether any of the first three were worth doing.
Most agencies start at acquisition because that is the part that looks like marketing. It is also the part that fails hardest when the three either side of it are broken. If your contribution margin after shipping, returns, payment gateway charges and packaging is thin, no amount of media buying rescues it. You just buy more orders that lose money slightly faster. So the first two weeks of any engagement we run are a spreadsheet, not a campaign, and some brands find that anticlimactic. They usually stop finding it anticlimactic when the spreadsheet shows which of their bestsellers is underwater at current discount levels.
Store work on Shopify is mostly subtraction. Apps accumulate. Every review widget, upsell popup, wishlist tool and sticky bar injects script into the theme, and by year two a store that started fast is loading a second and a half of third party JavaScript before anything renders on a mid-range Android phone on a 4G connection in a lift. We audit the app stack, work out which ones are earning their place, remove the rest, and where an app is doing something genuinely useful we look at whether the same job can be done inside the theme. Speed is not a vanity metric on mobile commerce. It is the difference between a product page that loads before the thumb moves and one that does not.
Product and collection structure is the other half. Collections should map to how people actually shop your category, not to your internal merchandising logic. Product pages need the size chart above the fold, the returns policy stated in words a person can act on, the delivery estimate for a real pin code rather than a generic promise, and enough photographs that nobody has to guess. Sounds obvious. Half the stores we open have none of it.
COD, returns to origin, and the margin nobody models
Cash on delivery is the single biggest difference between running a D2C brand in India and running one anywhere else, and it distorts every metric on the dashboard. A COD order is not a sale. It is an intention to buy that has to survive several days of transit, a delivery attempt, a phone call, and the customer’s change of mind. When it fails, the parcel comes back, and you have paid forward shipping, return shipping and handling on a unit that produced no revenue at all.
Work the arithmetic on one product. Say the selling price is ₹1,200, product cost is ₹400, packaging is ₹30, forward shipping is ₹80 and return shipping is another ₹70. On a prepaid order that ships and stays shipped, contribution before marketing is ₹1,200 minus ₹400 minus ₹30 minus ₹80, less the payment gateway charge of roughly two percent, so about ₹666. Now assume one in four COD orders comes back. For every four COD orders you dispatch, three deliver and one returns. The three delivering contribute ₹690 each because there is no gateway charge, giving ₹2,070. The one returning costs you ₹30 in packaging plus ₹150 in shipping both ways, so ₹180. Net across four orders, ₹1,890, or about ₹473 per order dispatched.
That is a difference of nearly two hundred rupees per order between a prepaid unit and a COD unit at that return rate, before a single rupee of ad spend. It changes what you can afford to pay for a customer. It changes which products you should be pushing in ads. It sometimes changes whether a product should exist. And it means every campaign target has to be set against the COD-adjusted contribution for that product, not the headline margin the founder quotes from memory.
Pull your own return rate. It is in your shipping aggregator dashboard, split by courier and often by pin code cluster. Then split it by product, because a category with fit uncertainty behaves very differently from one without. The tactics that follow are unglamorous and they work: prepaid nudges with a small incentive, address confirmation on high-value COD orders, order verification calls or WhatsApp confirmation on the segments that return most, and suppressing paid delivery to pin codes where the numbers have been ugly for six months. None of that is marketing. All of it decides whether the marketing works.
Blended MER, platform ROAS, and which number to run the business on
Every ad platform reports a return on ad spend that includes conversions it has claimed by its own attribution rules. Meta will claim an order. Google will claim the same order. Your email tool will claim it too. Add up the reported revenue across your platforms and it routinely exceeds what actually landed in Shopify, which tells you the reported numbers are a view, not a fact. After the iOS privacy changes reduced what platforms can observe, the gap moved around and modelling filled more of it. That modelling is not useless. It is just not accounting.
Run the business on blended MER. Total revenue in the Shopify dashboard divided by total advertising spend across every platform, for the same period. One number, no attribution argument, impossible to inflate. If your monthly revenue is ₹50 lakh and total spend across Meta, Google and everything else is ₹12.5 lakh, blended MER is 4.0. Then work out what MER you need. If contribution margin after all product, shipping, return and gateway costs is 45 percent of revenue, you break even on contribution at an MER of about 2.2, and you need to clear fixed costs on top of that.
Platform ROAS still has a job. It is the right tool for comparing two ad sets inside the same account on the same day under the same attribution rules. It is the wrong tool for deciding whether the business made money last month, and it is a terrible tool for comparing Meta’s performance against Google’s, because they measure differently and both are marking their own homework. We report both, and we are explicit about which one is the steering wheel.
The vanity set in e-commerce is easy to name: impressions, reach, click-through rate in isolation, add-to-cart counts, follower growth, and platform-reported ROAS quoted without spend alongside it. A 12x ROAS on ₹40,000 of spend is a rounding error dressed as a triumph. Ask for revenue and spend together. Always.
How we price Shopify work and what moves the number
Four inputs set the retainer. Catalogue size is the first, because a store with 30 SKUs and a store with 3,000 are different jobs at the feed, collection and content layer. Second is media spend under management, because the operational load of a ₹3 lakh monthly budget and a ₹40 lakh one is not the same, though it is not linear either. Third is how many channels are in scope. Fourth is the state of the store when we arrive.
We quote a fixed monthly retainer, with media spend paid by you directly to the platforms. We are not keen on percentage-of-spend pricing for the obvious reason, which is that it pays the agency to spend more of your money regardless of what the contribution maths says. There are cases where a percentage model is fine, mostly at large spend where the operational load genuinely scales, and we will say so when it applies. On a first engagement with a store doing under a crore a year, a flat fee keeps the incentives honest.
Onboarding is usually a separate one-time block covering the economics model, the store audit, the tracking rebuild and the feed cleanup. That work is front-loaded, it takes real hours, and burying it inside month one of a retainer either short-changes the audit or inflates the ongoing fee for a year. We would rather show it as what it is. If your store is in decent shape, this block is small. If your product feed has been failing silently in Merchant Center for eight months, it is not.
First order economics, second order economics, and the discount leak
Most D2C brands in India acquire a first order at roughly break-even or slightly below, then make money on the second and third. That model works right up until the second order does not arrive. So the number to watch from month one is repeat purchase rate by cohort, meaning of everyone who first bought in a given month, what share bought again within 60, 90 and 180 days. Shopify can give you this. Most founders have never looked at it laid out month by month.
Read the cohorts down the column rather than across the row. If the January cohort repeats at a decent clip and the April cohort does not, something changed in April, and it is usually one of three things: you started acquiring from a cheaper, worse audience, you ran a heavy discount that pulled in bargain hunters who never come back at full price, or the product experience slipped. Each of those has a different fix and only one of them is a marketing problem.
Discounting is where margin goes to die quietly. A standing 20 percent off code, the kind that lives in a popup and gets shared on coupon sites, is not a promotion. It is a permanent price cut you have not admitted to, and it trains the segment most likely to become loyal customers to wait for the banner. On the ₹1,200 product above, a 20 percent discount removes ₹240 from a contribution of roughly ₹666. That is more than a third of the margin, gone, on customers who in many cases were going to buy anyway. We usually recommend killing the sitewide code, running fewer and sharper promotions with real end dates, and moving the incentive to where it does work, which is prepaid conversion and the second order.
Email and WhatsApp carry the retention side. Not blast campaigns. Flows: the browse abandonment, the cart recovery split by prepaid and COD intent, the post-delivery check-in timed to when the product would actually have been used, the replenishment nudge for consumables, the winback at the point where the cohort data says people stop coming back. Set once, tuned quarterly, and it compounds while the ad account fluctuates.
What the first ninety days look like
Weeks one and two, no campaigns change. We build the contribution model per SKU, pull return rates by product and courier, rebuild tracking so Shopify, the ad platforms and the server-side events agree on what an order is, and audit the theme and app stack. You get a document at the end of it that says what each product actually earns and which ones should not be advertised at all. Some founders find that fortnight uncomfortable. It is usually the most valuable part of the year.
Weeks three to six, the store work and the feed. App bloat removed, product pages restructured, collections rebuilt around real shopping intent, product feed cleaned so that titles, GTINs, sizes and availability are correct rather than approximately correct. Then the account restructure. Campaigns are consolidated, targets reset against COD-adjusted contribution instead of headline margin, and creative testing starts on a fixed cadence rather than whenever someone remembers.
Weeks seven to twelve, scale carefully and watch blended MER weekly. This is where the discount review lands, where retention flows go live, and where we start reporting cohorts. By day 90 you should have a clean number for contribution per order, a clean blended MER, a repeat rate you trust, and a media account whose structure you could explain to your board without an agency in the room. That last one is the real deliverable. Everything else follows from it.
Tools
What we run for Shopify & D2C brands
- Margin-aware paid acquisition (CM2/LTV)
- Email & WhatsApp lifecycle automation
- Cart & browse abandonment recovery
- Shopify SEO (structure, speed, PDPs)
- CRO on PDP & checkout
- Reporting on contribution margin & repeat rate
Reviewed by clients on GoodFirms.
Explore more: E-commerce Growth · D2C automation · D2C analytics · E-commerce development.
Related reading: Shopify SEO guide · D2C retention marketing.
Shopify marketing, questions, answered.
It grows a Shopify store profitably. Acquisition measured to contribution margin (CM2) and LTV rather than vanity ROAS, retention and lifecycle automation that lift repeat rate, and Shopify SEO and CRO that reduce leaks, so the store scales profit, not just orders.
Because ROAS ignores product cost, shipping, fees and returns: a store can hit a ‘good’ ROAS and still lose money per order. Contribution margin (CM2) and LTV show whether growth is actually profitable, so you scale the right way.
Shopify is a strength, but the same profitable-growth approach applies to WooCommerce, headless and marketplace-plus-D2C setups. The economics and lifecycle work are platform-agnostic.
Ready to turn demand into booked revenue?
Every engagement starts with a clear number and an ROI forecast, before you commit a rupee.
Try the ROAS Calculator