1. Orientation to the Indicative Platform

Behavioral Analytics Overview

Indicative is a behavioral analytics platform that guides growth marketers, product managers, and data analysts to understand and optimize customer engagement with their product or service.

Indicative connects to all your behavioral data sources, synthesizes it into a 360 degree view of behavior, and helps you identify ways to better acquire, convert, and retain customers.

“Behavioral Data” is data generated by or in response to a customer’s engagement with a business. Common sources of behavioral data include websites, mobile apps, CRM systems, marketing automation systems, call centers, help desks, and billing systems.

This synthesized data creates a complete baseline for understanding behavior, but it’s missing an important piece – the ability to understand WHY customers have done certain actions of behavior.

This is where behavioral analytics comes in.

Indicative’s behavioral analytics platform helps you understand why customers do things, which allows you to optimize your full acquisition, conversion, and retention lifecycle, and generate critical insights day-to-day.

Back To Top

Data Model and Basic Principles

Indicative uses Events and Properties to model your business. Events are any user action (e.g. a Subscription), while Properties are the context of each action (e.g. Gender of Subscriber).

It can be helpful to think of events as the “what,” and properties as the “who, when, where.”  Analyzing them together in Indicative helps you find out the the “why.”

This simple framework allows you to use Indicative to analyze and optimize almost any type of customer behavior.

Every event that is sent to Indicative also identifies a user, whether they are known (e.g. have logged into your app) or unknown (e.g. have visited your website for the first time).

Indicative tracks behavior of users over time as described in their events and properties, and also allows you to analyze events and properties by user or group of users.

Back To Top

Tutorials & Demo Data Sets

Indicative includes a set of six tutorials that walk new users through each analysis tool. Using a sample E-commerce dataset, the tutorials demonstrate a handful of common use cases. The tutorial includes three sections on Segmentation, one on Funnels, and two on Cohorts. After each tutorial you have the option to play around with the sample data set to get comfortable with the tool. The tutorials are accessible at any time from the book icon in the upper right corner of the window when logged into the application.

There are also two demo data sets (E-commerce and SaaS) that allow you to familiarize yourself with Indicative and get hands on practice with the Segmentation, Funnel, Cohorts, User Insights, and Data Manager tools.

The E-commerce dataset allows you to build analyses around the customer journey and identify opportunities to increase purchase conversion.

The Saas dataset lets you build analyses that help you optimize free trial conversion rates, identify the most profitable user segments, and increase your user retention.

Back To Top

Data Definitions

Indicative has several standard data elements that are used throughout the platform.

Events: Events are actions your users have taken within your projects. Every analysis in Indicative starts with at least one event to analyze behavioral patterns. You can think of events as the “what” that a user has done.

Properties: Properties are attributes that describe the context of each event to help you gain deeper insights about customer behavior. You can think of properties as the “who, when, where” that describe the event.

User Attributes: User Attributes are regular event properties that are associated with all the events a user did, rather than just a single event. In Indicative, you can switch any event property on and off to become a User Attribute. User Attributes are then associated with any event that the underlying user does, and not just the original event they were sent with.

For example, assume that you send a ‘Sign Up’ event with an event property called ‘Email’ that contains the user’s email. Switching ‘Email’ on to a User Attribute will allow you to query on other events you send (say, ‘Login’ or ‘Purchase’) by email. This means you won’t have to send an event property of ‘Email’ with every event to be able to do analysis by email. See more in the Data Manager section for managing User Attributes.

Revenue: Revenue is a special type of event that can be analyzed in the Segmentation and Cohort tools. When you build a revenue query, the tool returns financial data rather than event frequency counts. You can filter and segment revenue just like a regular event to calculate how much revenue you’re generating for specific customer groups and behaviors.

Revenue is enabled when you map it to an event in the Data Manager in the Mappings section within the Revenue & Lifetime Value block. When you open that block, you will be prompted to select a Revenue property and a Purchase event.

Revenue is the price of your product, service, or subscription. In the drop down box, choose a numerical property attached to a revenue-generating event, recording the transaction amount.

Channels: Indicative automatically grabs the UTM parameters (also known as campaign parameters) from the URL of a website visitor when you have instrumented using our Javascript client, and puts them into the Channel section of the data panel. Segment by channel to identify where users are coming from when they take an action.

Mappings: Mappings chart key events and KPIs to help you create useful dashboard widgets  and analysis. You can manage your Mappings in the Data Manager tool.

Back To Top

2. Overview of Common Feature Elements

Query Builder

The Query Builder is the green area at the top of the screen in the Segmentation, Funnel, Cohorts, and User Insights tool. This is where you conduct analysis. You can add events, properties, user attributes, and channels to build up your analysis, and add breakouts and filters to further refine your analysis.

You can label parts of a query within the query builder in any analysis tool. This allows you to add context to your queries when looking at multiple datasets and to distinguish which dataset corresponds to what filters. Clicking on the minus symbol at the left of the dataset collapses complex queries to show only the dataset label, enabling a much more organized and customizable view of the query. These labels remain a part of the query when saved as a Bookmark, Dashboard, or shared by URL.

Query Builder updated

Back To Top

Breakouts (By Clause)

“By clauses,” also referred to as “breakouts,” allow you to segment your data based on event properties and user characteristics. This allows you to break an event out by its property components and see behavior in more granularity. A breakout will create multiple data series in the Segmentation, Funnel, and Cohorts tools. You can break any query out by multiple properties.

Breakout queries are limited to display a maximum of 50 breakout results in order to increase the utility of the visualizations when there are many breakout values. Use the selector in the query builder to show the top or bottom 5, 10, 15, 20, 30, 40, or 50 results, or view all if there are 50 or less. To view more than 50 breakouts, you can download the data from the tool as a CSV file.

general breakout limits

Back To Top

Filtering (Where Clause)

“Where” clauses in the query builder allow you to filter and drill down on specific components of an event by property, rather than viewing all of these components on the chart as you would with breakouts. Instead of breaking the data into segments, you are filtering the data to hone in on a specific set of properties or user attributes. Filtering takes the original chart and recalculates it around a specific property value or user attribute to make a new single chart.

You will have different filtering options for “where” dropdowns depending on whether the filtered property or user attribute is numeric or non-numeric.

When you filter on a non-numeric property, you have the following selection options:

  • “Is equal to” shows you only the data for values equal to that specific property value.
  • “Contains” shows you the data where the string contains the selected value.
  • “Does not contain” shows you all data that does not include the selected property value.
  • “Is defined” shows you all data where there are values for the selected property value.
  • “Is not defined” shows you all data where there are no values for a selected property.

When you filter on a numeric property, you have the following selection options:

  • “Is equal to” shows you only the data for values equal that specific property value.
  • “Is not equal to” shows you only the data for values that are not equal that specific property value.
  • “Is greater than” shows you the data for values greater than the selected property value.
  • “Is less than” shows you all data for values less than the selected property value.
  • “Is greater than or equal to” shows you the data for all values that are greater than or equal to the selected property value.
  • “Is less than or equal to” shows you the data for all values that are less than or equal to the selected property value.
  • “Is defined” shows you all data where there are values for the selected property value.
  • “Is not defined” shows you all data where are no values for a selected property.

Note: In the Data Manager, you can manually assign a data type to a property as a string or numeric value. This allows you to override Indicative’s auto-detection to tell the platform how to parse property values and thus determine which “Where” clause operations are available.

Back To Top

Data Panel

The Data Panel is the right-hand sidebar that organizes your data into Events, Properties, User Attributes, Revenue and Channels.  It also contains your Annotations (further described here).

Every analysis starts with events, and you can layer in an unlimited amount of additional events, and further filter or enhance your analysis with Properties, User Attributes, Channels, and Revenue.

