What is a Tracking Plan?
A tracking plan is a living document that defines every event, property, and user trait your organization tracks. It serves as a contract between product, engineering, marketing, and analytics teams—ensuring everyone agrees on what data is collected and how.
In Segment's ecosystem, your tracking plan becomes even more powerful when connected to Protocols, which enforces your schema programmatically and blocks bad data before it pollutes your destinations.
Why You Need a Tracking Plan
- Consistency — Everyone uses the same event names and property formats
- Documentation — New team members understand your data immediately
- Data Quality — Protocols blocks events that don't match your schema
- Governance — Track who approved what and when it changed
- Efficiency — No more debugging why "Sign Up" and "signup" are different events
Step 1: Define Your Business Questions
Start with the questions you need to answer, not the events you want to track. This ensures you collect data with purpose.
Common questions to consider:
- What is our conversion rate from signup to paid?
- Which features drive retention?
- Where do users drop off in our funnel?
- What campaigns drive the highest LTV customers?
- How does usage correlate with churn?
Step 2: Choose a Naming Convention
Segment recommends the Object-Action naming convention for events. This creates readable, scannable event names that group logically in your tools.
| Pattern | Event Name | Example |
|---|---|---|
| Object Action | Product Viewed |
User viewed a product page |
| Object Action | Order Completed |
User completed checkout |
| Object Action | Article Shared |
User shared an article |
| Object Action | Account Created |
User signed up |
Use Title Case for events (Product Added, not product_added).
Use snake_case for properties (product_id, not productId).
Be specific: Subscription Started is better than Started.
Step 3: Define Your Event Structure
For each event, document the required and optional properties. Here's an example for an
e-commerce Product Added event:
analytics.track('Product Added', {
// Required properties
product_id: 'SKU-12345',
product_name: 'Wireless Headphones',
price: 149.99,
currency: 'USD',
// Optional properties
category: 'Electronics',
brand: 'AudioPro',
quantity: 1,
position: 3,
// Context (auto-collected)
url: 'https://example.com/products/headphones',
referrer: 'https://google.com'
});
Step 4: Standardize Property Types
Consistency in data types prevents downstream issues. Define explicit types for each property:
| Property | Type | Example | Required |
|---|---|---|---|
product_id |
String | "SKU-12345" | Yes |
price |
Number | 149.99 | Yes |
quantity |
Integer | 1 | No |
is_gift |
Boolean | false | No |
Step 5: Set Up Protocols in Segment
Once your tracking plan is documented, import it into Segment Protocols. Protocols validates incoming data against your schema and can:
- Block events that don't match your tracking plan
- Allow only specific events to pass through
- Transform properties (rename, omit, or coerce types)
- Alert when violations occur above a threshold
Step 6: Version Control Your Plan
Your tracking plan will evolve. Use versioning to track changes over time:
- Store your tracking plan in a Git repository (JSON or YAML format)
- Require pull request reviews for changes
- Tag releases that correspond to product versions
- Automate Protocols updates via Segment's Config API
Step 7: Create a Governance Process
Define who can propose, approve, and implement tracking changes:
- Request — PM or analyst proposes new event with business justification
- Review — Data team ensures it follows naming conventions and doesn't duplicate existing events
- Approve — Data governance lead signs off
- Implement — Engineering adds tracking code
- Validate — QA confirms data flows correctly to destinations
Common Tracking Plan Mistakes
- Too many events — Start minimal; you can always add more
- Inconsistent naming — "Sign Up", "Signup", "user_signup" are three different events
- Missing context — Always capture where events happen (page, screen, source)
- No documentation — If it's not in the tracking plan, it doesn't exist
- No enforcement — Without Protocols, bad data slips through
Template: Tracking Plan Spreadsheet
At minimum, your tracking plan should include these columns:
- Event Name — The exact string passed to
analytics.track() - Description — When this event fires and why it matters
- Properties — List of all properties with types
- Required — Which properties must be present
- Source — Where this event is triggered (web, iOS, Android, server)
- Owner — Who is responsible for this event
- Status — Draft, Approved, Implemented, Deprecated
Related Topics
Need Help with Your Tracking Plan?
We've designed tracking plans for startups to enterprises at WegWorks (Weg Works). Let us help you build a data foundation that scales.
View Our CDP Services