How Mokobara Grew Its Tote Purchase Share 30–40% in 2 Months

Mokobara scaled its tote catalogue campaign nearly 2X and grew tote purchase share 30–40% in 2 months by giving Meta a category-specific purchase signal instead of a generic Purchase event.

SV
Shalini Vijayakumar
5 min read

Mokobara sells premium D2C luggage. Suitcases aren’t a repeat purchase, buy one, disappear for years, so growth lives in two places: new customers, and making new categories actually work.

They launched totes. First gender-specific category in a catalogue built entirely on gender-neutral suitcases and backpacks. Big bet.

Tote purchase share had been stuck at 5% of total purchases for a while. Not failing. Not working either. Just… stalled, the way things stall when nobody’s told the algorithm there’s a difference between a tote and a suitcase.

Bored already and not a big reader? Watch Vignesh, Senior Manager of Growth at Mokobara, explain the campaign structure at ~6:40, and why URL-based audiences never had a shot at ~9:15.

Watch on YouTube

The Creative Was Never the Problem. The Purchase Event Was

The team could see revenue. What they couldn’t see was the path to it and that’s a genuinely worse problem than low revenue.

This is how “optimizing for Purchase” actually looked like in practice:

  • Ads ran with tote creatives. What came back was generic Purchase events. Nobody could confirm the buyers actually bought totes — with 150–200 live SKUs, people click on a tote ad and buy a backpack all the time.
  • The budget question, which campaign brings which kind of purchase was flatly unanswerable.
  • Retargeting meant “all website visitors,” which is marketing-speak for “everyone who has ever loaded the page once, including the person who bounced in four seconds.”
  • Shopify said one number. GA4 said another. Nobody’s numbers matched anybody else’s numbers.

Buying “Frequent Traveler” Audiences Didn’t Fix It, Because Nobody Knew Who Was In Them

They believed the same audience, same intent strategy might give them the results. So they tried a third-party audience vendor selling “frequent travelers” and “high net-worth individuals” as interest segments. Sounds sophisticated.

It was just a black box, no visibility into who these people were or how often they’d shown up. So that got dropped too.

The Real Cause: Meta Was Never Told The Difference From A Tote Buyer To a Suitcase Buyer

None of this was a campaign or a creative problem. It was a signal problem, and it went three layers deep:

  1. “Purchase” event was a vague KPI given to Meta. A ₹2,000 buyer and a ₹30,000 buyer look identical to Meta’s algorithm. So do a tote buyer and a suitcase buyer. “Optimize for Purchase” translates, literally, to “optimize for anyone buying anything.” That’s not a strategy.

  2. Visitor identity did not survive longer than a week. Meta’s windows reset after 7 days. A visitor who checks the tote page three times in a month reads as three different strangers. This is exactly why URL-based custom audiences can’t build a “viewed 3+ times” segment, the platform literally can’t count past its own memory span.

  3. Every platform grades differently. Shopify, GA4, and Meta each run their own attribution model. Conversions get over-credited to whichever one shouted loudest. First touch and mid-journey quietly disappear.

As Vignesh, put it: Meta considers even a ₹2,000 purchase and a ₹30,000 purchase the same “purchaser.” It doesn’t give the proper signal.

Correct. Fix the signal, and the campaigns stop needing to be babysat.

(If “no visitor identity past 7 days” sounded uncomfortably familiar, that’s identity resolution breaking down, not a Mokobara-only problem.)

The Fix: Give Meta a Tote-Specific Purchase Signal, Then Point Campaigns At It

1. Build the category signal

A custom event, cl_tote_purchase, fires alongside the default Purchase event whenever an order contains a tote, sent through Meta CAPI instead of relying on browser-side pixel data alone. Now Meta can see the difference nobody had bothered to explain to it.

Tote purchase measurement in Meta Events Manager

2. Set a baseline before touching a single campaign

What share of total purchases are totes, today, and which campaigns are actually contributing them. You can’t fix what you haven’t measured, and you definitely can’t fix what you’ve been measuring wrong.

3. Switch the optimization event

Point the catalogue sales campaign at cl_tote_purchase instead of generic Purchase. Meta’s delivery engine now hunts tote buyers specifically, not “purchasers in general,” which was never a useful category to begin with.

4. Build a high-intent audience that doesn’t expire in 7 days

Advantage+ typically deprioritizes audiences older than 14 days, favoring recency over intent. With continuous refresh (Synthetic Sync), the audience stays “fresh” to Meta even when the people in it have been circling the product page for weeks.

Mokobara audience segments screen

Vignesh’s field note: Anyone who’s viewed the product or category page more than three times is a high-intent audience. Retargeting them outperformed the top-funnel catalogue campaign.

Translation, the people who kept coming back were more valuable than the people who showed up once, and Meta had no way of knowing that until someone told Meta.

Not sure your own pixel is set up to catch this? Start a 14-day free trial and check what your current Purchase event is actually telling Meta.

The Result: Tote Share Up 30–40%, Campaign Scaled 2x in 2 Months

Meta reporting for tote purchase

  • Tote purchase share up 30–40%, the category went from stalled to actually moving.
  • The tote catalogue campaign scaled almost 2x, not from more budget, from better instructions.
  • Tote purchases month over month: 1,470 → 1,734 (▲17.96%), verified inside Meta Ads Manager across 945 campaigns.
  • Tote share of purchases: 12.15% → 13.92% (▲14.54%), same account, same window, no creative changes.
  • High-intent retargeting beat top-funnel prospecting outright, not a marginal win, a structural one.
  • The same playbook is now running on Mokobara’s iconic luggage line, because a fix that only works once isn’t a fix, it’s a fluke.

This Works If You Have Multiple Categories on One Purchase Event, Not Just Totes

Not everyone needs this. It applies if:

  • You’re running a catalogue with multiple categories or price bands, where a single generic Purchase event is quietly averaging your best category with your worst one.
  • There’s a category, price tier, or margin band that deserves its own signal, the same logic works for high-AOV vs. low-AOV, not just totes vs. suitcases.
  • You have enough volume in that category for Meta to actually learn from a custom event, this isn’t a fix for five orders a month.
  • You’re running Meta catalogue or sales campaigns on Shopify or something similar.

If none of that describes you, fine, skip this. If it does, you already know which category has been stuck at “fine, I guess” for longer than it should’ve been.

Get a signal audit. Meta can only optimize for the signal it’s given. We’ll show you which category signals your pixel is currently throwing away and what a custom purchase event would look like in your store. Book a demo.

Or see it yourself first: Start your 14-day free trial, no sales call required to look under your own hood.

Join The CustomerLabs Newsletter

Stay ahead with first-party data trends, signal engineering insights, and actionable marketing strategies, curated for modern growth teams.

User
Email