Content Attribute Targeting

Content Attribute Targeting is now available in SpringServe if you have turned on the Content Targeting beta feature. With this feature, clients now have the ability to target their demand and supply relative to the Content Macros specified in the query string of the incoming ad request to SpringServe. As an example, if a supply source wants to ensure that only supply sources that belong to a content genre of Action, Comedy or Thrillers should be eligible to serve ads, this can be achieved by using content targeting and the behavior of this feature is listed in detail below. 

Content Targeting in the UI

Once this feature has been enabled for your account by your Account Manager, you will find a new section on the targeting tab of Supply and Demand Tags called Content as shown below with its default selection:

Once you click on Custom, this will open a new dialog box that looks like in the screenshot below:

The options available to target in the Select Attribute Drop-Down are listed below in alphabetical order which is how they appear in the UI:

  • Channel

  • Episode

  • Genre

  • ID

  • Language

  • Livestream

  • Network

  • Production Quality

  • Rating

  • Season

  • Series

  • Title

The Drop-Down after this is the drop-down to specify whether you want to apply a partial or an exact Allowlist or Blocklist. The options in this drop-down are:

  • is in

  • is not in

  • contains

  • does not contain

The first two options displayed in the screenshot (“is in”, “not in”) refer to an exact match and the last two refer to a partial match. Here is how these options translate to targeting options in the AdServer:

  • is in - Exact Match Allowlist

  • is not in - Exact Match Blocklist

  • contains - Partial Match Allowlist

  • does not contain - Partial Match Blocklist

Param Required Checkbox: If this checkbox is selected, then the incoming ad request must include this parameter. To elaborate, if we were blocking the Language French in the language parameter and this parameter is checked, but this parameter isn’t included in the incoming ad call, then this will fail targeting.

Note that all the content parameters listed above work the exact same way, with the exceptions of Livestream and Production Quality. For each of the other parameters, you need to type in each value and then hit enter and then type in the next value, and this information will be passed to the AdServer appropriately.

As far as Livestream and Production Quality are concerned, here’s how they work:


Livestream is a boolean and thus you need to select either of the two values described below. Additionally, the only targeting options that can be selected for Livestream are:

  • is in - Exact Match Allowlist

  • is not in - Exact Match Blocklist

Production Quality:

Production Quality has a set of pre-defined values and users can select either one or multiple values from the options shown below. Additionally, the only targeting options that can be selected for Production Quality are:

  • is in - Exact Match Allowlist

  • is not in - Exact Match Blocklist

Content Targeting in the AdServer

The content parameters listed above are all macros that are available in the UI when you choose to export a supply tag. For additional information on macros, please refer to this link here. Note that you can pass in multiple values to these parameters in an ad call excluding Livestream and Production Quality. If you want to pass in multiple values, these must be passed as comma separated strings as shown in the example ad call in the AdServing Section.

It is important to note a few things about how this is handled in SpringServe's AdServer. The first thing to note is that because both Supply and Demand Tags are eligible for Content Targeting, this targeting is applied on each applicable tag in each applicable link of the call chain. If there are multiple targeting parameters being set on a single object, we will use AND logic to either allow or block this ad call.

Let’s consider an actual example of how this targeting is applied to the content parameters incoming ad call based on the Targeting Settings in the UI. Lets assume that we have the following targeting settings on a Supply Tag:


Consider that for the targeting settings displayed above, we have an incoming ad call as shown below (with the Genre, Network Name and Language Macros highlighted in bold):{{CACHEBUSTER}}&ip={{IP}}&ua={{USER_AGENT}}&app_bundle={{APP_BUNDLE}}&app_name={{APP_NAME}}&app_store_url={{APP_STORE_URL}}&content_id=1984,1985,1986,1988,2001&content_episode=baelor&content_series=GameofThrones&content_season={{CONTENT_SEASON}}&content_genre=action,adventure&content_title=hulu&content_livestream=1&rating=universal,mature&network_name=&language=english,french,german&did={{DEVICE_ID}}&us_privacy={{US_PRIVACY}}

Once we get this ad call, the AdServer will check these targeting parameters serially in order in which they are listed in the UI. Given that there are multiple targeters set on this supply tag, we will use AND logic to determine whether this targeting check succeeds or fails. So, in this case,

  • First, it will check to see the language settings and will pass this targeting check only if all of French, german, and English are included in the ad call.

  • Second, it will check to see the Genre Params and will pass this targeting check if any one of Action, comedy, and thriller are included in the ad call.

  • Third, it will check to see that the Network Param does not contain any of the values in the ad call that are listed in the targeting settings and that it isn’t empty. If this is empty on the ad call, this targeting check will fail and we will register this as a targeting block.

  • We will pass this only if the first and then the second and then the third checks sequentially pass targeting. If any of these checks fail, then this will register as a targeting block.

It is important to note a few things about the values in the targeting settings in the UI:

  • For all the parameters, the AdServer does not consider the case sensitivity of these values. As an example, if you choose to block French under the Language Targeter, the AdServer will treat the values “French” and “french” the same way.

  • Secondly, we will encode spaces in these macros. As an example, if you are choosing to allow only “Game Of Thrones” in the Title Parameter and enter this value as “Game of Thrones”, the AdServer will encode this as Game%20of%20Thrones%0A to account for the spaces in the string.

  • You can’t target on the same content parameter twice on the same Object. As an example, if you target on Language on a supply tag, and if you add another content attribute, language will be greyed out as shown below:

Content Attributes & Reporting

Additionally, if users want to use reporting to troubleshoot errors in reporting, you can run a Demand Report with the any or all of the content paramters and the appropriate supply and demand tags as filters or dimensions and find demand metrics specific to Content Targeting. For more information on reporting, please refer to this link.