Back To Top

Chart Area

The chart area is directly beneath the query builder window in the tool. At the top of the chart window is a gray section with several drop down lists. Each tool has the option to modify the date range that is visualized, view annotations, and export the underlying data. Each tool also has its own unique features for modifying the chart visualization and these are covered in the individual tool sections.

Charting Window:Options

Back To Top

Annotations

Annotations make it easy for you to contextualize your data, capture your learnings and insights, and share them with your team. Click on the flag icon under the query builder window to add a new annotation and use the right-hand sidebar to pull up your existing annotations.

Note that annotations are associated with a specific event and time window, so to view annotations you have to make sure the chart you are viewing is in the same timeframe as the annotation you’d like to see.

The flag icon opens a dropdown menu where you can Add an Annotation, Hide Annotations, Manage Annotations, and Manage Labels. Adding an annotation opens a window where you can name, label, describe, assign a date, and apply your annotation to an event. Hiding annotations will hide any flags from the chart window. Unhide annotations by selecting “Show Annotations” from the dropdown menu. Manage Annotations takes you into the Data Manager where you can see and edit all annotations. Lastly, use the Manage Labels tool to help you classify your annotations. Each label is attached to a colored flag and you can filter by Annotation label in the Data Panel.

Any internal user can also subscribe themselves or other team members to an annotation. Annotations subscribers receive email notifications any time the title or description of the annotation changes. For example, if you create an annotation, you can add team members as subscribers so that you can communicate back and forth within the annotation and receive email updates every time a change is made. This empowers your team to collaborate and converse within the tool and share insights and context.

Annotations appear differently in the different tools. In the Segmentation tool, you are able to click on any datapoint to add an annotation. These annotations appear as flags in the chart window. In the other tools, you create annotations that are associated with the event time window and they are only accessible from the data panel.

Annotations Updated

Back To Top

Data Export

Indicative allows you to export the underlying data of each analysis from within the Segmentation, Funnel, Cohorts, and User Insights tools. The drop down arrow icon in the upper right corner of the chart window gives you the option to export your data as a CSV file from any of the tools, and offers additional printing and image downloading capabilities within the Segmentation and Cohorts tools.

Back To Top

Bookmarking

You can name and save the charts you create for later use by selecting Add a Bookmark above the Data Panel. This feature lets you save the queries you create to access, update, or continue building them at a later time.

To find or open a bookmarked analysis, click on the bookmark icon in the tool sidebar. Here you can search for bookmarks, rename them, and open them in the tool.

Bookmarks are covered in depth in the Bookmarks section.

Back To Top

Adding to Dashboard

If you create an analysis that you would like to monitor on a regular basis, you can add it as a widget to your dashboard using the “Add to Dashboard” button on the top-right corner of the Segmentation, Funnel, and Cohorts tools. Depending on your plan, you can create multiple dashboards, each with different widgets.

From your dashboard, you can re-open any analysis right back into a tool.

Dashboards are covered in more depth in the Dashboards section.

Back To Top

Autorun

The Autorun feature allows you to control whether or not Indicative automatically re-calculates as you make changes to a query. Turning Autorun off allows you to make multiple changes before running the updates. This can speed up your analysis process if you are making a lot of changes on large data sets. The Autorun button can be found in the top right corner of the query builder window.

Back To Top

Reset

The reset button allows you to clear your query and start a new one in the same tool. If you are finished with an analysis and would like to build a new one, you can use the reset button in the top right corner of the query builder to reset the tool.

Back To Top

3. Overview of Interaction

Click and Drag

There are two ways to build up queries in Indicative using the elements in the Data Panel, 1) drag-and-drop and 2) double-clicking. You can drag and drop the events into the query builder itself or directly into the chart window in the highlighted drop zones. You can also drag and drop to replace an event in-place in the query builder of any tool. To add properties or attributes you can again drag them into the query builder itself and modify your clause using the drop down boxes. Alternatively, drop these properties directly into the chart window under “Segment By” or “Filter Where” and it will modify the query for you.

You can also build queries by double clicking on the event or property in the Data Panel, and then using the drop down boxes in the query builder window to modify the clauses.

Back To Top

Interoperability

Each tool in Indicative can be thought of as just a different way to visualize the same underlying data. Thus when you are looking at an analysis within a tool, the underlying data shown is not specific only to that tool.

Indicative has a built-in concept of interoperability that allows you to push data between tools to analyze it from a different perspective.

This means you can drill down into a group of users within any data point from the Segmentation, Funnel, and Cohorts analysis tools. For example, if you are analyzing a funnel where the last step is “Purchase” and want to drill deeper into the user attributes of those who completed the entire funnel, you can click on the “Purchase” step and push the data into the User Insights tool. This allows you to view all of the attributes for each customer who completed the funnel as well as their activity history.

Additionally, when using funnels you can break out more fine-grained cohorts of users by drilling down on those users in a cohort analysis. To return to the original analysis, select the tool you came from in the sidebar and your original analysis will open.

Back To Top

Hide / Duplicate Query Lines

Instead of deleting a line in your query, you can hide certain clauses to recalculate your chart as if the clause had been deleted. This makes it easy to look at different variations of a query without having to delete the original query and then rebuild it.

You can also duplicate query lines by hovering over the query line you want to duplicate and clicking on the gear symbol on the right side of the query line. This is an easy way to create a similar query with minor alterations to compare the two.

Back To Top

4. Segmentation

Overview of Segmentation

The Segmentation tool is the most flexible and powerful tool in the Indicative platform, and allows you to chart any combination of events, properties, and user attributes over time. The Segmentation tool is often the best way to get a snapshot of “what happened” in terms of your overall event activity. There are a variety of different chart types, such as line charts, bar charts, stacked bar charts, and pie charts to help you visualize your analysis.

Back To Top

Use Cases

Segmentation is most often used for:

  1. Exploring general patterns of events and properties over time
  2. Understanding the frequency of activity that users take, such as the volume of visits to certain website pages or the usage of specific app features
  3. Understanding the volume of unique users that do certain events relative to the total of number of occurrences of those events
  4. Charting KPIs and event ratios using the Calculator tool
  5. Understanding the activity patterns of different user groups that have done certain combinations of behavior using the For clause

Back To Top

Orientation to Features

Segmentation has to the following features and options to help you analyze your data:

Total vs Uniques – Choose whether you want to see the unique number of users who did an event or the total occurrences of that event.

Time Windows & Time Groupings – Select the time period and measurement in which to view an event.

Cumulative vs Non-Cumulative -Choose whether you want to see the individual data for each time period or chart it as a running total over the whole visible time window.

Breakouts (By clause) – Segment your data by specific properties and user attributes.

Filtering (Where clause) – Focus in on specific properties or user attributes by viewing only a specific segment of the data.

And / Or Clauses – Add additional logic to your query to require a value to match multiple conditions (“and” clause) or match one of several options (“or” clause).

 

Advanced Features

Table View – View the underlying data values in your analysis.

Calculator – Make advanced calculations on your events and properties.

In-Line And/Or Clauses – Add and/or clauses in the same line as your initial query using ampersand and pipe characters.

For Clause – Add in logic to show users who have done activity that meets certain conditions in order to track user patterns over time.

Chart Types – Select the type of graph in which you want to view your data (bar, line, pie, and stacked bar).

Paging –  Breakout data with more than five property values will break out across multiple pages in the chart window. Navigate these pages using the key at the bottom of the chart window.

Annotations in Segmentation – Capture and share insights from your analysis with your team.

Data Export in Segmentation – Download and print your chart as an image or CSV file.

Segmentation

Back To Top

Total vs Uniques

The Totals vs Uniques toggle allows you to choose whether you want to see the unique number of users who did any combination of events or the total occurrences of that event.

