EdTech has an unusual measurement problem: not too little data, but far too much of the wrong kind. A test-prep or upskilling business can generate several thousand enquiries a month at trivially low cost, convert a small single-digit percentage of them, and then refund a meaningful slice of those. Almost every event in the funnel is abundant, and almost none of them predict revenue.
Optimise on enquiries in that environment and the platform will do its job with unfortunate precision: it will find the enormous population of people who happily submit a form for a free resource and never intended to pay for anything. The cost per lead chart will look excellent. Enrolments will not move. And because enrolment sits in a different report reviewed by a different team, the two facts may coexist for a year.
This guide covers the edtech-specific Conversions API build: why demo attendance rather than demo booking is the pivot event, how to handle the refund window so cancelled enrolments stop training your delivery, cross-device identity across app and web, values that reflect collected rather than sticker revenue, and the children's data rules that constrain the entire design when your learners are minors.
Executive Performance Asset
Download Deeptanshu Sharma's Multi-Touch GTM Attribution & Server-Side CAPI Playbook
Get immediate access to pre-built GTM server containers, first-party cookie extenders, and value attribution matrix sheets built for Series A to E companies.
What "properly" means for edtech
Four decisions define a correct edtech setup. Optimise on demo attended, not demo booked — the no-show rate in this category is high enough that booking is a poor proxy for intent. Fire a second enrolment-confirmed event after the refund window closes, and seed lookalike audiences from that event rather than from enrolment. Unify app and web through a hashed external_id, because the enquiry and the payment routinely happen on different surfaces. And where learners are minors, make the parent the tracked identity and keep the child's personal data out of every advertising event, because behavioural advertising to children is restricted by law in most markets you operate in.
1. Why EdTech Breaks Standard Conversion Tracking
Enquiry volume drowns the signal
Free resources, scholarship tests and syllabus downloads generate thousands of leads that correlate weakly with enrolment. When the conversion rate from enquiry to payment is two percent, optimising on enquiries means optimising almost entirely on noise.
The refund window undoes conversions
Cooling-off periods and high-pressure counsellor closing produce a meaningful cancellation rate. A conversion reported on day one and reversed on day nine has already influenced a week of delivery, and nothing corrects it unless you build the correction.
The buyer and the user differ
In K-12 the parent pays and the child studies. The identity you may lawfully track, the identity that converts, and the identity that uses the product are three different people, which no default tracking setup contemplates.
The journey crosses surfaces
Enquire on mobile web, attend the demo in the app, pay on a desktop after a counsellor call. Without a shared identifier these are three unconnected funnels, each of which understates its own contribution.
There is a fifth structural feature worth naming because it distorts every comparison: batch seasonality. Enrolments cluster around cohort start dates, so an ad set can comfortably exceed the learning-phase threshold in admission week and fall well below it a fortnight later. Any optimisation event tied tightly to enrolment will therefore oscillate in and out of stable delivery, which is a large part of why edtech campaigns are so often described as unpredictable.
Tired of Rising CAC & Attribution Leakage?
Work directly with Deeptanshu Sharma to audit your media strategy, funnel bottlenecks, and server-side tracking.
2. The EdTech Event Ladder
| Event | Trigger | Source | Use |
|---|---|---|---|
| Lead | Enquiry or resource download | Browser + server | Retargeting pools only |
| Contact | Counsellor call connected 60s+ | Telephony | Interim optimisation while demo volume builds |
| Schedule | Demo slot booked | CRM / LMS | Reporting; not an optimisation target |
| DemoAttended | Minimum attendance duration met | LMS / class platform | Primary optimisation event |
| Purchase | First payment collected | Payments | Value reporting, ROAS |
| EnrolmentConfirmed | Refund window elapsed without cancellation | Finance / CRM job | Lookalike seed source |
Two definitions decide whether this ladder is honest. DemoAttended needs a duration threshold — joining for ninety seconds and leaving is not attendance, and if you count it you have simply rebuilt the booking event with extra steps. Contact needs a connect threshold from your telephony system, not a dial count, or the metric becomes a measure of counsellor activity rather than prospect interest.
3. Handling the Refund Window
This is the edtech equivalent of the return-to-origin problem in e-commerce, and it is handled correctly even less often. An enrolment reported on the day payment clears, then refunded eight days later, has spent a week teaching the delivery system that a particular audience profile is valuable. The revenue never existed; the training effect did.
The severity depends on your refund rate and your closing style. High-pressure counsellor closing, aggressive scholarship discounting and easy EMI approval all raise cancellation rates, and all three are common in the category. Three ways to handle it, in increasing order of rigour:
- Discount the value at enrolment. If historical retention past the refund window is 80 percent, send 80 percent of the collected amount. Requires no new pipeline and immediately reduces the distortion.
- Fire a correction event on refund. Keep Purchase where it is, add a
Refundedevent, and exclude those users from every lookalike seed and retargeting audience. Preserves optimisation volume while cleaning audience construction. - Add EnrolmentConfirmed after the window closes. A scheduled job that fires once cancellation is no longer possible. This is the event that should seed lookalikes and drive value-based bidding, even if delivery continues to optimise on demo attendance.
The audience point deserves emphasis because it is where the damage compounds. A lookalike audience seeded on all enrolments includes every person who cancelled, and instructs the platform to find more people like them. Over several audience refresh cycles this drifts targeting steadily toward impulsive enrollers, and the effect is invisible in campaign reporting because refunds are recorded in finance.
Instalments and EMI: send what you collected
Sending the full programme price when the learner has paid the first of twelve instalments overstates realised revenue by an order of magnitude and, worse, does so unevenly — because dropout risk rises with programme length and ticket size. The defensible approach is to send the collected amount at Purchase, then update value at EnrolmentConfirmed and, if your systems permit, once the payment plan passes a completion threshold. Whatever you choose, document it and apply it identically across every channel, or cross-channel ROAS comparison becomes meaningless.
4. App, Web and Cross-Device Identity
A typical edtech journey touches three surfaces: a mobile web landing page, the app for the demo class, and often a desktop or a counsellor-assisted payment link at the end. Tracked naively, these are three separate funnels, each attributing partial credit and each looking weaker than the whole.
- One dataset, many action sources. Send web, app and server events into the same dataset with the correct
action_sourceon each —website,app,phone_call,system_generated. Splitting them across datasets fragments learning permanently. - external_id is the spine. Hash your own user ID and send it on every event from every surface. This is what links the mobile-web enquiry to the in-app demo to the desktop payment.
- Phone number is the fallback. Normalise to digits with country code before hashing. In edtech the registered mobile is near-universal and highly stable, which makes it a strong secondary identifier.
- Persist fbc, fbp and lead_id onto the user record at first touch, and attach them to enrolment events weeks later. They cannot be reconstructed after the fact.
- Deduplicate on a shared event_id for anything sent from both browser and server, exactly as in any other implementation.
If you also run app install campaigns, keep the measurement boundary clear: install and in-app events attributed by your mobile measurement partner, web and CRM events through CAPI, joined on the same hashed external_id. Our guides to what an MMP does and Firebase versus GA4 data streams cover where each boundary sits.
5. Children's Data: The Constraint That Shapes Everything
If your learners are minors, this section is not an appendix — it constrains the architecture of everything above, and getting it wrong carries regulatory consequences that dwarf any performance gain.
The rules that apply in most markets
- India — DPDP Act. Verifiable parental consent is required before processing a child's personal data, and behavioural advertising directed at children is prohibited. Children are defined as under eighteen, which is a considerably broader scope than most other regimes.
- United States — COPPA. Verifiable parental consent required for collecting personal information from children under thirteen.
- Europe — GDPR. A digital-consent age set between thirteen and sixteen depending on member state, with heightened protection for children's data throughout.
The design implications are concrete rather than abstract:
- Track the parent, not the student. The identifiers in your Conversions API payload — email, phone, name, external_id — should belong to the paying parent or guardian, who is also the actual buyer. This is both the compliant design and the commercially correct one.
- Never send a child's personal data in an advertising event. No student name, no student email, no date of birth, no school. If a field identifies the child, it does not belong in a marketing payload.
- Keep grade and subject as non-identifying parameters. "Class 10, mathematics" is legitimate campaign context attached to the parent's record. A student identifier is not.
- Do not build behavioural profiles from in-app learning activity for advertising. Study data may be used to run the product; using it to target ads at children is precisely what these regimes prohibit.
- Record the consent basis alongside the event. When a regulator or a platform audit asks what permitted a given transmission, the answer needs to be retrievable from your own systems, not reconstructed.
A closing note on this section that applies regardless of jurisdiction: hashing does not remove obligations. A hashed email is still personal data being used to identify a person, and every consent and disclosure requirement continues to apply. Involve whoever owns privacy in your organisation before launch. Retrofitting a compliant identity model after a pipeline is live is substantially harder than designing it correctly at the start.
6. Freemium Funnels, and Testing the Whole Thing
When the product is free before it is paid
A growing share of edtech runs a self-serve free tier rather than a counsellor-led demo: free practice questions, a free chapter, a limited plan. This changes the ladder, because the equivalent of demo attendance is no longer a scheduled event you can observe directly — it is a usage threshold.
The design question is which usage moment predicts payment, and it is worth answering empirically rather than by intuition. Look at the last few hundred paying users and find the in-product action that most reliably preceded conversion: often it is completing a first full assessment, reaching a streak of a few consecutive days, or finishing one module. That action becomes your ActivatedUser event and your optimisation target — the freemium analogue of demo attended.
- Pick a threshold that occurs within days, not weeks. A predictive signal arriving on day thirty is analytically interesting and useless for optimisation, because the feedback loop is longer than the campaign cycle.
- Send registration too, but do not optimise on it. Free signups behave exactly like enquiries — abundant, cheap and weakly related to revenue.
- Fire the paid conversion separately with the collected value, and keep the post-refund-window confirmation regardless of funnel type.
- Watch for the incentive trap. If you optimise on an activation threshold that a reward scheme also pushes users toward, you will acquire people who complete the action for the reward. Check that activation still correlates with payment every quarter.
The launch QA checklist
EdTech has more surfaces than most categories, so more can be quietly wrong. Run all eight before scaling spend against a new implementation.
- Submit a real enquiry on mobile web and confirm exactly one deduplicated Lead event, showing both browser and server as sources.
- Complete the same journey in the app and confirm the events land in the same dataset with
action_source: app. - Verify cross-surface stitching. Enquire on mobile web, then attend a demo in the app with the same account, and confirm both events carry the identical hashed external_id. This is the check that most commonly fails.
- Attend a demo for ninety seconds and leave. Confirm DemoAttended does not fire — if it does, your duration threshold is not actually enforced and the event is meaningless.
- Enrol a test user and cancel inside the window. Confirm EnrolmentConfirmed never fires and that the user is excluded from lookalike seed audiences.
- Let a second test enrolment pass the window and confirm the confirmation event fires on schedule. A delayed job that silently never runs is this architecture's most likely failure.
- Reconcile a full month of finance-recorded enrolments against Meta-received Purchase events, and check the values match your collected-amount definition rather than sticker price.
- Audit the payload for children's data. Inspect a sample of raw event bodies and confirm no student name, student email, date of birth or school appears in any identifier field.
The last check belongs on the recurring calendar, not only at launch. New events get added by people who were not in the original design conversation, and a well-meaning engineer adding student_email to improve match quality has created a compliance problem that will not surface in any performance dashboard.
7. Pros and Cons for EdTech
| Pros | Cons |
|---|---|
| Demo attendance gives a dense signal that genuinely predicts enrolment. | Requires the class platform to emit reliable attendance data with durations. |
| Refund-window events stop cancellations training your targeting. | Adds a delayed pipeline that is easy to build and easy to forget to monitor. |
| App and web finally report as one funnel rather than three. | Needs an identity model agreed across product, growth and engineering. |
| Counsellor capacity is spent on prospects who showed real intent. | Lead volume drops, which is uncomfortable for teams paid on activity. |
| Value-based bidding can distinguish a short course from a two-year programme. | Sticker-price values badly overstate revenue in instalment-heavy models. |
| A parent-centred identity model is both compliant and commercially accurate. | Children's data rules genuinely limit what you may optimise on in K-12. |
8. Advantages and Disadvantages in Practice
What improves
- The counsellor economics change. Fewer, better leads mean the same team handles more demos and more closes, which is usually a larger financial effect than the media efficiency gain.
- Creative testing becomes meaningful. Ads promising free resources win on cost per lead and lose badly on cost per demo attended. That reversal is invisible without deep events and it changes the creative strategy entirely.
- Refund rate becomes a marketing metric. Once visible per campaign and per audience, cancellation stops being treated as a counsellor problem and starts being managed as an acquisition-quality problem.
- Batch planning gets data. Attendance and confirmation events by cohort make it possible to see which intake windows and which programmes actually justify their spend.
What goes wrong
- Attendance data is unreliable at the source. Class platforms report joins, not engagement. Without a duration threshold, DemoAttended silently degrades into a slightly better booking metric.
- Seasonality is misread as failure. Performance between cohorts looks poor against admission week. Compare like-for-like points in the batch cycle or you will kill a working campaign in a quiet fortnight.
- The confirmation job gets forgotten. A delayed event that runs on a schedule is the easiest thing in this architecture to break without noticing. Alert on volume, not just on errors.
- Counsellor labels leak into optimisation. Someone inevitably proposes sending "hot lead" as an event. It encodes individual judgement and monthly target pressure, and it will train delivery on both.
- Compliance is treated as a launch checkbox. Children's data obligations are ongoing. New events, new products and new markets each need review, and a compliant setup in March can be non-compliant by September.
9. Myths and Facts
| Myth | Fact |
|---|---|
| More leads is always better in edtech. | Past the point where counsellors can call them within the day, extra leads reduce contact rates and depress conversion across the whole pool. |
| Demo booked is a good optimisation event. | No-show rates in this category are high enough that booking mostly measures willingness to agree to a slot. Attendance is the real divide. |
| Refunds are a finance problem. | Refunded enrolments are reported conversions that shape delivery and lookalike audiences. They are an acquisition problem first. |
| Send full course value; it reflects the sale. | It reflects the invoice. With instalments and refunds, collected value is what actually happened, and that is what should train bidding. |
| We can track students since parents signed up. | Parental consent permits processing for stated purposes; it does not permit behavioural advertising to children, which is separately restricted. |
| App and web should be tracked separately. | Separate datasets fragment learning and understate both. One dataset, correct action sources, shared external_id. |
| Hashing personal data removes privacy obligations. | Hashed identifiers are still personal data used to identify individuals. Consent, disclosure and retention rules all continue to apply. |
| Optimising deeper always improves results. | Only if volume supports it. An event occurring thirty times a month keeps ad sets in permanent learning and performs worse than a shallower one. |
EdTech does not suffer from a shortage of conversion data — it suffers from an abundance of conversion data that has almost nothing to do with revenue. Move optimisation to demo attended, with a real duration threshold, because it is the first rung that is simultaneously dense enough to learn from and honest enough to be worth learning from. Add an enrolment-confirmed event after the refund window closes and seed every lookalike audience from that event rather than from enrolment, or you will spend a year asking the platform to find more people who cancel. Send collected value, not sticker price. Unify app and web on a hashed external_id. And if your learners are minors, build the whole identity model around the paying parent from day one — not because it is the compliant answer, though it is, but because the parent is who you are actually selling to.