Use Cases

Variant Experience ServerProduct ⟫ Use Cases

Common Use Cases

1. Web/Mobile Ecommerce Application

Free Shipping Offer

Offer free shipping on orders over a threshold amount to non-promo customers. Run multiple variants of the offer to determine the most cost-effective threshold amount.

This use case highlights the following Variant concepts:

  • Creation of a multi-variate experiment.
  • Developing and configuring a custom qualification lifecycle hook in order to disqualify certain user sessions from the experiment

If a user session originated as a click or touch on an on-line ad or an email promo, we want to exclude it from the experiment because it may be already responding to a promotion. Disqualified sessions are sent to the control experience (i.e. no free offer) and generate no Variant events for this experiment: it’s like they’d never came. This is different from qualified sessions which were randomly targeted to the control experience.

The metadata for this experiment will look like the following schema:

According to this schema, user sessions qualified for the experiment will be targeted to control or one of four variant experiences randomly, with probability weights of 96% and 1% respectively. The experience designer chose minimal purchase amounts to qualify for free shipping at $25, $50, $100, and $200, though you may choose other amounts. The onStates section will contain one entry per each instrumented page.

In order to disqualify promotional sessions, we also configure a custom qualification listener com.mydomain.variant.PromoDisqualifierHook which listens to the TestQualificationLifecycleEvent:

The server has no way of knowing where a particular session originated. The hook above relies on host application to figure that out and set a session attribute which will be available to the server-side code:

The sessions disqualified by this hook will be shown the existing experience and will not be triggering Variant events, which is to say that these sessions will not be considered control for the purposes of this experiment.

2. Web / Interactive Voice Response (IVR) Integration

Synchronize Online and Support Call Center Experiences

When a customer calls the support center, ensure that the automated telephone menus reflect customer’s online experience.

This use case highlights the following Variant concepts:

  • Durable vs stable targeting.
  • Developing and configuring a custom targeting lifecycle hook in order to target user’s phone call into the right menu(s).

When you roll out a new feature on your online mortgage application, you also want to make corresponding changes to your support center’s inbound telephone menus, so that the customer’s phone experience will match his online experience. Assuming you have code-level access to your call center software, you can include it into the experiment by using the appropriate native Variant client library to connect to Variant server.

The core issue here is that the IVR software is not tightly integrated with the Web application and cannot be passed the caller’s current Variant session ID. In fact, user’s current session may even expire by the time the customer is calling. Nonetheless, you want to ensure that the customer’s IVR experience matches his most recent online experience.

Preservation of a user’s experience targeting information between sessions is called durable targeting. Variant does not (and cannot) provide durable targeting automatically. Instead, if offers the TestTargetingLifecycleEvent, so that you can supply a lifecycle listener which implements the targeting:

The following experiment schema fragment illustrates how to configure the experiment metadata and the above targeting hook:

Note, that we do not supply probabilistic weights in the schema because we don’t expect the default random targeter to ever be invoked: the IvrTargetingHook always returns a non-null result.