Uniqueness for events in Indicative is defined as unique to the underlying User ID of the user that did the event.

After an event has been added to the query builder in the segmentation tool, you can toggle between “Total” or “Unique” in front of the event in the query. Total shows you the total occurrences of that event for the time window selected, while Unique shows the number of occurrences for each unique user (defined by the unique identifier for that user) who has performed that event within the time window.  

For example, if there are 10 unique users who did 100 of the same “Purchase” event in the underlying data, a query with “Total” selected will graph 100 “Purchase” events, while a query with “Unique” selected will graph 10 “Purchase” events.

Total vs Unique

Back To Top

Time Windows & Time Groupings

Time Windows and Time Groupings menus allow you to select the time period and measure of time in which to view an event.

On the bar beneath the query builder in Segmentation, there is a series of drop downs that allow you to select the Time Window and Time Grouping. Going from left to right, you will first be able to select the Time Window, which is the specific period of time you want to view for an event. The tool automatically defaults to the last 7 days, but if you click the drop down, you can choose from a selection of preset time windows, or select “Add a Custom Date Range” to set a custom number of previous days in which to view your data.

Time Window

 

The drop down menu next to Time Window is the Time Groupings tool. Here you can choose which measurement of time you want to see – hourly, daily, weekly, or an aggregate total within the time window you selected.

Time Groupings

 

 

Back To Top

Cumulative vs Non-Cumulative

The Cumulative and Non-Cumulative drop down lets you choose whether you want to see the individual data for each time grouping or chart it as a running total.

Right next to the time groupings tool, below the query builder, you can select Cumulative or Non-Cumulative. “Non-cumulative” is the default setting and shows you the amount of occurrences for an event at each point in time as defined by your current time grouping.

Selecting “Cumulative” plots points that show you the running total of users performing this event over time by adding each new event occurrence to the running total over the period of time selected.

For example, if 10 people made a purchase on February 20th and 5 people made a purchase on February 21st, the Non-cumulative would show 10 and 5 “Purchase” events, but the Cumulative view would show 10 and 15.

Cumulative vs Non

Back To Top

Breakouts (By Clause)

Breakouts allow you to segment your data by specific properties and user attributes.

After adding an event to the query builder, you can then create Breakouts using a “By clause.” This gives you more granular information about the event properties and specific user attributes such as platform, age, and gender. Double click or drag and drop an event property into one of the “by” drop zones to segment the event by that property. The graph will now show a data series for each property category.

For instance, if you are looking at “Purchase” events, and you want to know which browser customers were using to make their purchases, you would drag the “Browser” property into the “Segment By” field and it would create a different data series for each browser used to make a purchase.

Breakouts

Back To Top

Filtering (Where Clause)

Filtering allows you to focus in on specific properties or user attributes by viewing only a specific segment of the data.

When dragging a new property or user attribute into the chart area or query builder you will be given the option to “Segment by” or “Filter where.” Dropping it in the “Filter where” drop zone creates a “Where Clause” in the query. Alternatively, you can double click the property and change “by” to “where” in the query builder. Then select the property characteristic you want to view from the drop down menu in the query to create a chart that shows only events with your selected property.

For example, if you are looking at “Purchases” and only want to see where visitors used their iPhone to complete a purchase, you would drag “Platform” into the “Where” drop zone. Then you would choose iPhone from the drop down menu in the query builder and your chart would recalculate to only show purchases made using an iPhone. In contrast, a breakout by “Platform” would create a chart for each platform used (e.g. iPhone, Android, Windows, etc).

Filtering

Back To Top

And / Or Clauses

Using an “And” or an “Or” clause lets you add additional logic to your query to require a value to match multiple conditions (“and” clause) or match one of several options (“or” clause).

After using a Where clause to filter your event, you can drag another property or user attribute onto the “where” drop zone to build an “and” or an “or” clause.

For example, you may want to look at Purchases where the Platform is equal to iPhone and the users are Female. This would help you understand how many female customers are using iPhones to make their purchases. Alternatively, you could use “or” to look at Purchases where the Platform is equal to iPhone or the Platform is equal to Android to see the total purchases made by anyone who used either an iPhone or an Android device. This can help you when you’re looking for very granular behavior patterns.

And:Or

Back To Top

5. Segmentation - Advanced Features

Table View

Selecting Table View allows you to view at the underlying data of your analysis.

On the upper right corner the chart window, there is a “Table View” icon. Selecting this tool allows you to view the underlying data values and associated statistics in a table rather than visualizing it in a graph (deselecting it returns it to the graph format).

Once you select Table View, you can toggle between “Count” and “Stats.” Count shows you underlying data that is visualized the amount of users for each time period. These are the same values that you see when hovering over data points on the graph.

Stats shows statistical summaries that is automatically calculated from the raw data, such as Count, Observations, Average, Minimum, Maximum, Range, Standard Deviation, Time Trend, and Confidence. This gives you access to information that can help you identify important trends in your data and build out your analysis.

Table View

Back To Top

Calculator

The built in Calculator tool allows you to make advanced calculations on your events and properties.

The Calculator tool has an icon containing mathematical symbols, and is located in the upper right hand corner of the chart area, next to the table Table View tool.

 

Calculator Button

Opening the calculator allows you to create calculations from events and arbitrary numbers and chart them alongside or in place of the initial query. To remove the calculated function and revert the chart to the initial query, click on the function in the query builder and choose “Deconstruct” in the window that opens.

You can create any combination of events using addition, subtraction, multiplication, and division, and even combine multiple calculations.

For example, if you want to calculate purchase per session (e.g. a ratio using division), add both the “Session” and “Purchase” events to the query builder, then open the Calculator tool and set Purchase as your numerator and Session as your denominator. To add this to the chart window select “Replace in Query,” which will replace the two separate event charts with the newly calculated query, or select “Add as New” to graph the new query alongside the existing events.

Calculator Window

Using arbitrary numbers in calculation gives you the ability to scale datasets, calculate averages when looking at aggregate charts, or even just use numbers to create a metric directly on the chart. Simply click in the calculator box and type a number to use arbitrary calculations.

Arbitrary Calculations

Event and number

Note that you can create nested functions by using an existing function in a new calculation.

Back To Top

In-Line And / Or Clauses

You can also add And/Or clauses in-line within the filter drop down itself using the symbols & and | to represent And and Or.

Rather than starting a new line in the query for each additional specification in the same property key, click within the property type box and use an ampersand (and) or a pipe character (or) to quickly add And/Or clauses in the same line.

For example, if you wanted to see how many signups came from the referring browsers Chrome and Firefox, you can choose Chrome, click inside of the drop down box, add an ampersand after Chrome, and type Firefox. This only works for attributes within the same property key so if you wanted to filter by user gender as well, you would have to start a new query line.

In Line And:Or

Back To Top

For Clause

Using a “For clause” lets you focus in on conditional behaviors of users in order to track user patterns over time.

To build out basic event sequences, click and drag an event from the data panel and a drop zone will appear that says “For users who did/not” in line with the existing query. You can then click the clause and a drop down menu will appear where they can select “did” or “did not.”

didnot-selector

You can use multiple For clauses in Segmentation to drill down into activity of users who did or did not perform a specific set of events within a given period of time. Simply drag events into the query builder and drop them into the “For users who did/not” drop zone.

As you add events you can adjust the amount of times the users performed this event such as “greater than or equal to 1 time” as well as the time frame, which defaults to “within the prior 7 days.”  When using a relative time frame, it always refer to the initial event in the query and not the other For clauses.

For example, you could see how many people did a  “Free Trial Start” for users who did not do a “Login” within the prior 7 days, but did do a “Pricing Page View” at least once within the prior 7 days.

