For publishersNative + banner SDK, or works with Prebid

Add one script.
Then just ask Zurla.

Tell Zurla what you want in plain words, like more revenue while your pages stay fast. Zurla, the AI, does the daily work toward it: slots, buyers, floors (minimum prices) and tests. Start with one script, the Zurla SDK for native and banner ads, or keep your Prebid setup: Zurla works with it. On the SDK or a Prebid setup Zurla hosts, you need no ad ops team.

Ask Zurla

Our script and ads.txt line are in. Make our food pages pay, and keep them fast.

On it. I picked two spots that suit your pages, native in the feed and a banner in the sidebar, and held their space so nothing jumps. A private deal (a price agreed ahead with one buyer) won the feed slot’s auction.

  • Found your script and Zurla’s line in ads.txt
  • Native slot in your feed, labeled Sponsored
  • 300×250 banner in the sidebar
  • Auction run: consent read, known bots filtered, brand rules met

Live on 20% of food pages · undo in one clickWon at $3.40 per 1,000 views

Ask Zurla about your site
  • One script
  • Native + banner
  • Works with Prebid
  • Loads asynchronously
  • Reads your consent tool

Illustrative data

Once you’re live

No ad ops.
No optimization.
Just goals.

After install, running your ads is a conversation. You say what you want, and Zurla finds the route. On the SDK or hosted Prebid, it runs the daily work toward your goals: floors (minimum prices), buyers, formats, deals and tests. Zurla is a frontier large language model, built for advertising.

  • Tune floors and timeouts by handSet a goal in plain words
  • Wait on a developer to move an adAsk Zurla, and day-to-day changes go live with no new code
  • Guess which format earns moreNative or banner, tested slot by slot
  • Chase unsold ad spaceDirect deals found for your high-traffic pages
  • Build reports every MondayEvery change explained, with what it earned
  • Keep an ad ops team on callNo one on call: Zurla works through the night

Ask in the chat, and watch Zurla work.

Illustrative data

Chat

Ask anything about your revenue

Ask in plain words. Zurla answers from your own data, then does the work.

Zurla · Pellbrook Media Live

How are we tracking against the +15% goal?

On track. Here’s what moved it.

  • Raised floors on sports pages: +$0.42 per 1,000 views
  • New labeled native slot on recipe pages: +24% revenue per 1,000 views
  • Native beat the sidebar banner: +18% for native
  • Found 3 more opportunities, about $18,000 a month

Each change tested before rollout+11.2% of a +15% goal

Ask Zurla about your goals

Northstar

Goals, not settings

Tell Zurla the outcome. It finds the route and checks progress every hour.

+11.2%of a +15% goal

Radar

Money found before you ask

Every page, slot, format, buyer and price, watched around the clock.

3 opportunities$18,000 a month

Foresight

Sell the future with confidence

Traffic, demand and prices forecast months ahead.

7.2M viewsforecast for December

Forge

Workflows in plain words

Describe a task once. Zurla builds the workflow and runs it on schedule.

  1. Scan your slots
  2. Test native against banner on 20% of traffic
  3. Keep the winners
  4. Send sales a summary

Swarm

AI agents in every auction

Thousands of agents, every millisecond, all aimed at your goals.

1,284agents working right now

Zero

No ad ops team needed

Zero people on call tonight. On the SDK or hosted Prebid, Zurla handles setup, new buyers, tests and reports, day and night.

Run on Zurla

Tell Zurla how your site runs.
It picks your way in.

Answer one question, and Zurla points you to the Zurla SDK or to the Prebid setup you already run. Both reach the same buyers. On the SDK, Zurla runs the daily work; on Prebid, you choose how much it takes on.

Ask Zurla

Do you run header bidding today? That’s where several buyers bid for each slot as the page loads.

No, or not sure.

Then start with the Zurla SDK. You add it once; I serve native and banner ads and run the daily work, with no ad server (the tool that decides which ad shows) for you to manage.

Your way inZurla SDK

Tell Zurla how your site runs

Recommended if you’re not sure

One script in your page’s head, plus a tag wherever an ad should go. Zurla serves native and banner ads through it, asks premium buyers to compete for your slots and runs the whole setup. No ad server (the tool that decides which ad shows, such as Google Ad Manager) or header bidding for you to manage.

