How Zurla works
Auctions
under 100 ms.
Zurla, a large language model made for advertising, takes every ad request through five steps in under 100 ms: consent, checks, price, auction and report. Here’s one, step by step, and why its ad won.
One ad request, start to finish
Illustrative data
On a websiteZurla SDK
On a website: consent at 0 ms, checks at 5 ms, price at 9 ms, auction at 68 ms, and the ad is in its slot at 74 ms.
In an appInterstitial
In an app: consent at 0 ms, checks at 12 ms, price at 16 ms, auction at 74 ms, and the winning bid is back in the app at 94 ms.
- ConsentChoices read
- ChecksBots and brand rules
- PriceFloor set
- AuctionEvery buyer at once
- ReportLogged with what it earned
Plain words
Six words that explain
every auction.
- Auction
- A contest for one ad slot, held the moment the slot is about to show. Buyers bid, and the highest bid that meets your rules wins.
- Bid
- A buyer’s offer for that one ad, stated as a price per 1,000 views. Each buyer decides on its own what the ad is worth to it.
- FloorAlso called: price floor, reserve price
- The minimum price you accept for the slot. In the open auction, every buyer gets the same one. More in Price floors.
- Private dealAlso called: PMP, private marketplace
- A price agreed ahead with one buyer. It runs in the same auction, at the price in the deal.
- TimeoutAlso called: time limit, tmax
- How long buyers have to answer. Every buyer asked gets the same limit, and Zurla’s auctions finish in under 100 ms.
- Late answer
- A bid that arrives after the time limit. It doesn’t count in that auction, and it’s logged, so you can see who answers in time.
One ad request
Ask why any ad won.
Zurla walks you through it.
Every ad request runs the same five steps on Zurla’s RTB (real-time bidding) infrastructure: consent, checks, price, auction and report, in under 100 ms. Ask Zurla why an ad won, or tap a step to see the standards behind it.
Ad in its slot
Why did the Tovrin & Co. ad win the feed slot just now?
It beat four other bids, from $2.10 to $3.10, over your $1.80 floor (the minimum you accept). Here’s the whole request: 74 ms from your page reaching me to the winning ad going back.
- Consent: read the reader’s choices (IAB TCF v2.3)
- Checks: known bots filtered, your brand rules met
- Price: floor set toward your goal, the same for every buyer
- Auction: a private deal (a price agreed ahead with one buyer) won at $3.40 per 1,000 views
- Report: logged with what it earned
Ad in its slot
Step 01
Consent
Zurla reads the choices the reader made in your consent tool, through the SDK or Prebid, before anything is sent. Over OpenRTB, your auction passes them in each request.
- IAB TCF v2.3
- Consent from your consent tool for readers in Europe and the UK
- GPP
- US state privacy choices
- Global Privacy Control
- The browser’s “don’t sell or share” signal is honored
- No consent for personalized ads
- Ads chosen from the page, not the person
- Children’s pages
- Flagged (COPPA), no personalized ads
Step 02
Checks
Before any of Zurla’s buyers see the request, Zurla filters out known bots and checks the page against your brand-safety rules.
- Invalid traffic
- Known bots filtered before the auction (GIVT), with deeper checks (SIVT) after the ad serves
- Page categories
- IAB Tech Lab Content Taxonomy
- Your blocklists
- Advertisers and categories you never want
- Ad scanning
- Creatives scanned for malware and forced redirects before they serve
Step 03
Price
On the SDK and hosted Prebid, Zurla sets a floor for this slot, on this page, right now, aimed at your goal. In the open auction, every buyer gets the same floor.
- Floors
- Per request on the SDK and hosted Prebid; as floor rules through the Price Floors module on Prebid; your own floors when Zurla just bids or gets OpenRTB requests
- Speed budget
- Applied to every auction Zurla runs, on the SDK and hosted Prebid
- Hard rules
- Minimum prices Zurla never goes under
Step 04
Auction
Premium buyers and the deals you set up through Zurla bid at the same moment, inside the same time limit. Every request carries its full supply path, a short, direct route to your site, which is what buyers look for.
- Time limit
- The same for every buyer. A bid that arrives late is logged and doesn’t count
- OpenRTB 2.6 and Native 1.2
- The formats buyers already use
- Deals
- Open auction, private deals and fixed-price deals, all in one place
- ads.txt
- Your line for Zurla marks a direct relationship
- sellers.json and supply chain
- Zurla lists you as the seller, and each request carries its supply chain
{
"source": {
"schain": {
"ver": "1.0",
"complete": 1,
"nodes": [{ "asi": "zurla.com", "sid": "ZRL-000000", "hp": 1 }]
}
}
}
Step 05
Report
The winning ad goes back to its slot and is logged with what it earned.
- Sealed ads
- Banners run in a sealed frame that can’t read or change your page. Native ads are drawn from plain parts, and any tracking script a buyer sends runs in a sealed frame, or is refused.
- Viewability
- Counted the way buyers count it (MRC): half the ad on screen for at least one continuous second, or 30% for large ads such as 970×250
- Auction log
- Every bid, when it arrived and how it did, by buyer
- Live reports
- By site, section, slot, format and buyer
- Change log
- What Zurla changed, why and what it earned, with one-click undo
Illustrative data
Winning bid back in your app · 94 ms
Illustrative data
What happens when Brindle Blocks asks for a level-break ad?
Here’s one, timed from your app’s call. The winner waits on the device for the break:
- Read the player’s consent and tracking answers · 0 ms
- Screened for known bots, checked your blocklists · 12 ms
- Set the floor (minimum price) at $8.50 · 16 ms
- Ran the auction, every buyer at once · 74 ms
- Winning bid back in your app · 94 ms
Winning bid back94 ms
IAB TCF v2.3: the ad industry standards body’s consent framework.
Illustrative data
Step 01
Consent
Before any request goes out, Zurla reads the choices stored in your app: the answer to Apple’s tracking prompt, your consent tool’s answers, and whether the app or user is child-directed.
The standards behind it
- ATT (App Tracking Transparency)
- Apple’s prompt asking whether an app may track a person across other companies’ apps and websites. Your app shows it if you choose; Zurla reads the answer
- IAB TCF v2.3
- The ad industry standards body’s consent framework for people in Europe, the UK and Switzerland, read from the keys your consent tool saves on the device
- GPP
- The Global Privacy Platform: US national and state privacy choices from the same consent tool; opt-outs of sale, sharing and targeted ads are honored
- Google UMP
- If Google’s User Messaging Platform is your consent tool, Zurla reads its saved answers the same way
- Children
- Child-directed requests carry the COPPA flag (COPPA is the US children’s online privacy law): contextual ads, no advertising ID
Step 02
Checks
Before any buyer sees the request, Zurla filters known bots and invalid devices and checks the request against your rules. Deeper checks for emulators, device farms and SDK spoofing run after the ad serves, and traffic they flag is kept out of later auctions.
The standards behind it
- Invalid traffic
- Known bots and invalid devices filtered before the auction (GIVT, general invalid traffic), with deeper checks after the ad serves (SIVT, sophisticated invalid traffic) for emulators, device farms and SDK spoofing (fake requests that pretend to come from a real app)
- App identity
- Your bundle ID and store listing, matched to your app-ads.txt (a public file on your developer website that tells buyers who may sell your ad space)
- Age rating
- Ads held to what suits your app’s age rating
- Your blocklists
- Advertisers, categories and competing apps you never want to promote
- Ad scanning
- Creatives scanned for malware and forced redirects, including jumps to an app store without a tap
Step 03
Price
Your caps were already checked on the device. Zurla sets a floor (the minimum price a bid must meet) for this placement, format and country, aimed at your goals.
The standards behind it
- Floors
- Set per request by placement, format and country; in the open auction, the same floor for every buyer, and private deals carry the price agreed in the deal
- Caps and pacing
- Counted on the device, so they work without an advertising ID. Pacing applies when an ad would show, so a preloaded ad waits if it’s too soon
- Hard rules
- Minimum prices Zurla never goes under
Step 04
Auction
Buyers bid at the same moment, inside the same time limit: no waterfall, no tiers. Zurla builds each request from the SDK’s call, with its full supply path: a short, direct route to your app, which is what buyers look for.
Your app calls the SDK; Zurla builds this request for buyers. You never write or send it.
{
"app": {
"bundle": "<App Store ID>",
"storeurl": "<App Store URL>",
"publisher": { "id": "ZRL-000000" }
},
"imp": [{
"id": "1",
"tagid": "level_complete",
"instl": 1,
"secure": 1,
"bidfloor": 8.5,
"bidfloorcur": "USD",
"banner": { "w": 320, "h": 480, "api": [6, 7] }
}],
"source": {
"schain": {
"ver": "1.0",
"complete": 1,
"nodes": [{ "asi": "zurla.com", "sid": "ZRL-000000", "hp": 1 }]
}
}
}
app.bundle names your app (the App Store ID on iOS, the package name on Android). instl marks a full-screen ad, rwdd one where the player earns a reward for watching, bidfloor the floor from the Price step, and schain a direct path to your app.The standards behind it
- OpenRTB 2.6 and Native 1.2
- The formats buyers already use, with an app object that names your app. Zurla builds the request; your app never sends one
- instl and rwdd
- Tell buyers an ad is full screen, or that the player earns a reward for watching it
- VAST, MRAID and OM SDK
- The IAB standards for video ads, interactive ads and measuring whether ads were seen
- app-ads.txt
- Your line for Zurla marks a direct relationship
- sellers.json and supply chain
- Zurla lists you as the seller, and each request carries its supply chain
- SKAdNetwork
- iOS requests list the attribution IDs your app supports, so advertisers can measure installs without identifying anyone
Step 05
Report
The winning ad waits on the device until its moment. At the next natural break, if your caps allow, it shows full screen with an Ad label, a clear close button and a Report ad option. Each ad is logged with what it earned.
The standards behind it
- Impression-level revenue
- What each ad earned, sent to your analytics so you can see ad revenue per user and the return on your user-acquisition spend
- Reward check
- Signed server-side callbacks confirm each reward to your server
- Viewability
- Measured with the IAB Tech Lab’s OM SDK (Open Measurement), counted to the guidelines of the MRC (Media Rating Council) that buyers use
- Auction log
- Every bid, when it arrived and how it did, by buyer
- Change log
- What Zurla changed, why and what it earned, with one-click undo
Reference
Five steps,
at a glance.
The same five steps run on every request, on a website or in an app. Each time shows how far into the request the step happens, counted from the moment the request reaches Zurla.
| Step | What happens | Website | App | Standards |
|---|---|---|---|---|
| 01Consent | Zurla reads the choices people made in your consent tool, before anything is sent. | 0 ms | 0 ms | IAB TCF v2.3, GPP, COPPA |
| 02Checks | Known bots are filtered, and the request is checked against your brand rules. | 5 ms | 12 ms | Invalid traffic (GIVT), IAB Tech Lab Content Taxonomy |
| 03Price | Zurla sets a floor for this slot, right now, aimed at your goal: the same floor for every buyer. | 9 ms | 16 ms | Floors, your hard rules |
| 04Auction | Buyers bid at the same moment, inside the same time limit, and the highest bid that meets your rules wins. | 68 ms | 74 ms | OpenRTB 2.6, Native 1.2, ads.txt and sellers.json, SupplyChain |
| 05Report | The winning ad goes back to its slot, and every bid is logged with how it did. | 74 msAd in its slot | 94 msWinning bid back; the ad shows at the break | MRC viewability, auction log |
Illustrative data · website on the Zurla SDK, app interstitial
Fair by design
Same rules
for every buyer.
Every auction Zurla runs keeps four rules, on the SDK, through Prebid and over OpenRTB. Buyers know where they stand, so they bid what an ad is worth to them.
-
The same floor for every bidder
In the open auction, every buyer gets the same floor (the minimum price a bid must meet), including Zurla when it bids in your Prebid setup.
-
No last look
No buyer sees another’s bid before it bids. Zurla uses past bids to set floors, and never to price its own bid.
-
Private deals at their agreed price
A private deal carries the price agreed with its buyer, and it runs in the same auction, inside the same time limit.
-
A full auction log
Every bid, when it arrived and how it did, by buyer: the winner, the bids it beat and any late answer. A buyer is never dropped without your approval.
Auction logPellbrook Media · feed slot
Floor, the same for every bidder$1.80
| Bidder | Bid | Arrived | Result |
|---|---|---|---|
| Private dealTovrin & Co. | $3.40 | 31 ms | Won |
| Buyer A | $3.10 | 38 ms | Outbid |
| Buyer B | $2.75 | 44 ms | Outbid |
| Buyer C | $2.40 | 52 ms | Outbid |
| Buyer D | $2.10 | 58 ms | Outbid |
| Buyer E | — | Late | Not counted |
Illustrative data
Guide
Auction timeouts,
explained.
A timeout is the time buyers get to answer. Here’s who sets it, what happens to a late answer, and why asking every buyer at once keeps auctions under 100 ms.
From the ad request to the winning bid
One after anotherA bidding round, then a waterfall of price tiers
About 1.5 s
Every buyer at onceZurla’s auction
94 ms
What a timeout is
When an ad slot is about to show, Zurla sends a bid request to its buyers, and each one gets a time limit to answer. Every buyer asked gets the same limit, so no one is waited on longer than the rest.
Who sets it
- On the Zurla SDK and hosted Prebid: Zurla does, inside the speed budget you approve, and its auctions finish in under 100 ms.
- In your own Prebid setup: your Prebid timeout is your setting, and Zurla answers inside it.
- Over OpenRTB: your platform sends its limit with each request (the
tmaxfield), and Zurla answers inside it.
What happens to a late answer
It doesn’t count in that auction. The auction closes on time, the bids that arrived compete under the same rules, and the late answer goes into the auction log by buyer, so you can see who answers in time.
Why every buyer at once
A waterfall asks one source after another, so a buyer in a lower tier can miss an ad it would have paid more for. Zurla asks every buyer at the same moment: the auction stays short, and every bid gets its chance.
Questions
Good to know.
What happens when a buyer answers late?
The auction closes on time without that bid. Every buyer gets the same time limit; a late answer is logged by buyer and doesn’t count in that auction. More in Auction timeouts, explained.
How fast is an auction on Zurla?
Zurla’s auctions finish in under 100 ms, on Zurla’s RTB (real-time bidding) infrastructure. On this page, a website’s ad is in its slot at 74 ms, and an app’s winning bid is back at 94 ms.
Can a buyer see the other bids?
No. No buyer sees another’s bid before it bids (no last look). Zurla uses past bids to set floors, and never to price its own bid when it bids in your Prebid setup.
Does a private deal skip the auction?
No. A private deal carries the price agreed with its buyer and runs in the same auction, inside the same time limit, so the auction log shows what won and why.
Is it the same through Prebid or OpenRTB?
On Zurla’s side of the bid, yes: the same steps run before Zurla bids, under the same rules. In your Prebid setup, your ad server still picks the final winner. See Works with Prebid and OpenRTB 2.6.
Who sets the floor?
On the SDK and hosted Prebid, Zurla sets it for each request, aimed at your goal and never under the minimum prices you set. See Price floors.
Can I see why any ad won?
Yes. Ask Zurla in chat, as above, or open the auction log: every bid, when it arrived and how it did, by site, slot, format and buyer.
Every auction in under 100 ms.
Same rules for every buyer.
Book a demo, and we’ll show you Zurla, a frontier model built for advertising, running the auctions on your setup.