Experience Continuity

What is Experience Continuity

Experience Continuity enables you to customize and track the experience of a visitor from anonymous (before they log in) to logged in state.

With Experience Continuity, you can change your visitor ID from an anonymous ID (session ID for instance) to authenticated ID (database ID for instance), without changing their experience and duplicating their tracking. This enables cross-device authenticated experience without compromising on cross-session experience continuity.

How does it work?

In order for the Experience Continuity to work, once your visitor logs in, you need to tell Flagship who this anonymous visitor now becomes. That is the purpose of the anonymous_id and visitor_id body fields in the Decision API, and the authenticate method of the SDK.

When calling authenticated on a visitor instance of the SDK, behind the scene you are saying that the current visitor ID was actually an anonymous_id, and that the new visitor_id is the authenticated visitor ID. On the next call to synchronizeModifications, the SDK will call the Decision API with those 2 IDs in the body.

Decision API flow

When receiving the 2 IDs (anonymous & authenticated), the Decision API follows the following flows:

  • It checks whether your authenticated visitor has already been assigned the experiment (maybe on another device or session). If so, the variation assigned is returned, and the experience is kept between the cross-device authenticated visitor.
  • If it is the first time the visitor is authenticated, the Decision API links the authenticated experience with the previously assigned anonymous ID variation and returns the already assigned variation. This way, the cross-session anonymous/logged-in experience is kept.

You can see in detail in the Decision API Docs how to use the anonymous_id in the Decision API calls.

Limitations

Decision Mode

The Experience Continuity feature, because it requires persistent storage of the link between the anonymous and authenticated ID, is only available for the cloud Decision API.


Did this page help you?