Paid social · Meta Ads
Dance school
Choreography for children aged 3–17 and evening classes for adults. Plenty of enquiries, few trial class sign-ups. We rebuilt the ads into an enrolment funnel: separate offers, seasonal waves and retargeting.


Point A — the starting situation
Enrolment you cannot plan
The school was running and had students, but enrolment kept swinging: a peak before the season and a slump in between. Plenty of “I'm interested” messages arrived in the inbox, yet only a handful of people made it to a trial class.
The budget was not the problem. Someone seeing the ad for the first time got no answer to the basic questions: who is this group for, what level is it, what happens in the first class and what will they get out of it. The ads pushed a cold audience straight to sign-up, with no trust-building step in between.
- Unstable enrolment: a spike before the season, silence in between
- Lots of “I'm interested” in chat — few trial class sign-ups
- No structure: who it suits, what level, what happens in the first class
- One shared message for parents and adults — though their motivation differs
- Ads worked as notices, not as a funnel: no warm-up, no retargeting
Product — offers
Six offers
The core problem was that the school was selling “dance for everyone”. The mother of a five-year-old and a thirty-year-old woman who wants to dance after work are two different audiences with different motivations.
We split the product into age and level groups. Each got its own offer: who it is for, how many times a week, what preparation is needed and what the outcome will be.
After that the ads stopped being generic: people saw a message written about their child, or about them.
The key mindset shift: we stopped counting “enquiries” and started counting trial class sign-ups. A lead that never reaches the studio is spent budget, not a result.
Ad logic
Who we bring in — and who we filter out
The campaign goal was not a message in the inbox but a trial class booking. So the ads deliberately narrowed the audience before the click.
Directed to a trial class
- Parents of children in the right age range near the studio
- Adults looking for evening classes after work
- People who watched class videos and engaged with the profile
- Audiences at a specific level: beginner or experienced
Filtered out
- “Just browsing”, with no intention to sign up
- Audiences outside realistic travel distance of the studio
- Vague messages with no age, level or schedule
- Launches without retargeting — warm traffic simply gets lost

Implementation
How we actually worked
From offer structure to reply scripts — so that nothing between the ad and the booking leaves room for someone to get lost.
-
01. We broke the product into offers
Kids by age and level, adults as beginner and intermediate. Each offer has its own promise and its own class format.
-
02. We built the ad account structure
Separate campaigns per programme, with ad sets split by age range inside. That immediately shows which age delivers cheap leads and which only produces empty clicks.
- REC — recreational groups, seasonal intakes
- INT — trained children, twice a week
- ADULTS — always-on throughout the season
-
03. We launched retargeting on warm audiences
Separate ad sets for people who watched class videos and engaged with the profile: a 180-day window to convert those who hesitated between intakes.
-
04. We prepared reply scripts
Ready answers about age, level, schedule and the first class — so a conversation turns into a booking within a few messages, not a week.
Advertising for dance, vocal and arts schools
Group enrolment, trial classes, seasonal waves — these are the tasks we work on. Describe your situation and we will tell you whether we can help.
Creatives
The ads that ran in the campaigns












Paid social
Nine months of the season in numbers
- 12 348,51 $ad budget over 9 months
- 655 490ad impressions
- 12 536clicks, CPC $0.99
- 1,91 %average CTR for the period

Scroll the table sideways →
Inside the ad account

One month of campaigns: $1,037.28 spent, 63,580 impressions, 45 leads at $23.05. Scroll the table sideways →
Month-by-month dynamics
The two enrolment waves are clearly visible on the chart: the start of the season and January.
- Leads
- Enrolments
Leads and enrolments by month. Season total: 584 leads and 165 enrolments. Scroll the chart sideways →
Breakdown by programme
The cheapest lead comes from adults, the most expensive from pre-professional. But the number to watch is not cost per lead — it is LTV: what one enrolled student brings in over a season.
| Programme | Spend | Leads | Cost per lead | Enrolments | Cost per enrolment | Season revenue | Student LTV |
|---|---|---|---|---|---|---|---|
| Recreational · children | 6 148,67 $ | 238 | 25,83 $ | 85 | 72,34 $ | 79 623,75 $ | 936,75 $ |
| Intermediate · children | 1 552,58 $ | 53 | 29,29 $ | 16 | 97,04 $ | 27 936,00 $ | 1 746,00 $ |
| Competitive · performance teams | 940,59 $ | 21 | 44,79 $ | 6 | 156,77 $ | 15 525,00 $ | 2 587,50 $ |
| Pre-professional | 371,45 $ | 7 | 53,06 $ | 2 | 185,73 $ | 7 884,00 $ | 3 942,00 $ |
| Adults · evening classes | 3 335,22 $ | 265 | 12,59 $ | 56 | 59,56 $ | 22 540,00 $ | 402,50 $ |
| Season total | 12 348,51 $ | 584 | 21,14 $ | 165 | 74,84 $ | 153 508,75 $ | 930,36 $ |
Cost per lead and per enrolment are averages for the whole period. Scroll the table sideways →
Point B — results
What changed over the season
584
leads in 9 months
21,14 $
average cost per lead
165
enrolments
74,84 $
average cost per enrolment
153 508 $
school revenue for the season
930 $
average LTV per student for the season
Period: 9 months of the season. Data from the ad account and the school's enrolment records. Revenue was calculated as enrolments × the programme's season fee, so LTV here is seasonal — nine months, not a full customer lifetime: students who stay for a second season are not included.
Industry: dance school · Format: Meta paid social
An enrolment funnel — instead of ads that chase curiosity
Takeaways
What this project delivered
Advertising stopped being a separate activity and became part of enrolment: the offer explains, the creative narrows the audience, retargeting brings people back and the scripts get them into the studio.
Nine months showed not a one-off spike but a season you can steer, where every programme has its own cost per student.
Split offers removed the main objection
When the creative states the age and level, people stop asking “would this suit us” and go straight to asking about the schedule. That shortened the path from first touch to trial class.
Seasonal waves instead of a flat budget
In the months with open intakes all five programmes ran; in between, only recreational groups and adults. The budget went where there was actually somewhere to enrol people.
Cost per enrolment matters more than cost per lead
Adults deliver a lead for $12.59, pre-professional for $53.06. But one enrolled pre-professional student brings in ten times more. We optimised for enrolments, not leads.
Get in touch
