A $40 cost-per-lead can look like a win while the cohort stays empty. Bid on enrollments (and the stages that actually become enrollments), feed those values back into Google, and use search for the deadline after Meta and YouTube have built the pipeline.
Cost-per-lead measures the start of the funnel. Ask Google for the cheapest form fill and it will find lunch-break browsers and people comparing 9 programs. The cost-per-lead drops. Enrollments do not move. The longer it runs on that signal, the more of those form fills it finds.
Two campaigns, same spend, is the usual picture in bootcamp accounts we run. One reports a $40 cost-per-lead and almost no enrollments. The other reports $120 and fills cohorts. If it takes 50 of those $40 leads to enroll one student, cost per enrollment is $2,000. If it takes 8 of the $120 leads, the real cost is $960. Same dashboard, less than half the actual cost. The number that matters was two stages down.
Map lead to application to interview to deposit to enrolled, then put a value on each stage
A bootcamp sells a seat in a cohort. For most programs the path is lead, application, interview or admissions call, deposit, enrolled. Each stage drops people. Each later stage also carries more information. Someone who shows up to the interview is telling you something a form fill never could. Someone who puts down a deposit has basically decided.
Work backward from what an enrolled student is worth, then weight each earlier stage by the rate it converts to the next. Say an enrolled student is worth $12,000 in tuition, and your own close rates look like this:
- 40% of leads submit an application
- 50% of applications take the interview
- 60% of interviews put down a deposit
- 80% of deposits enroll
A deposit is worth $12,000 × 80% = $9,600. An interview is worth $5,760. An application is worth $2,880. A raw lead is worth about $1,152. That is the spread you hide from the algorithm when every form fill is one flat conversion.
Run this on a few months of real data and recheck it quarterly. A roughly-right value you update beats a precise value that is a year stale. You cannot bid on a stage you do not measure; the setup lives in conversion tracking for online course businesses.
Send those values back with offline conversion tracking, then bid on value
A browser pixel knows a form was submitted. It cannot know that three weeks later that person took the interview. Offline conversion tracking sends the later outcomes back to Google Ads and ties them to the original click. Capture the GCLID on the lead, store it in the CRM, and when that person hits a later stage, upload the outcome and its value. Use enhanced conversions for leads as a hashed first-party fallback when the GCLID is missing. If you still upload through the old Ads API, move to Data Manager before the June 2026 cutoff; details are in the enhanced conversions switch.
Google’s conversion window tops out at 90 days. If the average lead takes four months to enroll, bid on the interview or the deposit (the stage that lands inside the window) and keep enrollment as the reporting truth. The long-cycle version of this is the 90-day problem.
Once the values are flowing, switch from Maximize Conversions to value-based bidding: Maximize Conversion Value, then a target ROAS once you have the volume. Google stops hunting the cheapest form fill and starts hunting the next $9,600 deposit.
Two guardrails. Value-based bidding wants about 50 valued conversions a month; if one campaign cannot clear that, consolidate. Changing a bid strategy or moving a target more than about 25% restarts learning for a week or two. Make the change, then leave it alone. Daily tinkering off this week’s numbers is the same mistake as managing to a daily sales figure when revenue lands two or three weeks later.
Pace the channels to the cohort: Meta and YouTube early, search at the deadline
A bootcamp is an online course business with a deadline. Search captures people who already want a start date. Meta and YouTube build the list of people who will want one in 6 to 8 weeks. If you only turn search on when the cohort opens, you are buying the leftover demand.
Consolidate search. Brand in its own campaign. Non-brand grouped by intent or program only when each group has the conversion volume to learn. Fragmented ad groups with 4 conversions a month never train Smart Bidding.
Answer “why this, why now” in the ad and on the page: next cohort date, job outcome, schedule, financing. If the program is technical, say out loud what the curriculum does in a world with AI, because that objection is already in the prospect’s head. Then make the video. An ad only amplifies what is already true on the page.
Performance Max comes last, after enrollment or deposit is the conversion it can see. Feed it the same offline values, exclude brand, and treat it as extra surface area next to search, not the strategy.
Your cost-per-lead may go up. Watch cost per enrolled student and whether the cohort fills. If you want that loop built on the account, book a strategy call.


