When the collection on the site doesn't match the collection in the ad
Context
A fashion brand running paid campaigns into pre-curated collections on their Shopify storefront. The collections were good. The campaigns were well-targeted. The gap was the bridge between them.
Buying Moment
Campaign click into a curated collection
Structural Unlock
Theme-curated mini collections, one per campaign moment, that the global filter logic on Shopify couldn't render
Outcome
Each campaign moment got its own dedicated mini collection. The buyer landed on a surface fitted to the ad, instead of a slice of the main store they had to filter their way through.

Key Takeaways
Pre-curated collections with global filters couldn't match moment-specific campaign traffic
Theme-curated mini collections gave each campaign its own fitted landing surface
Shopify treats collections as catalog slices, not as campaign surfaces, and the brand had been trying to bend one into the other
Mini collections shipped in days, with no underlying catalog restructure
Diagnostics on which mini collection elements engaged which audiences fed the next campaign
Global filters, moment-specific traffic
When we joined, the team was sending ad traffic into collections that already existed on the site. The collections were good, the campaigns were targeted, but the bridge between them was filter logic set up to handle the entire catalog.
So a visitor from a specific campaign moment, say a trend release or a season-specific drop, would arrive in a collection and have to filter down themselves to find what the ad had been selling. The filters were global. They couldn't be different per campaign. Moment-specific traffic was landing on a moment-agnostic shopping surface.
Filters were global. They were never in sync with what the moment demanded.
Theme-curated mini collections, not pre-curated big ones
We came in with a different unit. Instead of making global filters do moment-specific work, we built mini collections, one per campaign theme. Each one only contained the products that fit that moment, in the order the campaign was pitching them.
This wasn't something the brand could do natively on Shopify. Shopify treats collections as catalog slices, not as campaign surfaces. The brand had been trying to bend a catalog tool into a campaign tool. We replaced that with a tool actually built for the job.
Shopify treats collections as catalog slices. We treated each campaign as its own surface.
A mini collection per campaign theme
Each campaign theme got its own mini collection storefront.
A mini collection opened with the theme's hero pitch and listed only the products that belonged to it. There were no filters to wade through, because there was nothing to filter out. The visitor saw the moment's selection and could go straight to choosing within it.
Operationally, the engine built each mini collection fast, the team plugged in real products and visuals, and the storefront went live in days, not the weeks a Shopify collection rebuild would have taken.
- We named the campaign theme
- Engine built the mini collection storefront in minutes
- Team selected the products, plugged in visuals, edited copy
- Live in days, no Shopify collection restructure
The brand could now run a campaign and have a fitted mini collection waiting for that traffic, instead of routing it through global filters that didn't know what the ad had said.
Each campaign got its own surface, fitted to its own moment
- Ad traffic landed in a collection that matched the ad, not a slice of the main store
- Global filters stopped being asked to do moment-specific work they were never built for
- Mini collections shipped in days, not the weeks a Shopify collection overhaul would take
- After each campaign, we came back with which parts of the mini collection were engaging which audiences
The campaign and the landing surface were finally selling the same thing.
The store and the campaign stopped contradicting each other
The visual difference between a mini collection and a regular collection was small. What changed was structural. The surface a visitor landed on after clicking an ad was actually built for that ad's promise, not for the catalog at large. So the friction between what was sold and what was shown went away. The campaign and the landing surface were finally telling the same story.
- Theme-fitted mini collections, built fast
- No Shopify collection rebuilds required
- Per-campaign diagnostics after each run
We stopped asking the catalog to do the campaign's job.