Experimentation and metric events
Overview
This topic explains Experimentation and metric events and how they work.
About Experimentation and metric events
An “event” happens when someone takes an action in your app, such as clicking on a button, or when a system takes an action, such as loading a page. Your SDKs send these events to LaunchDarkly, which aggregates and analyzes them.
There are two kinds of events associated with experiments and metrics:
- Evaluation events: your SDKs send
featureevaluation events to LaunchDarkly when they evaluate a flag for a context and emit a feature event, for example, by calling a variation method. When that flag is part of a running experiment, LaunchDarkly assigns the context to the experiment audience and records exposures. - Metric events: your SDKs send
click,page view, andcustommetric events to LaunchDarkly when an end user or other context interacts with a part of your app you’re tracking with a metric. To learn more, read Events.
Here are examples of each event kind:
The SDK “track” method
Server-side, client-side, and mobile LaunchDarkly SDKs send custom metric events when you call the SDK’s track method.
Try it in your SDK: Sending custom events
In addition, the JavaScript SDK also sends a click metric event when an end user clicks or taps on a page URL or anchor tag that you have included in a clicked or tapped metric, and sends a page view metric event when an end user visits a URL that you have included in a page viewed metric.
To learn how to view a list of all of the metric events your SDKs are sending to LaunchDarkly, read Viewing incoming events. This list shows a historical view of all events received over the last 90 days and is useful for choosing the right events to use in your metrics.
You can also view metric events on the Live events page using the Experiments filter. The Live events page displays events as they arrive in real time, and can act as live debugging tool while you develop your event tracking code.
If you prefer to import metric events from your existing data pipeline, read Importing metric events.
Evaluation events
Server-side, client-side, and mobile LaunchDarkly SDKs send a feature event when you call the SDK’s variation method to evaluate a flag in an experiment.
The JavaScript SDK and most JavaScript-based SDKs also send a feature event when you call the SDK’s allFlags method, unless you configure it not to. The exception to this is the React Web SDK, which does not send an event by default when you call the allFlags method. To learn more about events in the React Web SDK, read Events.
Configuring the JavaScript SDK and JavaScript-based SDKs not to send feature events when you call allFlags limits the number of events these SDKs send to LaunchDarkly. To learn more about how SDKs send events, read Analytics events.
Events from LaunchDarkly-hosted metrics
For experiments that use LaunchDarkly-hosted metrics, flag evaluations determine exposures and experiment audience membership. The SDK sends a feature event when it evaluates the flag, and LaunchDarkly uses the context you pass in the evaluation call. A track call records a metric event only and does not, by itself, add a context to the experiment audience. Metric events are correlated to a variation after the same context is associated with an evaluation, as described in Correlate variations and conversions.
For a context to be included in an experiment, its evaluation must match the same targeting rule you have configured the experiment to run on.
Try it in your SDK: Getting all flags
To learn more about evaluation and metric events, read How to register custom conversion metric events in your experiment.
Events from external warehouses
You can connect LaunchDarkly to an external warehouse, such as Snowflake, Databricks, or Redshift, and run experiments using events from that warehouse. To learn more, read Creating experiments using warehouse native metrics.
Correlate variations and conversions
A conversion is when a user action provides a measurable value for a metric. For example, if a metric tracks clicks on a checkout button, LaunchDarkly registers a conversion each time an end user clicks the button. The SDK sends a track call to register the conversion in LaunchDarkly.
LaunchDarkly uses variation calls to correlate the variation an end user received to a conversion within a 90-day window. If more than 90 days pass between a variation call and a track call for the same context key, LaunchDarkly does not register the metric in the experiment.
Because audience membership is based on flag evaluation, use the same contexts for track calls that you use when evaluating the flag. This lets LaunchDarkly attribute metric events to the correct context.
Try it in your SDK: Evaluating flags, Sending custom events
In rare cases, unexpected behavior may cause an end user to receive multiple variations in the 90 days prior to a conversion. In these cases, LaunchDarkly attributes the conversion to the first variation the end user received in that 90-day period.