Note that the data displayed in the chart window is the count of the initial query events subject to the time window for the chart, however the “For clause” events are counted relative to the occurrence of the initial query event.

Practically, this means that the conditional “For clause” events can occur outside the time window that is displayed on the chart.

In the example below, “Free Trial Start” events displayed all will have occurred within the Last 7 Days of the current date (as set by the gray chart time window toggle at the bottom).  However, the “Landing Page View” and “Pricing Page View” events must have occurred only within the prior 7 days of the “Free Trial Start” event.

If a “Free Trial Start” event occurred 6 days ago, and the “Landing Page View” event for that user occurred 6 days prior to that, the “Free Trial Start” event will be counted.  Relative to today, the “Landing Page View” event occurred 12 days ago.

multiple for clauses

Back To Top

Chart Types

Different chart types allow you to visualize your analysis in different ways.

Next to the calculator tool is a drop down menu that allows you to select from line graph, bar graph, and stacked bar chart options. When looking only at aggregates, you also have an option to view data in a pie chart.

For example, it may be clearer to see which platforms were used by users who made a purchase on February 20 as a pie chart. However, if you wanted to compare the amount of purchases made by males and females for each day over the past week, a line or bar chart would be a more useful representation.

Back To Top

Annotations in Segmentation

Annotations let you capture and share insights from your analysis with your team.

As you discover more about your data, you may want to add context for yourself or your colleagues about findings, next steps, or additional business context that helps explain certain behaviors patterns. In the Segmentation tool you can click on any point on the chart to add an annotation.

For example, if there is a clear user drop off on your chart, you may want to make a note on that data point to yourself or even use it to notify a colleague to further investigate the drop off.

Annotation

Back To Top

Data Export in Segmentation

Our Data Export function enables you to print and download your chart.

Once you find the information that you need from Segmentation and want to save or capture it, you can use the Data Export tool next to the Chart Type icon to export it in the format that best suits your need. Export your data as an image and CSV file or send your chart directly to the printer.

Data Export Tool

Back To Top

6. Funnels

Overview of Funnels

The Funnel tool shows how users progress through a series of events. Each circle represents a group of users that performed a specific event. There is no concept of “total events” in funnels – only users who did an event. Subsequent events in the funnel will only count users who completed an event after also sequentially completing all prior events. Funnels help you see both where users are dropping off as well as how many users are contributed to an event by a preceding event.

Back To Top

Use Cases

Funnels are most often used for:

  1. Understanding conversion rates
  2. Charting how people progress through different stages of the user journey
  3. Investigating drop off in customer conversion or engagement
  4. Understanding how users arrived at a specific event
  5. Understanding how quickly certain users progress through an event sequence

Back To Top

Orientation to Features

Funnels have the following features and options to help you analyze your data:

Metrics on Funnel – View snapshot metrics such as average funnel completion time and conversion rates.

Adding / Removing Steps – Add and remove steps in the query builder itself or in the chart window.

Reordering Steps – Drag and drop steps in the query builder to put them in the order you want.

Breakouts and Filtering – Use breakouts and filtering to view specific characteristics of users in each step of the funnel.

Tooltip Information – Click on any step in the funnel to see a variety of step metrics such as average step time and conversion rate.

Completion Time Window – Narrow in on users who completed the funnel within a specific amount of time.

 

Advanced Features

Optional Steps / Multi-Path Funnels – View all of the different paths users take to get from the first step to the last step in the funnel.

Forward vs Reverse – View user drop off using forward funnels and see how many users got to the final step from each prior step using reverse funnels.

Zoom – Zoom in and out of your funnel chart to make it fit inside of the chart window.

Annotations in Funnels – Leave notes on data series to share or access later.

Exports in Funnels – Export the funnels that you build as a CSV file.

Interoperability in Funnels – Drill into underlying users or view funnel participants as cohort groupings over time.

Additional Notes on Funnel Tool

Funnels

Back To Top

Metrics on Funnel

Once you build your sequence of events, the chart window shows you a variety of information about your funnel such as average completion time and conversion rates.

The top of the chart window shows you the “average time through the funnel,” which is the average time it took users to get from the first point through each step to the last. Next to this figure is the “total conversion rate,” which is the percentage of users who successfully completed the entire funnel.

The area between each event in the funnel is called webbing. This part of the funnel shows the conversion rates between each step. Funnels are user-centric, so all of the data is presented as unique counts. It wouldn’t make sense to show total events since a funnel explores the journey of each user through a specific sequence of events.

Back To Top

Adding / Removing Steps

Adding steps is as simple as dragging and dropping the events you want in your funnel into the chart area or into the query builder. You can also add steps by double clicking on the event you want to add to the funnel.

Each event is labeled directly above the step in the funnel, if you want to remove a step, click the “x” on the right of the step label in the chart window and it will recalculate the funnel without this step. You can also delete steps right in the query builder window or click on the eye icon to hide and unhide steps.

Back To Top

Reordering Steps

To reorder steps in the funnel, open the query builder and drag the event queries into the order that you want them.

Back To Top

Breakouts and Filtering

After setting up your funnel, you can get even more specific information by using breakouts and filtering to reveal more about the property and user characteristics of each event.

Dragging a property or user attribute into the Segment By drop zone breaks out each event circle into a pie chart to show the percentage of users that correspond to each property or user attribute. Once you add a breakout, you can also click on each section of the pie chart to see metrics specific to this segment.

For example, if you want to see how female and male users traverse the funnel differently, you can break out your funnel by a gender property. This will reveal drop offs or interesting patterns in how male and female users complete the sequence.

You can also filter each event by properties and user attributes to identify interesting patterns or changes in platform, browser, or user characteristics over the course of the funnel.

For example, if you want to know how many people are signing up on an iPhone and making purchases on an Android, you can filter signups to show only signups where the platform is equal to iPhone, and then filter the purchase step show only purchases where the platform is equal to Android.

Back To Top

Tooltip Information

The Tooltip allows you to click on each event in the funnel to see a variety of metrics.

Within the tooltip are a several features. The conversion rate tells you the percentage of users that made it from the previous step to that step. The total drop gives you the percentage of users lost in the progression from the previous step to that step in the funnel. The average step time shows you the average amount of time it took users to get from the previous step to that step.

On the tooltip you can also click the Cohorts or User Insights icon to view the funnel information in these other contexts. See interoperability section below for more information.

Back To Top

Completion Time Window

The Completion Time Window lets you narrow in on users who completed the funnel in a specific amount of time.

The Completion Time Window drop down is located in the toolbar between the query builder window and the chart window in the upper-left hand corner of the chart area. The Completion Time Window lets you filter your analysis to only users who completed the full funnel in a certain time frame. The selection options are Full Timeframe, 5 Minutes, 1 Hour, or 1 Day.

The Full Timeframe shows all users who completed the funnel steps within the designated time window.

For example, if you wanted to know how many people in the last 30 days went through the entire funnel in 5 minutes or less, you would set the Completion Time Window to 5 minutes.

Back To Top

7. Funnels - Advanced Features

Optional Steps / Multi-Path Funnels

Multi-path funnels show you all of the different paths users take to go from the first step to the last step in the funnel.

Not every user takes the same step by step path, so it can be useful to make some steps in the funnel optional. You can do this by clicking on the pushpin icon that appears next to the event name both in the query builder and the chart itself. You can also check the checkbox in the Tooltip Information box that says “Optional Step.” Taking any of these actions will show an additional path that describes how many users completed the funnel without completing the optional step.

For example, say your funnel shows a user signing up, adding to cart, proceeding to checkout, and then purchasing. If you make adding to cart an optional step you can see how many of the users who signed up made purchases directly from the product’s page rather than adding it to their cart.

Back To Top

Forward vs Reverse