Sell your own campaigns in Google Ad Manager? Zurla can compete inside it, or run just the slots you give it.

Made forSites with no ad setup yet, or that want Zurla to run all of it.

  • Native + banner
  • Labeled Sponsored
  • Slots hold their space
  • Settings change without code

For header-bidding sites

Keep your setup. Zurla joins your Prebid.js or Prebid Server auction as a bidder, and your ad server picks the winner as it does today. Let Zurla set your price floors, or host your Prebid setup, and it runs the whole auction toward your goals. Teams with their own auction can connect over OpenRTB 2.6 (the industry’s bid-request standard).

Ask us about the Zurla adapter for Prebid.js and Prebid Server.

Made forSites that already run Prebid and an ad server.

  • Prebid.js
  • Prebid Server
  • OpenRTB 2.6
  • Works with your ad server
Zurla SDK Prebid / OpenRTB Buyers Zurla SDK Prebid / OpenRTB Buyers
  • Same AI
  • Same buyers
  • Same goals
  • Same safety rules
  • Same reports

Native + banner

Tell Zurla your style.
It draws your native ads to match.

Tell Zurla about your site, and it draws native ads (a headline, an image, the advertiser’s name) in your fonts, colors and layout, each one labeled Sponsored. Banners use the standard sizes buyers bid on, and your slots hold their space.

Zurla · Pellbrook Media Live

We redesigned our recipe pages. Make the native ads match, and keep them labeled.

Ready. Your native cards now match your new recipe design. Go live?

  • Read your new recipe template: fonts, corners, image shape
  • Redrew the in-article card and the sponsored story
  • Kept the Sponsored label on both cards

Yes, go.

Live now, side by side with the old style, so I can compare the two.

  • New style on 50% of recipe pages · undo in one click

Native style matchedReport on Friday

Ask Zurla about your ads

Illustrative data

Preview

Illustration: a fictional recipe article on pellbrook.example. A 728×90 banner runs across the top, a native ad labeled “Sponsored · Tovrin & Co.” sits between the paragraphs, one story in the “More to read” row is labeled “Sponsored · Fernwick Travel”, and 300×250 and 300×600 banners fill the right-hand column. In the phone view, a 320×50 banner with a close button runs along the bottom of the screen and a 300×250 sits in the text.

pellbrook.example/food/weeknight-pasta

Ask for a new style and Zurla redraws the native cards; the banners stay standard.

Illustrative · fictional site and brands

  • In-feed native

    Sits between the cards on your home and section pages, in your own card design.

  • In-article native

    One unit between paragraphs, sized to your text column. Good for long reads and recipes.

  • Sponsored stories

    A block of labeled sponsored stories at the end of an article, in your own card style.

  • Standard banners

    300×250, 300×600, 728×90, 970×250 and 160×600 on desktop; 320×50, 320×100 and 300×250 on phones. One slot can take several sizes, so more bids compete.

  • Sticky mobile banner

    A small banner along the bottom of a phone screen, with a close button. Kept under the industry’s Better Ads Standards limit of 30% of the screen’s height.

  • Native or banner, slot by slot

    Choose native, banner or either for each slot. When it’s either, Zurla tests both on a share of traffic and keeps the one that does more for your goals, inside your rules.

Every kind of publisher

Your site. Your way in.
Your goals.

Pick a site like yours and see how a typical moment with Zurla goes.

News and media

Breaking news, priced as it breaks

Zurla · News site

A story just broke and traffic is tripling.

Bids are climbing, so I raised your floors (the minimum bids you accept) on the story’s pages. I’ll ease off as traffic calms.

  • Raised floors on 20% of story traffic as the spike began
  • Widened the test as bids held
  • One click puts the old floors back

Spike priced

Ask Zurla
Typical setupProgrammatic integrationNative under stories
9 msto price each request as a story breaks
+31%per ad during the spike

Lifestyle and recipes

More slots sell, even far down the page

Zurla · Recipe site

Can the ads at the bottom of our recipes earn more?

