kevel
kevel

AdOps Certification

Complete this guided walkthrough to get certified in Kevel campaign setup. You'll configure real entities in your Kevel network and verify each step with the API.

Name is required.
API key is required.
A numeric Network ID is required.

🔒 Your API key is never stored or transmitted outside your browser session.

How Kevel's Campaign Hierarchy Works

Every ad that serves flows through four levels. Each level must exist before the next can be created.

Advertiser
The brand or client paying to have their ads shown
Campaign
A container grouping flights under a common theme or promotion
Flight ← key level
The core delivery unit — holds all targeting, pacing, and goal settings
Ad (Creative + Flight)
A Creative attached to a Flight and ready to serve
ℹ️
All delivery settings — start/end dates, targeting, goals, and pacing — live at the Flight level. Campaigns are just containers.

Before We Begin

Checking your network configuration via the API…

📋
You're working in a live Kevel network. Changes you make during this training are real. Use a test advertiser/campaign name to keep things tidy.
Step 1 of 5

Advertiser

Every campaign must be linked to an Advertiser. Let's confirm one exists in your network or walk you through creating one.

📋 How to create an Advertiser in the Kevel UI

1
In the top navigation, click Campaigns → Advertisers
2
Click New Advertiser
3
Enter the Name (required). All other fields are optional for basic setups.
4
Click Save, then come back here and click the button below.
📝
For most standard campaign setups, only the Name field is required. Optional settings (revenue caps, frequency capping, segment access) are for advanced configurations.
Step 2 of 5

Campaign

Campaigns are containers. All pacing, targeting, and delivery settings live at the Flight level — not here.

⚠️
Key reminder: Start and End Dates are NOT set at the Campaign level. They go on individual Flights.

📋 How to create a Campaign in the Kevel UI

1
Click Campaigns in the top navigation
2
Click New Campaign
3
Select your Advertiser from Step 1 (required)
4
Enter a Campaign Name — use a consistent naming convention, e.g. BrandName_Q2_Display
5
Click Save and note the Campaign ID from the URL

Validate your Campaign ID

Enter the Campaign ID (found in the URL after saving, or in the campaign list).

Step 3 of 5

Flight

Flights are the core delivery unit in Kevel. All targeting, pacing, scheduling, and goals live here. From your campaign detail page, click Add a Flight to this Campaign.

Reference guide to the key fields in the flight editor's General Settings section. Fields marked REQ are required to save.

FieldReq?Description
NameREQ Descriptive flight name. Convention: BrandName_Q2_Banner_Homepage. Max 300 chars.
Priority ?Lower weight number = higher priority. Default priorities: Sponsorship (1), Premium (5), House (20). Each weight must be unique per channel. REQ Which priority waterfall this flight competes in. Set at Inventory → Channels. Lower weight = served first.
Time ZoneNo Defaults to GMT (UTC). All Start/End Dates are interpreted in this time zone.
Start DateREQ When the flight begins serving. Set this — campaigns have no date field.
End Date ?Only leave blank for Percentage or Daily Revenue goal types — all other goal types require an end date. Cond. When the flight stops serving. Leave blank only for Percentage or Daily Revenue goals.
RateREQ How revenue is tracked: CPM, CPC, CPA View, CPA Click, CPA View & Click, or Flat.
PriceREQ Rate card value in USD. Set to 0 if not tracking revenue.
Goal Type ?Percentage = wins that % of impressions within its priority level, not across all inventory. REQ Delivery metric: Impressions, Clicks, Conversion, Percentage, Revenue, Daily Revenue, Monthly Revenue.
Goal AmountREQ Target value. E.g. 1,000,000 for impressions, or 75 for 75% of priority traffic.
Cap Type ?Caps are hard limits and do NOT control pacing. Caps can over-serve by ~2% in high-traffic. Don't set a cap reachable within one hour. No Optional hard cap: None, Impressions, Clicks, Conversions, or Revenue.
Daily CapNo Max Cap Type units per day. Leave blank for no daily cap.
Lifetime CapNo Max Cap Type units for the full flight duration. Leave blank for no lifetime cap.
📋
After saving general settings, use the left sidebar in the flight editor to configure targeting, frequency caps, geo, and other options.
Priority waterfall (default)
WEIGHT 1 (HIGHEST)
Sponsorship
Reserved / sold inventory
WEIGHT 5
Premium
High-value direct-sold
WEIGHT 20 (LOWEST)
House
Internal promos

All targeting options live in the left sidebar of the flight editor under "Configuration Options". All are optional unless required by the deal.

🔑 Keyword Targeting Common
+
Serve only when matching keywords are passed in the Decision API request.

