RU Get a proposal

Online German school (Germany, Austria): Google Ads tracked all the way to payment

Niche: online educationChannel: Google AdsPeriod: ~3 monthsBudget: ~$4,600Location: Germany, Austria

Client

An online German language school targeting Russian speakers living in Germany and Austria. The Google Ads account was billed in US dollars. Two product lines: German for adults (general searches) and German for children.

Goal

Bring in sign-ups for a trial lesson and follow them through to paid courses. The key requirement was to measure the whole funnel to revenue, not just leads: lead → trial lesson booked → trial lesson held → payment.

Audience and product

  • Audience: Russian speakers in Germany and Austria learning German, and, separately, parents buying lessons for their children
  • Product: online German lessons, with a free trial lesson as the entry point
  • Average order: ~$75–325 (varied)
  • Sales cycle: lead → trial lesson → payment, with a delay, so payback takes time

What I did

  1. Campaigns by product line (search, Germany + Austria): a campaign for adults on general searches, and a separate campaign for children with its own landing page for parents.
  2. Full-funnel tracking. I tracked not only leads but every stage: trial booked → trial held → payment. That made it possible to calculate real unit economics (customer acquisition cost, ROAS, average order, cash collected) instead of stopping at cost per lead.
  3. Weekly control and optimisation. I managed the campaigns week by week, watched where leads dropped out of the funnel and moved budget between the product lines.

Hypotheses and tests

HypothesisResult
Children and adults are different audiences and need separate landing pagesConfirmed: the children's line had the best cost per lead ($36 at its best)
Measure the funnel to payment, not to the leadConfirmed: the real cost per customer and ROAS became visible
Search in Germany and Austria will pay off over timePartly: still a test stage, payback is long and ROAS is catching up

Results

Totals for the period (~13 weeks):

MetricValue
Spend~$4,603
Leads40
Trial lessons booked32
Trial lessons held19
Payments6
Cash collected~$1,167
Cost per lead (average)~$115
Cost per paying customer~$767

Funnel conversion by stage:

StepConversion
Lead → trial booked80% (32/40)
Trial booked → trial held59% (19/32)
Trial held → payment32% (6/19)
Lead → payment15% (6/40)

Best weeks by cost per lead: $36.26 for the children's line, and from $27.90 for adults at the start of optimisation.

Challenges and solutions

Long payback and low ROAS within the test window. Course payments don't arrive right after the trial lesson, so ROAS in the reporting window doesn't show the full return (in the best weeks it reached 1.04). The solution was to look at the whole funnel, not just revenue in the moment. Where there are many leads but few payments, the problem isn't the ads; it's the trial-to-payment step, which is down to sales and teachers.

Small weekly volumes and noisy statistics. At 1–9 leads a week, individual metrics jump around (cost per lead anywhere from $28 to $680). So I made decisions on smoothed data and the overall funnel, not on a single week.

Takeaways

The main value of this case is tracking all the way to payment. A $115 cost per lead says nothing by itself. What matters is that 80% of leads booked a trial and 15% paid. That funnel shows where money is really lost, and the bottleneck is almost never the ads; it's the “held the lesson → bought” step.

Splitting children and adults paid off: the children's line had a noticeably lower cost per lead, because parents are a more motivated audience with more spending power. That's an argument for shifting budget towards the more profitable segment.

For an online school with a long payment cycle, you can't judge a channel by ROAS in the moment. You need to look at cohorts and lifetime value, or you'll write off a working channel too early.

Want results like these?

Tell me about your business, and I'll suggest a plan and tell you honestly what to expect.

Send a brief