What is "is not defined" and why wouldn't it be working?

Bronze Contributor
Bronze Contributor


I have an extension that doesn't appear to be firing on some events. The extension pushes in the FB pixel some data when the following criteria are met:

variable siteSection = Criteria 1 AND
fbEventType = ViewContent AND
variable subCategory = Criteria 2 AND
variable isAO = Criteria 3

I'm fairly new to Tealium, but I can see that we can't have nested criteria here in the way I would like.
Rules must in groups of AND rules only e.g.

RULE 1  [ this and this and this]  or RULE 2 [ this and this and this ]

rather than us having

RULE 1  [ this ] and RULE 2 [ this ] and RULE 3 [this or this or this ]

Anyway... my issue is that I've seen that while the first 2 criteria are met, it seems that variable subCategory doesn't always exist, nor does variable isAO.

I have tried to specify some criteria stating that ruleset 1 has variable subCategory is defined AND variable subCategory = Criteria 2. (to account for when it IS present and meets the criteria), but I also then need the extension to fire when the variable is not present (as the absense of it, also should trigger the extension). 

And that's where I get stuck. it seems 'is not defined' isn't working. Should I be using 'is not populated'?
In this case, it's not that the variable does/doesn't have values contained, but more it is NOT PRESENT in our utag data layer.

I'm hoping someone can help,

Thanks so much,



What is "is not defined" and why wouldn't it be working?

Tealium Employee

When it comes to load rules, we have two options available when multiple rules are being used - "Match All Rules" or "Match Any Rule", meaning "AND" or "OR" respectively.

If you have certain conditions whether the variable is defined or not, I believe the "OR" (Match Any Rule) would be the best approach. You'll then need to craft individual rules that meet each criteria. For example:


var1 IS DEFINED AND var1 EQUALS "hi" AND page_name IS DEFINED AND page_name CONTAINS "home"


var1 is not defined AND page_name IS DEFINED AND page_name CONTAINS "home"


consent IS DEFINED AND consent CONTAINS "c0003:1"


Setting these rules to "Match All Rules" would mean that Rule 1 AND Rule 2 must evaluate to TRUE for the tag to fire. Setting these rules to "Match Any Rule" would mean that if Rule 1 is TRUE and Rule 2 is FALSE, the tag will still fire because at least ONE rule was matched. 

If this still is not clear, I think it would be best to submit a request to our support team so they can look at your individual use case and advise on how to configure the rules. 

Jen Kaye
Senior Premium Success Engineer | Tealium, Inc.