Ad server
under your control

Servitory is an ad server for publishers who want to keep campaigns in their own hands. Who shows up, when, to whom, and on which device — you always decide.

Everything clearly in one place

Manage sites, positions, and campaigns from a simple admin. Instantly see how many ad calls, impressions, and viewable impressions there were.

Servitory
DashboardDataHealth

Total ad calls

1 284 500

Impressions

891 200

Viewable

634 400

Campaigns

SBillboard HP324 100
ASidebar pravý198 400
BMobile Banner87 200
CInterstitial12 800

Auction simulator

Billboard HP68 %
Sidebar pravý22 %
Mobile Banner10 %
10,000 simulated roundsLive test: 2 ms
Integration

On your site in 2 minutes

No npm, no bundler. Just add one script tag and insert positions wherever you need.

1

Add the script to <head>

One line loads the entire Servitory director for your site.

2

Insert positions into the page

Each ad position is just a <div> with a data attribute. Place it anywhere in your HTML.

3

Done

Ads load asynchronously. No layout shift, no render blocking.

Async loading

Non-blocking render

Device pre-filter

No unnecessary ad calls

Frequency capping

Via localStorage

Consent-aware

CMP integration

index.html
<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <title>Můj web</title>

  <!-- Servitory: jeden řádek -->
  <script src="https://cdn.servitory.com/director/
    abc123.js" async></script>
</head>
<body>

  <header>...</header>

  <!-- Reklamní pozice — jen div s id -->
  <div id="pos-leaderboard"></div>

  <main>...</main>

  <!-- Druhá pozice kdekoliv na stránce -->
  <div id="pos-sidebar"></div>

</body>
</html>
Waterfall & rotation

Tiers S→F with weighted rotation

Campaigns are divided into 7 tiers. Higher tier always wins — within a tier, weighted random rotation applies. Full control over priority and display frequency.

  • 7 priority levels: S → A → B → C → D → E → F
  • Weighted rotation within a tier (weights 1–100)
  • Daily, weekly, and total impression cap
  • Frequency capping per user via localStorage

Position: Main banner

3 campaigns active
SBillboard premiumw:10winner
ALetní kampaňw:7
ARetargetingw:3
CAdSense fallbackpassbackw:1
FHouse adw:1

Tier S wins. Remaining tiers await passback or no-fill.

Campaign targeting settings

Device

🖥️📱 Vše
🖥️ Desktop
📱 Mobil

Positions with device targeting are filtered in the browser — no unnecessary ad call

Traffic source

Běžná návštěvnost
🔴 Seznam.cz

Detection from UTM parameters and referrer, 30 min cookie

Tier

S
A
B
C
D
E
F

Impression cap

62 000 / 100 000
Targeting

The right ad to the right user

Each campaign has its own targeting — device type, traffic source, and impression limits. Positions not matching the device are filtered in the browser — no unnecessary server request.

  • Desktop / Mobile targeting per campaign and position
  • Client-side pre-filter — no ad call on device mismatch
  • Seznam.cz traffic (UTM + cookie 30 min)
  • Ad refresh on GDPR consent change
  • TCF2, Google FundingChoices, or custom CMP
Passback waterfallPro +

No wasted inventory

If a campaign has no fill, the system automatically moves to the next one. AdSense unfilled is handled automatically; any campaign can call passback manually via window.__TAD.passback().

  • Automatic passback on AdSense unfilled
  • Manual passback from any campaign
  • Sequential filtering — each step eliminates the previous campaign

Passback waterfall

[Servitory]📦 Batch fetch
[Servitory] Served
[Servitory]🔄 AdSense unfilled
[Servitory]🔁 Passback #1
[Servitory] Served
[Servitory]👁️ Viewable impression fired

All features

Simple, fast, and reliable ad server. No third-party cookies, no per-impression fees.

One line of code

Async JS snippet. No iframe, no dependency — the script loads itself and automatically discovers positions on the page.

Impression & viewable tracking

Batched fire-and-forget tracking. Viewable per IAB MRC (50% area / 2s). Flush every 5s and on page hide.

Impression & Frequency cap

Daily, weekly, or lifetime limit. Frequency capping per user via localStorage without third-party cookies.

Client-side device pre-filter

Positions with device targeting are filtered directly in the browser — no unnecessary ad call before the request is even sent.

Campaign scheduling

Start and end date. Campaign activates and deactivates automatically according to the calendar.

IAB formats & templates

16 standard IAB sizes. Ready-made templates: banner, native, video, Performax, Sklik, and more.

Auction simulator

Monte Carlo simulation (10,000 rounds) to estimate each campaign's win rate in the tier. Live HTTP test with latency measurement.

Lazy load

Lazy loading with adjustable offset. The ad loads just before entering the viewport.

GDPR & CMP integration

TCF2, Google FundingChoices, or custom CMP. Automatic ad refresh when user changes consent.

Programmatic (Prebid.js + GAM)

Header bidding via Prebid.js connected to Google Ad Manager. Programmatic auction complements direct campaigns.

Health & real-time performance

Latency p50/p95/p99, ad calls, impressions, and viewable per window (1/5/60 min). Auto-refresh every 10s.

How it works

Three steps from registration to displayed ad.

1

Add a site

Enter the domain, configure CMP, and create ad positions with standard IAB dimensions.

2

Set up campaigns

Insert HTML banners, configure tiers, weights, caps, targeting, and scheduling.

3

Insert the snippet

Copy the embed code and add it to your site. Ads will appear immediately.

Pricing

Start for free. Pay as you grow.

Free

0 Kč

free forever

  • 1 web
  • 10 pozic
  • 5 000 000 ad calls/měsíc
  • Všechny formáty
  • Targeting, capy, tiery
  • Passback waterfall
Request access
Most popular

Pro

1 990 Kč

per month

  • Neomezené weby
  • Neomezené pozice
  • 50 000 000 ad calls/měsíc
  • Passback waterfall
  • Email podpora

Scale

14 900 Kč

per month

  • Neomezené weby
  • Neomezené pozice
  • 500 000 000 ad calls/měsíc
  • Passback waterfall
  • Prioritní podpora

Enterprise

Na míru

individual contract

  • Neomezené vše
  • Vlastní SLA
  • Dedikovaná podpora
  • Onboarding & integrace
  • Faktura / přímá platba
Contact us

Ad call limit = a notification, not an ad outage. Upgrade anytime without interruption.

Interested in access?

Servitory is currently in closed beta. Request access — we'll get back to you as soon as possible.

Request access →