Bring your own targeting platform

You can use your own targeting/experimentation platform to determine which test variant your visitors should be in. This guide will walk you through setting this up.

Requires engineering work

Why would I want this?

Many of our merchants use a generalized A/B test platform for non-shipping rate experiments. This feature allows you to utilize the power of ShipScout's shipping rate configurability with your own existing targeting tool.

Step 1 - Set up your test

Create a ShipScout test as you normally would. BYOTP is available to all types of tests: threshold, flat rate and custom.

Step 2 - Enable "Use your own targeting platform"

In the audiences section, enable "Use your own targeting platform".

Step 3 - Integrate your platform

Use the ShipScout javascript SDK to assign a variant to your visitors. For theme based shops, no pre-setup is necessary. For headless shops, you'll need to install the javascript SDK by following this guide: Headless stores.

Here's an example of assigning variant A to all visitors:

// Init ShipScout - this must run before you assign the variant
!function(s) { s.shipscout = s.shipscout || (e, a) => { s.shipscout._queue?.push({ type: e, ...a }); }; s.shipscout._queue = s.shipscout._queue || [];}(window)

// Assign the variant
window.shipscout("assign", {
  variantKey: "A" // all visitors will be assigned to variant A

Here's a more plausible example that shows how you might get an assignment from a targeting platform and map it to a ShipScout variant

// Init ShipScout
!function(s) { s.shipscout = s.shipscout || (e, a) => { s.shipscout._queue?.push({ type: e, ...a }); }; s.shipscout._queue = s.shipscout._queue || [];}(window)

// Get assignment from you experimentation platform
const assignment = ExampleTargtingPlatform.getAssignment();

// Map assignment to ShipScout variants. ShipScout variants are always
//  capital letters starting from A.
let shipScoutAssignment;
if (assignment === "12390424") {
  shipScoutAssignment = "A";
} else if (assignment === "4214900") {
  shipScoutAssignment = "B";

// Assign the variant
window.shipscout("assign", {
  variantKey: shipScoutAssignment

A few things to keep in mind:

  • Once a visitor is assigned to a variant, their assignment will persist for the duration of the test.

  • Once a test ends, the assignment code will noop so you can clean it up at your leisure. But be sure to clean it up before you start your next experiment.

Step 4 - Test your changes

In order to test the assignments, you will need to launch your test. Assignments will not work in draft mode.

Last updated