Remote evaluation involves making a request to Amplitude Experiment's evaluation servers to fetch variants for a user. Remote evaluation is the default way to evaluate users on client-side apps, but may also be used from a server-side environment.
Client-side
Server-side
Remote evaluation targeting and identity resolution both use Amplitude Analytics' historical user data. Remote evaluation enables advanced features such as Amplitude ID resolution, IP geolocation, property canonicalization, targeting behavioral cohorts, and historical user properties.
Feature |
Remote Evaluation | Local Evaluation |
---|---|---|
Consistent bucketing | ✅ | ✅ |
Individual inclusions | ✅ | ✅ |
Targeting segments | ✅ | ✅ |
Amplitude ID resolution | ✅ | ❌ |
User enrichment | ✅ | ❌ |
Sticky bucketing | ✅ | ❌ |
Remote evaluation resolves the user within Amplitude and appends additional information to the user before passing the enriched user to the evaluation implementation.
Amplitude ID resolution happens before additional user enrichment, and is required if bucketing by Amplitude ID.
Learn more about Amplitude's advanced identity resolution.
If you use location based targeting in your flags, remote evaluation resolves location based on the client's IP and use a canonical Country
user property to make targeting consistent and easy.
The following fields resolve with IP geolocation:
Remote evaluation canonicalizes inputs to make it easier to segment users by platform, OS, language, country, etc, even if the devices report slightly different values. Canonicalization transforms various known device, language, and country inputs into canonical values which remain consistent even if the client reports different values.
The following fields are canonicalized on remote evaluation:
Targeting a recently set user property may cause a race between Amplitude Analytics ingesting and applying the user property, and Experiment accessing the user property. To avoid any races between a user property being set, and a remote evaluation accessing the user's properties, explicitly set the user property in the remote fetch request.
When you pass user properties to the remote fetch request, those user properties don't update on associated analytics events.
The resolved Amplitude ID is used to access the user's current user properties based on historical analytics data. These user properties are merged with any user properties sent explicitly in the fetch request and which are then passed in for evaluation.
Amplitude prioritizes user properties sent explicitly in a remote fetch request over user properties accessed from analytics.
Remote evaluation gets the user's cohort membership from analytics which enables targeting by cohorts in targeting segments.
Dynamic cohorts are synced hourly. Therefore, only use cohort targeting if the bucketing isn't time sensitive. Time sensitive user targeting should use user properties passed explicitly to the remote fetch request.
Thanks for your feedback!
June 3rd, 2024
Need help? Contact Support
Visit Amplitude.com
Have a look at the Amplitude Blog
Learn more at Amplitude Academy
© 2024 Amplitude, Inc. All rights reserved. Amplitude is a registered trademark of Amplitude, Inc.