Query Audiences
Audiences specified by a boolean query matching data in your identity graph
Query audiences are specified by an expression that selects identity clusters given a boolean predicate. The boolean predicate is an expression that can include rules regarding memberships in dataset audiences, matches to trait values, and associations with sources.
For example, one could define a query audience that semantically represents identity clusters that are members of dataset audience #8 and include data from source #2.
Expressions can reference the following entities, also known as literals:
- sources: indicate if the identity cluster contains data from a given source
Expressions combine literals (and sub-expressions) with the following boolean operators:
- and: combines sub-expressions with the boolean "and", also known as logical conjunction.
- or: combines sub-expressions with the boolean "or", also known as logical disjunction.
- not: negates an expression with the boolean "not", also known as logical negation.
Note that query audiences have the following limitations:
- The expression can reference a maximum of 32 literals. This limits the depth and number of nodes in the query and ensures reasonable execution time.
To create a query audience, you need a name and a query expression. You can create the audience from the DCN UI or by using the CLI and the
audience create
sub-command.For example:
$ optable-cli audience create "My Query Audience" \
'(or (audience 52) (source 2) (trait-eq "gender" "male"))'
or
specifies a logical OR between sub-expressionsand
specifies a logical AND between sub-expressionsaudience
is followed by one argument, the integer ID of a matched audience, and specifies membership to a matched audiencesource
is followed by one argument, the integer ID of a source, and specifies a match on a source tagtrait-eq
is followed by two arguments, a string key and a string value, and specifies an equality match on a trait key value associated with identity clusters.trait-ne
is followed by two arguments, a string key and a string value, and specifies an inequality match on a trait key value associated with identity clusters.trait-contains
is followed by two arguments, a string key and a string value, and specifies a case-sensitive substring match on a trait key value associated with identity clusters.trait-ci-contains
is followed by two arguments, a string key and a string value, and specifies a case-insensitive substring match on a trait key value associated with identity clusters.trait-regex
is followed by two arguments, a string key and a regular expression, and specifies a regular expression match on a trait key value associated with identity clusters.
Note that only a subset of expressions can be rendered in the DCN's query audience editor UI. If the expression of a query audience created with the CLI does not match what the audience editor UI expects, the a read-only JSON representation of the expression will be shown in the UI.
The audience query expression is also parsed into a JSON representation which is returned by the audience API and when running
optable-cli audience get
or optable-cli audience list
CLI commands.Note that when matching on traits with
trait-eq
, trait-ne
, trait-contains
, trait-ci-contains
and trait-regex
all person and household scoped traits are considered.In the case of a
trait-eq
if either a person or household trait matches, the identity cluster will be selected.In the case of a
trait-ne
if neither a person and household trait matches, the identity cluster will be selected.In the case of a
trait-contains
, trait-ci-contains
and trait-regex,
if either a person or household trait matches, the identity cluster will be selected.Last modified 4mo ago