Forward funnels allow you to view what percentage of users progress to each step.  Reverse funnels show you how many users were contributed to each step by the previous step.

To create a reverse funnel from an existing forward funnel, use the “Forward” drop down menu to select “Reverse.” In reverse funnels, the percentages shown in the webbing correspond to the percentage of users that completed a completed a certain event prior to another event.  A common usecase for reverse funnels is to identify how many overall conversions happened via a selected path. This helps you identify out of the users who completed the final step, how many actually took the path you created.

For example, for a 4-step forward funnel with user signup, add to cart, proceed to checkout, and purchase, at each step we see how many users completed the sequence of events.

When looking at the same funnel in reverse, you see the total number of users who made purchases and of these purchases, you would see how many came from people who proceeded to checkout, and of those who proceeded to checkout you would see how many added items to their cart, and of those who did those three steps you would see how many signed up. Reverse funnels show you how many of the users who take the final step are actually following this series of steps.

Back To Top

Zoom

You can easily zoom in and out of your funnel by using the drop down menu in the top right corner of the chart window. This feature is especially useful when you have many steps in your funnel or when you have a multi-path funnel that doesn’t fit in the window at 100%.

Back To Top

Annotations in Funnels

Similarly to the Segmentation tool, you can annotate your funnel. However, instead of leaving notes on individual data points, you select the flag icon on the right of the bar beneath the query builder window to leave a note about the funnel in the given timeframe. To retrieve this later you click the annotations icon in the Data Panel. Filter annotations by the note category to easily access later.

Back To Top

Exports in Funnels

You can export the funnels that you build as a CSV file. This will allow you to see the data from the funnels as a value chart that you can edit, send, and print.

Back To Top

Interoperability of Funnels

The interoperability of our tools allows you drill into the underlying users who performed a sequence of steps or split out funnel steps into fine-grained user cohorts.

Funnel interoperability lets you take the underlying data that you query in your funnel and view it in the Cohorts and User Insights tools. This lets you see your data in different contexts and allows you to smoothly move from tool to tool as you get deeper into your data exploration. Click on a specific step in the event sequence and then click on the Cohorts icon to view the cohort information for that step of the funnel.

For example, if you use the example funnel from above (user signup, add to cart, proceed to checkout, and purchase) and you segment it by platform, you can select “add to cart” and click on the Cohorts icon. This would show you the shared behaviors of users over time who took this step based on platform. You could also drill down further into the users by pushing the data into the User Insights tool.

Back To Top

Additional Notes on Funnel Tool

You currently can only have 5 optional steps in your funnel, however you can add an unlimited amount of required steps.

Also note that if you add a property breakout to your funnel and the property you are using to segment doesn’t directly apply to a certain event, the step will say “N/A” on the chart.

Lastly, you can only export funnels as a CSV file and not as an image file.

Back To Top

8. Cohorts

Overview of Cohorts

The Cohorts tool helps you identify user behavioral patterns by organizing them into groups over time. A cohort is a group of users who all performed a certain sequence of events. It is similar to a funnel analysis in that users within a cohort must have completed all the necessary steps, however the visualization allows to you view what is essentially many funnels all at once, and compare fine-grained slices by time period or property to one another.

To build out your query, you filter the cohort by the amount of those users who also performed an additional event and then segment this by time-based generations or event properties.

Back To Top

Use Cases

Cohorts are most commonly used for:

  1. Understanding user engagement over time
  2. Understanding user retention and churn over time
  3. Grouping users to identify behavioral trends
  4. Calculating Lifetime Value by identifying repeated user performance
  5. Understanding long-term results of A/B test groups

Back To Top

Orientation to Features

Initial Cohort Setup  To build a cohort, you start with a query area that asks you to identify a cohort-identifying event, filter it with another event that cohort users also performed, and then segment this by cohort generation or property. Once you calculate this analysis, you choose whether you want to view the data cumulatively or non-cumulatively over time, and as a count of users or as a percentage of users. Additionally, choose between “First Time” and “Recurring” depending on whether you want to look at the first time a user did the cohort sequence or see the ongoing pattern of behavior.

Metrics on Cohorts – Generations are time based user groupings, which break users out by a period of time. Rows in the cohort chart correspond to these different generations and you can add any properties to break out or filter the generations down further. Columns in the cohort chart correspond to the time based groupings to show how the cohort performs over time.

Summary Chart – Above the cohort chart, there is a chart displaying the simple average of the displayed generations for each interval of time after the cohort-identifying event.

First Time vs Recurring Monitor how long it takes users to perform the succeeding action for the first time or monitor customer retention of users who repeat that action over time.

Non-Cumulative vs Cumulative – View your cohorts as a cumulative running total or as a non-cumulative figure over time. Choose to view this figure as a user count or as a percentage of users.

Property Breakout vs Time Generation Breakout Segment your cohorts by period of time or by user characteristic to track their behavior over time and compare results.

Charting Options – View your cohorts as a dot graph, a stacked line chart, or a spaghetti chart.

Annotations in Cohorts Leave notes on specific data points using the stacked line or spaghetti chart view.

Exports in Cohorts – Print and download spaghetti and stacked line charts as image files or download a CSV file.

Interoperability in Cohorts – Drill down into user attributes of a specific cohort by clicking on a dot in the chart and selecting “view users in this cohort.” You can also push funnel events into cohort analysis.

Additional Note on the Cohorts Tool – Cohorts only allow you to filter queries with one Where clause at the aggregate Cohort level.

Cohorts

Back To Top

9. User Insights

Overview of User Insights

The User Insights tool allows you to query groups of users who performed any sequence of events and properties, and drill down into the complete activity timeline of any individual user.

Back To Top

Use Cases

The User Insights Tool is most commonly used to:

  1. Understand users who have common behavior patterns
  2. View individual user profiles and activity history
  3. Export users to action via marketing automation or email platforms

Back To Top

Orientation to Features

User-Centricity of Output The User Insights tool is different than the other tools in Indicative. Rather than visualizing a chart of activity, the output in the User Insights tool is a very straightforward list of users who performed that event or sequence of events and all of the data collected about each user.

User Attributes – View a chart of users who performed an event and the characteristics of each of these users.

Managing User Attributes – Use the user attributes tool in the Data Manager to configure the properties that describe your users.

Event Sequencing Build event sequences in the query builder to see attributes of the users who performed these steps.

User Activity Stream Click on any user in the chart to see their individual activity timeline.

Searching – Search for users and their user attributes by any matching value by using the search box in the upper right corner of the chart window.

Additional Notes on User Insights Tool – User Insights currently only shows up to 1000 users in a query result, however you can always export the full list of users. Additionally, when viewing the user’s Activity Stream currently you can only view the 100 most recent events.

User Insights

 

Back To Top

10. Data Manager

Overview of Data Manager

The Data Manager is home to all events and properties tracked in the project and allows you to reference and manage all of your data. In this tool, you can view the full list of events and associated properties that are being tracked. Additionally, you can modify labels and definitions of both events and properties.

The Data Manager is divided into four sections: Library, Mapping, User Attributes, and Annotations.

Back To Top

Use Cases

The Data Manager is most often used to:

  1. Rename/relabel events,
  2. View and edit event properties
  3. Edit, delete, and manage all annotations
  4. Join events to create a new data series from the sum of the selected events
  5. Mapping events to receive useful analysis recommendations and insights

Back To Top

Orientation to Features

Widget Library View, rename, hide, join, and search for events in the Widget Library.

User Attribute Management Track the user attributes that describe your users and label and define these properties.

Annotation Management View, add, hide, edit, or delete annotations in a project and also configure label and privacy settings.

Renaming Events / Properties Rename events or properties by clicking in the Event Label or Attribute Label box in line with the appropriate Event or Attribute Key.

