5 min read

Introducing AdQuery: A User-Focused Way to Serve Ads

Chris Shuptrine
Chris Shuptrine
Updated on
April 8, 2021

Traditionally, digital advertising is focused on what the advertiser or publisher wants. We certainly see this with programmatic ads — such as slow ads cluttering the page — but also with native advertising, including sponsored listings that have little to do with what the user just searched for.

Here at Kevel, we believe ad platforms should be built with the user in mind and that ads should help enable an open internet, not detract from it. This comes in many forms: unobtrusive ad units, a privacy-first approach, and targeting that’s relevant to the user experience.

This is why Kevel just launched a new targeting feature called AdQuery. The goal of AdQuery is to simplify and speed up the process for serving personalized ads, and it’s available to all current Kevel customers.

The problem AdQuery addresses

Sometimes the issue with poor ad experiences is the complexity of the tech behind them. Standard ad servers, whether built in-house or outsourced, generally employ key-value pair targeting, whereby you create an ad targeting certain keywords, and if the ad request contains that keyword, it’s eligible to be shown.

For instance, you could create an ad with the logic “Is eligible to be shown if the user searches for "2021 Honda Accord"”.

keyword ad targeting

Then, when a person makes a search, you would pass their search term (or “keyword”) in the ad request. The ad server would cross-reference this phrase with every ad’s keyword logic. In the above example, that listing would be eligible if the user has searched for "2021 Honda Accord" (though not variations like "Honda Accord 2021").

""" { "placements": [ { "divName": "search results" } ], "keywords": ["2021 Honda Accord"], "ip": "" } """

Keyword targeting works fine for simple scenarios like what category page the user is on, but it’s untenable for marketplaces and eCommerce sites/apps who need to handle a myriad of search term combinations at scale.

An especially difficult scenario is one where the user is both searching for a term and employing filters, such as:

  1. 50 miles from the user’s location
  2. Price is between $50 and $60
  3. Has an average review higher than 3 stars

range based filtering

These types of range-based search filters are becoming more the norm than not (think: Amazon, eBay, Etsy, Yelp, OfferUp, etc), but enabling them via key-value pair targeting is not ideal. This is because the ad request would need to include all possible values within this range, which increases the data the ad engine has to parse through, slowing down ad response times.

""" { "placements": [ { "divName": "search results" } ], "keywords": ["kitchen tables", "50", "51", "52", "53", "54", "And so on"], "ip": "" } """

In this scenario the publisher may be inclined to cut corners and target just by the search term — paving the way for the user to see sponsored listings that may be outside the price or location ranges they specified, leading to a poor user experience.

How AdQuery comes to the rescue

AdQuery solves this problem by easily allowing for filtering criteria to be sent in the API ad request.

""" "adQuery": { "ctPriceRange": { "min": 50, "max": 100 } } """

Kevel first looks to see if you've specified any filter ranges in the ad request's AdQuery parameter. If so, our system removes all ad candidates that don't fit within that range, and the remaining ads run through the auction process.

For example, if you are a food delivery app offering sponsored restaurant listings, you may have an ad for Thai China Buffet, an inexpensive restaurant that is a 1 out of 4 in your “Restaurant Price" categorization. It would be a poor user experience if someone looking for a fancy 4+ restaurant sees Thai China Buffet promoted to them.

search filtering ad targeting

So, to prevent this from happening with Kevel, when setting up the Thai China Buffet ad you would first use a creative template that includes the "Restaurant Price" field.

The template will be structured like this:

""" { "Name":"Restaurant Price", "Variable":"ctPrice", "Type":"Number", "adquery":true } """

Then, in the UI or with the Management API, you'll mark this ad as having a "1" value for "Restaurant Price".

search filtering ad targeting

Finally, in the Decision API ad request you would pass the min and max price criteria the user filtered by.

""" { "placements": [ { "siteId": 12345, "adQuery": { "ctPrice": { "min": 4, "max": 4 } } } ], "keywords": ["thai"] } """

From there Kevel would filter out every ad candidate who falls into the 1-3 price range (including Thai China Buffet) and pick the best listing to promote from what restaurants are left.

search filtering ad targeting

How this impacts marketplaces and eCommerce brands

There are few ways that AdQuery helps brands who are looking to build or scale their sponsored listings ad platforms:

  1. Because you are showing only listings that match exactly what the user searched for and filtered against, you are ensuring ad relevance and not detracting from the user experience.
  2. By using AdQuery over key value pair targeting, publishers can dramatically reduce ad response times, leading to faster page loads for the user.
  3. As the first ad serving solution to enable both search term targeting and range filtering, Kevel makes it easy to build or scale sponsored listing platforms without having to cut corners or hack together an appoach.

Even better, AdQuery enables a whole bunch of additional functionality too, all of which help improve the user’s ad experience and help publishers drive the most revenue from their ad platforms. We’ll be outlining these use cases in future posts.

Want to learn more about how Kevel can help you integrate user-first sponsored listings?

Learn more about AdQuery and using Kevel’s Decision API. We’re happy to set up a 15-minute consultation to walk through your specific needs and discuss the best path forward.

All ad tech in your inbox

Subscribe to our newsletter to stay up to date with the latest news.