Solutions
Delivery shaped around the screen it lands on.
Mobile, CTV, OTT and video put different demands on an ad server. Below are the workflows AdStack is built to handle, and what each one involves in practice.
Mobile
Mobile apps: change delivery without shipping a build.
In-app inventory is the most fragmented of the four. Many app versions are in the field at once, networks vary, and a release can take days to reach users. Keeping decisioning and tracking on the server side means a change to weighting, geography or creative is a configuration change, not an app update.
AdStack serves in-app video and display placements for app developers and publishers, and handles requests coming straight from an app or from a mediation layer.

What a typical set-up covers
- Ad requests from the app or its mediation layer
- Server-side decisions on IP, geography and weighting
- Creative served from hosted CDN storage or passed to a wrapper
- Signed impression and event tracking
Connected TV
CTV: predictable creative on a screen that cannot buffer politely.
Viewers on a television sit back, use a remote and watch long ad pods. A creative that stalls is far more visible here than on a phone. AdStack is built to support CTV environments, including device and publisher workflows, with creative delivered from CDN infrastructure so files load from a nearby location.
It supports publisher and platform implementations across a broad range of connected-TV environments. How a given device or app runtime behaves still depends on the publisher's implementation, which is why we scope that early.

What a typical set-up covers
- Requests from a publisher's CTV app or player
- Pod-friendly creative delivery from the CDN
- IP-based geography and policy checks
- Independent trackers for delivery and quality
Device-level behaviour depends on the app runtime and the publisher's own implementation.
OTT
OTT: a layer beside your player and ad server, not a replacement.
Most streaming services already have a player, an ad server and a set of demand partners. Ripping that out is rarely the right answer. AdStack takes the requests you route to it, applies its delivery logic, and returns VAST-based responses with tracking attached.
It is designed for compatibility with common ad-tech integrations and wrappers, so it can take a particular job, such as controlled allocation or first-party hosting, without disturbing the rest of the chain.

What a typical set-up covers
- Your existing player and ad-server workflow stays in place
- Third-party VAST wrappers passed through and tracked
- Weighted allocation across campaigns or sources
- Event records you can reconcile against your own
Digital video
Digital video: VAST in, VAST out, with the tracking intact.
For web and in-app video players, delivery follows VAST. AdStack serves VAST responses, supports third-party wrappers and external ad-serving workflows, and records start, quartile and completion events so the viewing journey of an ad can be reviewed afterwards. The mechanics are on the platform page.
Wrapper chains are where tracking tends to fray. Keeping an independent tracker alongside the chain gives you a record that does not depend on every hop reporting correctly.

What a typical set-up covers
- VAST tag requests from web or in-app players
- First-party creative or third-party wrapper responses
- Start, progress and completion event tracking
- An independent record beside the wrapper chain
- Third-party trackers fired alongside
CDN delivery
First-party hosting, delivered through CDN infrastructure worldwide.
AdStack can host your ad content itself and deliver it through CDN infrastructure worldwide. Creative is stored once and served from the location nearest the viewer. You control the files, the paths and the replacement process instead of relying on someone else's host.
Hosting first-party is optional. If a campaign comes through a third party, the same delivery path can pass a wrapper through untouched.

What a typical set-up covers
- Hosted creative with stable, absolute URLs
- CDN delivery to viewers worldwide
- Replacement and rotation without changing tags
- Pass-through for third-party wrappers
Instant ad serving
Served from the nearest PoP, so the ad starts before the viewer notices.
An ad that takes two seconds to begin is an ad many viewers have already left. The fix is rarely a faster server. It is a shorter distance.

Request and decision
The player asks for an ad. AdStack applies geography and allocation rules and returns a VAST response whose creative URL points at the CDN.
Routed to a nearby PoP
The creative request is steered to a point of presence close to the viewer: a smaller edge PoP in or near their city where one exists, or a major PoP in the nearest hub.
Cache hit
If the file is already held there, it starts streaming at once. No long-haul trip to the origin, no waiting on a distant server.
Cache miss
The PoP asks a larger upstream PoP. If that one also lacks the file, a single request goes to the origin. Each PoP on the way keeps a copy, so the next viewer nearby gets a hit.
Smaller PoPs
They sit closer to viewers, often inside regional networks, which gives the shortest path to the screen. Each holds less content, so a file that is rarely requested may be fetched from one level up.
Major PoPs
Larger hubs with more capacity and a deeper cache. They absorb misses from the smaller PoPs around them and keep repeat requests away from the origin. Exact coverage and tiering depend on the CDN in use.

Video streaming
Video that starts on the first chunk, not the last.
For video, the creative is delivered in a streaming-friendly form: either a progressive file or short segments over HLS or DASH. Playback begins once the first segment arrives instead of after a full download. Which form is used depends on the player and is agreed during scoping.
What streaming delivery covers
- Progressive files or short segments, depending on the player
- Several bitrates, so the player can match the viewer's connection
- Files requested ahead of launch where the CDN supports it, so the first viewers hit cache
- The same signed trackers whichever delivery form is used
Decisioning
Decisioning: who sees what, and from where.
Before an ad goes out, AdStack looks at the request. MaxMind IP intelligence supports IP detection and geographic or policy decisions. Weighted allocation divides delivery between campaigns in the proportions you set. Fraud signals can limit or flag requests that look wrong.
Each control is configurable per integration, and the logic is described in detail on the platform page.

What a typical set-up covers
- IP detection and geographic rules
- Weighted split between campaigns
- Fraud-signal checks at request time
- Policy outcomes recorded with the event
Who it fits
Different teams use the same layer for different jobs.
- Publishers and OTT platforms
- Run delivery and tracking beside an existing player and ad server, with first-party hosting where it helps.
- App developers
- Serve in-app placements and adjust delivery server-side, without waiting for release cycles.
- CTV operators
- Deliver creative reliably to connected-TV environments and keep a verifiable record of what played.
- Ad networks
- Divide delivery between sources in set proportions and reconcile against an independent tracker.
- Advertisers
- Place campaigns on chosen screens and regions, then inspect signed delivery and event data.
- Ad-tech teams
- Take a specific component, such as signing, hosting or geography checks, and fit it into your own pipeline.
How an engagement runs
From first conversation to live traffic.
The steps are short on purpose. Most of the effort sits in mapping your current ad stack correctly, not in the build.
Scope
We agree the environment, current ad stack, expected monthly ad request range and what has to stay untouched.
Map the workflow
Which requests route to AdStack, where creative is hosted, which trackers fire and who reconciles them.
Test on a limited path
Run a controlled slice of traffic, check signatures and counts against your own records.
Go live and watch
Widen the traffic, with fraud signals and tracker comparisons reviewed along the way.
Not sure which workflow matches your set-up?
Describe your environment and we will tell you plainly whether, and how, AdStack fits.