Dream went from $10k/mo to $200k/mo with our Ads Strategy - Explore Case Study

Dream went from $10k/mo to $200k/mo with our Ads Strategy - Explore Case Study

How We Turned a Broken Follow-Up System Into a $244 Cost Per Enrolled Student

HighLevel

Meta Ads

Google Ads

Uncover hidden growth in your campaigns with zero risk.

Complete Performance Audit

Actionable Recommendations

Custom Roadmap

5.0 stars on Upwork

A Santa Rosa martial arts studio was paying for leads nobody could text back. Six months later she was signing students for a twelfth of what each one is worth.

Client Overview

Ignite Martial Arts, Inc. is a woman-owned Taekwondo studio in Santa Rosa, California. Three programs: Little Dragons for ages 4 to 6, Karate Kids for 7 to 11, Teens and Adults for 12 and up. The offer is a free trial class. Owner Kristin Medina teaches the classes herself and calls her own leads.

The setup

  • Google Ads and Meta, roughly $2,500 a month across both, weighted toward Google

  • Lead capture and follow-up on GoHighLevel

  • Memberships run $212 to $400 a month

The audience

Parents, mostly moms, 30 to 50, living within about six miles of the studio. Household income $90k to $160k, kids 4 to 12. They're not shopping for a sport. They're buying confidence and focus for a kid who's shy, or unfocused, or on a screen too much.

The goal

Fifteen new enrollments a month. Cost per enrolled student under $400 against a $3,020 lifetime value. And self-serve booking, so a parent can claim a trial class at 9pm instead of waiting on a callback.

What she told us on day one: "Not enough new leads coming in each month for appointments so low enrollments over the past 12 months. Really don't know what I'm doing and just following help from other owners."

The Challenge

Ignite came to us from an agency that hadn't delivered, after which Kristin had been running Google Ads herself. The ad accounts turned out to be the least of it.

Nobody could follow up

A2P text registration sat in carrier review for eight weeks. During that time 73 leads piled up in the queue having received exactly one message. Then a GoHighLevel toggle disabled itself after a platform update, so the second text never sent either. Kristin found it before we did.

The pipeline lied

Booked appointments weren't moving out of "New Lead," so nurture texts kept firing at families who'd already booked. Reminder texts went out with the appointment time blank. Class durations were wrong in the booking flow, which made calendars show no availability at all. No-show rate hit 33% against a normal run of under 10%.

Her message to us, and she was right: "This is the kind of stuff that is not ok and makes us look like idiots."

We couldn't trust the numbers

Google conversion tracking broke three separate times. Worse, a page-view tag was double-firing on the main landing page, which inflated every conversion count before mid-July. And cost per enrolled student, the one number that decides whether any of this works, had never actually been measured.

Our Approach

We read this as a follow-up problem that happened to have ads attached.

Fix the plumbing before touching the budget. We pushed A2P through with carrier support, rebuilt the SMS sequence, and corrected the pipeline so a booking immediately drops out of the nurture flow. Real appointment times went into the reminder texts. Class durations got fixed. All of it inside the first ten weeks, most of it before we changed a single bid.

Find the creative that works and feed it. Statics against owner-filmed video, judged on leads rather than clicks. Three creatives pulled away from the pack and took the majority of spend.

Change the offer when the data said to. A single free trial class was producing appointments people skipped. We moved both channels to a two-week free trial, which gives a family enough runway to actually decide something.

Reactivate what she already owned. Over 400 dormant leads were sitting in her database. We built a four-email, two-text sequence on a throttled drip so her phone wouldn't melt, then ran it.

Landing pages came last. We replaced one generic form page with age-specific pages for Meta, then deliberately kept Google on a single all-ages page, because somebody searching "karate classes for my kid" could belong to any of the three age groups.

The Results

Meta, March 1 to August 20, 2026:

  • 258 leads at a $21.99 blended cost per lead, inside her $15 to $22 target

  • $5,672.72 spent across 415,298 impressions and 65,304 people reached

  • 6,055 clicks at a 1.46% CTR and $0.94 CPC

  • July was the best month: 62 leads at $20.08

  • The core prospecting campaign alone did 249 leads at $19.07

Google Ads, March 12 to August 20, 2026:

  • 46 conversions across the 18 weeks we can account for, on roughly $6,674 of documented spend

  • Performance Max was the top campaign in 14 of those 18 weeks

  • Best documented week came in at $27 per conversion

Four weeks are missing entirely, lost to tracking breaks, and one more is an account suspension we appealed and got reversed. We're not going to pretend those weeks didn't happen.

The Number That Matters

Leads aren't the product. Enrolled students are. Kristin priced a student at $3,020 in lifetime value and told us to keep acquisition under $400.

  • Customer lifetime value: $3,020

  • Target cost per enrollment: $400

  • Actual cost per enrollment on Meta: $244

That's a 12.4x return on acquisition cost, and it undercuts her own target by 39%.

Her read on the funnel once follow-up was working: week of April 20, five appointments produced five enrollments. Week of April 27, five appointments produced two. In her words, "90% or more enroll when they come in for one class."

So the bottleneck was never the sale. It was getting a family who'd already booked to walk through the door.

Top-Performing Creative

Ranked by leads. Three creatives produced 73% of every Meta lead on 62% of the spend.

  • Static 10: 85 leads · $17.99 per lead · 1.39% CTR · $1,529 spent

  • Video 2: 65 leads · $18.05 per lead · 2.26% CTR · $1,173 spent

  • Static 9: 39 leads · $20.34 per lead · 1.21% CTR · $793 spent

  • Static 11: 12 leads · $21.03 per lead · $252 spent

  • Static 6: 12 leads · $13.12 per lead, the cheapest in the account · $157 spent

The video that worked was Kristin talking to a tripod. It pulled a 2.26% CTR, well clear of every static in the account. For a local studio the owner's face is the asset, and she'd been sitting on it.

What We're Working On Now

This account isn't finished, and we'd rather say so.

Meta form-fill leads were producing people who didn't remember opting in. On August 14 we killed the lead forms and moved Meta to landing pages only. Cost per lead went up while volume rebuilt, which is the expected trade when you swap a one-tap form for a page that asks something of the visitor. We're watching quality now, not volume.

On Google, with the double-firing tag gone, we're rebuilding a clean conversion baseline before we recommend spending another dollar. No budget goes up on numbers we don't trust.

The Bottom Line

Ignite's ad accounts were never the constraint. An eight-week text registration delay, a toggle that switched itself off, and a pipeline that didn't move were quietly costing her enrollments she'd already paid to generate.

Fix the follow-up, then buy the leads, and a $3,020 student costs $244 to sign. That order matters more than any bid strategy.

Our Partners

Uncover hidden growth in your campaigns with zero risk.

Complete Performance Audit

Actionable Recommendations

Custom Roadmap

5.0 stars on Upwork

Our Partners

Uncover hidden growth in your campaigns with zero risk.

Complete Performance Audit

Actionable Recommendations

Custom Roadmap

5.0 stars on Upwork

Our Partners

Uncover hidden growth in your campaigns with zero risk.

Complete Performance Audit

Actionable Recommendations

Custom Roadmap

5.0 stars on Upwork