Events & Funnels

Events are any user activity within an app that is tracked through Apptimize or your analytics provider, and automatically import into the Apptimize dashboard.

A Goal is an experiment-specific metric, and is composed of either a single event or a series of events combined into a funnel. Goals are unique to each experiment, but events and funnels are created on the app level, and can be used as Goals across multiple experiments. See Details & Goals for more information on selecting goals for a specific experiment.

If you aren’t using a third party analytics provider to track your events, you can create and track events through Apptimize.

This guide details how to:

Apptimize Events: Visual

Visual events can be created by pairing your app with the Events dashboard, and selecting visual elements on your app’s page to track. Visual elements can either track button clicks or page views. To create a Visual Event, simply name the event and select the element through the visual apptimizer. Once the event has been created, it will automatically be added to the Events list.


Apptimize Events: Programmatic

Programmatic Events can be instrumented by integrating a code snippet into your app’s codebase. We can track anything you want including actions with values. Examples of events you could track include purchases being made, login events, and Facebook shares. If there is a numeric value associated with this event that you’d like to track and view at, provide it as the input parameter value. For example, if the event is a purchase, the value might be the price. To create a Programmatic Event, simply name the event in the Apptimize dashboard and we will generate a short code snippet for you to embed into your app:

iOS (Objective-C)
[Apptimize track:@"event name"];
[Apptimize track:@"event-name" value:<double value>];
iOS (Swift)
Apptimize.track("event-name", value: <double value>)
Apptimize.track("event-name", 123.12);

Analytics Auto-Import

If your app currently uses Amplitude, Flurry, Google Analytics, Localytics, Mixpanel or Omniture (Adobe Marketing Cloud), congratulations; all of your analytics events will automatically show up in your Apptimize dashboard. If you use another analytics provider that we don’t support right now, please contact us. See Third Party Integrations for more detailed information.

To import your analytics events, simply launch your first experiment. As soon as your users interact with the app we will automatically detect all of your analytics events import them. You can also see your list of events and use them to create funnels under the “Manage” tab. You can also view these imported events on your Result and Goals pages – just click “Create Goal” and you’ll see a dropdown option for each of your analytics providers.


Apptimize is case-insensitive when processing and analyzing events. If you are sending in “Checkout” event and also a “checkout” event, Apptimize will treat both as the same event. Please make sure you follow a case-insensitive event schema with Apptimize.

Note: Imported events will appear in your list prefixed by where they came from. For example, Google Analytic events begin with “ga” and Mixpanel events begin with “mp”. Auto-imported events are treated similarly to Apptimize events. Metrics such as conversion rate are computed the same way from both Apptimize and auto-imported events.


To measure Goals with multiple events, you can create a Funnel. Funnels track a series of events that users can take, such as completing an onboarding flow, or completing a checkout flow. To create a Funnel, select “Create a new Funnel” under the Manage tab, and drag and drop your existing Events on the left into the Funnel Events on the right. Once the Funnel events have been added, you can drag and rearrange the order of the events as necessary.


Goal Bundles

Do you have a list of general product metrics to track for every experiment? Do you want to effortlessly add a similar list of goals to every onboarding experiment? If so, Goal Bundles is the perfect tool for you. Bundles are lists of goals that you can add to any experiment with one click. To create a bundle, select “Bundle Events” in the Manage -> Goals tab. Similar to Funnels, you can drag and drop the desired goals into the bundle. Bundles can contain events and funnels at the same time, but not other bundles.


Once you create a Goal Bundle, it will appear in the top section of the Add Goal modal. You can add the entire bundle of goals clicking “Add all”, or any of the individual goals inside the bundle clicking “Add”. After you’ve added a bundle of goals to your experiment, you can edit or delete the bundle without affecting results calculation or your results dashboard.


Integrate Events With Values to Apptimize

Apptimize currently support events with one value attribute. There are 3 ways to get events with values to Apptimize:

  1. Apptimize SDK method: trackEvent + value
  2. Localytics SDK method: tagEvent + customerValueIncrease
  3. Amplitude SDK method: logRevenue

1. Apptimize

To directly send Apptimize events with value data, add code like this to your application:

iOS (Objective-C)
[Apptimize track:@"event-name" value:123.12];
iOS (Swift)
Apptimize.track("event-name", value: 123.12)
Apptimize.track("event-name", 123.12);

2. Amplitude

To send Apptimize events with value data via Amplitude, add code like this to your application:

iOS (Objective-C)
[[Amplitude instance] logRevenue:"" quantity:1 price:@123.12 receipt:nil];
iOS (Swift)
Amplitude.instance().logRevenue("", quantity: 1, price: 123.12, receipt: nil)
Amplitude.getInstance().logRevenue("", 1, 123.12, "", "");

Note: the newer LogRevenueV2 amplitude methods will be imported to Apptimize as events but the value data will not be available for results beyond conversion metrics.

3. Localytics

To send Apptimize events with value data via Localytics, add code like this to your application. The customerValueIncrease value will be used in Apptimize for results beyond conversion metrics.

iOS (Objective-C)
[Localytics tagEvent:@"Item Purchased" attributes:@{@"Item Name":@"Stickers",
iOS (Swift)
Localytics.tagEvent("Item Purchased", attributes: ["Item Name":"Stickers",
Map<String, String> values = new HashMap<String, String>();
values.put("Item name", "Stickers");
values.put("Aisle", "Knick-Knacks");
Localytics.tagEvent("Item Purchased", values, 499);

When analyzing values per user or values per occurrence, Apptimize ignores events that were sent in with empty values. This is because certain events that are supposed to have values may be triggered with empty values by accident. For instance, when Appstore purchase confirmation is delayed, the tracking event sent in at the time may have empty values. Apptimize ignores these empty values to avoid skewing the data