Meta ads for fashion ecommerce: catalog, sizing and the returns loop
July 18, 2026 · 6 min read
Running meta ads for fashion ecommerce is a different job from running them for a brand with a dozen SKUs. You are advertising a catalog where one style exists in eight sizes and four colours, demand arrives in seasonal waves that reset every few weeks, and a real share of what the platform records as a purchase returns to your warehouse weeks later. Three decisions carry most of the outcome: how you group variants in the catalog, how you divide budget between a new collection and the products that already work, and which revenue figure you let authorise a budget increase.
Why meta ads for fashion ecommerce need their own structure
Meta's delivery system optimises against the events it receives. It does not see the refund that lands weeks after the purchase event. It does not know that the only stock left in a best-selling coat is the smallest size and the largest one. And unless you separate them, it treats a style you published yesterday and a style that has been converting since spring as candidates for the same budget, which is a contest the new style loses every time.
None of that is a flaw in the platform. It is the distance between what the ad account measures and what the business banks. In many categories that distance is small enough to ignore. In fashion it is wide enough to change decisions.
Structuring size and colour variants in the catalog
The first thing that goes wrong is treating every variant as its own product. A style in eight sizes and four colours is 32 rows in your feed. Sent to Meta ungrouped, a dynamic ad can serve a carousel where four of six cards are the same jacket in barely different shades, and your reporting splinters into 32 lines that never individually gather enough conversions to mean anything.
The field that fixes this is item_group_id. Every row belonging to the same style carries the same value, and Meta handles the group as one item with variants rather than as unrelated products. Populate color and size as their own fields instead of burying them in the title, keep availability accurate per row, and give each colourway its own images so the card a shopper taps matches the product page they land on. Catalog field requirements change, so check the current spec in Meta's documentation before rebuilding a feed rather than copying a schema from a blog post. The general mechanics of feed-driven campaigns sit in our guide to product feed ads; what follows is the part specific to apparel.
Watch the size curve, not the stock count
A style is technically in stock while a single size remains, and commercially dead long before that. When the middle of the curve sells out, the group keeps earning impressions on the strength of its conversion history, while the shoppers it reaches either bounce or order the nearest available size and send it back. Put a rule in your feed logic: when the core sizes are gone, the group leaves the active product set, whatever the aggregate stock number says. Then check your own return data broken out by size, to confirm the pattern is really in your account.
Build product sets you would act on
Cut the catalog into sets you would genuinely make a different decision about: category, price band, margin band, season. Sets that mirror how you merchandise give you reporting lines you can move budget between. Sets built because they looked tidy give you numbers you will never touch.
Splitting budget between collection launches and the evergreen catalog
These are two jobs with different economics, and mixing them kills the first one. The evergreen catalog carries conversion history, so it wins any direct comparison with a product that has none. Drop a launch into the same campaign as your bestsellers and the budget flows to the bestsellers. The system is working correctly; your new collection simply never gets tested.
So ring-fence it. A launch gets its own campaign with its own budget, and that budget is a decision you make before the collection goes live. Say your monthly Meta budget is 200,000 TRY and you decide launches take a quarter of it: 200,000 × 0.25 = 50,000 TRY committed to the launch campaign, and 200,000 − 50,000 = 150,000 TRY left running the evergreen catalog. The quarter is not a recommendation. Work your own share out from how many styles you need to validate this season and what a readable test costs in your account.
Decide the graduation rule before you launch
Fix the window in advance. The launch campaign runs for a set number of days, and at the end each style either moves into the evergreen product set with the budget that implies, or goes back into the general catalog with no dedicated support. Without that rule, launch campaigns get extended a week at a time until the season is over. Plan the creative rotation across the same window, since a narrow product set exhausts a warm audience faster than a broad catalog does.
Judging scale decisions on revenue net of returns
Platform ROAS is attributed revenue at the moment of purchase, divided by spend. Our explainer on what ROAS is covers the definition; the point here is narrower. In fashion that number is provisional, and the version you scale on should be the one that survives your return window.
Work it through in one currency and one month. Spend 200,000 TRY, reported revenue 800,000 TRY. 800,000 ÷ 200,000 = 4.0, which is the figure on screen. Now bring in the number only you have. I will not quote an industry return rate: it swings with category, price point and policy generosity, and your own back office already holds the real one. Take 30% purely to show the mechanics, and hold average order value at 800 TRY.
- Orders behind that revenue: 800,000 ÷ 800 = 1,000.
- Returned orders at 30%: 1,000 × 0.30 = 300.
- Revenue handed back: 300 × 800 = 240,000 TRY.
- Revenue you keep: 800,000 − 240,000 = 560,000 TRY.
- Net ROAS: 560,000 ÷ 200,000 = 2.8.
Same spend, same month, and the figure that should govern a budget increase sits 30% below the one the dashboard shows. Add the cost of handling the returns themselves: at 60 TRY per returned order in return shipping, inspection and repacking, 300 × 60 = 18,000 TRY leaves the business without appearing in any ad report. Where your own break-even sits is a margin question rather than a ROAS question, and a break-even ROAS calculator will hand you the threshold from your cost inputs. Whatever that threshold turns out to be, compare it against 2.8 and not against 4.0.
Hold the time window straight
Returns arrive after the sale, which makes it easy to build a number that is quietly wrong. Subtract this month's returns from this month's revenue and you are deducting refunds on last month's orders from revenue you earned this month. The two do not belong to each other. Compute by order cohort instead: take the orders placed in a given month, wait until the return window has closed, then calculate. Net ROAS will always lag by a few weeks. That is fine: it is a scaling input, not a daily dial, and a lagging correct number beats a current wrong one.
Read return reasons as creative feedback
Reason codes point at fixable things. Smaller than expected is a sizing communication problem: model height and the size worn, garment measurements, a fit note inside the creative itself. Colour was different is usually a consistency problem between the ad image and the product page photography. Fabric not as described asks for close-up video and composition detail rather than another lifestyle shot. Segment returns by product, creative and audience, then treat a high-ROAS segment with a concentration of one reason code as something to fix, not something to scale.
Before the next budget increase
Write the rule down while nothing is on fire. Decide which net figure has to hold, over which cohort window, before budget goes up, and by how much it moves when the condition is met. Decide what happens on the way down too, because a season that turns will otherwise have you scaling into falling demand. Our auto scaling page looks at the same decision from the automation side. The catalog work and the budget split make the account legible; the net figure is what makes the scaling decision honest.