Problem
The DragonPass app's event tracking was specified in a legacy Google Analytics format: events stored as columns rather than rows, dynamic variables buried inside event names, cryptic prefixes, and an ambiguous split between module and component naming. The result was a spec nobody could confidently query, duplicated and inconsistent event definitions, and a product team that couldn't trust — or even navigate — its own behavioural data.
As we moved to FullStory, porting the mess across would have squandered the opportunity.
Objective
Create a single, FullStory-aligned event tracking convention for the entire app — one that PMs, designers, and developers could all read, that survives cross-platform analysis across web and native, and that could serve as the instrumentation source of truth going forward.
What I did
- Normalised the legacy spec. Extracted every interaction from 14 feature sheets in the old spec, de-duplicating 508 raw rows into 449 distinct interactions across 118 screens.
- Reoriented the model. Moved from events-as-columns to the industry-standard events-as-rows tracking plan format used by Segment and Amplitude — filterable, maintainable, familiar.
- Designed the naming architecture. Hierarchical page names with no dynamic variables baked in (extracted as typed attributes instead); one readable element identifier replacing the ambiguous module/component split; and an object-action, past-tense convention for custom events.
- Minimised engineering cost. Identified that 361 of 449 interactions are native clicks needing only front-end element tagging — reserving custom instrumentation for just 11 enrichment events where server-confirmed state genuinely matters.
- Built the reference workbook. A six-tab workbook — conventions guide, legend, event tracking plan, page dictionary, custom events, and a 38-attribute dictionary with consistent naming to stop cross-event analysis breaking.
- Designed for cross-platform parity. The same element names and property schemas apply across web, iOS, and Android — unified analysis with no parallel taxonomies.
Outcome
88% of interactions handled through simple element tagging rather than custom development — dramatically reducing implementation cost.
One instrumentation standard replacing an unusable legacy spec, adopted as the shared tracking language across product, design, and engineering.