Category Targeting

How to target Ads by category, for ad ops and developers.

Category targeting makes a Flight or Ad eligible only on the category pages you choose, or keeps it off the ones you exclude. Your team chooses categories from a list in the Ad Server UI or specifies them via Management API, and advertisers can choose them in Console. It is the approach Kevel recommends for most new setups.

The Flight editor with Category Targeting open in the left sidebar: the Type control set to Include and a table of five targeted categories, each with its type, name and ID.
🚧

Category targeting is enabled per network. If you do not see Category Targeting on your Flights, contact your Kevel representative.

How it works

Each category you choose is saved on the Flight or Ad as a category ID, marked include or exclude. Your pages send the category of the page on each placement of the Decision API request, and Kevel compares it with the saved category IDs. See How category targeting matches Ads.

Where the category list comes from

The categories you choose from come from a targetable categories table Kevel sets up for your network. Each network can have a targetable categories table, separate from your product catalog, and it does not have to come from your products.

Category sourceWhat it isHow it stays current
Categories from your site's category taxonomy, which differ from the categories in your product catalogA table of the categories on your site, with an ID and optional name and parent ID for each. It needs no connection to your productsYou upload a file of your categories. See Load and update your category list
Categories from your product catalog, which align with the categories in your site taxonomy A table of categories relevant to your products, with an ID and optional name and parent ID for each. You provide the data the same way you provide your product feed, or Kevel can build the targetable categories table automatically from your product feed

If you update the list yourself: upload a new file. See Load and update your category list

If Kevel builds it: it refreshes each time Kevel ingests your product feed file

In the Ad Server UI, your team chooses categories for rules and bid modifiers from this table, and advertisers choose from it in Console. The Management API does not check category IDs against the table.

Either way, a rule or bid modifier affects serving only when its ID matches the category your pages send on the placement in the decision request. See Targetable categories.

For example:

  • No product catalog. A media owner that sells banner Ads only, or a publisher that is not a retailer, loads a flat list of its category pages, such as the ID 134uisga80 with the name Baby | Diapering | Wipes. An advertiser chooses that category, the Ad saves its ID, and the Ad can serve on pages that send "category": "134uisga80". No products are involved.
  • Site categories that differ from catalog categories. A retailer's product catalog, kept by its retail team, files a product under Baby | Diapering | Wipes. Its website, kept by its web team, shows that product on the page Baby & Kids | Diapers & Wipes. The list holds the website's categories, and that page sends "category": "Baby & Kids | Diapers & Wipes". An advertiser chooses that category, and the Ad can serve on that page. The catalog's categories play no part in matching. Your team in the Ad Server UI and advertisers in Console choose from the list, and Console does not fill in categories from the products, because the products' categories are not in the list.

When it fits

  • You want your team or advertisers to choose categories from a managed list in a UI.
  • You want include and exclude rules.
  • You want to report the category that matched an Ad.
  • You want to modify bid values based on category.

It fits less well where you need patterns, or a parent category that matches its children. For those, see Alternative category targeting methods.

What to do

  1. Send the category. Add category to each placement. See Send a category in decision requests.
  2. Set it up. Choose categories on Flights and Ads, and add category bid modifiers to Flights. See Set up category targeting.
  3. Understand matching. See How category targeting matches Ads.
  4. Report on it. See Report on categories.
  5. Use it in Console for advertiser self-serve. See Category targeting in Console.

Roll back

To stop using category targeting, remove the category rules from the Flights and Ads that have them, in the Ad Server UI or the Management API. An Ad with no category rules passes the category condition again. Keep sending category, so reporting keeps working. Any keyword targeting, reserved keys or AdQuery category filtering you kept continues as before. To return to one of those after a move, see its guide: keyword targeting or AdQuery category filtering.

Alternative and supplementary methods

Keyword targeting, reserved keys and AdQuery category filtering can also target by category, and they stay supported. AdQuery category filtering also works alongside category targeting. To compare them, see Alternative category targeting methods.

If you already use one of them on your category pages, you do not need to change anything. We recommend you also send the category, so reporting works and a later move stays open. To weigh a move, see Transitioning to category targeting from an alternate approach.

Not to be confused with

Other things in Kevel are also called categories. They are separate from category targeting, which uses the navigational category of the page on your site or app.

  • Flight Categories. Also called interests, these are labels that Kevel can store on a user after a click or conversion, for interest targeting. They have no connection to the page.
  • Segment categories. These group user segments. See segment targeting.
  • Product categories. The kevel/categories alias in your Catalog and the Product Category report column describe products. Categories in your Catalog can be used for same-category matches in Attribution.

Frequently asked questions

Can a parent category include its children? No. A parent does not match its children, so select each category you want.

Does capitalization matter? Not for matching: Grocery on a request matches a rule saved as grocery. Reports show each value as your pages send it, so send one capitalization for each page.

Why does matching ignore capitalization? Category lists and the values pages send often drift apart over time, for example when a site changes how it writes a category. Ignoring capitalization keeps campaigns serving, and your ad revenue stable, when that happens. We still recommend consistent capitalization across your integration as best practice.

Can I keep keyword targeting, reserved keys or AdQuery category filtering? Yes. Each is one condition on a Flight or Ad, and an Ad must pass all of the conditions it has.

How many categories can a Flight or Ad target? 25 by default, for each Flight and each Ad. The limit can be adjusted on request, so contact your Kevel representative.

Does the category list have to come from my product catalog? No. It can be your site's own category taxonomy. See Where the category list comes from.

Can I have more than one category list, for example one for each market or retailer? No. Each network has one category list. To cover several retailers, markets or sites on one network, combine their categories in the one list:

  • Start each ID with a prefix for its retailer or market, such as brand-a/grocery/dairy and brand-b/grocery/dairy, and have each site send its prefixed values. The same category on two sites then stays two separate choices.
  • Make each retailer or market a top-level category, so the list is grouped by it when people browse.
  • Keep the combined list within the 10,000-category limit.

Everyone who chooses categories on the network sees the whole list, including advertisers in Console.

Does the category list decide which Ads serve? No. The list helps people choose categories. Serving uses the category targeting and bid modification saved on the Flight or Ad.

Can I target a parent category and exclude one of its children? No. A parent does not match its children, so a child you have not included is already not eligible. Excludes are most useful on their own.

Can I change how categories are split into levels in reports? Kevel sets this for your network. It only affects how reports show levels, and never matching. Contact your Kevel representative to change it.

What happens if I remove a category from the list? Flights and Ads that already use it keep matching their saved category IDs. Remove the category from those Flights and Ads yourself.

What happens when a product leaves a category? Its Ads keep the categories they were saved with, because those are the advertiser's choice. To keep Ads off pages their product has left, add an AdQuery filter on a catalog field. See How to keep category targeting aligned with your catalog.

Can I report by category without category rules on my Ads? Yes. Send category on each placement and group a report by Placement Category, whichever approach you use. See Report on categories.

Can advertisers choose categories in Console? Yes, on the placements your Kevel team has enabled. See Category targeting in Console.

Can a request skip category targeting? Yes. Set category to true in skipFilters on the placement.

Does Forecast take category rules into account? Yes. Forecast includes the category rules on Flights and Ads.

Related