Hiding Events / Properties Hide events from the Events Panel by clicking the eye icon next to the event. Move the “User Attribute?” toggle to No for attributes that don’t describe your users.

Event Definitions Describe what an event is measuring by clicking in the text box to add the event definition.

Event Categories Classify your events by category to see them organized accordingly on the data panel.

Joined Events Create a new data series from the sum of two or more selected events

Property Data Definitions Manually assign a data type to a property as a string or numeric value. Click on any event in the Data Manager to view all associated properties. Then use the dropdown menu to select Numeric, String, or Auto.

Mappings Mappings chart key events and KPIs to help you create useful dashboard widgets and analyses.

Data Manager

Back To Top

11. Bookmarks

Orientation to Bookmarks

The Bookmarks tool allows you to name and save the analyses you produce so that you can access and update them later. Bookmarks are a way to re-access useful queries or ones that you want to check back in on at a later time. All of your bookmarks are listed and can be accessed from the left-hand tool sidebar by clicking on the bookmark icon.

Back To Top

Use Cases

Bookmarks are most commonly used to:

  1. Save commonly used reports
  2. Save work in progress
  3. Save analysis to be shared with others

Back To Top

Orientation to Features

Save Save any analyses by clicking the Add Bookmark button above the events sidebar.

Edit  Save updated queries by selecting Add Bookmark and choose whether you want to save it as a new version or update the original bookmark.

Search Search saved bookmarks by opening the bookmark tool and typing in the Search Bar in the upper right corner of the screen

Rename Rename bookmarks in the query builder window, within the bookmark tool itself, or when you save an updated version.

Bookmarks

Back To Top

12. Dashboards

Overview of Dashboards

Dashboards allow you to monitor key metrics in real-time. Any analysis you can create in Indicative can be added to the dashboard with a few clicks. You can also drill down into charts directly from your dashboard in their original tool to take a deeper look or make changes to the query.

Back To Top

Use Cases

Dashboards are most often used to:

  1. Monitor all your core KPIs on a regular basis
  2. Quickly explore data anomalies
  3. Create multiple department and end-user specific dashboards
  4. Share KPI dashboards with other teams and executives

Back To Top

Orientation to Features

Creation of Dashboards  The Add to Dashboard button sits right next to the bookmark button in the top right corner of the page of the Segmentation, Funnel, and Cohorts tools.

Dialogs in Each Tool Each analysis tool has several configurable timeframes and views that are customized for generating insight at a glance

Chart Types and Nuances Use the widget settings to customize the appearance of widgets, such as chart type for segmentation, conversion time window for all funnels, and cumulative vs non-cumulative for cohorts.

Moving – Reorganize your dashboard by clicking and dragging the charts into any order you like.

Settings Menu Rename or delete dashboards using the Dashboard Settings tool in the upper right corner of the window. You can also configure the appearance of each widget using the settings tool on each individual widget.

Widget Menu Use the widget menu to view the query in place of the chart, duplicate the widget, move the widget to another dashboard, or delete the widget from the dashboard.

Re-Open in Tool Select Open In [Tool] from the widget menu to open up the original chart and query in the Segmentation, Funnel, or Cohorts tool.

Saving / Updating Options Save updates to dashboard queries by selecting Add to Dashboard and then choosing to update it or save it as a new widget.

Dashboards

Back To Top

13. Integration - Getting Started

Integration Overview

There are multiple methods to get data into Indicative for analysis:

REST API – Send events directly to our REST API endpoint.

SDKs – Send events to our REST API endpoint facilitated by SDKs for a variety of programming languages. Our javascript and mobile clients have additional benefits of automatically collecting Page View and Screen View events, and our javascript client autocollects a variety of properties as well.

Data warehouse – We have integrations with a variety of different cloud and on-premise databases. Please contact support for more information at support@indicative.com.

Semi-structured files – We can process a variety of different semi-structured file types such as JSON and CSV – please contact support for more detail at support@indicative.com.

Back To Top

Implementation Best Practices

Naming Events and Properties

  • Make your event names simple and intuitive. If you find yourself about to assign a long, complex name to an event, think about whether there’s a better way to record that data. For example, rather than having two events named “One-Month Subscription Purchase” and “Six-Month Subscription Purchase”, you could have one “Subscription Purchase” event tagged with a “Billing Term” property value.
  • As in the above example, event and property names can contain spaces and punctuation marks. Take advantage of that feature to make your event and property names more easily readable.
  • Be sure to name properties consistently across events. If you interchangeably record a property name as either “Color” or “Colour”, those will be treated as two separate properties, making it much more difficult to accurately segment your data.

Adding New Events

  • Before you tag an event somewhere in your code, make sure you fully understand the implications of choosing that particular spot. Remember that the event will be recorded every time that block of code is executed. The overwhelming majority of data consistency issues come from incorrect assumptions about your own code.
  • Create a project for testing purposes, and make good use of it. To create a new project, click on the name of your current project in the navigation bar at the top of the screen, and click “New Project”. Use the new API Key associated with this project in your development environment to ensure that your test data remains separate from your production data. Before deploying to production, test each new event in your development environment and verify that your test project is correctly receiving the data.

Adding Properties

  • There will likely be certain properties that you want to be recorded for every event. To accomplish this, we recommend modifying our existing clients. Add a method that takes as an argument the Object representation of one of your users. In the body of this method, add to the event’s properties map any properties you want to be recorded for every event. This will allow you to conveniently record a group of properties using a single method call.

Unique User Identifiers

  • Each user of your app should have a unique, persistent identifier associated with them. Setting this unique ID each time you record an event will let you dig deeper into your data, allowing for funnel and cohort analysis as well as unique counts in the segmentation tool.

Back To Top

Accessing the REST API

  1. Identify the correct API key to use. You can find this on the Project Settings page after you log in. Each API Key corresponds to a collection of events belonging to a specific project. If you want to track events for multiple projects (say, two completely unrelated apps), you should use a different API Key for each one. We also recommend that you create a “Testing” project and use that API Key in your development environment. Avoid sharing your API Keys among different projects so that data flows into the correct area from your application or website. 
  2. Add a call tagging an event. Once you’ve identified a location in your code that represents an occurrence of an event, you’ll drop in a single line specifying that event’s name. 
  3. Provide a unique user identifier for the event. In many cases you’ll want to see just the number of unique users who performed an action, rather than the total number of actions that occurred. To make that kind of analysis possible, we’ll need you to provide a unique identifier for the user performing each action. The exact format of this identifier is up to you, as long as it’s consistent for each user across multiple events. 
  4. Add property data to the event. Next, you’ll add name-value pairs of properties, our term for contextual metadata about an event or the user associated with it. This requires indicating which specific properties you want to be recorded every time this event occurs. 
  5. Send us the event! With the above steps completed, you’re all set to send the event our way. This can be accomplished through a simple HTTP POST to our REST API, or using one of the handy methods provided in our packaged clients.

Back To Top

SDKs Overview

We also offer packaged clients written in a variety of languages including Java and Python, as well as special clients for iOS and Android apps. These clients are designed to be fail proof, asynchronous, and able to be modified as suits your needs.

Back To Top

14. SDKs

Java

If you’re integrating with a Maven project, just add the following dependency to your pom.xml file:

Otherwise, download the client and add the Indicative.java file (located in /src/main/java/com/indicative/client/java) to your project.

To start tracking events, first call the apiKey() method and pass in your API key, like so:

You should only have to do that once. Alternatively, you can hardcode the value of API_KEY at the top of the file. Once your API key is set, you can record events with a single line of code:


The static method event() takes the name of the event as a String argument. It returns a newly instantiated Event object. Note that all of the following methods (aside from done()) return the modified Event object, allowing them to be chained together as in the example.

