Alternative category targeting methods

Target category pages with keywords, reserved keys or AdQuery filtering, for ad ops and developers.

We recommend category targeting for most new setups. Keyword targeting, reserved keys and AdQuery category filtering are alternative integration methods for targeting Ads by category.

Each approach below has the same parts: what you send in the request, what you set up, and what you can report.

Which approach fits

Start from what you need. Each approach is explained in the next section, and Compatibility by approach compares them in detail.

A chooser that reads left to right, from what you need to the approach to use. Recommended for most new setups: choosing categories from a managed list, letting advertisers choose in Console, reporting which category matched an Ad and bidding by category use category targeting, and showing only products that belong on the page uses category targeting with an AdQuery filter, where the advertiser chooses and your catalog decides. Alternative integration methods: a page in no category list uses keyword targeting, matching by pattern uses reserved keys, and filtering by category with no rules on each Ad uses AdQuery category filtering.

How each approach works

AdQuery category filtering

Your site sends an AdQuery on the placement, and Kevel filters Ads by a category field on a product or Creative. It chooses which products are relevant on a page, and it is not reported as a category. See Filter by category. It works well alongside category targeting: advertisers choose their categories, while the AdQuery filter restricts each Ad to the categories its product has in your catalog. See How to keep category targeting aligned with your catalog.

Keyword targeting

You send the category of the page as a keyword in the request, and target that keyword on Flights and Ads. Matching is exact and ignores case. Keyword targeting is also how you match what a shopper searches for, from a search placement, so this is a second use of a feature you may already have. See Target categories with keywords.

Reserved keys

Reserved keys use a Zerkel query on the keywords in a request, with operators such as LIKE and CONTAINS. Use them to match categories by pattern. See Match category patterns with reserved keys.

Compatibility by approach

What each approach works with, with category targeting first.

Category targetingAdQuery filtering on categoryKeyword targeting and reserved keys
Who sets the categoriesYour team in the Ad Server UI or Management API, or an advertiser in Console, picking from a list uploaded to your CatalogYour Catalog product table dynamically populates category values on the Creative. Or your team in the Ad Server UI or an advertiser in Console can fill Creative fields manually with category identifiersYour team on Flights and Ads, or an advertiser in Console, typing values
SetupKevel enables it for your network and loads a targetable category list. After setup, you can update the list via the Catalog Management APIAn AdQuery-enabled Creative Template field. Kevel can enable the field to be dynamically populated from your product CatalogNone beyond sending keywords, and a Zerkel query for reserved keys
What your request sendscategory on each placementAn adQuery on the placementkeywords
If the request carries nothingAn Ad with any category rule is not eligible, including one that only excludes categoriesAn Ad is excluded unless the filter allows missing valuesAn Ad that targets a keyword is not eligible
How it matchesExact, against the whole category, case-sensitive. A parent does not match its childrenBy the filter operators you write in the ad request, such as eq and inExact, ignoring case. Reserved keys add patterns such as LIKE
Include and excludeBoth, as rules on the Flight or AdBy the filter operators you write in the ad requestInclude and exclude keywords. Reserved keys add not in a Zerkel query
Page category in reportsYes, as Placement Category, when your pages send categoryYes, as Placement Category, when your pages send categoryYes, as Placement Category, when your pages send category
Matched category in reportsYes, as Placement Category (Matched)Not reportedBy keyword. You can group by keyword on Sites and Zones
Category bid modifiersYes, in the Ad Server UI and Management APINoYes, as keyword modifiers
Skip for one requestskipFilters with category, set to trueNot applicable. The filter is on the requestskipFilters with keyword
ForecastYesFor booked Ads in the Ad Server UI forecast widgetYes
ConsoleAdvertisers pick categories on the placements your Kevel team has enabled, and Console saves them as includes. Category bid modifiers and category reporting in Console are coming soon. See Category targeting in ConsoleA Console placement can be configured to save an advertiser's chosen categories in a Creative Template field that AdQuery can filter onAdvertisers type keywords or select from pre-determined keywords
📘

