Creating your Tracking Plan

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.

Step 1: Add your Sources

Sources represent the main parts of your product, e.g. your iOS, Android, Web, and 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.

Source Modal

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.

Step 2: Add your Destinations

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.

Destination Modal

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.

Step 3: Create your Events

An event is a distinct action that a user can perform in your product. You should not be tracking all events but those that are important to understanding user behavior.

From Events select Add Event to create your first event.

Events Page

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.

Event Details

Step 4: Add 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.


Step 5: Instrument your Product

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.