Book a Call

The leggings Google only ever saw in XS

A Norwegian women's activewear brand with a loyal following at home and its sights on Sweden. Midsummer Agency took over a week before Black Friday, rebuilt the tracking, put every size back in front of shoppers, and grew the work into 4 services that made the whole catalog shine.

TrackingPPCFeed ManagementPaid SocialCRO

women activewear case study

About the client

The brand sells women’s fitness apparel direct to consumer on Shopify. Its signature is a line of tights with a scrunch detail, alongside training wear and a jeans line that brings the stretch and comfort of gym wear into denim. It runs its own production, launches new collections often, and carries around 400 products, each in several sizes and colors.

Norway is home, where the brand is well known. Sweden is the bigger, more competitive market it wants to grow in.

A few things make the account demanding:

  • Stock is kept deliberately lean, so bestsellers sell out at the busiest moments and the campaigns have to follow the inventory
  • Norway and Sweden: 2 markets, 2 languages and a separate domain for each country
  • A loyal base, with returning customers often making up half or more of sales

The team had been running its advertising in-house when it came to us, about a week before Black Friday.

Women's activewear from the brand

Industry

Fitness Apparel · Womenswear

Markets

Norway · Sweden

Services

Web Analytics · Pay Per Click · Paid Social · CRO

Platform

Shopify

The challenge

The brand had the demand. What it wanted was profitable growth: to grow in Sweden without losing ground in Norway, and to know which months actually made money. Influencer marketing had carried the brand for years, and the next step was measuring what each channel paid back.

With Black Friday a week away, we reviewed the advertising, the analytics and the store at once, and found room to grow at every layer.

The data

  • Some purchases were counted twice, which made the real sales trend hard to read
  • Data was flowing to 2 analytics accounts, one of them shared with a sister brand, which blurred the reporting and slowed the pages down
  • Bot visits were mixed in with real shoppers, so ad spend was being optimized partly on bad data

The campaigns

  • Google’s shopping ads showed only the XS size of each product
  • The brand’s own name was not part of the main Google campaign, which left room for competitors on searches for it
  • About 60% of the catalog had no product category in the data Google reads
  • Neither Google nor Meta yet told new customers from returning ones, or brand searches from new demand, and Meta had room to win back past visitors

The team had worked with agencies before and had one more worry: seeing the account passed from hand to hand. We told them on day one that the specialist who started on it would stay on it, and they did.

The solution

We started with Google Ads, Meta Ads and the tracking underneath both, and rebuilt the measurement first so every later decision rested on real numbers. CRO came later, when the team’s conversion rate started to dip.

Web Analytics

Counting every sale once, on both domains

ServicesServer-Side Tracking · Conversion Tracking · Profit Analytics

We removed the double purchase tracking and the second GA4 property, then built server-side tracking through Stape for Google Ads and GA4, with the Conversions API for Meta. Each country has its own domain, so the setup runs per domain rather than as one copy-paste.

  • A custom loader keeps browsers and ad blockers from stripping out the tags
  • Cookie Keeper restores marketing cookies, so a returning visitor is recognized as one
  • Every purchase is tagged as a new or returning customer, so we could see when spend was going on people who would have bought anyway

Keeping the bots out

Stape’s bot detection filtered the fake traffic out of the data. The bots were still hitting the store, so we guided the team through a Cloudflare setup and recommended an experienced developer for it: putting Cloudflare in front of Shopify is a specialist job, well beyond an afternoon’s work.

Seeing where breakeven sits

We set up Lifetimely on Shopify and loaded it with every cost the business carries: staff, overheads, and the marketing channels that do not connect on their own. For the first time the team could see which days and months made a profit. The same tool tracked how fast each product sold, which told the team when to reorder.

Pay Per Click

Putting every size back on the shelf

ServicesGoogle Ads · Feed Management

The campaigns carried only the XS version of each product, because the team was worried the sizes would bid against each other. Shoppers search with their size in mind, though, and plenty of them were never going to buy an XS. We brought every size back in.

The larger sizes turned out to be some of the best sellers, with higher conversion rates. Someone who wears an XL or XXL often struggles to find activewear that fits, and this brand had it in stock.

Getting the brand back into its own searches

We split Google Shopping into two campaigns: a brand Shopping campaign for people searching for the brand by name, and a non-brand one for everyone else. Brand searches now land on the brand’s own products instead of its competitors’, and we track their traffic and impression share apart from the new demand the non-brand campaign goes out to find.

A feed written the way each country searches

We rebuilt the feed in DataFeedWatch, gave the uncategorized 60% a proper product type, and fixed titles, stray HTML characters and material attributes. Then we rewrote the titles from keyword research run separately for each market.

  • In Sweden, “tröja” draws 5 to 10 times the searches of “sweatshirt”
  • In Norway, “lyseblå” beats “light blue” by a wide margin
  • Norwegian shoppers search for “scrunch tights” in English, not in translation