Every approach needs your pages to send category information in the request: category for category targeting, keywords for keyword targeting and reserved keys, and an adQuery for AdQuery category filtering. Each also gives you category reporting, and the approach you choose changes how. To report Placement Category with any approach, also send category. See Send a category in decision requests and Report on categories.

Filter by category with AdQuery

AdQuery category filtering matches the category of the page to a category field on a product or Creative. It chooses which products are relevant on a page, or limits where an Ad appears.

What your request sends. An adQuery on the placement, with the page's category.

What you set up. A category field on the product or Creative, in a Creative Template field such as ctCategories. Console can write the field for an advertiser. See AdQuery.

  1. Store the category data. Keep a product's categories, or the categories an Ad targets, in a Creative Template field.
The Ad form with the Custom Template format and the Sponsored product card template chosen. The ctCategories template field holds two values, Women > Dresses and Women > Dresses > Midi Dresses.
  1. Send the page's category in an AdQuery. For a field that holds an array of categories:
"adQuery": {
  "ctCategories": {
    "in": ["Women > Dresses"],
    "nullValuesMatch": false
  }
}
  1. Check the Ads that come back. Only Ads whose field matches are eligible. An Ad must also pass its other targeting.

See Filter by category for both uses and for how arrays work.

What you can report. AdQuery category filters are not reported as a category. To report by category, also send category on each placement. See Send a category in decision requests.

Target categories with keywords

Keyword targeting keeps its main job, matching the terms a shopper searches for, from a search placement. Many integrations also use it to target the category of a page: the site sends the category as a keyword, and you target that keyword.

What your request sends. The keywords field of the Decision API request. See Passing keywords in requests.

What you set up. Keyword targeting on the Flights or Ads that should appear on those pages. See Enabling keyword targeting.

  1. Create Flights or Ads that target the keyword. The keyword can be any information about the page, such as its category, theme or focus.
  2. Send the keyword in the request. Put it in the keywords field of the Decision API request.
  3. Check for a match. If the request's keywords include the keyword, the Ad is eligible to show. It may not win.
The Flight editor with Keyword Targeting open. The Keywords box holds two lines: cat_dresses, and !cat_kids, where the exclamation point excludes that keyword.

For example, a fashion retailer can send its category names as keywords in the request, and set up Ads that appear only for requests that include a certain keyword. The retailer can then target the "Dresses" browsing page, and a product page tagged as being in the "Dresses" category.

A fashion retailer's website on its Dresses page, with the Dresses and Shoes categories in the category list circled and labeled cat_dresses and cat_shoes, the keywords to send.
📘

Keyword targeting is an exact match. If you target "dresses", the keyword "party dresses" does not trigger the Ad.

👍

Use a prefix such as cat_dresses and cat_shoes, instead of dresses and shoes, when you use those words for other keyword targeting, such as search terms.

What you can report. Reports show performance by keyword. You can group by keyword on Sites and Zones. To report Placement Category as well, also send category.

Match category patterns with reserved keys

Reserved keys use the same keywords your pages send, and let you match them with a pattern instead of an exact keyword. They do not read product categories or the category field. A reserved key is a variable you use in a Zerkel query, and $keywords is the list of keywords in the request.

What your request sends. The keywords field of the Decision API request, as for keyword targeting.

What you set up. A Zerkel query in Custom Targeting on the Flight or Ad. You do not need keyword targeting on the Flight or Ad. See Enabling custom targeting and Passing custom targeting.

  1. Write the query. Use like or contains on $keywords. To target any category containing "dress":

    $keywords like "*dress*"

  2. Add it to the Flight or Ad. Put the query in Custom Targeting in the Ad Server UI, or in the CustomTargeting parameter of the Create Flight, Create Ad or Create Channel request.

  3. Send the keywords. Pass keywords in the Decision API request.

The Flight editor with Custom Targeting open and the Zerkel query $keywords like *dress* entered in the box.

The query matches keyword variations such as "Party Dresses" and "Summer Dresses". A single query can match many category keywords at once. See Reserved keys for the other variables and operators.

What you can report. The same as keyword targeting: by keyword, and Placement Category when you also send category.

Related