GA4 can collect hundreds of events and still fail to answer whether marketing created qualified demand. A measurement plan prevents that failure by connecting each event to a question, owner, definition and decision.
1. Start with decisions
Write the recurring decisions first: which channel to fund, which landing page to fix, which audience to exclude, which content assists pipeline. Then define the minimum data required for each answer.
2. Design an event taxonomy
Check Google’s recommended event names first, then agree a clear naming and parameter scheme for custom events. Google distinguishes generate_lead for an inquiry from qualify_lead for a lead marked as meeting qualification criteria. These are different stages: submitting a form does not establish lead quality. Google allows events important to the business to be marked as key events; your team must decide which outcomes matter in your sales process.
3. Specify consent and data quality
For each event, document its trigger, allowed parameters, behavior under different consent states, owner and test. Google’s policies prohibit sending data to Analytics that Google can recognize as PII, including email addresses and personal phone numbers. Check page URLs and titles too: form contents must not accidentally enter them. This is a product requirement, not a complete account of your legal obligations.
Do not promise that modeled data will fill every gap. Google documents separate prerequisites for behavioral modeling, and meeting them does not guarantee eligibility. State whether modeling actually applies to the report; reconciliation with CRM should explain differences rather than force the totals to match.
Also record which analysis needs retained data and for how long, agreeing this with the people responsible for data. Do not present a fresh report as final: Google says attribution credit for key events can change for up to 12 days after the event. Record the report retrieval date so the team understands why a later reconciliation may show different numbers.
4. Run a release checklist
Google DebugView shows events and their parameters from a device with debug mode enabled. Run a test journey and compare it with the expected events. Separately verify that the inquiry actually reached CRM: an event in GA4 does not prove that it did.
Repeat the journey with consent granted and denied, inspecting browser network requests and the transmitted consent state against the agreed specification. Google notes that events are not visible in DebugView when client-side privacy controls apply or consent mode is implemented and the user has not consented to Analytics cookies. An empty DebugView therefore proves neither correct blocking nor broken collection on its own.
Our worked example is a consultation request, not the outcome of a real client experiment. Specify that generate_lead is sent after the form submission is confirmed as accepted; a button click without an accepted inquiry does not count as the outcome. form_id distinguishes forms; do not add the message, email or phone number to parameters. A manager separately checks the agreed qualification criteria, such as whether the person needs the service you actually provide. Only that confirmed status warrants qualify_lead in the configured integration; GA4 does not make that judgment for the team.
Test a successful submission, a validation error and a retry: write down beforehand how many inquiries the system should accept and how many events you expect in each case. If one inquiry creates duplicates, fix the trigger before comparing channels. If inquiries are plentiful but qualified leads are scarce, inspect actual rejection reasons in CRM. That is a reason to investigate the page’s promise or audience, but it is not yet proof that a particular channel fails.
After launch, assign an owner for discrepancies and repeat verification after changes to the form, tags or CRM. Choose a routine reconciliation frequency based on inquiry volume and when the team makes budget decisions; there is no universally sufficient interval.