Event Tracking
Every meaningful action, captured.
Click events, scroll events, video plays, form interactions, custom behavioural events — the data layer + GTM setup that makes GA4, Meta, and every downstream tool actually answer questions about user intent.
trailkit.ie
dataLayer.push
Five categories of events we track
Not just page views and clicks.
Interaction
Button clicks, link clicks, CTA presses, menu opens, filter selections — anything a user actively does on-page.
Engagement
Scroll depth (25/50/75/90%), reading time thresholds, mouse movement quality. Signals of attention, not just presence.
Media
Video start, progress (25/50/75/100%), pause, seek, end. Audio, image galleries, interactive media pieces.
Form & lead
Form start, field focus, error, abandon, submit. Lead quality signals without relying on just 'submit success'.
Ecommerce
Impressions, select_item, view_item, add_to_cart, begin_checkout, add_payment_info, purchase. Enhanced ecommerce schema.
Event schema is a design artefact
Documented naming. Predictable parameters. Zero surprises.
Every event name, every parameter, every acceptable value — written down. Shared with devs, marketers, and anyone querying data. Prevents the "what does event X mean?" stalemate that kills analytics adoption.
// events/select_item.yml — from client event schema
event_name: select_item
description: "Fires when user clicks a product card in a listing or grid"
fires_on: [product_listing, search_results, category_page, related_products]
parameters:
item_id: {type: string, required: true, example: "TK-047-M"}
item_name: {type: string, required: true, example: "Merino Runner Sock M"}
item_list_id: {type: string, required: true, example: "category_running"}
item_list_name: {type: string, required: true, example: "Running - All"}
index: {type: integer, required: false, example: 4}
price: {type: number, required: true, example: 24.00}
validation:
item_id: matches /^[A-Z]{2,4}-\d{3}(-[MS])?$/
price: greater than 0, less than 10000
Every custom event gets this treatment. Shared to Git or Notion as part of the handover so your future self (and future devs) know exactly what each event captures.
What happens without proper events
Bad events = no reports, no retargeting, no optimisation.
Meta conversion events break
Meta needs add_to_cart and purchase events wired properly to optimise bidding. If events fire inconsistently, Meta's algorithm trains on noise.
Google Ads loses signal
Smart Bidding needs conversion events. Thin or malformed events = bids made on poor data = wasted budget.
Retargeting audiences fail to build
Can't retarget 'cart abandoners' if add_to_cart never fires reliably. Audience sizes stay tiny, match rates awful.
Funnel analysis becomes fiction
Drop-off percentages meaningless if the events that define steps fire inconsistently across sessions.
A/B test results become unreliable
Optimisation platforms read GA events. Missing events = can't measure variant uplift = can't trust tests.
Executive dashboards show made-up numbers
Every metric above rolls up into reports. Bad events at the source = bad decisions downstream.
How we build event tracking
Start with questions. End with fired events that answer them.
1
Discovery
What decisions do you need to make? Every event should trace back to a real question like 'Do mobile users engage differently?' or 'Are form errors costing us sign-ups?'
2
Event schema design
Event names, parameters, validation rules, fire conditions — documented in a spec before a single line of JS is written.
3
Implementation
Implemented in GTM (preferred) or via dev-placed data layer pushes. Everything version-controlled.
4
QA with live validation
GA4 DebugView + GTM Preview + browser console checks. Every event verified firing on every trigger.
5
Documentation handover
Event schema repository, GTM container export, DebugView examples. Your future self thanks you.
Frequently asked
Event tracking questions.
Yes. Most engagements are on existing installs, not green-field. We start with an audit of current events, identify gaps against your actual needs, and extend or replace the existing setup incrementally. Rarely do we rip-and-replace.
Related services
Closely tied with
Share your site — get an event audit.
Send us a live URL and we'll return a video walkthrough showing what events fire (and what doesn't), which ones are misconfigured, and the top 10 events you should add. Free, no commitment.
