Search…
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:
  • audiences: indicate if the identity cluster is member of a given audience
  • sources: indicate if the identity cluster contains data from a given source
  • traits: operators on cluster traits key and value
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:
  • They cannot reference other query audiences, only sources and matched audiences.
  • 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.

Creating a Query Audience

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"))'

Audience Query Language

The expression is an S-expression. The supported operands are:
  • or specifies a logical OR between sub-expressions
  • and specifies a logical AND between sub-expressions
  • audience is followed by one argument, the integer ID of a matched audience, and specifies membership to a matched audience
  • source is followed by one argument, the integer ID of a source, and specifies a match on a source tag
  • trait-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.
Copy link
On this page
Creating a Query Audience
Audience Query Language