If your trade school measures Google Ads by cost per lead, you are bidding on a hand-raise. Cost per enrollment, by program, is the number that fills seats. Import those enrollments (and the calls that become them) back into Google, set a target per program, and stop letting a blended average spend your budget.
A lead is someone who raised a hand: a form, a phone call, a request-info click. An enrollment is someone who signed up, paid a deposit, and started. Those events sit days or weeks apart, full of admissions calls, financing conversations, and no-shows. Google sees the first one instantly. It has no idea the second happened unless you tell it. That gap is the same one we walk through in conversion tracking for online course businesses.
Every program enrolls at a different rate, so a blended cost per lead hides the leak
An HVAC inquiry and a CDL inquiry are not the same lead. In trade-school accounts we manage, one program might enroll 1 in 4 inquiries; another might enroll 1 in 12. Same school, same ad account, same “lead.” Completely different value.
Run the math. Two programs both produce leads at $80 cost per lead.
- Program A enrolls 25% of leads. 4 leads to get 1 student. Cost per enrollment: $320.
- Program B enrolls 8% of leads. About 12 leads to get 1 student. Cost per enrollment: $1,000.
Identical cost per lead. The real cost of a student is 3x apart. Bid off the blended $80 and you pour money into the program that looks cheap on leads and bleeds on enrollments.
Work backward from what a student is worth: target cost per enrollment is roughly program tuition value times margin times the share of leads that enroll. An $18,000 program can justify a very different acquisition cost than a $4,000 certificate. The enroll rate is per program, so one blended target across the school overpays for some students and underbids for others.
If the only conversion is “form submitted,” automated campaigns will fetch cheap forms
Performance Max is very good at finding the cheapest action that counts as a conversion. Tell it “form submitted” and it will go get a pile of cheap submissions. Cost per lead drops. Admissions then calls them: half don’t pick up, half are not a fit, and the ones who enroll skew toward cheaper certificates.
I have watched a campaign cut cost per lead by 30% and grow enrollments by zero. The algorithm did what it was told. When the outcome data goes back in, the campaign that looked expensive on cost per lead is often the cheapest on cost per enrollment, because those leads actually show up and sign up.
Import enrollments, then set a target CPA per program
Capture the click ID when someone inquires, keep it on the CRM record, and when that record hits “enrolled,” push the outcome back into Google Ads with a value. Google documents the setup in its offline conversion import help. For June 2026 Data Manager changes, use the enhanced conversions switch note.
A small ladder beats a fat one:
- Inquiry / form submit: track it as observation-only. Early signal, not what you bid on.
- Qualified inquiry or booked campus visit: often the best primary for bidding, because it arrives fast enough and it filters tire-kickers.
- Enrollment / start: the real outcome, imported with value. If the sales cycle is longer than Google’s window (default 30 days, max 90), bid on the qualified-visit stage and keep enrollment as the reporting truth.
If a CDL program enrolls 6 weeks after the click and the window has closed, assign a proxy value to the qualified stage: average program revenue times the rate at which a visit becomes an enrollment. A campus visit that closes 40% of the time on a $15,000 program is worth about $6,000 to the business. Feed that in.
Then split campaigns by program so HVAC carries HVAC’s target and CDL carries CDL’s. Three conversions tracked well beat twenty tracked badly. Pick the stage that is meaningful and still gives the algorithm about 30 conversions a month to learn from.
Most trade-school inquiries are calls. Count them or you are bidding on half the data
In the HVAC, CDL, cosmetology, and medical accounts we run, 40 to 60% of inquiries come in by phone. People want a human on financing, start dates, and whether they can keep their job. If you only count form fills, the campaigns and keywords that drive calls look dead, so Google starves them.
Wire in call conversion tracking for calls from ads and from a tracked number on the site. Use call length as a quality filter, then track those callers through the CRM to enrollment the same way form leads are. A 20-second hang-up is not the same lead as a 6-minute call that books a campus tour.
Structure around program economics, and keep Presence location on
A trade school is several businesses wearing one logo. Give a program its own campaign when it has distinct economics and about 30 conversions a month at the stage you bid on. HVAC and CDL almost always earn that. Consolidate the small programs until they have the volume. Run a separate branded campaign so competitors cannot poach a lead that was already yours, and so brand traffic does not inflate non-brand numbers.
If you cannot describe in one sentence why two things are in separate campaigns, they should not be.
Trade schools are local. Google’s default location option, Presence or interest, shows ads to people in your area and to people anywhere who once showed “interest” in it. For a Phoenix campus that can mean a click from another state. Switch every campaign to Presence: people in or regularly in your targeted locations. Google’s location targeting documentation spells out the difference. Set the radius from where enrolled students actually came from. A CDL school might pull from a 90-minute drive; a cosmetology program might be tighter. Until Presence is on, location reports are polluted.
Guard PMax, match the page to the search, then roll this out in order
PMax will find cheap form fills unless it can see a qualified inquiry or an enrollment with a value. Exclude brand (catch that in the branded campaign). Mine search terms weekly for “free trade school,” “is welding hard,” and job-listing queries, and add them as negatives. Presence targeting belongs here too. Run PMax next to a working Search campaign, not as the whole account.
Lead with the outcome: “Become a licensed electrician in 9 months” beats “enroll in our electrical program.” Put financial aid, next start date, job placement, and evening or weekend schedules up front. Someone searching “CDL training near me” should land on the CDL page, not the homepage. Once that foundation holds, video of the welding lab or a day in the dental-assisting program is worth making. We build the foundation first, then the creative that carries it.
Order of work:
- Call tracking live, offline import from the CRM, conversion ladder defined.
- Presence on, realistic radii, then re-read geo reports.
- Split the programs that earn a campaign, consolidate the rest, separate brand.
- Match offers and pages to programs.
- Then expand: PMax with quality signals, Customer Match, creative.
This week: pull the last 6 to 12 months and, per program, divide enrollments by leads. That ratio shows which programs the blended cost per lead has been lying about. Then connect the CRM and rebuild targets around cost per enrollment per program.
If you want someone to run that audit on the account, book a strategy call.


