← Back to case studies
Meta Ads · Barbershop chain · Prague

Odessa MamaTwice the booking leads at almost half the cost, and new clients went from 12.6% to 36.5% of the chain's visits

A barbershop chain in Prague whose clients speak four languages. We run Meta by language instead of by location, cut the structure down to one campaign per language and optimize for real bookings. September 2025 to August 2026.

Odessa Mama — Meta Ads · Barbershop chain · Prague
45 → 94

Booking leads per month

−0.0%

Cost per lead

12.6% → 36.5%

New clients' share of visits

Kč250 → Kč150

Target cost per booking

Ad results: Meta Ads Manager, 7-day click attribution, September 2025 – August 2026, CZK. Visits and new clients: the chain's Altegio CRM across all locations.

September 2025 → August 2026

Sep 2025 → Aug 2026

Ad spend+12%
Kč15,580→Kč17,413
Booking leads (7-day click)2.1×
45→94 (+108.9%)
Cost per lead-47%
Kč346→Kč185 (−46.5%)
New clients in the chain2.9×
281→801
New clients' share of visits2.9×
12.6%→36.5%
Average ticket+6%
Kč883→Kč935

Context

Odessa Mama is a men's barbershop chain in Prague with five locations (Karlín, Žižkov, Anděl, Vinohrady, I. P. Pavlova) and a sub-brand, Sobaka Pavlova. When WeBrandLab started working with the client more than two years ago, it had one location. As results improved, the target cost per booking was lowered twice, from Kč250 to Kč150. The named competitors in the niche barely advertise on Meta, so the paid channel is almost free of competition for attention. We report on the conservative 7-day click window; the same trend shows under 7-day click + 1-day view.

The challenge

A barbershop is a local service where trust is built in the chair, not in the feed. Much of the chain's audience are Ukrainian- and Russian-speaking expats, plus English-speaking expats and students. For them the barber's language is a real barrier. The objections we heard most: «I'll show a photo and get something else», «the barber won't understand me», «I don't know which barber to pick». The budget stayed flat at Kč15,500–24,000 a month, so growth had to come from structure and creative, not spend.

What we did

  • Separate campaigns for each language: Ukrainian, Russian and English (Czech earlier, now paused). The language of the ad is the language of the barber.
  • Moved from TOF/MOF/BOF with a geo radius per location to one CBO campaign per language on broad Prague targeting. Broad targeting now also does the retargeting.
  • Ran creative in waves, each in several language versions: documentary UGC-style photos, regulars vs. lapsed clients, Pinterest haircut references, «Father and son», «Show your haircut» and hyperlocal ads for each branch.
  • Fixed booking attribution: the Altegio widget was dropping UTM tags, so bookings arrived in the CRM without a source. A script now writes the tags and click ID into the booking itself.

Outcome

In twelve months the chain went from 45 to 94 booking leads a month on 7-day click, with cost per lead down 46.5%. The chain's CRM shows the result in the chair: new clients grew from 12.6% to 36.5% of all visits. Language segmentation, which competitors in the niche don't do, remains a long-term advantage rather than a one-off win.

Chapter 01 · Language

Language is the targeting, not a detail of it

Someone who doesn't speak Czech isn't choosing the closest barbershop. They're choosing the one where they'll be understood. So the account is split by language first, and each concept ships in every active language.

Russian

The largest expat audience

  • Own CBO campaign
  • «Father and son» worked best here: first bookings at about Kč170
Ukrainian

Expats who want a barber who speaks their language

  • Own CBO campaign
  • Booking forms now pass source tags 60–75%+ of the time
English

International expats and Erasmus students

  • Own CBO campaign
  • Social proof: Google reviews and a 4.9 rating in the creative

Chapter 02 · Structure

Fewer campaigns, more data in each

We started with a full TOF/MOF/BOF build and a geo radius for every location. Retargeting was sometimes brilliant (Kč17.63–28.34 per booking in good weeks) and sometimes over Kč500 a week. In summer 2026 we consolidated into one CBO campaign per language on all of Prague.

Cost per lead, July 2026

Kč191.6

Cost per lead, August 2026

Kč185.2

best month of the year

Weekly bookings, mid-August

155→175

+12.9%

Three campaigns instead of a fragmented structure produced the two best months of the year, with spend lower than in spring.

Chapter 03 · A test that failed

The optimization goal matters more than the budget

From February to May 2026 we tested the Traffic objective. Lead quality dropped hard. We switched back to the Schedule objective and reached the year's best numbers straight after. We show this dip on purpose: testing means some tests lose, and what counts is how fast you see it and reverse.

Booking leads, March 2026

12

cost per lead Kč1,903

Booking leads, August 2026

94

cost per lead Kč185

Traffic objective · Feb–May 2026

  1. 01Cheap clicks
  2. 02Few real bookings
  3. 03Cost per lead up to Kč1,903

Back to Schedule · from June 2026

  1. 01Optimization on bookings
  2. 027-day click as the main window
  3. 03Kč185–192 per lead in July and August

Chapter 04 · Creative

Hyperlocal beats clever

The same ad tires the audience in a few weeks, so creative runs in waves. The strongest of all were ads made for one specific branch: in their launch week they brought 21 of the network's roughly 30 bookings.

Hyperlocal creatives

Separate ads near the metro and for Žižkov. The most bookings of any active creative in the launch week.

«Father and son»

One haircut, two happy clients. Worked best in the Russian campaign: first bookings at about Kč170, well below that week's campaign average.

Statics over video

An early comparison showed video CTR under 1%, so the creative budget went to statics.

Chapter 05 · Tracking

Bookings were losing their source on the last click

The site kept UTM tags and click IDs, but the Altegio «Book» widget opened its own link without them. Some weeks Meta and TikTok showed zero tracked visits in the CRM despite active ads.

A script inside the widget

It reads the tags and click ID from the address bar and writes them straight into the booking. Russian and Ukrainian forms now keep the source 60–75%+ of the time, up from single digits. Czech and English forms are still at about 4%, and we're working on it.

Regular CRM cross-check

A rolling export of Altegio clicks compared with the ad accounts. It once caught a campaign that raised spend 4.8× without any increase in real bookings.

The creative

Here's what actually ran on this account.

Odessa Mama — English static · 4.9 rating and a real review
English static · 4.9 rating and a real review
Odessa Mama — English static · «why choose us» with a Google review
English static · «why choose us» with a Google review
Odessa Mama — English story carousel
English story carousel
Odessa Mama — Russian-language UGC video
Russian-language UGC video

Want this for your brand? Book the 45-min call.

You leave with a 90-day plan whether we work together or not.