Next, the uniqueId() method takes one String argument, which is the unique identifier associated with the user performing the action.

The addProperty() method takes two String arguments for the name and value of the property, respectively. This method is overloaded so that you can pass in int, long, float, double, and boolean property values without having to convert them to Strings yourself.

Finally, you must call done() to asynchronously post the event to our REST endpoint.

This client also includes several unit tests in the IndicativeTest.java file (located in /src/test/java/com/indicative/client/java).

Back To Top

Python

Download on GitHub

After downloading the client, add the indicative.py file to your project. Before you start recording events, call the init() method and pass in your project’s API key:

You should only have to do this once. Next, to record an event, set up a dictionary object with your property names and value, and then call the record()method. Its usage looks like this:

The record() method takes three arguments: the event name, the user’s unique ID, and a dictionary containing the event’s property names and values. This method creates a JSON representation of your event and sends it to our API endpoint. Note that this is done synchronously.

Back To Top

Android

Download on GitHub

Our Android library is available on Maven Central as an AAR artifact. If your project uses Gradle, you can integrate by adding the following dependency:

Otherwise, download the client and add the Indicative.java file (located in /src/com/indicative/client/java/android/) to your project.

To start recording events, you’ll first have to create an instance of our Indicative object and initialize it with your API key. You can do this by calling ourlaunch() method in the onCreate() method of your main Application class, like so:

To record an event, first create a Map of your property names and values:

Next, simply call our recordEvent() method, passing in the event name, a unique user identifier, and the property map you just created:

This method creates a JSON representation of your event and adds it to a queue. Every 60 seconds, the events in that queue will be sent to our Rest API endpoint via HTTP POST requests. If debug mode is enabled via the debug boolean in Indicative.java, the status code and body of our response will be outputted to your device’s logs.

Back To Top

iOS

After downloading the client, drop the Indicative project files into a Group in your app. To start using it, specify your Indicative API key by calling Indicative‘s launch: method in the didFinishLaunchingWithOptions: method of your app delegate:


To record an event, simply call the record: method, passing in the name of your event. For example:

To record an event with properties call the record:withProperties: method, like so:

The record: and record:withProperties: methods add an event object to a queue. Every 60 seconds, the events on this queue will be asynchronously sent to our servers via HTTP POST requests. If debug mode is enabled via the debug BOOL in Indicative.m, the status code and body of our response will be outputted to your device’s logs.

To specify the user who performs an event, call the identifyUser: method, passing in the user’s unique identifier. If you choose to not identify the user, Indicative will automatically generate an identifier for the user based on their device’s MAC address.

Back To Top

JavaScript

First, you’ll need to asynchronously load our script into your site. Add this script in either your site’s <head> or <body> tag:

This script tag asynchronously loads Indicative.js from our CDN and initializes the JavaScript code with your unique API key. You will need to set your API key in quotes where it says “YOUR_API_KEY_GOES_HERE”.

To choose between your site’s <head> or <body> tags, note the pros and cons of each. The <head> tag will allow you to access the Indicative object earlier (on load), however your site will not load until everything in the <head> tag is loaded. So, if you do not need the Indicative object immediately, we recommend putting this snippet in the <body> tag.

Building and Sending an Event

Recording an event is easy and customizable. It can be as simple as:

The above line will build and send an event named ‘event-name’ with a unique ID set as a random UUID, you can set a unique ID for this event only (explained here) or a stateful unique ID (explained under the Stateful Variables header). The following call will set the unique id for this event only:

 


If you have a stateful unique ID set, the unique ID in this call will override that unique ID. If you want to add properties to a call, it’s fairly simple. Call buildEvent with any of the following forms:

 


Building without the uniqueID is just as simple. You’ll mostly be using these cases if you’ve set a stateful unique ID or have no unique ID and will use the random UUID we set for you:


Indicative also allows callbacks, which will be fired after a successful or unsuccessful stat post. You can include a callback function in any of the buildEvent methods, like so:

 

With so many different ways to build an event, you’ll have a lot of flexibility to build and send any custom events you need. For further references, refer to the Indicative object API table below.

Stateful Variables
 
We allow you to set stateful variables across every page. Stateful variables are stored as a persistent cookie, so every page will be able to share the same common properties and a uniqueID for the user triggering events on your site. Anywhere in your JavaScript, after Indicative was initialized, call:

This will allow you to log events without having to refer to a unique ID every time you build an event. Indicative also allows for stateful properties, as well, which can be added with the following calls:

These properties will be appended to subsequent event calls. They will not override the properties passed into a buildEvent call, rather append to the list of properties. If a common property isn’t applicable anymore, call:

This will remove a single property. It’s just as easy to clear the entire common properties list:

How to Track Links

Tracking href link clicks can be challenging, because once the page changes we lose our chance to fire an event. To solve this problem, we’ve added a callback to our build object. Use the following function to track link clicks and then send the user to the linked page:

To call this function in your HTML, set up a link like so:

 


Automatic Tracking

We automatically track the following properties: browser (browser), operating system (browser_os), referrer (browser_referrer), language (browser_language), page title (page_title), and url (page_url).

We also automatically track marketing channels provided by UTM search parameters. You’ll be able to see the following properties if you have users loading your page with UTM properties in the URL: campaign_source, campaign_medium, campaign_term, campaign_content, and campaign_name. We will also provide these channel properties in their own section of the data panel, titled as Channels.

Indicative Object API

Method Call Parameters Description
Indicative.initialize(apiKey) String Initializes the Indicative object to be ready for use. Must contain your project’s unique apiKey.
Indicative.getProperties(); N/A Returns an object of the stateful properties.
Indicative.addProperties(obj); Obj | Array Adds a list or object of properties to the object of stateful properties. Can be an object or an array, see docs for further info.
Indicative.addProperty(name, value); name: String & value: String | Number | Boolean Add a single property to the object of stateful properties. Must include a String name and String or Number or Boolean value.
Indicative.removeProperty(name); String Removes a single property from the stateful properties object.
Indicative.clearProperties(); N/A Clears all stateful properties.
Indicative.setUniqueID(id); String Sets a stateful uniqueID to be used for all events built without a uniqueID.
Indicative.clearUniqueID(); N/A Clears the stateful uniqueID.
Indicative.buildEvent(eventName); eventName: String Records an event with the given eventName, using the unique ID stored as a cookie (RandomUUID if not manually set usingIndicative.setUniqueId(id)). More information provided in documentation on building an event.
Indicative.buildEvent(eventName, id); eventName: String & id: String Records an event with the given eventName and unique id. It will only set this event’s unique id. More information provided in documentation on building an event.
Indicative.buildEvent(eventName, id, propmap); eventName: String & id: String & propmap: Obj | Array Records an event with the given eventName, unique id, and property map. The property map can be an object or an array and will only be used for this event. See how to format these in the subsection on building an event.
Indicative.buildEvent(eventName, propmap); eventName: String & propmap: Obj | Array Records an event with the given eventName and property map. It will use the default unique id. The property map can be an object or an array and will only be used for this event. Refer to building an event subsection for more information.
Indicative.buildEvent(eventName, callback); eventName: String & callback: Func Records an event with the given eventName and callback function. It will use the default unique id. The callback function will be called after successful or unsuccessful POST. Refer to building an event for more information.
Indicative.buildEvent(eventName, id, callback); eventName: String & id: String & callback: Func Records an event with the given eventName, unique id, and callback function. It will record this event’s unique id. The callback function will be called after successful or unsuccessful POST. Refer to building an event for more information.
Indicative.buildEvent(eventName, id, propmap, callback); eventName: String & id: String & propmap: Obj | Array & callback: Func Records an event with the given eventName, unique id, property map, and callback function. The property map can be an object or an array and will only be used for this event. The callback function will be called after successful or unsuccessful POST. Refer to building an event for more information.
Indicative.buildEvent(eventName, propmap, callback); eventName: String & propmap: Obj | Array & callback: Func Records an event with the given eventName, property map, and call back function. The property map can be an object or an array and will only be used for this event. The callback function will be called after successful or unsuccessful POST. Refer to building an event for more information.
Indicative.setUniqueID(id, true); id: String This will automatically call Indicative.sendAlias() after setting the new unique ID. If you just call Indicative.setUniqueID(id) (without ‘true’) it will not send the alias call.
Indicative.sendAlias(); N/A The Indicative client automatically generates a default unique ID (a UUID) to use on all events until Indicative.setUniqueID(id) is called. At that point, Indicative.sendAlias() can be called to alias the UUID to the ‘id’ parameter set within Indicative.setUniqueID(id)

