Audience builder

The target audience defines which devices are eligible for receiving a given campaign. It is defined in the Targeting step of campaign creation. For broadcast or scheduled campaigns, all devices in the target audience will be delivered the campaign. For automation campaigns, any device in the target audience will be delivered the campaign, if and when it performs the trigger event.

A target audience can also be defined and stored as a so-called segment. They are set up exactly like any other audience so we’ll cover both in this chapter of the guide. You can create segments from the segments builder and then use these later in campaigns as a quick way to build an audience out of common elements and pre-defined groups.

Segments menu icon

Logical operators (AND/OR/advanced)

Given that the target audience criteria can consist of more than one condition, it must be specified whether a device is considered to be in the audience only if ALL conditions are satisfied, or if it’s enough if ANY of the given conditions is satisfied. This is set in the dropdown at the top of the page:

Operator dropdown

There is also a third option available: “Nested conditions (advanced)”. This is described in more detail below.


The target audience is made up of one or more conditions:


Each condition consists of the following parts:

The variable

The variable is of one of the following types:

  • Segment. As explained above, a segment can be described as a whole target audience of its own. It’s a convenient way to re-use a target audience definition that may be applicable to several campaigns, with some variations. E.g. you may have defined a segment that targets new devices in the DACH geographical region, and now you can use this segment in combination with additional conditions (e.g. device OS, user behavior, and more).
  • Attribute. This can be an attribute of the device, e.g. which IP address or language setting it has. Alternatively, it can be an attribute of the user, e.g. how much revenue she has generated, or when she was last active.
  • Event. This is something that can be counted, e.g. the number of times the app has been opened, or the number of times a new game level was started.

Comparison operators

Depending on the type of variable chosen, the available operators are:

  • more than / less than / exactly. Available for events, e.g. the app has been opened more than 5 times. Any integer can be entered as value, positive or negative.
  • contains / not contains / is one of / is none of. Available for some attributes, e.g. language of the device. “Contains” and “not contains” are used with a free text field where the attribute is compared to the entered text so you can use just the start of a longer string. For example, locale contains en- would return all values including en-GB, en-US, en-NZ or any other value containing en-. The operators “is one of” and “is none of” are used with a selection field where any number of values which actually occur in your audience database. An example of the latter could be OS versions, where you would only be able to choose between OS versions that have actually been seen in the wilds of your user base.
  • is true / is false. Available for some attributes that either apply or don’t apply, e.g. whether the device has been jailbroken or not.
  • none. For segments, there is no comparison operator available. The condition applied will always be that the device has to be part of the segment.

Time-based targeting

before you start

Targeting on less than operators is not available by default. Talk to one of our integrations engineers about enabling this option for your app.

You can not only target users based on how many times they have executed a certain event, but also how many times they have or have not executed a certain event within a relative timeframe.

target based on events occuring during a given timeframe

Depending on the settings for your app you will be able to target with hourly or daily granularity. Using our UI you have a number of options available such as in the last 24 hours, in the last seven days and other common timeframes, as well as taking into account the entire history of a device.

Nested conditions (advanced)

Sometimes the targeting audience definition is more complex than simply ALL conditions having to be fulfilled, or ANY of them. For example, you may want to target only devices from Germany that have either iOS version 10.2.1 or Android version 4.4.2. These targeting criteria are called nested, and to be able to set them up you choose “Nested conditions (advanced)” from the dropdown on the top of the page.

Nested logical operators

After choosing the advanced mode, the plus button now folds out on click to allow you to choose what kind of element you want to add:

Add-button folded out

As before, you can add a condition, but now you’re also free to add new groups of nested conditions bound by AND or OR operators. The resulting logical structure can have any number of levels, depending on how complex you make it, you could end up with an audience of 1, or end up somehow including all possible users. For every condition you add you’ll see a preview of the audience size based on your current users - more on this below.

An example of a complex nested targeting audience could look like this:

Nested targeting audience

This would be interpreted as follows: a device is in the target audience if = de, AND it either has device.os = Android with app_version = 3.3.4 / 3.3.2 OR device.os = iOS with app_version = 8.0 / 9.0.

Deleting a logical operator

If you delete a logical operators with elements under it (either other operators, or conditions), you have the choice to either delete those child elements or move them up to the next level in the element tree:

Deleting an operator

Audience size preview calculation

With every change you make to the configuration of your target audience, a preview of how many devices are covered by it is calculated:

Target audience preview

In addition to the absolute number of devices, a percentage relative to the total device base is shown. Remember, that this is just an estimate, for example, if you are running a campaign with a trigger, not all targeted devices will go on to trigger the campaign, or for campaigns with an event sequence, not all the users who match the audience filter wil go on to execute the sequence of events needed to include them in the campaign.

Targeting by Event Sequence

For some campaigns - such as the classic cart abandonment case, where you would target a user based on them starting but not finishing a sequence of events, or indeed, for rewarding users who do complete a sequence within a timeframe with some kind of perk or bonus - our new two-step targeting feature is sure to help get right to these users at the right time. Simply select Target by Event Sequence to get started.

There are two options when working with an event sequence: the first event in the sequence occurs, followed by the second within a given timeframe; or the second event does not follow the first within a given timeframe. In our UI you can contol this with the did occur / did not occur setting.

targeting by event sequence

In these kinds of campaigns, users won’t be targeted straight away, only when the rules of the event sequence have been met, i.e., the user has completed the event sequence or not completed the event sequence in the time frame provided. However, we will emit an event for these users called d360_pre_targeted, which will likely be useful during testing phases or later to better gauge how many users are potentially involved in this campaign - although this won’t show up as a KPI.

The sequence diagram below represents how the flow will look for both options, where the events in green are incoming (generally from our SDK or from an integrated event stream), and the events in red are emitted by our system as a consequence of some event being received or an action being taken.


These kinds of campaigns are very useful because while the device still matches the targeting criteria, after an unsuccessful run they will stay in the campaign until they have made it all the way to the end - either with a conversion, or by not executing the conversion event within the allowed time window. Of course, you can also make the campaign reenterable, in which case, even after having completed a run, the device can be reconsidered for the campaign again should they still fall into the audience.