Skip to main content
A rule’s optional scope decides which entities it evaluates and how the tag propagates.
"scope": {
  "entityType": "VARIANT",
  "propagationMode": "BUBBLE_UP",
  "brandIds": ["<uuid>"],
  "productIds": [],
  "taxonomies": [ { "type": "gender", "values": ["M"] } ],
  "collections": ["<uuid>"]
}

Scope fields

FieldMeaning
entityTypeThe entity the rule targets: PRODUCT, BRAND, VARIANT, INVENTORY_ITEM. Always set.
brandIdsRestrict to these brands.
productIdsRestrict to these products.
taxonomiesRestrict by dimension — each { type, values } (e.g. gender = M).
collectionsRestrict to these collections.
propagationModeHow the tag spreads through the hierarchy (below).
An empty/absent filter means “no restriction on that dimension”. Filters combine to narrow the evaluated population.

Propagation modes

The hierarchy is Brand → Product → Variant → Inventory item.
ModeEffect
ENTITY_ONLYTag only the matched entity (default — no propagation).
CASCADE_DOWNAlso tag the entity’s descendants (e.g. brand → its products → their variants).
BUBBLE_UPAlso tag the entity’s ancestors (e.g. variant → its product → its brand).
The exact propagation traversal runs in the data platform’s tag-evaluation engine; the rule only declares the mode. Choose CASCADE_DOWN to label a whole sub-tree from a higher level, or BUBBLE_UP to mark a parent because one of its children matched.