Back To Top

15. Integration - Advanced Capabilites

REST API Methods

We offer two options for submitting events to our REST API: submitting one event at a time, or submitting batches of events.

Single Events

Our REST API’s single event endpoint can be found at: https://api.indicative.com/service/event

To send us an event, you’ll need to make a POST request to that URL with a Content-Type of ‘application/json’. In the POST body, include a JSON object with the following fields:

Name Type Description
apiKey String The API Key for this project. If the key you provide is invalid, we’ll return a 400 Bad Request error.
eventName String The name of the event. Must be between 1 and 255 characters in length, and cannot be null.
eventUniqueId String The unique identifier for the user triggering the event. Must be between 1 and 255 characters in length, and cannot be null.
properties JSON Object An internal JSON Object, listing property names and values as Strings. Values will be truncated at 255 characters.
eventTime Number The time that the event occurred. The value should be in unix timestamp (either in seconds or milliseconds) or ISO 8601 format. This field is optional, and will default to the current time if not set. Events with negative timestamps (i.e., dates before 1970 UTC) will be rejected.

 

As an example, your JSON Object would resemble the following:

Our servers will respond with one of a few status codes indicating the outcome of your request:

Status Code Description
200 OK Your request successfully reached our servers and used the correct syntax.
400 Bad Request Your request contained malformed syntax. This may indicate that the API Key you used is incorrect.
422 Unprocessable Entity Your request used the correct syntax, but one or more JSON field values violated the constraints listed above.

 

Batched Events

To send multiple events at once, you’ll want to use our batch endpoint at: https://api.indicative.com/service/event/batch

It works similarly to the single event endpoint – it requires a POST with Content-Type: ‘application/json’ and a POST body containing the following:

Name Type Description
apiKey String The API Key for this project. If the key you provide is invalid, we’ll return a 400 Bad Request error.
events JSON Array The events to be recorded, in an array. Each object in this array should adhere to the format used to send up a single event, indicated above. The ‘apiKey’ field used in the single event is unnecessary here, and will be disregarded if included.

We recommend that your implementation include up to 100 events per batch. All events sent in a batch default to the current time. To override this, you can set the “eventTime” key for each event to a specific Unix timestamp value. As an example, a batch of two events that would be assigned with the current time would resemble the following:

The status codes returned by the batch endpoint are the same as the single event endpoint specified above. When sending either single or batched events, there is a rate limit of 250 events per second. If you need a higher rate limit, please contact support@indicative.com.

Back To Top

Aliasing

Indicative supports aliasing between anonymous IDs and user IDs to allow customers to unify event streams submitted with separate unique keys.

Aliasing is typically used to connect the activity stream of an anonymous user to their known activity stream after they have been identified as a known user.  

For example, when a user first visits your website, either they are assigned an anonymous ID by the Indicative client or you can set an anonymous ID yourself.  After the user signs up, logs in, or otherwise identifies themselves, their activity should now be recorded under a known user ID. Aliasing the two IDs together ensures a seamless activity stream in Indicative under one unique user ID vs two unique user IDs.

An aliasing API call consists of three components: an anonymous ID, a user ID, and your API key. An anonymous ID is an ID used to identify a user before they’ve registered, logged in, or otherwise identified themselves. A user ID is the ID used to uniquely identify a single user within your application – this should probably be an immutable field that’s tied to the user table in your database.

After receiving an alias call, all data submitted in the future from either the anonymous ID or a user ID will be processed as coming from the same user. Alias calls can be done retroactively to combine two event streams that have already been submitted. However, this needs to be coordinated through your Customer Success Manager.

As a best practice, we recommend that an alias call between a pair of IDs is made exactly once. It’s sensible to make this call the first time a user identifies themselves, such as upon registration within your application.

Note that improper use of aliasing can cause irreparable damage to data.  Alias calls are permanent, and cannot be undone.

Caveats

  • An anonymous ID can be aliased to only one user ID (there is a many-to-one relationship between anonymous IDs and User IDs)
  • You cannot alias a user ID to another user ID
  • You cannot “chain” alias calls with multiple user IDs (i.e. Anon1 -> User1 -> User2 is invalid)
  • Alias calls do not affect data received in the past (only future data), but can be supported retroactively when coordinated with your Customer Success Manager

Aliasing API

URL: POST https://api.indicative.com/service/alias

Required Request Headers: Content-Type: application/json

Example Request Body:

Method Calls:
Indicative.sendAlias()

The Indicative client automatically generates a default unique ID (a UUID) to use on all events until Indicative.setUniqueID(id) is called. At that point,Indicative.sendAlias() can be called to alias the UUID to the ‘id’ parameter set within Indicative.setUniqueID(id)

Indicative.setUniqueID(id, true)

This will automatically call Indicative.sendAlias() after setting the new unique ID. If you just call Indicative.setUniqueID(id) (without ‘true’) it will not send the alias call.

 
 

Back To Top

Server-Side vs Client Side

Sending data server-side (e.g. directly to the Indicative API) requires you to configure all of your events and properties directly within your code to send to our REST API.

On the client side, our javascript and our SDKs capture several auto-collected properties

Additionally, we automatically generate an anonymous UUID if a userID is not specified.

The following properties are auto-collected from our javascript client:

  • browser (browser)
  • operating system (browser_os)
  • referrer (browser_referrer)
  • language (browser_language)
  • page title (page_title)
  • url (page_url).

We also automatically track marketing channels provided by UTM search parameters. You’ll be able to see the following properties if you have users loading your page with UTM properties in the URL: campaign_source, campaign_medium, campaign_term, campaign_content, and campaign_name. We will also provide these marketing channel properties in their own section of the data panel, titled as Channels.

Back To Top

Data Warehouse & Semi-Structured Files

For more information on supported integrations with existing data warehouses and semi-structured files, please contact support at support@indicative.com.

Back To Top

Partner Integrations

Segment is a customer data hub for easily installing analytics and growth tools.

There are three reasons we recommend using Segment:

  1. With one integration you can send the same customer data you send to Indicative to over 100 other complimentary services.
  2. Segment offers client libraries for iOS, Android, Xamarin, JavaScript, Ruby, Node.js, Python, PHP, Java, .NET, Go and Clojure. When you integrate with Segment, you don’t need to worry about updating any of these libraries – they’ll take care of maintenance for you.
  3. You can start using Segment with zero code via their one click-to-install plugins for popular e-commerce and blogging platforms.

Indicative’s integration with Segment is fully supported by us and Segment.

Read Segment’s docs for Indicative.

Back To Top

3rd Party Integrations

Indicative supports a wide variety of 3rd party integrations with additional ones being added regularly.

These integrations enable you to send behavioral data from 3rd party sources to Indicative to generate a full 360 degree view of user behavior.

Our most popular integrations include Salesforce, Marketo, and Sailthru.

Questions on whether we support your favorite 3rd party application?  Email support@indicative.com.

Back To Top