Yes. Buyers pay more for ads that readers actually see. Here’s what I changed.

  • Lower ads now load as readers get close
  • Added a labeled native card between steps
  • On 20% of recipe pages · undo in one click

Lower slots earning more

Ask Zurla
Typical setupZurla SDKIn-article nativeBanners down the page
+22%lower-page ads sold
0.4 sfaster page load

Sports and live events

Ready for game day

Zurla · Sports site

Big game Sunday. Are we ready?

Yes. I’ve planned the whole day, the same way as your last big game.

  • Floors up 1 h before kickoff, on 20% of game traffic
  • Halftime priced for the rush
  • Back to normal after the final whistle · undo in one click

Ready for game dayLast big game: +18%

Ask Zurla
Typical setupPrebid Server + ZurlaSticky mobile banner
1 hbefore kickoff, floors go up
+18%game-day revenue

Communities and forums

Fewer ads for regulars, more earned per ad

Zurla · Forum

Show our regulars fewer ads, and keep revenue growing.

Goal set. I’ll show them fewer ads that each earn more.

  • 20% fewer ads per visit for regulars
  • Labeled native cards between posts, with higher floors
  • Testing on a fifth of regulars · undo in one click

Test runningRevenue checked every hour

Ask Zurla
Typical setupZurla SDKIn-feed native
20%fewer ads per visit
+35%earned per ad

Independent publishers

A whole revenue team from day one

Zurla · Your site

It’s just me. Can you run the ads?

Yes. Add one script, and I’ll do the work a team would: floors, buyers, tests and reports.

  • Found your script: 1 line in your page’s head
  • Labeled native + banner live on 20% of pages · undo in one click
  • Report every Friday

Running for you0 people to hire

Ask Zurla
Typical setupZurla SDKNative + banner
1script to add
0people to hire

Publishing groups

One AI across every site

Zurla · 40 sites

How are our 40 sites doing against their goals?

All on track, with the news site ahead of goal. I’m testing two new ideas on the recipe site to grow it faster.

  • News site: ahead of goal
  • Sports site: on track
  • Recipe site: two growth tests on 20% of traffic · undo in one click

40 sites, 1 viewGoals and rules per site

Ask Zurla
Typical setupSDK and Prebid, mixedGoals and rules per site
40sites, one AI
1view of every goal

Illustrative data

For your developers

Zurla writes the code.
You paste it once.

Ask Zurla for your code, paste it once and add Zurla’s line to your ads.txt file (the public list of who may sell your ad space). Buyers’ systems pick up the new line within a few days. After that, on the SDK or a Prebid setup Zurla hosts, day-to-day changes are one sentence to Zurla, not a ticket for your developers.

Zurla · Pellbrook Media

Write our install code for pellbrook.example.

Here it is, with the two spots I picked for you. Paste it once, and keep your consent tool live: I read it, I don’t replace it.

  • Wrote the script line for your page’s head
  • Wrote a native tag for home-feed-2
  • Wrote a banner tag for the sidebar: 300×250 or 300×600
  • Added your ads.txt line, marked DIRECT

Code readyPaste once, plus 1 line in ads.txt

Ask Zurla for your code

Illustrative data

Written by Zurla
<!-- 1. Once, in your page's <head>. Loads asynchronously, -->
<!--    so your content doesn't wait for it. -->
<script async src="https://sdk.zurla.com/v1/zurla.js"
        data-zurla-publisher="ZRL-000000"></script>
<!-- 2. In your page body, exactly where the ad should appear -->
<!-- Native: the SDK sizes it from your approved template; -->
<!--    the space is held -->
<div data-zurla-slot="home-feed-2" data-zurla-format="native"
     style="min-height:320px"></div>
<!-- Banner: either size can win; space for the taller -->
<!--    one is held so nothing jumps -->
<div data-zurla-slot="sidebar"
     data-zurla-format="banner"
     data-zurla-sizes="300x250,300x600"
     style="min-height:600px"></div>
