Amplitude — Event streaming
The Amplitude Event Streaming integration automatically sends events to your Amplitude account whenever visitors are exposed to a Kameleoon experiment. This integration enables enriched analytics in Amplitude, providing insights on experiment exposure to help you better understand user behavior and engagement.
This integration uses Kameleoon’s event dispatcher to send server side events to your Amplitude account in batches using the /import
endpoint of the Amplitude HTTP API.
Key benefits
- Precise behavior insights: The integration sends specific events to third-party tools for visitors exposed to web experiments and feature flags on SDK-based projects, such as apps. This detailed tracking enables a clearer view of how different variations impact user actions. For example, you can observe which variation drives more clicks, conversions, or other desired outcomes, helping you determine the most effective approach.
- Real-time decision-making: The integration provides data in real time, enabling on-the-fly decision-making. Armed with up-to-date insights into ongoing experiments, you can swiftly adjust strategies if a variation isn't performing as expected.
- Effortless setup: Enable third-party integrations directly from the Kameleoon app with no need for custom code or SDK changes.
Considerations
- Event delivery timing: Kameleoon servers dispatch events with a minimum 30-minute delay.
Prerequisites
To configure this integration, you need the following information:
- Amplitude API key: The API key unique to one of your Amplitude projects (as documented here)
- Server residency: Specify whether your Amplitude account is configured for the standard hosting region or EU hosting.
- Amplitude plan: Select the type of customer plan you have purchased with Amplitude.
The Kameleoon SDK must also be installed on your server-side project.
Set up
This integration can be activated for Web Experimentation and Feature Experimentation.
For web experiments
Enable the integration from the Integrations page.
Add the integration while finalizing your web experiment.
For feature experiments
Set up the integration in the feature flag environment in the integrations section. Enable it for the environments where you want it active.
Once the integration is activated and your experiment is live, Kameleoon will automatically send experiment events to Amplitude whenever a visitor is exposed. Each event includes key details, such as:
- The Kameleoon visitor code (sent both as a custom property and the default value for the
device_id
field) - Exposure timestamp
- Kameleoon experiment ID
- Kameleoon variation ID
Event payload example
Kameleoon sends events to Amplitude in the following format:
{
"event_type": "$identify",
"user_properties":
{
"$set":
{
"KAM_EXPERIMENT_12345": "KAM_VARIATION_15685",
"KAM_VISITOR_CODE": "rjfloel55ug9fg"
}
},
"device_id": "rjfloel55ug9fg" // also Kameleoon visitor code
"time": 1730194985000
}
By default user_id
will contain the visitor's Kameleoon visitor code. If you have set up Kameleoon cross-device history reconciliation, the identifier placed in the cross-device reconciliation custom data will be taken instead of the visitor code.
Payload customization for user_id, device_id, and session_id
By default, Kameleoon sends payloads where users are identified by the device_id
field, which contains Kameleoon’s visitor code. However, you can customize the content of these payloads by creating and populating custom data in Kameleoon. You can define any or all of the following custom data:
- Cross-device identification (
user_id
):- If you create a custom data and enable the option use for cross device identification, its value—when present during a visit—will be sent in the Amplitude user_id field. This custom data is ideal for “logged-in” identifiers associated with your users.
- Device identifier (
device_id
):- If you create a custom data called
amplitude_device_id
, its value—when present—will replace the Kameleoon visitor code in the device_id field of the payload. This custom data is recommended for “anonymous” identifiers tied to user devices. Regardless of whether this custom data is set, the original Kameleoon visitor code is still included in your payloads under the custom propertyKAMELEOON_VISITOR_CODE
.
- If you create a custom data called
- Session identifier (
session_id
):- If you create a custom data called
amplitude_session_id
, its value—when present—will be sent in the Amplitudesession_id
field. We recommend setting this value to match the Amplitude session ID.
- If you create a custom data called
Use the visit scope when configuring these custom data, use the exact names: amplitude_device_id
and amplitude_session_id
.
Event payload example
{
"event_type": "$identify",
"user_properties":
{
"$set":
{
"KAM_EXPERIMENT_12345": "KAM_VARIATION_15685",
"KAM_VISITOR_CODE": "rjfloel55ug9fg"
}
},
"device_id": "dfkslj47h9"
"user_id": "xf54dd2thdd5",
"session_id": 1396381378123
"time": 1730194985000
}
Please note that any custom data specific to your business, typically included in your Amplitude events, will not be present in the events sent by Kameleoon from the server. If your need to enrich the payload with data not tracked natively by Kameleoon, you can submit a feature request.