This feature is in open beta and is in active development. Contact the Kameleoon support team for support with this integration.
Description
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:
- Kameleoon SDK must be installed on your server-side project.
- 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.
Set up
This integration can be activated for Web experiments and Feature Flags experiments.
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 each environment 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 as 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 then the identifier put into 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 is ideal for “logged-in” identifiers associated with your users. Learn more about Kameleoon’s cross-device history reconciliation.
- 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
- 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 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
Important: Use the visit scope when configuring these custom data, use the exact names:
amplitude_device_id
andamplitude_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 you need to enrich the payload with data not tracked natively by Kameleoon, you can submit a feature request.