Syntax:
• One keyword per line = OR logic
• Multiple keywords on the same line (comma-separated) = AND logic
• Prefix with ! to exclude (e.g. !competitor-brand)

⚠️ Use ! for exclusions — NOT -. Common mistake that prevents exclusions from working.
⚙️ Custom Targeting (Zerkel)
+
Target based on custom key-value pairs passed in the Decision API keywords or properties object. Uses Zerkel, Kevel's query language.

Example: user_type = 'premium' or age > 25 AND member = true

Also supports Reserved Keys for device type, OS, browser, and URL targeting. The key-value must be present in the API request for the expression to match.
🌍 Geo Targeting
+
Include or exclude users by location: Country → Region → Metro/DMA Code.

Important: Select Country first — Region and Metro/DMA options only appear after a country is selected. Multiple geo rules can be added.

⚠️ City and zip code are NOT available via this UI. For granular location targeting use Custom Targeting Reserved Keys. Distance targeting (radius from lat/long) requires a Business or Enterprise plan.
🌐 Site / Zone Targeting
+
By default, a flight serves across all sites and zones in the channel. Use this to restrict or exclude specific sites or zones.

Set Include/Exclude → search for a Site → optionally select a Zone → click Add. Multiple rules can be stacked. You can also override site/zone targeting at the individual Ad level via Delivery Settings.
🕐 Day Parting
+
Restrict delivery to specific hours or days of the week. Up to 10 time parts per flight. Time parts on the same flight cannot overlap.

Useful for campaigns targeting business hours, primetime, or weekend-only delivery windows.
🔁 Frequency Capping
+
Limit how many times a single user sees ads from this flight within a time window.

To configure:
1. Check "Enable frequency capping"
2. Set the Cap (max impressions per user)
3. Set the Time Period (minutes, hours, or days)

Optionally check "This flight should not affect the advertiser/campaign frequency cap" to exclude this flight's count from parent-level caps. Requires UserDB with persistent user keys.
👥 User Segment Targeting
+
Include or exclude specific user segments built in Kevel Audience or imported from a CDP. Up to 100 segments per flight.

Requires the User Segment feature to be enabled on your network. Contact your Kevel account team to enable this.
🎯 Behavioral Targeting
+
Exclude users who have already clicked or converted on ads from this flight or advertiser — retargeting exclusion.

Requires UserDB with persistent user keys. Useful for suppression lists and sequential messaging campaigns.

Enter your Flight ID to validate it exists and review its configuration.

Step 4 of 5

Creative & Ad

A Creative is the reusable content entity. An Ad is that Creative linked to a specific Flight, with targeting enabled and ready to serve. You attach ads from the flight page.

Creative
Reusable content: image, HTML, or template. Can be attached to multiple flights. Think of it as the master asset.
Ad
A Creative bound to a specific Flight. Has its own weight, targeting overrides, and activation state. This is what serves.

📋 How to attach a Creative / Ad to a Flight

1
Open your Flight in the Kevel UI
2
Scroll to the Ads section below General Settings
3
Click Create Ad
4
In Creative Details: select Format, set Ad Size, enter Click URL (all required). Provide an image via Upload OR File URL — not both.
5
Optionally expand Attribution Settings to override lookback windows for this ad
6
Optionally expand Delivery Settings to add ad-level targeting overrides (inherits flight targeting by default)
7
Click Save
Creative DetailReq?Notes
FormatREQImage, Javascript/HTML, or Custom Template
Upload or File URLOneUpload file (max 2MB) OR paste a hosted URL. Not both.
Ad SizeREQMust match the slot dimensions (e.g. 300×250)
Click URLREQDestination URL. Separate multiple URLs with newlines.
Friendly NameNoLabel for UI identification
Alt TextNoAccessibility text for the image
MetadataNoOptional JSON metadata passed with the creative
⏱️
It can take up to 5 minutes for a newly saved ad to begin serving. A flight can have multiple ads — each has its own weight. Higher weight = more impressions for that ad within the flight.

Confirm ads are attached

Enter your Flight ID to check how many ads are attached.

Step 5 of 5

Decision API Test

The Decision API is a public endpoint — no API key is required. It returns which ad to serve for a given placement request. Let's fire a test call to confirm your setup is working.

ℹ️
This call goes to https://e-{networkId}.adzerk.net/api/v2 — note it uses .adzerk.net, not .kevel.co. The X-Adzerk-ApiKey header is only for the Management API.

Fire the request

Loading your network values from the API…

Common Issues

Search or filter for issues. Click any row to expand the fix.

Certificate of Completion
This certifies that
has successfully completed
Kevel AdOps Certification
Campaign Setup & Delivery

To save as PDF: select "Save as PDF" as the printer, use portrait orientation, disable headers/footers.