How to create a tracking plan

When launching new products, the most successful teams plan out their analytics implementation by creating implementation specs or tracking plans.

In this lesson, we'll share a simple approach to creating a tracking plan that will help minimize the time and resources necessary to get your analytics set up quickly and effectively.

What Is a Tracking Plan

A tracking plan is a living and breathing document that helps clarify what events to track, where those events need to go in the code base, and why those events are necessary from a business perspective.

Tracking plans not only help everyone stay on the same page during implementation, but they also make it easy for engineering, product, marketing, and analytics teams to use and understand the data you collect.

Ideally, your tracking plan should be in a format like Google Sheet or Wiki that's easily shared and updated by multiple stakeholders. Alternatively, Segment Protocols allows you to manage and enforce your tracking plan from the Segment app.

A good tracking plan does the following:

  • Summarizes which events and properties need to be added
  • Justifies why they need to be tracked
  • Details where in the code base they need to be added
  • Informs stakeholders of progress/completion

Check out Segment's own tracking plan if you want to see what this should look like.

What Do You Want to Know

Adding analytics is instrumental in both the "Measure" and "Learn" steps of the Build-Measure-Learn process we mentioned in the first lesson.

So, the best approach to speccing out analytics is to figure out what exactly you want to learn about your product or business in the form of a question, goal, or key metric. Asking a question encourages a more targeted and structured approach to separating meaningful events from the noise. Tracking Clicked Red Button probably isn't going to help you figure what marketing channels are moving the needle.

If this is your first time adding analytics to your product, here are some broad questions that you can ask to help you get started:

  • Acquisition: what channels are best for getting new users?
  • Activation funnel: where are people dropping off in our product?
  • Retention: how do we reduce churn?

Questions can also be more targeted, which will create a narrower set of events to track:

  • Will this variant of the pricing page drive more sign ups?
  • What is our customer lifetime value?
  • How can we improve our activation funnel?

After coming up with the question, the next step is to create a list of metrics that need to be measured to help answer your question. Ultimately, defining these metrics will dictate what data needs to be tracked.

What Metrics Can Help You Answer Your Question

While the necessary metrics can vary greatly from question to question, here are some examples to help you get an idea of how they work together:

Acquisition

  • growth rate of new users
  • user attribution (knowing where the user came from)

Activation

  • total users
  • user activation rate
  • active users

Retention

  • churn rate
  • user satisfaction (NPS)
  • engagement

What is our customer LTV?

  • average revenue per customer
  • frequency of purchase per customer
  • time to payback customer acquisition costs

Will this variant of the pricing page drive more sign ups?

  • Pricing page view to signup conversion rate

… and so on.

The metrics help answer your question and generate a set of events that you'll need to track. Win, win!

As an exercise, let's cover activation rate first to see how we can extract the set of events to send.

Example: Activation Rate

Activation, or the process of turning a new user into an engaged user, is a key step in the conversion funnel. The activation rate, therefore, is the percentage of users that become activated or engaged after they sign up.

To get the activation rate, we need to divide "active" users by total users. "Active" here depends on your business, but should suggest that the user is engaged and on his or her way to becoming a paid user.

We can break down the definition of "active" by understanding the key customer behaviors that indicate when a user gains considerable value from your product.

For example, for community forums, some activation events can be "Voted" or "Commented," as they indicate participation from the user in the forum rather than "lurkerdom."

For Segment, we consider a customer to be active if they are sending data to two or more integrations.

First, the customer must create an account. We use "Account Created" for this event.

From there, one of our key activation events is "Integration Enabled" because it means they have set up an integration using Segment. The other key activation event is "Data Sent" because it means they are successfully using Segment to send data to a different tool—the first step towards getting value.

Now it's time for you to answer: What is a key event that indicates your users are gaining considerable value from your product?

If you haven't added any tracking events, now is a good time to discuss naming conventions. Similar to style guides in programming, a consistent naming convention will make it super easy to jump in later and understand exactly what an event you're tracking in an end tool means.

We like the object-action framework, but there are lots of options out there.

What Properties Should You Include

Each .track() call can accept an optional dictionary of properties, which can contain any key-value pair you want. These properties act as "dimensions" that allow your analytics to group, filter, and cohort the events. They help give you additional detail on broad-based events.

Again, though you could conceivably throw anything you want in there, it is best to err on the side of "less is more." Wait until you have a question that requires grouping or filtering out a subset of the customer data before adding the necessary property.

In our example, for the "Account Created" event, let's say we also want to analyze how activation changes by marketing channel. We can answer that by passing this parameter in the .track() call:

analytics.track('Account Created', {
  referral_url: 'https://news.ycombinator.com/',
  referral_utm_source: 'ycombinator'
});

Then, in the end tool, you'll be able to group all users who came in from different URLs when Account Created was triggered.

For the "Data Sent" event, we might want to know which libraries are the most popular and how having different numbers of libraries and integrations impact activation.

analytics.track('Data Sent', {
  library_slug: 'Analytics.js, node',
  library_number: 2,
  api_calls_per_week: 892,
  integration_slug: 'Customer.io, Intercom, Google Analytics',
  integration_number: 3
});

By tracking these two events, we can really easily measure activation, and also find out more context about what impacts activation based on the properties.

Most customer data tools support the notion of passing a dictionary of properties with a track event. This is what it looks like in Segment code, but most tools like Amplitude, Drift, Customer.io, and more have similar schemas.

Ready to Get Started

When getting started, follow these rules when creating your tracking plan to keep it neat, tidy, and semantically useful:

  • Don't create event names dynamically
  • Don't create events to track lower-level properties
  • Make sure every event helps you answer a question about your business
  • Start with your core customer lifecycle to construct your funnel
  • Only add events as you feel they're missing

Tracking Plan Examples

Because tracking plans can be a somewhat new concept for teams to become acquainted with, we've developed sample tracking plans for a variety of industries and use cases.

Basic Tracking Plan

This is a simplified version of our tracking plan to help get you started. We recommend starting with a plan like this before digging into more complicated tracking.

Full Tracking Plans

We have also created industry specs to help our customers get started (and also for our own Segment tracking).

This may seem like a lot, but creating a tracking plan is worth it. The more you plan today, the better your data will be in the future!