<!-- Phones, optional: data-zurla-sizes="320x50,320x100" -->
<!--    data-zurla-sticky="bottom" -->
// Illustrative: the Zurla adapter is coming to Prebid.js and
// Prebid Server; bidder code and params are placeholders.
// Already run Prebid? Add just the marked { bidder: 'zurla' }
// lines to your ad units; the rest shows a typical setup.
var pbjs = pbjs || {};
pbjs.que = pbjs.que || [];
var adUnits = [{
  code: 'sidebar',
  mediaTypes: { banner: { sizes: [[300, 250], [300, 600]] } },
  bids: [{ bidder: 'zurla', params: { publisherId: 'ZRL-000000' } }]
}, {
  code: 'home-feed-2',
  mediaTypes: { native: { ortb: { assets: [
    { id: 1, required: 1, title: { len: 90 } },
    { id: 2, required: 1, img: { type: 3, wmin: 600, hmin: 314 } },
    { id: 3, required: 1, data: { type: 1 } }   // advertiser name
  ] } } },
  bids: [{ bidder: 'zurla', params: { publisherId: 'ZRL-000000' } }]
}];
pbjs.que.push(function () {
  pbjs.setConfig({
    // needs the consentManagementTcf and consentManagementGpp modules in your Prebid build
    consentManagement: {   // consent tool wait times (placeholders)
      gdpr: { cmpApi: 'iab', timeout: 3000 },   // IAB TCF v2.3
      gpp:  { cmpApi: 'iab', timeout: 3000 }    // GPP, including US states
    }
  });
  pbjs.addAdUnits(adUnits);
  pbjs.requestBids({
    bidsBackHandler: function () { /* send bids to your ad server, as your Prebid setup does today */ }
  });
});
# https://pellbrook.example/ads.txt
# Paste the exact line from your Zurla account. The ID below is illustrative.
zurla.com, ZRL-000000, DIRECT

The line, field by field

zurla.comZurla’s domain

ZRL-000000Your account ID

DIRECTA direct relationship

Zurla’s scriptHTML · 20 linesWritten by Zurla

Snippets are illustrative. Your real IDs come with your account.

  1. 01

    Ask Zurla for your code

    Zurla writes the SDK script and a slot tag for each ad, or marks the ‘zurla’ entries for your Prebid setup. Paste it once; many site builders have a box for header code. Keep a consent tool live for readers in Europe and the UK, and an opt-out choice where US state laws need one; Zurla reads it, it doesn’t replace it.

  2. 02

    Add Zurla’s line to ads.txt

    ads.txt is the public file that tells buyers who may sell your ad space. Zurla’s line marks a direct relationship, so buyers bid with confidence.

  3. 03

    Tell Zurla your goals

    Revenue, page speed, direct sales, brand safety. Say what matters, in plain words.

  4. 04

    Start in approval mode

    Zurla starts on a share of your ad slots and asks before each change goes live. Changes that affect revenue are tested on a share of traffic, and any change can be undone in one click. Say ‘go hands-free’ when you’re ready.

Programmatic integration

Already run Prebid? Keep it.
Tell Zurla how much to run.

Prebid is the free, open-source code many sites use for header bidding: it asks several buyers for a price at once, before your ad server picks the winner. Zurla joins that auction as a bidder through its adapter, coming to Prebid.js and Prebid Server, so your current buyers stay and your ad server keeps the final say. Then you tell Zurla how much of the auction to run.

How much Zurla runs

Ask in the chat, or pick a level

  • No last look: Zurla never sees other bids before it bids.
  • Your ad server always picks the final winner.
Zurla · Your Prebid setup Live

We run Prebid with four buyers. Can you set our price floors and leave the rest alone?

Yes. I wrote the one setting that lets me set your floors (the minimum price a bid must meet); your developer adds it once. From then on, each slot’s floor is the same for every bidder, me included.

  • Read a week of your Prebid bids, through the analytics setting you turned on
  • Wrote the floors setting for your Prebid setup
  • Set a $1.60 floor on the sidebar
  • Testing on 20% of page views · undo in one click

Level 2 · Floors set by ZurlaYour bidders and timeouts unchanged

Ask Zurla about your Prebid setup

Illustrative data · bids per 1,000 views

Level 1

Zurla as a bidder

Zurla joins Prebid.js or Prebid Server as a bidder, with a ‘zurla’ entry in each ad unit. It bids on your banner and native slots with premium demand and the private deals you set up through Zurla. Your setup decides everything else.

