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.

  • Industry: dance school, choreography
  • Language: English
  • Country: USA, Chicago
  • Period: 9 months of the season
Enrolment creative: an instructor at the barre with two young ballerinas, headline Enrollment Open for children aged 3–17 Enrolment creative: a girl in a ballet pose, intake for two age groups, 3–5 and 8–9

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
Dance school ad creative: three dancers in the studio, a list of groups from Kids 3–5 to adults and a trial class button

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

“Tiny Ballerinas” creative: ballet groups for children aged 3–5 and 6–8, focused on posture and confidence
“Dance for Yourself” creative: evening adult classes, beginner and intermediate levels
“Kids 6–9” creative: classes for children aged 6–9 — rhythm, coordination, creativity and confidence
“Looking for Little Princesses” creative: choreography with stretching, intake for groups aged 3–5 and 8–9
“Heels Class” creative: heels classes for adults, beginner friendly
“Enrollment Open” creative: contemporary dance for children from age 3 — rhythm, stretching and acrobatics
“Stretching & Flexibility” creative: stretching for all levels — posture, mobility and body control
“Skills today, stage tomorrow” creative: the 10–13 group — technique, performance and stage confidence
“Find Your Rhythm” creative: every programme in the school, from children aged 3–5 to adult groups
“Next Level” creative: the adults intermediate group — technique, musicality and style
“Now Enrolling” creative: children's dance for ages 4–9 — technique, flexibility and confidence
“Enrollment Open” creative: intake for the leading choreography group, children aged 3–17

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
Nine-month results table: spend, impressions, CPM, clicks, CTR, CPC, leads, cost per lead, enrolments, cost per enrolment and season revenue for every programme

Scroll the table sideways →

Inside the ad account

Ad account screenshot for one month: eleven ad sets with spend, impressions, CPM, clicks, CPC, CTR and cost per result

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.

139 40 85 25 48 13 43 11 93 26 45 13 36 10 46 13 49 14
  • 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.

ProgrammeSpendLeadsCost per leadEnrolmentsCost per enrolmentSeason revenueStudent LTV
Recreational · children6 148,67 $23825,83 $8572,34 $79 623,75 $936,75 $
Intermediate · children1 552,58 $5329,29 $1697,04 $27 936,00 $1 746,00 $
Competitive · performance teams940,59 $2144,79 $6156,77 $15 525,00 $2 587,50 $
Pre-professional371,45 $753,06 $2185,73 $7 884,00 $3 942,00 $
Adults · evening classes3 335,22 $26512,59 $5659,56 $22 540,00 $402,50 $
Season total12 348,51 $58421,14 $16574,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.

01

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.

02

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.

03

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

Leave your request

Services you are interested in

Message on Telegram