User segment targeting lets you deliver more relevant ads by limiting who sees them based on predefined user groups, or “segments.” User segment targeting can be added at the Flight or Ad level.

These segments can be built in Kevel Audience (Kevel's user intelligence product) or imported from an external system, such as a customer data platform (CDP).

Once set up, you can use segments to target users based on behavior, demographics, shopping habits, or any custom criteria, enabling more personalized and effective ad experiences.

# Setting up user segments

## Setting up user segments with Kevel Audience

The easiest and most seamless way to create segments for use in Campaign targeting is with [Audience](https://www.kevel.com/audience), Kevel's user intelligence product.

Here's how:

1. Create [segments in Kevel Audience](https://docs.audience.kevel.com/segment/segments).
2. Add your Kevel network as a [native destination](https://docs.audience.kevel.com/activations/native-destinations) and activate segments for use with the Kevel ad server.

Note that with Kevel Audience, no extra step is required to sync user records to UserDB, as Audience handles this sync automatically.

## Setting up user segments with another data tool

For a more customized integration, you can use your own user data tool to construct segments and push them to the Kevel ad server via the Kevel Management API.

Here's how:

1. Create segments using Kevel's Management API. User segments are represented with in Kevel's Management API as independent entities. Learn more about managing user segments via API in the [user segment API documentation](https://dev.kevel.com/reference/segments)
2. Ensure that your user records are synced with these segments by syncing user records with segment membership in [UserDB](https://dev.kevel.com/docs/userdb-1). The following endpoints may be used:
   - [Add segments to a user](https://dev.kevel.com/reference/add-segments-to-a-user)
   - [Replace segments for a user](https://dev.kevel.com/reference/replace-segments-for-a-user)
   - [Get segments for a user](https://dev.kevel.com/reference/get-segments-for-a-user)

> 👍
>
> There is a limit of 1000 segments per network. A user in UserDB can be associated with up to 1000 segments.

# Targeting user segments

Once segments and user records are set up, you can pick synced segments to target or avoid targeting on Flights and Ads.

There are several methods available for controlling ad reach based on user segment:

- Include and exclude user segments on Flights
- Include and exclude user segments on Ads
- Modify bids for certain user segments

Each of these is described below.

## How segments are matched

Segments can optionally be organized into categories (for example, _Customer Value & Affinity_, _Shopping Intent Signals_, or _Low Conversion Propensity_). A segment's category comes from your segment source — it is set in Kevel Audience, or defined on the segment record via the Management API.

When you include multiple segments on a Flight or Ad, categories determine how those segments combine at decision time:

- **Within the same category: OR.** A user who matches _any_ included segment in a category satisfies that category.
- **Across different categories: AND.** A user must satisfy _every_ category that appears in the include list to be eligible.
- Segments without a category are grouped together and treated as a single category (OR between them, AND against other categories).

For example, given the included segments shown above — _Premium Brand Affinity_ and _High AOV Shoppers_ in _Customer Value & Affinity_, plus _Carted Kitchen Appliances_ and _Kitchen Category Purchasers_ in _Shopping Intent Signals_ — a user is eligible only if they match:

( _Premium Brand Affinity_ **OR** _High AOV Shoppers_) **AND** ( _Carted Kitchen Appliances_ **OR** _Kitchen Category Purchasers_)

Excluded segments are always evaluated as a flat deny list: if a user matches _any_ excluded segment (for example, _Discount-Only Shoppers_ or _Clearance Category Purchasers_ above), the Ad is not eligible, regardless of categories.

> 📘
>
> Category-aware matching applies only to _included_ segments. Excluded segments ignore categories — any match excludes the Ad.

## Include and exclude segments on Flights

### API

To include and exclude segments on Flights via the Management API, use [flight segment targeting rules](https://dev.kevel.com/reference/segment-targeting-rules-flight).

### UI

In the Kevel ad server UI, when user segment targeting is enabled for your network, you will see a "User Segment Targeting" panel when creating or editing a Flight. Here, you can include or exclude one or more segments.

The segment picker shows the segment name, its description, and a preview of the all-time and recent reach.

> 📘
>
> Up to 100 segments can be targeted on a Flight. This includes "include" and "exclude" targeting.

## Include and exclude user segments on Ads

### API

To include and exclude segments on Ads via the Management API, use [ad segment targeting rules](https://dev.kevel.com/reference/segment-targeting-rules-ad).

### UI

You can also add segment targeting rules on an Ad. When creating or editing an Ad, expand the "Delivery Settings" module and scroll to User Segment Targeting.

> 📘
>
> Up to 100 segments can be targeted on an Ad. This includes "include" and "exclude" targeting.

## Modify bids for certain user segments

### API

You can use [bid modifiers](https://dev.kevel.com/docs/bid-modifiers) to adjust an Ad's bid when a certain segment matches.

### UI

You can add segment bid modifiers to charge a dynamic rate based on user segment match. Select "segment" as the bid modifier type, choose your modifier, and save. Learn more in [bid modifier documentation](https://dev.kevel.com/docs/bid-modifiers).

# Decision requests for user segment targeting

When you include a user key in a request to the [Kevel Decision API](https://dev.kevel.com/reference/request), the decision engine:

- Examines the segments to which that user belongs based on their UserDB record
- Determines which candidate Ads are eligible for that user:
  - Ads with no segment targeting are always eligible.
  - Ads with include targeting are eligible when the user matches at least one included segment in _every_ category present on that Ad’s (or Flight’s) include list. See [How segments are matched](https://dev.kevel.com/docs/segment-targeting#how-segments-are-matched) for details.
  - Ads are not eligible if the user belongs to any of their excluded segments, regardless of include matching.

> 👍
>
> Ads with no segment targeting are eligible to serve with all segments.

There are two main approaches for specifying user keys in decision requests:

**Pass the user key only in the ADR**  
The easiest approach is to pass only the user key in the ADR within the user object. This approach relies upon the user key provided in the ADR, its presence in UserDB in relationship to segments, and the user segments themselves.

**Pass the user key and its segment membership in the ADR**  
For a more customized setup, you can also pass the segment membership of the user in the ad decision request. This will override any data that is already in UserDB, just for that decision request.

This approach can be useful when:
- Your backend application has more up-to-date data at the moment the ad decision request is made
- It is burdensome to maintain user record sync

NOTE: In this setup, the IDs of segments still must to match those in the system from step 1. However, users don’t need to be present in UserDB for this to work.

> 📘
>
> When passing a user key and its segment membership in an ADR:
> - Segments must be saved in the Kevel system and their IDs must match the Kevel records in order to be eligible for matching based on targeting or bid modification.
> - However, user records need not be present in UserDB.

# Reporting on matched user segments

## Reporting API & UI

Matched segment data in the Reporting API and UI is coming soon.

## Datashipping logs

Segment membership and matched segment data is present in [data shipping logs](https://dev.kevel.com/docs/data-shipping). Request logs include:
- The list of segments that a user belongs to at the time of the ADR
- Matched segments (the overlap of a user segment’s membership & the Ad’s targeting)
  - If multiple segments matched, then there will be a list of matched segments.

# Forecasting with user segment targeting & bid modification

Forecasting considers Ad Server segments across the Forecast API, the Availability widget where forecasts run on Flights that use user segments, and Yield Forecast where targeting sets can now select audience segments and Forecast Explorer enables breaking down by segment id. It will be available soon in the Forecast Explorer with segment names and as part of targeting filters.

# User segment targeting in Console

You can offer a subset of user segments for your Advertisers to target when setting up self-service Campaigns in [Kevel Console](https://www.kevel.com/console). Here's how:
- Your Kevel CSM will work with you to determine the segments to offer to Advertisers.
- These segments will be added to a draft Campaign and Flight in your Kevel network. This draft Campaign will determine the background settings for any Campaign your Advertiser creates in Console.
- When Advertisers use Console, they will see your selected subset of use segments and may choose to target all, some, or none of these.

More granular user segment controls are coming to Console soon, including targeting and bid modification controls.

Updated3 months ago