That mix is normal in Scandinavia, where people use English every day. A feed translated word for word would have missed a large share of them.

Campaigns that follow the stock

With lean stock and frequent launches, we watched availability closely and moved budget as products sold out. New collections got a campaign of their own, so they gathered visibility quickly instead of waiting to earn a place in the custom label groups. When a Sweden-only jeans campaign dropped to a single product in stock, we merged categories so it always had something to show.

For Black Friday we moved Shopping in Norway onto a Comparison Shopping Service through DataFeedWatch, which lowers the cost of each click, and brought Sweden across in December.

A method for angles, and a model who looked like the customers

ServicesMeta Ads · Creative

The team had been making videos around what was trending each week. We added a method: research the angle first, then build the video around it. For the tights, that meant scrunch detail, fit, shape and fabric. For the jeans, a curve-friendly fit, comfort, stretch and real denim.

We rebuilt the account on an ABO structure with broad targeting, split audiences into new and existing customers, and launched a catalog sales campaign that shows people the exact product they looked at and left.

The curvy model

Google Ads kept telling us XL and XXL were selling well. In the old Meta data, we found a video with a curvier model that had done well and then been set aside. We brought it back, and it became one of the top videos on the account. Plenty of women wanted to see activewear on a body like theirs, and social media rarely showed them one.

Christmas, and Valentine’s Day

For the holidays we wrote video scripts for the team to shoot. The one that drew the most purchases showed how comfortable the jeans stay after a big Christmas dinner.

For Valentine’s Day, the creative the team had planned read as more intimate than the brand usually sounds and risked disapproval on Meta. We advised against running it and sent over our own ideas, which the team produced.

The brand had a large library of influencer photos and videos, most of it shot for a single format. We ran it through our in-house AI resizing tool, so every piece of content could run in every Meta placement.

CRO

Norway and Sweden, 2 kinds of friction

ServicesConversion Audit · UX & Design · Testing & Implementation

The team watched conversion rate more closely than any other number, and when it started to slip, they asked us to look at the store itself. By then the ads had already given them reason to trust our read on the data.

We watched real sessions in Microsoft Clarity, through heatmaps and recordings, to see where shoppers hesitated and where they gave up. Most traffic and revenue came from phones, and the 2 markets stalled in different places. Norwegian shoppers knew the brand and dropped off on the way through checkout. Swedish shoppers, newer to it, needed more help finding the right product and trusting it.

A mobile-first roadmap

We turned what we saw into a roadmap in 3 areas.

  • Buying: a sticky add-to-cart, quick-buy, Klarna shown early, and clearer cart and checkout messaging
  • Trust: reviews and social proof close to the price
  • Finding: fit guidance, better filters and sorting, and simpler category navigation

Research before changes

We helped set up the Shopify review app that put customer reviews on the product pages, along with the other connected apps the roadmap relied on. When the team wanted to change something on the site without research behind it, we said so. Sometimes we advised against the change, and sometimes we reshaped it to follow best practice, so every change to the store had a reason we could point to.

The results

Once every size was back in Shopping, sizes S to XXL converted at 3.4%, against 2.5% for XS, the one size the campaigns had carried before. That is a 37% better conversion rate at a 21% lower cost per conversion. Over the holiday weeks, from 24 December to 6 January, the new sizes added 117 conversions on top of the 81 from XS, and XXL converted best of all.

On Meta, the angle method kept getting sharper through the sales calendar. In Norway, the best Valentine’s ad brought 143 purchases at $5.12 each, about 40% cheaper than the self-gift ads in the Mother’s Day sale a few days earlier, and the Norway campaign closed 265 purchases in total.

Underneath it all, the team now has numbers it can trust. Every sale is counted once, on both domains, with bots filtered out and new customers split from returning ones. Lifetimely shows where breakeven sits, so budget decisions start from profit instead of from revenue.

  • Tracking rebuilt server-side across both domains, with a 100% match rate on Google Ads conversions
  • Bot sessions filtered out of GA4 and out of the signals the bidding algorithms learn from
  • Full visibility on profit, stock movement and reorder timing
  • A curvier model’s video back on Meta and among its top performers
+37%
Shopping conversion rate · sizes S to XXL vs XS
-40%
Meta cost per purchase · best Valentine's ad, Norway
100%
Google Ads conversion match rate · server-side

Timeline

The team

Chiara

Chiara

Chiara

Pay Per Click · Paid Social

Ran Google Ads and Meta Ads from the first day: the size fix, the market-by-market feed, and the creative angles that found the curvy audience.

Marouscha

Marouscha

Marouscha

Web Analytics

Rebuilt the tracking server-side across both domains, kept the bots out of the data and set up the profit view in Lifetimely.

Luigi

Luigi

Luigi

CRO

Led the store work: the Clarity research, the mobile-first roadmap for both markets, and the review app setup.

Your business could be the next story.

Ecommerce plus physical stores? B2B and B2C under one roof? One market or eleven? The businesses other agencies find too complex are the ones we make shine.

Book a Call