The Full Stack SDKs make no assumptions about the environment in which you're running experiments, so we don't offer any integrations out of the box. Instead, we give you the ability to build custom integrations to target content, measure results, or enhance your users' experiences.
In this section, we suggest implementations for some common analytics platforms, including Amplitude, Google Analytics, Localytics, Mixpanel, and Segment. Use these suggestions as presented or adapt them to meet your specific needs.
These integrations are built on **notification listeners**, which enable you to trigger a callback function whenever an impression or conversion event is tracked. You can build your own [custom integrations using notification listeners](🔗), or tailor the examples below to your specific needs.
Analytics integrations let you filter your third-party data by Optimizely experiment and variation. This enables you to measure Optimizely experiment performance based on events that are tracked by the third party. Analytics integrations also let you create custom third-party reports that include only users who saw a particular experiment.
Analytics integrations are conceptually simple, but there are some important considerations in setting up your integration. When a user activates an experiment, you need to notify your third-party analytics service which experiment and variation the user saw.
Generally, each third-party analytics platform has its own event format for this notification. For example, Segment's Experiment Viewed event has expected properties that contain your experiment and variation. With Google Analytics, you can use a non-interaction event with a custom dimension that contains your experiment and variation. Check your third-party analytics platform's documentation to confirm how they expect you to send this information.
For Full Stack, you will need to notify your third-party analytics platform when a user sees an experiment, which is when you use [Activate](🔗). Development teams can make use of our notification listeners to bind this functionality to our client’s Activate and [Is Feature Enabled](🔗) methods.
If you already implemented an integration but are questioning the data or want to know what third-party data Optimizely will support, read about [data discrepancies in third-party data](🔗).
Audience integrations help you target your Optimizely experiments to segments of users that are identified in a third-party data management platform (DMP) like Adobe Audience Manager.
You can target your experiment to users by values for the attributes that you've set up in your Optimizely project. Add the audience attributes that you'll target to your project before passing them to Optimizely in your code. For more information, see [Define audiences and attributes](🔗).
After you create the attributes within Optimizely, you can pass your DMP's attributes to our [Activate](🔗), [Track](🔗), and [Get Feature Variable](🔗) methods under the attributes argument. We don’t currently offer integrations to handle this audience targeting automatically.
## Notification listeners
Notification listeners give you flexibility when implementing a custom integration. Use them to programmatically observe and act on various events that occur within the SDK. You can also use them to enable integrations by passing data to external services.
Here are a few examples for using notification listeners:
Send data to an analytics service and report that user_123 was assigned to variation A.
Use SDK events to send alerts to data monitoring tools like New Relic and Datadog to better visualize how A/B tests affect service-level metrics.
Pass all events to an external data tier, like a data warehouse, for additional processing and to leverage business intelligence tools.