Demographic / Custom Properties
User targeting allows you to deliver more relevant ads by tailoring them to known attributes, behaviors, or audience memberships of individual users. Whether you’re aiming to improve ad performance, increase relevance, or enable high-value audience-based selling, user targeting gives you the tools to reach the right people at the right time.
While segment targeting is the recommended approach—using Kevel Audience or synced external systems like a CDP—you can also target users based on custom properties you collect and store in Kevel’s system. Demographic and custom property targeting works by associating key/value data with a user via a persistent UserKey
. This data is saved in UserDB, Kevel’s platform for storing user-level information. You provide the data—such as age, gender, preferences, or browsing behavior—and Kevel uses it during ad delivery to determine if a user is eligible for a targeted ad.
Preferred Method: Segment TargetingSegment targeting using Kevel Audience or a synced external system provides a scalable, centralized way to manage and apply user cohorts across campaigns.
This approach is particularly useful when targeting based on structured demographic information or behavioral signals collected through onboarding flows, surveys, or analytics. For example:
Key | Value |
---|---|
Gender | Male, Female |
Age | 18+, 30–39, 50+ |
Favorite Website | Pinterest, Hacker News |
Logged In Count | 1, 5, 50+ |
All of this data is stored under the custom
field in the user profile tied to a UserKey
. To use it for targeting, your ad requests must include the same UserKey
in the user.key
field of the Decision API. You can then create targeting expressions based on these values at the flight or ad level using custom targeting syntax.
The sections below walk through how to send, store, and target on custom properties using Kevel’s API and UI.
Using API to Add Custom Properties to a User
To tie custom property data to a UserKey
(the key
field in UserDB), use the UserDB API Custom Property Endpoint.
Targeting Custom Properties
To target these segments, refer to our Custom Targeting and UserDB Reserved Keys docs.
Example queries:
UserDB Custom Property Key/Value | Example Custom Targeting Query |
---|---|
Age: 30 | $user.custom.age > 25 |
Gender: Female | $user.custom.gender = "Female" |
FavWebsite: Pinterest | $user.custom.favwebsite contains "Pinterest" |
Setting Up Custom Property Targeting – Flight Level
When creating flights via the Create Flight endpoint, include the Reserved Keys targeting string under the CustomTargeting
parameter. You can also update CustomTargeting
with the Update Flights endpoint.
Use Reserved Keys with the format $user.custom.[Key]
.
Example JSON request:
{
"CampaignId":1234,
"PriorityId":1325,
"Name":"People Over 25-Years-Old",
"StartDateISO":"2017-05-01T00:00:00.00.0000000",
"GoalType": 1,
"CustomTargeting":"$user.custom.gender = \"Male\""
}
Setting Up Custom Property Targeting – Ad Level
Use the Create Ads endpoint. Example:
{
"CampaignId":123,
"Creative":{
"Id":12345
},
"FlightId":1234,
"IsActive":true,
"CustomTargeting":"$user.custom.age > 25"
}
Setting Up with UI
- Flight-Level – Go to Flight Settings, click "Custom Targeting" on the left.
- Ad-Level – Click on the Creative in the Flights page, put details under "Delivery Settings."
Make sure to include aUserKey
in theuser.key
field of the Decision API request. Without it, Kevel cannot match the user to stored demographic or custom data for targeting.
Updated 10 days ago