Optimization Guide
Contextual campaigns perform best when you let the data guide your decisions. This guide covers the philosophy behind contextual targeting, common pitfalls, and a practical workflow for improving segment performance over time.
Why contextual targeting works
Contextual targeting places your ad alongside semantically relevant content — reaching readers in the moment they're engaged with your topic. Unlike audience targeting (which follows users based on past behavior), contextual:
- Reaches the right mindset — the reader is actively engaged with relevant content
- Works without cookies or device IDs — no dependency on third-party tracking or user consent
- Scales across the open web — any page with relevant content is a potential impression
Built-in quality filtering
Every Classify segment is automatically filtered to exclude low-quality inventory. This includes:
- Made-for-Advertising (MFA) sites — pages designed to generate ad revenue with minimal original content
- Bot-heavy domains — sites with disproportionately high non-human traffic
- Thin or duplicated content — pages that don't offer meaningful context for ad placement
This means you don't need to layer on separate brand safety vendors, exclusion lists, or manual inventory curation. The segment already does that filtering. Adding more brand safety restrictions on top only narrows your reach without meaningfully improving quality.
Less is more
Most underperformance in contextual campaigns comes from too many targeting restrictions, not too few. Each filter you add compounds with the others, rapidly shrinking the pool of available impressions.
Common restrictions that hurt performance
Inventory allowlists — You've already curated inventory by choosing a contextual segment. Adding an allowlist on top means you're only bidding on the intersection of two curated lists. The overlap is often tiny.
Strict geographic targeting — Contextual content is published globally. A page about EV technology on a UK publisher is just as relevant as the same content on a US publisher. If your campaign allows it, start with broader geo targeting and narrow based on performance data.
Audience overlays — Layering a cookie-based audience segment on top of a contextual segment means you're only bidding when both conditions are met — the page matches your topic AND the user matches your audience profile. This defeats the purpose of contextual targeting and dramatically reduces scale.
Narrow device targeting — Mobile web often accounts for the majority of available contextual inventory. Restricting to desktop or specific devices (e.g., "iPads only") removes a large portion of your addressable supply.
The fix: Start with the contextual segment as your only targeting layer. Run the campaign for a week, review the data, and then make targeted adjustments based on what you actually see — not assumptions about what might go wrong.
The sections below cover the other side of the coin: once you have delivery data, how to actively refine and expand your segment for better results.
Explore adjacent content
Don't limit yourself to exact-match content. Some of the strongest performing placements come from adjacent topics that you might not have considered initially.
For an electric vehicle campaign, this could mean:
- Sustainability and renewable energy content
- Personal finance pages about car buying
- Technology review sites covering new gadgets
- Urban planning and transportation policy articles
Readers of adjacent content are often just as receptive to your message because the topic is relevant to their broader interests, even if it's not an exact match.
Use the Segment Optimization API to test this. Pass high-performing domains from adjacent verticals into the expand section, and Classify will find similar content to add to your segment:
curl -X POST "https://api.clsfy.me/v1/clsfy/optimizations" \
-H "X-API-Key: <your_api_key>" \
-H "Content-Type: application/json" \
-d '{
"segment_id": 61,
"expand": {
"domains": ["renewableenergyworld.com", "treehugger.com"]
}
}'
Track conversions to optimize spend
The most effective optimization is driven by conversion data, not just click-through rates. Set up the Classify pixel with the campaign_optimization use case to track where your ads are actually driving results.
- Register a pixel campaign with
use_case: "campaign_optimization" - Attach the pixel to your creatives as a tracking tag
- After your campaign has been running for at least a week, pull a performance report with domain-level breakdown
The domain breakdown shows you which publishers are driving the most impressions, highest CTR, and best eCPM. This tells you where your budget is being spent most efficiently.
Optimization workflow
Here's a practical step-by-step for optimizing a running campaign:
1. Pull a performance report
Request a report with domain and date dimensions to see daily trends by publisher:
curl -X POST "https://api.clsfy.me/v1/clsfy/reports" \
-H "X-API-Key: <your_api_key>" \
-H "Content-Type: application/json" \
-d '{
"segment_ids": [61],
"start_date": "2026-03-01",
"end_date": "2026-03-07",
"dimensions": ["date", "domain"]
}'
2. Review domain-level CTR
Look for two things:
- Top performers — domains with above-average CTR and meaningful impression volume. These are your best placements.
- Underperformers — domains with high impression volume but very low CTR or irrelevant content. These are dragging down your averages.
3. Submit an optimization request
Use the Segment Optimization API to expand toward high performers and block low performers in a single request:
curl -X POST "https://api.clsfy.me/v1/clsfy/optimizations" \
-H "X-API-Key: <your_api_key>" \
-H "Content-Type: application/json" \
-d '{
"segment_id": 61,
"expand": {
"domains": ["electrek.co", "insideevs.com"]
},
"block": {
"domains": ["low-quality-site.com"],
"keywords": ["clickbait", "listicle"]
}
}'
4. Wait for propagation
The segment updates within 2–3 hours. However, DSP and SSP-side filters may take up to a week to fully phase out old inventory. Don't expect an overnight change — let the optimization settle before pulling another report.
5. Monitor and repeat
Pull another report after 5–7 days and compare against the previous period. Continue the cycle: expand what works, block what doesn't. Over time, the segment becomes increasingly tuned to your campaign's goals.