Search Term Targeting

📘

About the New Search Term Targeting Feature

Kevel’s new Search Term Targeting feature is the recommended way to match ads to shopper search queries within search-result inventory. It offers a dedicated, purpose-built solution that improves relevancy, offers fuzzy matching, and standardizes integrations compared to previous keyword or custom targeting configurations.

This feature may not be enabled for your account yet. If you don’t see it available in your UI or API configuration, please contact your Kevel account team to express interest and get support migrating to the new setup.

In the meantime, you can continue using keyword or custom targeting. Documentation for that approach is available here.

How Matching Works

Kevel Search Term Targeting uses a single matching behavior designed to balance relevance and simplicity.

Matching Rules

  • Edit Distance: Allows for minor typos or misspellings (e.g. shamoo will match shampoo)
  • Phrase Slop: Shopper queries can have reordered or partial terms, but must not contain extra unrelated words
  • Case insensitive: Targeted terms and shopper queries are normalized to ignore casing
  • No Over-Broad Matches: A query must not be more specific or longer than the targeted term.
  • Positive and negative targeting: You can specify search terms as either positive (terms you want to match) or negative (terms you want to exclude). This allows you to control both where your ads should and should not appear.

💡

Setup Tip

When entering search terms, try to be at least as specific as your shoppers—but not more. Overly generic or high-level terms (e.g. just 'shampoo') may match undesired queries or none at all.

What’s Not Supported

  • No semantic matching (e.g., “ascorbic acid” ≠ “vitamin C”)
  • No support for broad synonyms or category-based inference (e.g., “hair care” won’t match “shampoo”)

Matching Examples

The table below shows how shopper queries match different advertiser-targeted search terms based on Kevel’s matching rules:

Shopper QueryInclude: ShampooInclude: Kids shampooInclude: Hair conditionerExclude: kids
shampoo
shamoo(edit distance match)
shampoo kids(extra term)(word reordering tolerant)
kids shamoo(extra term)(typo-tolerant match)
kid
shampoo conditioner(contains extra token)
hair conditioner
conditionar

Note: if only negative search terms are included, ads will be eligible for any shopper query except those that match the negative term(s).

Adding Search Terms

You can add search terms when configuring a Flight or Ad using the Management API and UI. Each term should reflect a query that you want your ad to match. Search terms set on Ads will override any set at the Flight level.

UI

To configure Search Terms on Flights, use the Search Term Targeting panel on the Flight editor screen:

To configure Search Terms on Ads, use the field within the Delivery Settings panel in the Ad editor modal.

API

To configure Search Terms on Flights and Ads, use the Create or Update Flight or Ad endpoint and include the SearchTerms parameter. This parameter expects an array of objects that specify Term (the search term itself) and IsExclude (whether to positively or negatively match this term). Example:

{
...
    "SearchTerms": [
        {
            "Term": "shampoo",
            "IsExclude": "false"
        },
        {
            "Term": "kids shampoo",
            "IsExclude": "false"
        }
    ]
}

Including the Search Term in Ad Decision Requests

When making ad decision requests, include the searchTerm parameter with the string value of the shopper query. Example:

{
  "placements": [
    {
      "divName": "div0",
      "networkId": 23,
      "siteId": 667480,
      "adTypes": [
        5
      ]
    }
  ],
  "user": {
    "key": "abc123"
  },
  "searchTerm": "shampo"
}

Bid Modifiers

Bids can be modified based on matched search terms. Search term bid modifiers use exact matching—the fuzzy logic described above for targeting purposes is not currently applied in this context.

UI

To configure Search Term Bid Modifiers on Flights, use the Bid Modifiers panel on the Flight editor screen and select the "Search Term" type then enter the value to match against:

API

To configure Search Term Bid Modifiers on Flights on Flights, use the Create or Update Flight endpoint and include the BidModifiers parameter with an entry for the desired search term as shown in the example snippet below:

{
 ...
    "BidModifiers": [
        {
            "Match": {
                "SearchTerm": {
                    "Term": "kids shampoo"
                }
            },
            "Multiplier": 2
        }
    ]
}

See Bid Modifiers for more details on how this functionality works.

Reporting

Event and request logs contain the search term as it was passed verbatim in the ad decision request and the term(s) as they were saved on the Ad or Flight in the campaign management system at the time of the event. Example log snippet:

{
  "SearchTerm": "shampo",
  "TargetedSearchTerms": {
    "include": ["shampoo", "kids shampoo"],
    "exclude": ["dog shampoo"]
  }
}
{
  "Decisions": [
    {
      ...
      "Selections": [
        {
          ...
          "SearchTerm": "cat food",
          "TargetedSearchTerms": {
            "include": [
              "cat food"
            ]
          }
        }
      ]
    }
  ],
  ...
  "SearchTerm": "cat food"
}

Reporting on Search Terms using Kevel's Reporting API and report generation UI will be available later this year.

Ignore Targeted Search Terms with Skip Filters

In cases where you want to make an ad decision request that ignores search term targeting, use Skip Filters. This allows ads that are targeted to search terms to be eligible to serve when the search term on the ADR is omitted or doesn't match. This is useful when ads from a Flight may be shown on search results pages and other non-search contexts (e.g. category pages or product detail pages) — when an ADR comes from a non-search page, include the skipFilters parameter in the placement as shown below to only apply other eligible targeting criteria.

{
  "placements": [
    {
      "skipFilters": {
        "searchTerm": true
      },
      "divName": "div0",
      "networkId": 23,
      "siteId": 667480,
      "adTypes": [
        5
      ]
    }
  ],
  "user": {
    "key": "abc123"
  }
}

Forecast

Forecasting performance based on Search Terms will be available later this year.