Now that we know what a Tracking Plan is and how it can benefit your company, let's get started.
The Iteratively web app allows all stakeholders to collaborate on a single source of truth for analytics definitions. It keeps everyone in sync on what data to track, when, and why, and maintains a consistent schema across engineering, product management, data science, and other consumers of analytics data.
Sources represent the main parts of your product, e.g. your
Backend. Create a new Source for every standalone part that will send events to your analytics backends.
From Overview select
Add source to create a new source.
Every Source has a name, runtime, and a set of destinations associated with it.
A Source's runtime defines the platform-language combination used by that part of your application (e.g. iOS — Swift). Iteratively uses this information to generate the correct tracking library for engineers implementing your tracking plan.
A Source's set of destinations defines the analytics providers that will receive events from this particular Source.
Destinations represent the analytics providers events will be sent to from your Sources.
From Overview select
Add destination to create a new destination.
Every Destination has a vendor, access token, and a set of sources associated with it.
A Destination's vendor identifies a particular analytics provider you're working with. Iteratively uses this information when generating a tracking library for your engineering team to make sure it sends events to all the right places.
A Destination's set of sources defines the parts of your applications that will send events to this particular Destination.
An event is a distinct action that a user can perform in your product. You should not be tracking all user interactions but those that are important for understanding user behavior or triggering marketing automation.
From Events select
Add Event to create your first event.
Iteratively recommends the Object-Action Framework as a best practice for governing the structure of your events. Each event is associated with an Object in your application (e.g. Song, File, or User) and an Action (e.g. Played, Uploaded, or Logged In).
Every event has a name, description, sources it applies to (e.g. iOS, Android), and a set of properties.
An event may have one or more properties associated with it. Properties further describe the particular event and the context it was invoked in. For example, a Song Played event may contain a songTitle property.
Every property is defined by a name, description, examples, and rules for that property. Properties get validated at runtime to insure that only data that conforms to your rules makes its way into your analytics destinations. Rules are specific to each data type. For example, property songTitle of type String can have the following rules: Min Length, Max Length, and Regex.
If you have events that share similar properties you can create a template which is a group of properties that can be applied to multiple events. Templates makes it much easier to manage complex tracking plans as you don't have to keep adding the same properties multiple times. When you update a template it applies the changes to all events or sources it's associated with.
Once you've reviewed the changes with your team you can publish a new version of the tracking plan to have a developer instrument them. You can do this by selecting the
5 Changes button in the header.
This will open up a review panel that lists all of the changes to your tracking plan since the last published version. Only admins or approvers can publish changes to the tracking plan while anybody can propose changes. If you'd like to reset your tracking plan to the last published version you can discard all proposed changes.
Collaborating with your team on your tracking plan helps ensure everyone is aligned and you can gather feedback from your colleagues before instrumenting new events. We've made collaboration easy in Iteratively with the ability to comment on events, properties, templates and more. Using the rich text editor you can even add code snippets and images for more detailed explanations.
You can @mention your colleagues and they'll receive an email notification, letting folks know they're needed. And with our Slack integration you ensure everyone stays in the loop.
A Tracking Plan is consumed by developers in the form of type-safe auto-generated code. Iteratively can generate a tracking library for all popular platforms and programming languages. The auto-generated library is a lightweight wrapper over your analytics provider's SDK that provides type-safety, supports linting, and enables additional features like input validation. The code exactly replicates the spec in the tracking plan and enforces all its rules and requirements.
The next step is to have your developers instrument your product using the Itly CLI.