Knowledge · Conversion Engineering
GA4 Event Tracking for Conversion Engineering
If your GA4 only tracks pageviews and form submissions, you’re running a conversion-engineering practice with a blindfold on. The 15-25 events that matter on a mid-market B2B site are mostly invisible by default. Here’s the event spec we ship with every build, why each event matters, and how to wire them in GTM without losing your weekend.
№ 01Why default GA4 events aren’t enough
GA4’s “enhanced measurement” auto-tracks pageviews, scroll-90%, outbound clicks, file downloads, video engagement, and site search. Useful, but it misses the events that actually correlate with B2B conversion: CTA clicks (by location), form interactions (started, abandoned, errored), tel: link taps, pricing-tier hover/click, calendar widget engagement, exit-intent triggers.
Without these custom events, you can’t answer “which CTA is converting?” or “where is the form dropping people?” or “is the pricing page actually being consumed?” Those questions are the whole job.
№ 02The 15-25 event spec we ship with every build
The standard event set for a mid-market B2B site:
- CTA events: cta_click (with location parameter: hero, mid_page, footer, sticky), cta_view (intersection observer)
- Form events: form_start (first field focus), form_field_complete (per field), form_abandon, form_error, form_submit, form_success
- Engagement events: scroll_25, scroll_50, scroll_75, scroll_100, time_on_page_30s, time_on_page_60s, time_on_page_180s
- Pricing events: pricing_tier_view, pricing_tier_select, pricing_toggle (monthly/annual)
- Communication events: tel_click, mailto_click, sms_click, calendar_widget_open, calendar_widget_book
- Content events: case_study_open, faq_expand, video_engagement (25/50/75/100% completion)
№ 03GTM vs hardcoded gtag.js
Always use Google Tag Manager, not hardcoded gtag.js calls. GTM gives you: non-developer ability to add/edit tags, version control with rollback, preview/debug mode, native dataLayer support, and integration with 100+ other tools (Hotjar, Clarity, LinkedIn pixel, Meta pixel) without re-touching code.
The setup cost is 2-4 hours initial. The ongoing cost is near-zero. A site that doesn’t use GTM will, within 6 months, accumulate 6-10 hardcoded pixels and tags scattered across header.php, footer.php, and inline-template-files. That mess takes 8-12 hours of cleanup later. Pay the GTM tax up front.
№ 04Naming conventions that don’t bite you in 6 months
Event naming is a tooling problem that compounds. Bad naming: CTAClick, cta-click, cta_button_click_hero, all in the same property because three different agencies set them up over 3 years.
Standard naming: snake_case verbs only. cta_click with parameters (cta_location: "hero", cta_text: "Get my audit"). Parameters do the variation; the event name stays stable. Document the spec in a Google Sheet, share it with whoever will edit GTM next.
№ 05Conversion events: which to mark as conversions in GA4
Mark 3-7 events as conversions in GA4, not 20. Too many “conversion” events dilutes the macroconversion signal. The standard set: form_submit (primary lead form), calendar_widget_book, tel_click, mailto_click, pricing_tier_select (if you have self-serve checkout).
Microconversions (scroll, CTA click, FAQ expand) stay as events but NOT as conversions. They feed exploration reports and segment-builders, but they don’t count toward the headline conversion metric. Keep that signal clean.
⚠What to avoid
- Hardcoding gtag.js calls into PHP templates. Six months later nobody knows where the calls are. Always use GTM.
- Marking 15 events as “conversions” in GA4. Conversion-rate reporting becomes meaningless. Mark 3-7 max.
- Inconsistent event naming (camelCase mixed with snake_case mixed with kebab-case). The reports break. Pick one convention up front.
Related questions
Go deeper
Three Ways to Start · No Sales Pitch
Want this analyzed on your site?
$500 audit. 5-day delivery. Refundable on engagement.
