Target with dependencies

Use Split's dependency matcher when you want one split to depend on the evaluation of another split.

Let's say we have two Splits with the second depending on the evaluation of the first. In this example, we would like 20% of customers who receive the on for the new_homepage split to evaluate to on for the advanced_news_feed split while the other 80% should evaluate to off.

Split's dependency matcher is located in the condition string to meet your most granular targeting needs.

As you begin to utilize the dependency matcher you will notice a few things:

  • Environments & traffic types: the dependency matcher does not allow you to depend on another environment's condition or target across traffic types.
  • Circular dependencies: Split prevents you from creating a direct circular dependency by not displaying those split's that would create a circular dependency.
  • Attributes: If split B has split A as a dependency then the getTreatment call for split B must pass all the customer attributes needed to evaluate split A. Split B's syntax modal will display all the attributes needed to make the evaluation successful.
  • Deleting: You cannot remove a split from an environment or delete a split if additional splits depend on that split for their evaluation.

See below for some common questions:

(1) Does the dependency matcher count as 2+ evaluations? No, the evaluation is counted as one single evaluation and does not fire off multiple calls or register multiple impressions.

(2) There is a warning in the UI when I use a dependency matcher. What does this mean? The warning you are seeing is to warn you that if the dependent split requires some additional attributes - you will need to update the getTreatment() call to include those attribute values. The syntax modal will display all the attributes needed to make the evaluation successful.

(3) Do parent splits know which child splits are using it in their evaluation? Yes, if a split is being used as a dependent, Split's web console will inform you in the editor. You will not be able to delete the split, delete or rename treatments.