Events & Funnels

Supported on ios-logo android-logo rest-logo react-logo js-logo java-logo node-logo python-logo roku-logo

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 for native mobile platforms 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 editor. Once the event has been created, it will automatically be added to the Events list.

../_images/Visual-Events.png

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 apptimize.com, 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:

Android
Apptimize.track("event-name");
Apptimize.track("event-name", 123.12);

Analytics Auto-Import

If your mobile app currently uses Amplitude, Firebase, Flurry, Google Analytics, Localytics, Mixpanel or Omniture (Adobe Marketing Cloud), all of your analytics events can be automatically sent to Apptimize. If you use another analytics provider that we don’t support right now, please contact us. See Integrations for more detailed information.

To import your analytics events, enable one or more analytic integrations on the Manage -> Integrations page. Then, simply launch your first experiment. As soon as your users interact with the app we will detect any analytics events as they are triggered and send a copy of the event data to Apptimize. 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.

../_images/Goals-Modal.png

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.

Funnels

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 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.

../_images/Create-Funnel.png

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.

../_images/Bundles-Manage-Goals.jpeg

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.

../_images/Bundles-Add-Bundles.jpeg

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:

Android (Java)
Apptimize.track("event-name", 123.12);

2. Amplitude

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

Android (Java)
Amplitude.getInstance().logRevenue("com.product.id", 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 (mobile only), add code like this to your application. The customerValueIncrease value will be used in Apptimize for results beyond conversion metrics.

Android (Java)
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.