Level 2

Zurla sets your floors

Point Prebid’s Price Floors module at Zurla. It’s one setting, if your Prebid build includes the module. Zurla then sets the minimum price for each slot, size and format toward your goals, with no code release.

Level 3

Zurla runs your header bidding

Zurla hosts your Prebid build and its settings: timeouts, which buyers are asked, refresh rules (when a slot can show a new ad). Same ad units, same ad server line items. Zurla tunes all of it toward your goals.

Levels 2 and 3The same floors for every bidder, including Zurla, and no last look: no bidder sees the others’ bids before it bids. Zurla uses other bidders’ bids to set floors and never to price its own. A bidder is never dropped without your approval, and you get a full auction log by bidder.

Works with Google Ad Manager

Zurla’s bids reach Google Ad Manager through Prebid’s standard key-values (short labels such as hb_pb=2.40 that tell your ad server the price), and your own direct campaigns keep the priority you set.

Server-side auctions

Already on Prebid Server? Zurla can bid there too, so pages stay light as more buyers join.

Your own auction

Publishing groups with an in-house auction can send bid requests in OpenRTB 2.6 (the industry’s bid-request standard), banner and Native 1.2, straight to Zurla’s endpoint.

prebid-config.js
// Illustrative: Zurla sets your floors through Prebid's Price Floors module;
// the floors URL and fallback values are placeholders.
var pbjs = pbjs || {};
pbjs.que = pbjs.que || [];
pbjs.que.push(function () {
  pbjs.setConfig({
    floors: {
      auctionDelay: 60,   // placeholder: wait up to 60 ms for Zurla's floors
      endpoint: { url: 'https://floors.zurla.com/v1/ZRL-000000.json' },
      data: {   // fallback values, used until Zurla's floors arrive
        currency: 'USD',
        schema: { fields: ['mediaType'] },
        values: { banner: 0.30, native: 0.40 }
      }
    }
  });
});
// Illustrative: the Zurla adapter is coming to Prebid.js and Prebid Server;
// bidder code and params are placeholders.
// Already on Prebid Server? Add 'zurla' to the bidders list in your existing s2sConfig.
var pbjs = pbjs || {};
pbjs.que = pbjs.que || [];
pbjs.que.push(function () {
  pbjs.setConfig({
    s2sConfig: [{
      accountId: 'YOUR_PBS_ACCOUNT',
      bidders: ['zurla'],   // keep the { bidder: 'zurla', params } entry in each ad unit
      adapter: 'prebidServer',
      enabled: true,
      endpoint: 'https://pbs.example.com/openrtb2/auction',
      syncEndpoint: 'https://pbs.example.com/cookie_sync',
      timeout: 500   // placeholder: your Prebid Server timeout
    }]
  });
});
# What Prebid sends to Google Ad Manager when Zurla wins (illustrative values)
hb_bidder=zurla
hb_pb=2.40
hb_adid=7a3f9c01
hb_size=300x250
hb_deal=ZRL-DEAL-0001
# hb_deal is sent when the winning bid is one of your private deals
{
  "id": "req-8f2c",
  "tmax": 300,
  "at": 1,
  "cur": ["USD"],
  "imp": [
    { "id": "1", "tagid": "sidebar", "secure": 1,
      "banner": { "format": [{ "w": 300, "h": 250 }, { "w": 300, "h": 600 }] },
      "bidfloor": 0.80, "bidfloorcur": "USD" },
    { "id": "2", "tagid": "home-feed-2", "secure": 1,
      "native": { "ver": "1.2", "request": "<Native 1.2 request, as a JSON string>" } }
  ],
  "site": { "domain": "example.com", "page": "https://example.com/recipes/lasagna",
            "publisher": { "id": "ZRL-000000" } },
  "device": { "ua": "<user agent>", "ip": "<reader IP>" },
  "regs": { "gdpr": 1, "gpp": "<GPP string>", "gpp_sid": [2], "coppa": 0 },
  "user": { "consent": "<TC string>" }
}

