Targeting
Targeting
Targeting makes it possible to optimise the performance of a campaign by tailoring the delivery of a campaign to a visitor's profile - where relevance is key - or to other relevant parameters. Adhese enables targeting based on both standard and adjusted parameters. You can use each request parameter as a targeting variable. Multiple targeting variables can be used in combination.
During the implementation process of your Adhese account, you will need to consider which variables or parameters you would like to use for targeting purposes. You can add additional parameters to your account at any time.
A request can have targeting parameters at three different levels:
- as a parameter in the request itself,
- as a value in the cookie, or
- as a value at the server (identification will happen through a unique key or session).
A request can combine the above three methods.
GDPR: Remember that the unique identification of visitors and storing personal and other data is subject to national, European and international legislation. It is the exclusive responsibility of the publisher to comply with the law and adequately notify the user of its rights. Adhese can help and advise publishers herein. More on user privacy is available in the GDPR section of the documentation.
Relationship between targets: Targets in different target groups have an AND relation, while targets within the same group have an OR relationship. To create an AND relationship between targets in the same group, make an additional target in the admin screen that includes both target codes (first_target&second_target). The same can be done for negative targets (!first_target&!second_target).
New targets & forecasting: New targets lack forecast data and are therefore best used in combination with the SOV setting. When used with the auto setting, the system will try to calculate an estimated share. With many competing bookings on that same target, however, it is likely that only some bookings will receive a share. The other bookings will only start delivering once forecast data is available, which can take up to two weeks.
Managing Targets
Important rules to keep in mind when working with targets:
1. The code cannot contain any punctuation. The only exceptions allowed are an underscore (_), an ampersand (&) (to add two or more codes in one target), and an exclamation mark (!) (for negative targets).
2. Using a '-' will cause problems in the backend (rotation file) once the target is used in a booking
3. Targets have a character limit of 40. If a single target would exceed 40 characters, consider using advanced targeting.
4. Target names can't contain any (.)'s
To manage targets in Adhese, click the Targets - Manage targets link in the administration screen. The following screen is then displayed:
The screen is divided into two parts:
-
Select target types on the left side
-
Add new target and Target values on the right side
The Select target types part shows all the available target types and indicates whether they are editable or not. Ticked boxes are editable. Empty boxes are not editable. When you select a target type, the colour changes from yellow to orange, and your selection is displayed in the Add new target/target values part of the screen.
Click Add new target if you want to add a new target. To add a new target, fill in a name, give it a code and hit the Add Target button.
The code has to be unique to be accepted by the application.
- a search box
- a back and next button showing the number of pages for this particular target
- a checkbox to hide or show inactive entries.
The list can be sorted by clicking the #, name or code.
You can edit the name of each target. After editing, you can save your changes by clicking the save button.
To deactivate a target, simply click on the deactivate button. Once deactivated, the button's label will change to activate.
To find out more about how targeting can be used within a booking, see the Targeting section of the Bookings page
Negative targeting
As explained in the introduction on this page, you can use a request parameter as a targeting variable. You can also reverse this logic by using a parameter to exclude bookings targeted by it. For instance, a negative target could be 'all countries except Belgium'.
As this is a custom feature, please get in touch with Support to implement negative targeting variables.
Joining targets and negative targets
You can join two targets in an AND relation by creating a combined target with '&'. To do so, follow these steps:
- Make sure both targets already exist within the relevant target category (ex. "code1" and "code2")
- Create a new target, give it a name and join the two target codes with & (ex. "code1&code2")
- You can now select the combined target in the target category in the booking header screen. When selecting the combined target, both values (code1 AND code2) will need to be present for the booking to be delivered
You can also exclude delivery when a certain value is present by creating a negative target with '!'. To do so, follow these steps:
- Make sure a positive target already exists within the relevant target category (ex. "code1")
- Create a new target, give it a name (ex. Not Code1) and exclude the value with ! (ex."!code1")
- You can now select the negative target in the target category in the booking header screen. When selecting the negative target, the booking will not be delivered if the excluded value is present
Combined targets and negative targets can also be combined. If you want to deliver on a broad target within a category but you want to make sure you exclude a certain value, you can join the positive target with a negative one:
- For example: You want to deliver on code, which includes code1, code2 and code3, but you want to exclude code 2. You can join the targets like this: '!code2&code'
Note that when combining a negative with a positive target, '!' must be the first character.
Targeting options
Contextual targeting
Contextual targeting ensures that a booking is relevant to the content of the website. The text of a website is scanned for content keywords, article tags, or topics. Bookings targeted on those keywords are subsequently returned to the website. For example, if a visitor is reading a movie review, Adhese can show a booking from a nearby movie theatre that is playing the same movie. This targeting method is custom-implemented per client.
External data sources
Adhese can also take external data sources into account when targeting. Variables such as stock indexes, product inventory, and weather can be used. Imagine an advertiser who sells tyres. They could change the content of the creative based on a weather forecast for the visitor's location. This targeting method is custom-implemented per client.
Competitive exclusions
Campaign variables can be used to ensure that certain bookings are not served together simultaneously. This feature is similar to our delivery multiples solution, but it is relevant to the campaign level.
For instance, you can opt not to deliver bookings from the same client or two competitor companies, such as car manufacturers, at the same time. If you are interested in this custom feature, please contact us.
More targeting options
To learn more about the various targeting options in Adhese, consult the following pages:
User agent targeting
Brand targeting enables you to target your audience by, for example:
- Internet service provider, such as Telenet, Proximus, VodafoneZiggo or KPN;
- Browser, like Chrome, Safari, or Firefox;
- Brands like Apple or Samsung;
- Device, for example, a tablet, smartphone, or desktop;
- Operating system, for instance, iOS, Android, Windows, or Mac OS X.
As this is a custom feature, please contact Support if you are interested in implementing one or more brand-targeting variables.
You can exclude a brand target variable from targeting. For example, if you wish to exclude smartphone devices from targeting, tick the Device - Desktop and Device - Tablet boxes, but do not tick the Device - Phone box. See the screenshot below.
Hierarchical Targeting
With hierarchical targeting, each different targeting group is given a priority, which allows a targeting group with the lowest volume to be given priority over other targeting groups.
Hierarchical targeting is not compatible with channels. Bookings with hierarchical targets must be booked on individual positions.
Hierarchical targeting is an option that is not included in the default Adhese set-ups. If you want to add this option, please contact support.
An example:
There are three different target groups:
- Main category (for example, Electronics - green)
- Product group (for example, Computers - yellow)
- Super category (for instance, Laptops or Tablets or Monitors - red)
In the example above, bookings targeted at the Super category (red) take priority over bookings targeted at the Product group (yellow). Bookings targeted at the Product group (yellow) take priority over bookings targeted at the Main category (green).
It is possible to target both the Product group and Super category when making a booking. For example, if you target the Super Categories Laptop and Tablets and the Product group Computers, the Laptop and Tablets targets will receive the highest priority. All other targets under the Super category (such as Monitors) will also show the booking because they fall under the Product group Computers, but only if there is no competing booking targeted on that particular Super category.
When booking with the target Main category (Electronics), each Product Group (Sound & Vision, Mobile and Computers) and all underlying Super Category sections can display the booking, but only if there is no competing booking targeted at a particular Product Group or Super Category.
Advanced Targeting
Advanced Targeting is a feature that must be enabled and requires additional setup. Please contact Support if you would like to make use of this feature.
Targets that fall under advanced targeting do not contain forecast data. They are best used in combination with SOV delivery.
Introduction
Advanced targeting allows the Adhese instance admins to create complex targeting rules and save them with a label. Sales and Operations can select these targets when booking a campaign.
Creating and Editing
To manage Advanced Targeting in Adhese, click on the Advanced Targeting link in the Administration screen. The following screen will appear:
The screen is divided into two parts:
- Add new advanced target
- Advanced target table
Click Add new advanced target to add a new one. To add a new target, enter a label, give it a value and click the Add Advanced Target button. The code must be unique for the application to accept it.
The Advanced Targets table lists the advanced targets that have been created.
Creating a new Targeting Expression
Targeting expressions contain target identifiers and functions. The identifiers allow you to tell the system which targets you want to check, modify, etc.… With the functions, you can express what you want to do with the values.
By 'target values' we mean the incoming values of an ad request, regardless of how they were injected into the request. So, this could be a value sent by the browser or app, a segment picked up by a server-side mapping, or a combination of both.
Defining which targets to use
Targets are referred to by their two-letter prefix code: “dt”, “co”, etc... just like in the POST body of an ad request. The exact values available for your Adhese instance can be found in the documentation of your account.
The values of each target are always considered to be multi-valued. Their type is List<String>, a list of alphanumeric characters.
If you know that a target is single-valued (as can be set in the 'definitions' of your instance), you can use last() to change the type to String (or Void if an empty list).
Functions to express what to do with a target value
Each function acts on the values sent by the request and is identified by the given 2-character target code. For example, given a request like the one below and using the target code 'sg', which is often used for 'segments':
https://ads-myadheseinstance.adhese.com/json/sl123/tlall/sgfamily;sports/ag45/dtdesktop/II456d676e8d6878s687/
We can identify the target by its two-letter code, ‘sg,’ and see two values: ‘family’ and 'sports'.
List of all functions
1. Check the presence of the target
defined(target_code)
Checks if a target is present, even if it has an empty string value.
Example
defined(sg)
will match the following requests
https://ads-myadheseinstance.adhese.com/json/sl123/tlall/sgfamily;sports/ag45/dtdesktop/II456d676e8d6878s687/
https://ads-myadheseinstance.adhese.com/json/sl123/tlall/sg/ag45/dtdesktop/II456d676e8d6878s687/
but not match this one
https://ads-myadheseinstance.adhese.com/json/sl123/tlall/ag45/dtdesktop/II456d676e8d6878s687/
2. Count number of target values
size(target_code)
Counts the number of values for a given target code.
Example
size(sg) > 1
will match
https://ads-myadheseinstance.adhese.com/json/sl123/tlall/sgfamily;sports/ag45/dtdesktop/II456d676e8d6878s687/
https://ads-myadheseinstance.adhese.com/json/sl123/tlall/sgfamily/ag45/sggourmet/dtdesktop/II456d676e8d6878s687/
but will not match this one
https://ads-myadheseinstance.adhese.com/json/sl123/tlall/sgfamily/ag45/dtdesktop/II456d676e8d6878s687/
3. Check the presence of value
target_code intersects {'value'}
Returns true if ‘value’ is part of the values for the given target_code
Example
sg intersects {'sports'}
will match
https://ads-myadheseinstance.adhese.com/json/sl123/tlall/sgfamily;sports/ag45/dtdesktop/II456d676e8d6878s687/
https://ads-myadheseinstance.adhese.com/json/sl123/tlall/sgsports/ag45/sggourmet/dtdesktop/II456d676e8d6878s687/
but will not match
https://ads-myadheseinstance.adhese.com/json/sl123/tlall/sgfamily/ag45/dtdesktop/II456d676e8d6878s687/
4. Logical operators
(condition1 && condition2) || (condition3 && condition4)
&& expresses ‘and’,
|| expresses ‘or’,
( ) round brackets can be used for grouping expressions
Example
sg intersects {'family'} || (sg intersects {'sports'} && dt intersects {'desktop'})
will match
https://ads-myadheseinstance.adhese.com/json/sl123/tlall/sgfamily;sports/ag45/dtdesktop/II456d676e8d6878s687/
https://ads-myadheseinstance.adhese.com/json/sl123/tlall/sgsports/ag45/sggourmet/dtdesktop/II456d676e8d6878s687/
but will not match
https://ads-myadheseinstance.adhese.com/json/sl123/tlall/sgsports/ag45/dtmobile/II456d676e8d6878s687/
5. Numerical comparison operators
atoi(last(target_code)) operator integer
Compares the value of a target_code (converted from a string to an integer) with a fixed integer.
Available operators
- < : less than
- <= : less than or equal
- > : greater than
- >= : greater than or equal
- <> : not equal
- = : equal
Example
atoi(last(ag)) > 35 && atoi(last(ag)) <= 65
will match
https://ads-myadheseinstance.adhese.com/json/sl123/tlall/sgfamily;sports/ag45/dtdesktop/II456d676e8d6878s687/
https://ads-myadheseinstance.adhese.com/json/sl123/tlall/sgsports/ag65/sggourmet/dtdesktop/II456d676e8d6878s687/
but will not match
https://ads-myadheseinstance.adhese.com/json/sl123/tlall/sgsports/ag25/dtmobile/II456d676e8d6878s687/
6. Decode urls and split
last(split(decode64(last(target_code))),'/') = string
Converts the last value of the given target_code from base64 encoded to a string, splits it by slash and compares the last item with a string
Example
last(split(decode64(last(br)),'/')) = 'index.html'
will match
https://ads-myadheseinstance.adhese.com/json/sl123/tlall/sgsport/ag25/dtmobile/II456d676e8d6878s687/rfL2Zvby9iYXIvaW5kZXguaHRtbA==/
but will not match
https://ads-myadheseinstance.adhese.com/json/sl123/tlall/sgsport/ag25/dtmobile/II456d676e8d6878s687/rfL2Zvby9iYXIvb3ZlcnZpZXc=/