Kids' IT school (Belarus): $28,287 → 3,752 leads at $7.54, 212% ROMI
Updated:
$28,287
Ad spend
3,752
Leads
$88,255
Revenue
212%
ROMI
The task
An international network of children’s programming schools; the Belarus arm runs under a separate brand. Name not disclosed (NDA).
Kick-off — June 26, 2024; ads live a week later, on July 3. Two lead streams: online tuition for the whole country and offline branches in eight cities — Minsk, Gomel, Brest, Grodno, Soligorsk, Vitebsk, Novopolotsk, Mogilev. Plus a summer camp in Gomel. Leads go to the client’s amoCRM tagged “online” or with a city. One extra condition: online ads must not burn out the city audiences before the offline enrollment starts on August 10.
What we did
- One week to launch. Landing pages from scratch on Tilda, the first banner pack in Figma, naming and UTMs — and on July 3 the ads went live. Day one: 5 leads, 4 of them qualified.
- Split online and offline by geo. The online campaign covers the whole country minus the offline cities (except Minsk). Meta cannot exclude individual cities in Belarus, only regions, so instead of excluding we targeted the major cities point by point.
- Found the pain. In the first days a lead cost $7.64. We replaced the “programming courses” angle with “the easiest way to get kids off their gadgets” — leads at $1.78 on the very first day. We rolled the offer out to every ad set and from then on changed only visuals and copy.
- A landing page per city. For the offline enrollment we built eight city pages and a separate one for the Gomel camp. Every campaign carries the city name in the headline.
- A creative pipeline. Combinations burned out in two to three weeks, so creatives shipped in packs: three variants per hypothesis, static and video. In the first six weeks — 30 visuals with 2–4 offers each plus 22 video scripts.
- UTM control. Dynamic UTMs with
{{campaign.name}},{{adset.name}},{{ad.name}}in the link. In week one we caught a tag error — leads were landing in the “Minsk” pipeline instead of “online” — and fixed it within a day. - Scale. By mid-August — 13 campaigns; by December — 182.
Results
June–December 2024:
- Spend: $28,287
- Leads: 3,752
- Cost per lead: $7.54
- ROMI: 212% — $88,255 revenue on $28,287 ad spend
- Account: 182 campaigns, 14.6M impressions, 1.88M reach, $1.94 CPM

Cost per lead and ROMI are taken from the core period, July–September: $21,074 spend, 2,795 leads at $7.54.

Insights
- Sell the fix for the parent’s pain, not the product. “Get kids off their gadgets” worked where “programming courses” produced leads four times more expensive.
- Split online and offline cities by geo from day one. Otherwise online ads burn out the audience the branches need for enrollment.
- In Belarus Meta excludes only regions, not cities. To avoid specific cities, target the ones you need point by point instead of excluding.
- A combination lives two to three weeks. Do not wait for burnout — keep the pipeline running so the next creative pack is ready before the current one stops working.
- Check tags on day one against the client’s CRM, not the ad account. One missing character in a UTM and leads go to the wrong pipeline.