Illustrative. Price floors need the Price Floors module in your Prebid build. Bidder code, params and endpoints are placeholders until the Zurla adapter is released. OpenRTB requests are sent as a POST to https://rtb.zurla.com/openrtb2/bid, also illustrative.
Ask us about the Zurla adapter for Prebid.js and Prebid Server 

Under the hood

Ask why any ad won.
Zurla walks you through it.

Every ad request is consent-checked, screened, priced and explained. On the SDK, it happens each time a reader nears an ad slot, in under 100 ms on Zurla’s RTB (real-time bidding) infrastructure; through Prebid, Zurla runs the same steps for its own bid. Tap a step to see the standards behind it.

Ad in its slot

Zurla · Pellbrook Media Live

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
  • 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

Ask Zurla why an ad won

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.

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 compete. Every request carries its full supply path, showing a short, direct route to your site, which is what buyers look for.

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
bid-request.json · sourceOpenRTB 2.6
{
  "source": {
    "schain": {
      "ver": "1.0",
      "complete": 1,
      "nodes": [{ "asi": "zurla.com", "sid": "ZRL-000000", "hp": 1 }]
    }
  }
}
The supply chain every buyer receives.

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
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

You stay in charge

Approval mode

Zurla suggests, you decide. Good for the early weeks.

Hard rules

Minimum prices and blocked advertisers that Zurla never crosses, plus your speed budget on the SDK and hosted Prebid.

One-click undo

Return any change to how it was, with the reason logged.

Questions

Ask Zurla.

Which way in is right for me?

If you don’t run header bidding today (several buyers bidding for each slot as the page loads), start with the Zurla SDK: one script, plus a tag wherever an ad should go. I’ll write both for you.

If you already run Prebid, keep your setup and add me to it. You can also mix the two; every way in reaches the same buyers and works toward the same goals.

What exactly do I install?

For the SDK: one script in your page’s head, and a small tag wherever an ad should go, or I place slots by position, such as after the third paragraph. For Prebid: a ‘zurla’ entry in each ad unit, plus the Zurla adapter, which is coming to Prebid.js and Prebid Server.

Either way, add my line to your ads.txt file and keep a consent tool live where the law requires one. On the SDK, I then make day-to-day changes without touching your code. On Prebid, I set your floors once you point the Price Floors module at me, and run buyers and timing too if I host your setup.

How fast will my pages be?

On the SDK, or a Prebid setup I host, I work inside the speed budget you set, and my auctions finish in under 100 ms. The script loads asynchronously, so your content doesn’t wait for it, and lower ads load as readers get close.

Each slot holds its space, and page speed is a hard rule I don’t trade for revenue. If I just bid in your Prebid setup, I answer in under 100 ms, well inside your timeout.

What will the ads look like on my site?

Native ads use your fonts, colors and layout, and every one is labeled Sponsored, so readers can tell it’s an ad. Banners use standard sizes in the spaces you choose and are marked as ads. You approve the native style before it goes live.

Does it work with my consent tool?

Yes, if it supports the IAB standards, as major consent tools do. On the SDK, I read your consent tool rather than replacing it; on Prebid, your Prebid consent settings pass the reader’s choices to me.

That means IAB TCF v2.3 (the consent standard) for readers in Europe and the UK, GPP for US state privacy choices, and the browser’s Global Privacy Control signal. Without consent for personalized ads, I choose ads from the page, not the person.

What do I add to ads.txt?

My line from your account, marked DIRECT. ads.txt is the public file buyers check to see who may sell your ad space, and their systems pick up a new line within a few days.

I also list you as the seller in Zurla’s public sellers.json file, so buyers can confirm both ends and bid with confidence.

I sell my own campaigns in Google Ad Manager. Does that still work?

Yes. I can compete inside Google Ad Manager through price-priority line items keyed to my bid (entries your ad server ranks by price), the way header bidding works, or run just the slots you give me. Your own campaigns keep the priority you set.

Do I still need an ad ops team?

Not on the SDK, or once I host your Prebid setup. I do the daily work: floors, buyers, formats, tests and reports.

Changes that affect revenue start on a share of traffic, tested against a control group, and any change can be undone in one click. If I just bid, your team still runs the rest of Prebid, and either way it gets time back for strategy and sales.