Experimentation and metric events
Read time: 3 minutes
Last edited: Sep 30, 2024
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
feature
evaluation events to LaunchDarkly when an end user or other context interacts with a flag included in a running experiment. - Metric events: your SDKs send
click
,page view
, andcustom
metric 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 Metric events.
Here are examples of each event kind:
{"kind": "click","key": "<internal id, not used>","url": "https://example.com/","creationDate": 16420388151234,"selector": "button.click-track""contextKeys": {"user": "Sandy","anonymousUser": "123213421231"}}
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.
You can view metric events on the Live events page using the Experiments filter.
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. To learn more about the variation
method, read Evaluating flags.
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.
Try it in your SDK: Getting all flags
Correlate variations and conversions
A conversion is when a user action provides a measurable value for a metric. For example, if a metric is tracking 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 there are more than 90 days between the time of a variation call and a track call on a user key, then LaunchDarkly does not register the metric in the experiment.
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.