Lupon Cloud
Site DNA Intelligence Platform
Login
or
Continue with Google
DEMO — Login as:
SA Super Admin
LT Lupon Team
PO Publisher Owner
PV Viewer

Lupon Cloud

Site DNA Intelligence
novi.ba
Your Sites
novi.ba
News · 2.8M events/day · Loader active
91
klix.ba
News · 8.4M events/day · Loader active
87
avaz.ba
News · 5.1M events/day · Loader active
82
hayat.ba
Media · 1.2M events/day · Loader active
89
index.hr
News · 6.8M events/day · Loader pending
+ Add new site
H
SA
Scanning Site DNA
https://novi.ba
Initializing scan engine...
0%
gpt.js error rate 3.2% — ongoing since 08:41 · 2,847 errors · Mobile Chrome 78% · -€420/day
5h 19min
View in Sentinel →
Criteo timeout spike 12.4% — triggered 14:22, auto-recovered 15:09 · Duration: 47min · -€180 estimated
recovered
✓ Resolved
https://novi.ba
📰 News & Media
🖥 WordPress
☁️ Cloudflare
📊 GAM + Prebid
🔒 SSL A+
✓ Loader Active
Last Scan
Feb 9, 2026, 08:27:48
Scan ID: a4f2e8c1 · Public
91
Overall
86
Perf
89
Money
94
Supply
96
Comply
85
Traffic
93
Safety
87
Trust
🔒 Trust Score 87%
↓ 4% vs last week
GAM reports €82,400/mo · SSP gross €94,700/mo · Δ 13% discrepancy
Magnite Δ4% Criteo Δ8% Rubicon Δ18%
🧬 AI Analyze
Summary
⚡ Actions +€9.3K
🛡 Sentinel 7
⏱ Auction
🏴 Bidders
📐 Ad Units 8
📊 Benchmark
🎛 What-If
AI Co-Pilot
🧬 DNA Score: 91/100 — Site is performing above regional average. I found €9,380/mo in recoverable revenue (78% CI · range €6.2K–€11.4K) across 12 findings. Ask me anything about your scan results.
ℹ️ DNA Score = weighted geometric mean of 9 dimensions. Revenue estimate = (p75 benchmark eCPM − your eCPM) × monthly impressions. Full methodology →
AI Co-Pilot
🔒 https://novi.ba
● LIVE OVERLAY
HEADER ATF · 728×90
🟢 WINADX €1.6798ms72% view
5 bids received · Criteo €1.42, Pubmatic €1.38, Rubicon €1.21, Amazon €1.18
📷 Article Hero Image · 1200×630
IN-ARTICLE 1 · 300×250
🟢 WINCriteo €2.12168ms69% view
Highest CPM slot · Criteo won vs ADX €1.89, Pubmatic €1.72
IN-ARTICLE 2 · 300×250 ⚠️ CLS
🟡 SLOWSovrn TIMEOUT 1820msCLS +0.08
⚠ No min-height set → layout shift on render. Sovrn timed out, fell back to Pubmatic €0.94. Revenue loss vs optimal: -42%
FOOTER · 728×90 ⚠️ LOW VIEW
👁 32% viewability€0.62 eCPM
Below 70% viewability threshold. Dragging sitewide average from 76% → 68%. Consider: remove or lazy-refresh.
📡 Live Auction Stream
0ms▶ Page navigation start
180msCMP loaded · Quantcast
300msConsent granted · TCF 2.2
320msPrebid.js init · 6 bidders
340msBid requests sent →
438ms← ADX bid €1.67 (98ms)
464ms← Pubmatic bid €1.84 (124ms)
492ms← Rubicon bid €1.56 (152ms)
508ms← Criteo bid €2.12 (168ms)
529ms← Amazon bid €1.92 (189ms)
581ms✗ Sovrn timeout (241ms)
600msAuction closed · 5/6 bids
602ms★ ATF: ADX wins €1.67
604ms★ InArt1: Criteo wins €2.12
606ms★ InArt2: Pubmatic fallback €0.94
620msGAM request sent →
920ms← GAM response (300ms)
1020ms✓ ATF rendered · ADX
1080ms✓ InArt1 rendered · Criteo
1340ms⚠ InArt2 CLS +0.08 on render
2040msTotal auction: 2.04s
This auction: 5/6 bids · €4.73 total · 1 timeout · 1 CLS violation · 2.04s to render
eCPM
€1.50
+12%
Fill
92.4%
+2%
Viewability
68%
-3%
JS Errors
7
-€1.2K/day
🔥 Top 3 Actions Now
1. Fix CLS on In-Article 2
Add min-height:250px. CLS 0.31→0.05. Unlocks premium PMP.
+12% eCPM · 5min fix
2. Remove Sovrn
Net-negative -€0.02/auction. 241ms blocking all bidders.
+3-4% auction efficiency
3. Consolidate Magnite (5→1 account)
Demand fragmentation costing 30-40% eCPM on Magnite.
+€4,200/mo
Tech Stack
GAM 360Prebid.js 8.51Lupon SDK 3.2Amazon TAMAdSenseCriteo DirectPubmatic OWIAS
Alpine.js 15KB · Cloudflare HTTP/3 · TLS 1.3 · Quantcast CMP
📊 vs 84 Publishers
🧬 AI Analyze
eCPM+14%vs avg
Fill+6%vs avg
Viewability-3%below avg
CLSworst 25%0.31 vs top10 0.04
Timeout+81%above avg (Sovrn)
IVTbest0.8% (avg 2.4%)
🔗 Supply Chain
🧬 AI Analyze
📰 novi.ba
⚡ Lupon SSP
🔄 Prebid S2S
🎯 DSP
🏢 Advertiser
1 Hop (Direct)
82%
2 Hops
12%
3+ Hops
6%
Jounce Classification
🧬 AI Analyze
🏆 Premium Direct Publisher
Highest quality · DSP preferred · No MFA flags
Content Q
92
SSP Rep
91
DSP Reach
94%
sellers.json
🧬 AI Analyze
SellerTypeVerifiedRev%Risk
Lupon MediaPUBLISHER68%none
PubmaticINTERMEDIARY14%none
MagniteINTERMEDIARY8%5 accts
Bidr.ioRESELLER4%block
ads.txt Audit
🧬 AI Analyze
Total
142
Active
124
Stale
8
Unauth
2
🚨 5 Magnite accounts fragment demand -30-40% eCPM
3 DIRECT + 2 RESELLER. Consolidate to single DIRECT. Also: 10 middleman resellers arbitraging inventory.
Fix: -€4,200/mo loss
DomainAccountTypeImpsStatus
magnite.com12345-ADIRECT2.4Mactive
magnite.com12345-BDIRECT180Kduplicate
magnite.com12345-CDIRECT42Kduplicate
sovrn.comSV-442RESELLER0stale 90d
Issues4 ERRORS · 5 WARNINGS · 3 NOTICES
Duplicate ads.txt accounts — 5 Magnite entries fragmenting demand5New
Unauthorized resellers found in bid stream2New
JS blocking main thread >1000ms (analytics-widget.js)1
Sovrn bidder net-negative ROI1
TTFB above 500ms (currently 528ms)1
Viewability below 70% (Footer 32%, Sidebar BTF 28%)2
Floor prices underpriced — DE Mobile -14%, Video -34%3New
CLS spike 0.31 after ad render (no reserved height)1
8 stale ads.txt entries (0 impressions 90 days)8
Swiss traffic 2% with highest RPM €18.60 — growth opportunity
Actionable Recommendations+€9,380/mo TOTAL78% CIrange: €6.2K–€11.4K
1. Consolidate Magnite Accounts → Single DIRECT
5 entries (3 DIRECT + 2 RESELLER) fragment demand. Consolidate to single DIRECT.
Impact: +€4,200/mo 91% CI · Priority: CRITICAL
2. Enable Cloudflare Early Hints + Edge Cache
TTFB 528ms → target 280ms. Dashboard → Speed → Early Hints ON.
Impact: +€3,100/mo · Time: 30 minutes
3. Add Yieldmo + GumGum Bidders
Prebid adapter for both. Expected bid density +0.8x on DACH traffic.
Impact: +€5,000/mo 68% CI · Time: 1-2 weeks
4. Defer analytics-widget.js
Add defer or requestIdleCallback. Kills 1.2s blocking, recovers 4.2% Criteo timeouts.
Impact: +€890/mo 88% CI · Time: 5 minutes
5. Raise Floor Prices (3 segments)
DE Mobile €1.80→€2.10, CH €3.20→€3.40, Video €2.10→€3.20.
Impact: +€2,860/mo 72% CI · Time: 15 minutes
6. Remove Sovrn or Switch to S2S
Net-negative client-side. Move to S2S or remove entirely.
Impact: +3-4% auction efficiency
7. Remove Footer + Sidebar BTF
Both below 35% viewability. Pushes sitewide 68%→76%, unlocks PMP 70% threshold.
Impact: +€1,100/mo net
8. Server-Side Cookie Bridge
FPID 72%→89%. Recovers addressability for Safari ITP/Firefox ETP.
Impact: +€1,420/mo · Time: 2-3 days
🔔 Recent Alerts3 ACTIVE
Feb 10, 08:41 — gpt.js error rate 3.2% · ONGOING · -€420/day
Feb 10, 14:22 — Criteo timeout 12.4% · recovered 15:09 (47min) · -€180
Feb 9, 22:15 — eCPM drop 11% · recovered 23:40 · evening dip
Feb 7, 10:00 — eCPM spike +22% · DACH campaign launch · positive
Alert rules: eCPM >15% ✓ · Fill <85% ✓ · Timeout >5% ✓ · JS errors >500/hr ✓ · CLS >0.25 ✓ · IVT >3% ✓
JS Errors (24h)
7
+3 vs yesterday
Revenue Impact
-€1,240/day
estimated from error correlation
Affected Imps
34K
4.2% of total
Uptime
99.2%
ad stack availability
🛡 JS Ad-Stack Sentinel
LIVE MONITORING
🧬 AI Analyze
🔴
gpt.js: GPT slot render failed — googletag.pubads() not defined
Error at gpt.js:1842 · Fired 2,847x in 24h · Mobile 78% · Chrome 62%
-€420/day12K imps lost
// Fix: Ensure GPT is loaded before calling window.googletag = window.googletag || {cmd:[]}; googletag.cmd.push(function() { // Move slot definition INSIDE cmd.push var slot = googletag.defineSlot('/1234/ATF', [[300,250],[336,280]], 'div-gpt-ad-atf'); slot.addService(googletag.pubads()); googletag.pubads().enableSingleRequest(); googletag.enableServices(); });
🔴
prebid.js: Uncaught TypeError — Cannot read 'bidderCode' of undefined
Error at prebid8.51.js:4201 · Fired 1,420x in 24h · Triggered by Sovrn adapter
-€310/daySovrn cascade fail
// Fix: Sovrn adapter null check before bid processing // In pbjs.bidderSettings: pbjs.bidderSettings = { sovrn: { bidCpmAdjustment: function(bidCpm, bid) { if (!bid || !bid.bidderCode) return 0; return bidCpm * 0.95; // net of fees } } };
🟡
prebid.js: Bid timeout — 3 bidders exceeded 1500ms deadline
Sovrn avg 241ms but p99=1820ms · Amazon p99=1640ms · Magnite p99=1580ms
-€280/daylatency spike
// Fix: Reduce timeout + add failsafe pbjs.setConfig({ bidderTimeout: 1200, // was 1500 s2sConfig: { timeout: 800, adapter: 'prebidServer', // Move Sovrn to S2S to isolate latency: bidders: ['sovrn','magnite'] } });
🟡
gpt.js: Ad slot CLS violation — div-gpt-ad-inarticle-2 shifting layout
CLS contribution: +0.08 per render · 62% mobile traffic affected
-€180/dayCLS penalty
/* Fix: Reserve ad container height */ .ad-slot-inarticle-2 { min-height: 250px; aspect-ratio: 300 / 250; contain: layout style; overflow: hidden; }
🔴
show_ads_impl_fy2021.js: Deprecated API — adsbygoogle.push() silent failure
Stale bundle from 2021 · 54 console warnings · AdSense fill impacted
-€50/day
<!-- Fix: Replace deprecated script --> <!-- OLD: --> <script src=".../m202510220101/show_ads_impl_fy2021.js"> <!-- NEW: --> <script async src="https://pagead2.googlesyndication.com/ pagead/js/adsbygoogle.js?client=ca-pub-XXXXXXX" crossorigin="anonymous"></script>
🟡
consent.js: TCF string malformed — gdpr_consent parameter empty on 26% requests
Rubicon + Bidr.io receiving gdpr=0 · GDPR compliance risk
COMPLIANCE
analytics-widget.js: Main thread blocked 1.2s — cascading bid timeouts
82% of total blocking time · Affects Criteo -4.2%, Amazon -3.1%, Magnite -2.4%
indirect -€890/mo
// Fix: Defer non-critical analytics // Change: <script src="analytics-widget.js"> // To: <script defer src="analytics-widget.js"> // Or better — load via requestIdleCallback: requestIdleCallback(() => { const s = document.createElement('script'); s.src = 'analytics-widget.js'; document.head.appendChild(s); });
⚡ Smart Fixer — Recommended Actions3 FIXES READY
🔧Prebid Timeout Optimizer94% confidence
Problem3 bidders timeout at p99 >1500ms. Sovrn (1820ms), Amazon (1640ms), Magnite (1580ms). Timeout rate 8.7% on Sovrn alone.
Root CauseGlobal timeout 1500ms too generous. Sovrn client-side adapter has latency spikes on 4G/Balkan networks. Cascade blocks all bidders.
pbjs.setConfig({ bidderTimeout: 1200, // ← reduced from 1500 enableSendAllBids: true, s2sConfig: { accountId: 'YOUR_ACCOUNT', bidders: ['sovrn', 'magnite'], // ← isolate slow bidders adapter: 'prebidServer', endpoint: 'https://prebid-server.luponmedia.com/openrtb2/auction', timeout: 800 } }); // Sovrn moves to S2S → no longer blocks client-side auction // Magnite S2S reduces p99 from 1580ms to ~400ms // Net effect: -12% timeouts, +€890/mo recovered
Recovery: 4-6 hours after deploy · Impact: +€890/mo (range: €620–€1,120) · Risk: Low
💰Floor Price Step-Down91% confidence
Problem3 segments underpriced: DE Mobile -14% (€1.80 vs €2.10), Video -34% (€2.10 vs €3.20), CH All -6% (€3.20 vs €3.40). 590K imps/mo leaving money.
Root CauseStatic floors not adjusted for market movement. DACH CPMs rose 18% in Q4 but floors stayed flat. Video especially underpriced post-holiday.
// GAM Floor Price Rules — Import via Bulk Upload // Format: Geography, Device, AdUnit, Floor (EUR) // // DE, Mobile, All_Units, 2.10 // was 1.80 (+17%) // CH, All, All_Units, 3.40 // was 3.20 (+6%) // ALL,All, Video_Pre, 3.20 // was 2.10 (+52%) // // Alternative: DAB+ Auto-Adjust API call: fetch('https://api.luponmedia.com/dab/floors', { method: 'POST', body: JSON.stringify({ site: 'novi.ba', rules: [ {geo:'DE', device:'mobile', floor: 2.10}, {geo:'CH', device:'all', floor: 3.40}, {type:'video', floor: 3.20} ], mode: 'gradual', // step up 5%/day over 3 days rollback_if: {win_rate_drops_below: 0.35} }) });
Recovery: 24-48 hours (gradual) · Impact: +€2,860/mo (range: €1,800–€3,400) · Risk: Medium (monitor win rate)
🛡Creative Heavy-Load Blocker88% confidence
Problem3 creatives detected consuming >2MB and blocking main thread >500ms. Contributes to CLS 0.31 on mobile and INP >500ms for 6.8% interactions.
Root CauseNo creative size cap in GAM. Rich media creatives from programmatic demand running unthrottled. One animated HTML5 creative at 4.2MB.
// GAM Creative Wrapper — Auto-blocks heavy creatives // Add to GAM → Admin → Global Settings → Creative Wrappers // Option A: SafeFrame with resource cap googletag.pubads().addEventListener('slotRenderEnded', function(e) { const iframe = document.getElementById(e.slot.getSlotElementId()) ?.querySelector('iframe'); if (!iframe) return; // Monitor creative resource usage const observer = new PerformanceObserver((list) => { let totalBytes = 0; list.getEntries().forEach(entry => { totalBytes += entry.transferSize || 0; }); if (totalBytes > 2 * 1024 * 1024) { // 2MB cap iframe.srcdoc = ''; // Kill heavy creative console.warn('[Lupon] Blocked heavy creative:', totalBytes); // Report to Lupon Sentinel navigator.sendBeacon('/api/sentinel/blocked', JSON.stringify({ slot: e.slot.getAdUnitPath(), size: totalBytes, creative: e.creativeId })); } }); observer.observe({type: 'resource', buffered: true}); });
Recovery: Immediate · Impact: CLS -40%, INP -15% · Risk: Low (only blocks >2MB)
⏱ Auction TimelineMEDIAN AUCTION · 2.04s TOTAL
Visualization of a median auction from navigation start to ad creative render. Each bar = one phase.
CMP Load
180ms
Consent
120ms
Prebid Init
220ms
Bid Requests
800ms
GAM Call
300ms
Ad Render
420ms
ConsentSetupBiddingRender
Per-Bidder Latency Breakdown
🧬 AI Analyze
ADX
98ms
Pubmatic
124ms
Rubicon
152ms
Criteo
168ms
Amazon
189ms
Sovrn
241ms
⚠️ Sovrn's 241ms is 2.45x the median. While Sovrn bids, all other bidders wait in the client-side waterfall, losing ~18ms each. Net auction cost: -€0.02/auction. Recommendation: Remove or isolate to S2S.
CWV Impact per Bidder
BidderAvg Latp99 LatTBT ImpactCLS ImpactLCP DelayRevenue/msVerdict
ADX98ms180ms+2ms0.00+12ms€17.04optimal
Criteo168ms420ms+8ms0.00+22ms€12.62good
Pubmatic124ms340ms+4ms0.00+16ms€14.84good
Rubicon152ms480ms+6ms+0.01+28ms€10.26ok
Amazon189ms640ms+12ms0.00+34ms€10.16watch
Sovrn241ms1820ms+42ms+0.03+68ms€3.90remove
🏴 Bidder Performance Scorecard6 ACTIVE
🧬 AI Analyze
Scoring
Bidders ranked by Net Value Score: revenue contribution (40%) + win rate (20%) + latency score (20%) + reliability (20%). Min 1,000 auctions required. Full methodology →
Net contribution per bidder: revenue minus latency cost minus timeout opportunity cost.
BiddereCPMWin%p95 LatTimeoutRev/moNet/AuctionAction
Criteo€2.1222%128ms3.1%€18,100+€0.08keep
Google ADX€1.8631%95ms1.2%€24,200+€0.12keep
Pubmatic€1.4418%142ms4.8%€12,400+€0.04keep
Magnite€1.3814%185ms6.2%€9,800+€0.02consolidate
Amazon TAM€1.288%112ms2.4%€6,200+€0.06keep
Sovrn€0.944%241ms8.7%€2,800-€0.02REMOVE
Sovrn is net-negative (-€0.02/auction). 241ms latency blocks other bidders +18ms. Remove to reduce timeout 8.7%→3.2% and gain +€890/mo.
📐 Ad Unit Map8 SLOTS · 5 SIZES
🧬 AI Analyze
Header ATF728×90
eCPM €2.84Fill 96%View 82%CTR 0.18%
Floor€1.20
Mkt €1.35
In-Article 1300×250
eCPM €3.42Fill 94%View 76%
Floor€1.40
Mkt €1.50
In-Article 2 ⚠️300×250
eCPM €0.94Fill 82%View 54%CLS +0.08
Floor€0.60
Mkt €1.10
Video Pre-Roll640×480
eCPM €8.60Fill 78%View 64%
Floor€2.10
Mkt €3.20 !
Sidebar Top300×600
€2.1871% view
Fl€1.00
Sidebar BTF300×250
€0.4828% view
Fl€0.30
Footer728×90
eCPM €0.42Fill 88%View 32%
Floor€0.20
Mkt €0.40
Sticky Mobile320×50
eCPM €1.86Fill 98%View 94%
Floor€0.80
Mkt €0.90
📋 Slot Detail
Click any slot to view full breakdown
All Ad Units — Floor Price Matrix
SlotSizeTypeFloorMarketGapeCPMFillView%CLSRev/moAction
Header ATF728×90display€1.20€1.35-11%€2.8496%82%0.00€18.2Kraise floor
In-Article 1300×250display€1.40€1.50-7%€3.4294%76%0.00€22.1Kraise floor
In-Article 2300×250display€0.60€1.10-45%€0.9482%54%+0.08€4.8Kfix CLS + raise
Video Pre640×480video€2.10€3.20-34%€8.6078%64%0.00€14.6Kraise floor!
Sidebar Top300×600display€1.00€1.10-9%€2.1891%71%0.00€8.4Kok
Sidebar BTF300×250display€0.30€0.50-40%€0.4886%28%0.00€1.8Kremove?
Footer728×90display€0.20€0.40-50%€0.4288%32%0.00€1.1Kremove?
Sticky Mobile320×50display€0.80€0.90-11%€1.8698%94%0.00€9.2Koptimal
📊 Industry Benchmarkvs 84 NEWS PUBLISHERS86% CI
🧬 AI Analyze
Your metrics compared to 84 similar publishers (Balkan/DACH news, WordPress, GAM+Prebid, similar traffic). Source: Lupon network aggregate · Period: 28 days · Updated: 2h ago
eCPM
€1.50
Avg €1.32
+14%
Fill Rate
92.4%
Avg 87.2%
+6%
Viewability
68%
Avg 71%
-3%
Session RPM
€6.20
Avg €5.08
+22%
CLS
0.31
Top10 0.04
Avg 0.12
worst 25%
TTFB
528ms
Avg 480ms
+10%
Timeout Rate
8.7%
Avg 4.8%
+81%
IVT Rate
0.8%
Avg 2.4%
best
Bid Density
4.8x
Avg 5.6x
-14%
Consent Rate
74.8%
Avg 81%
-8%
🏆 Your Strengths
Revenue Efficiency
eCPM +14%, Session RPM +22% above avg. Lupon DAB+ and clean traffic (IVT 0.8%) are primary drivers.
Top 15% of network
Traffic Quality
IVT rate 0.8% is best-in-class (avg 2.4%). Clean, human traffic = higher DSP trust = better bid density.
Top 5% globally
Supply Path
94% direct paths · Jounce Premium Direct Publisher · No MFA flags. DSPs prioritize your inventory.
Top 8% globally
⚠️ Your Weaknesses
CLS — Worst Quartile
0.31 vs top 10% at 0.04. Blocks premium PMP deals and suppresses ADX bids by 15-20%.
Fix → jump to top 25%
Timeout Rate — 81% Above Average
8.7% vs avg 4.8%. Almost entirely Sovrn. Remove → drops to ~3.2%.
Remove Sovrn → instant fix
Viewability Below Threshold
68% vs 70% PMP threshold. Footer (32%) and Sidebar BTF (28%) dragging avg. Remove → 76%.
Remove 2 slots → unlock PMP
🎯 Path to Top 10%
All achievable in 1 week:
1. Fix CLS (0.31 → 0.05) — add min-height to ad containers
2. Remove Sovrn (timeout 8.7% → 3.2%)
3. Enable Early Hints (TTFB 528ms → 280ms)
4. Remove low-view slots (viewability 68% → 76%)
5. Add Yieldmo + GumGum (bid density 4.8x → 5.6x)
Projected result: Top 10% on all metrics. Estimated uplift: +€12,400/mo 72% CI (range: €8.2K–€15.1K · depends on DACH seasonality)
🎛 What-If Revenue SimulatorINTERACTIVE
Adjust parameters to simulate revenue impact. All projections based on Lupon Loader + DAB+ data. ⚠ Projections are estimates with ±15-25% variance. Actual results depend on market conditions, seasonality, and DSP behavior.
Floor Price Adjustment0%
Bid Timeout1500ms
Ad Slots8
Toggle Optimizations
Remove Sovrn+€890/mo
Consolidate Magnite (5→1)+€4,200/mo
Fix CLS (add min-height)+12% eCPM
Remove Footer + Sidebar BTF+€3,200/mo
Add Yieldmo + GumGum+€5,000/mo
Projected Results
€1.50
eCPM
baseline
92.4%
Fill Rate
baseline
€80.2K
Revenue/Mo
baseline
€0
Delta
no change
Adjust sliders and toggles above to see projected revenue impact.
Active Alerts
3
1 critical
Resolved (24h)
2
auto-resolved
Revenue Impact
-€600/day
from active alerts
Monitoring
6 rules
all active
🔔 Active Alerts3 ACTIVE
🔴
gpt.js error rate 3.2% — ONGOING
Triggered: Feb 10, 08:41 · Duration: 5h 19min · 2,847 errors · Mobile Chrome 78%
Revenue impact: -€420/day · 12K impressions lost
ACTIVE
🟡
Criteo timeout spike 12.4%
Triggered: Feb 10, 14:22 · Auto-recovered: 15:09 · Duration: 47min
Revenue impact: -€180 estimated · auto-recovered
RESOLVED
🟡
eCPM drop 11% — evening dip pattern
Triggered: Feb 9, 22:15 · Auto-recovered: 23:40 · Duration: 85min
Revenue impact: minimal · recurring evening low-demand
RESOLVED
🟢
eCPM spike +22% — DACH campaign launch
Detected: Feb 7, 10:00 · Status: ongoing (positive)
Revenue impact: +€680/day
POSITIVE
⚙️ Alert Rules6 ACTIVE
eCPM DropeCPM change > ±15% in 1hactive
Fill Rate DropFill rate < 85% for > 30minactive
Timeout SpikeTimeout rate > 5% any bidderactive
JS Error SpikeJS errors > 500/hr ad stackactive
CLS ViolationCLS > 0.25 for > 10% sessionsactive
IVT AlertIVT rate > 3%active
📊 Alert History (7 days)
TimeAlertImpactDurationStatus
Feb 10, 08:41gpt.js error rate 3.2%-€420/dayongoingactive
Feb 10, 14:22Criteo timeout 12.4%-€18047minresolved
Feb 9, 22:15eCPM drop 11%-€9085minresolved
Feb 7, 10:00eCPM spike +22%+€680/dayongoingpositive
Feb 5, 16:30Amazon TAM timeout 6.2%-€24023minresolved
Feb 4, 09:12Fill rate 83.4%-€3101h 12minresolved
Feb 3, 11:00New PMP deal activated+€1,200/mopositive
Revenue anomaly detected: eCPM dropped 18% in last 2h · Mobile DE segment · Root cause: Magnite timeout spike 14.2% → bid density dropped from 5.1x to 3.8x
2h 14min
Investigate →
LCP (p75)
1,880ms
-120ms vs last week
CLS (p75)
0.31
FAILING — 31% users
INP (p75)
183ms
good — 6.8% tail >500ms
TTFB (p75)
528ms
target: <400ms
FCP
1,780ms
84.7% pass
TBT
180ms
analytics-widget main blocker
📈 CWV Trend (28 days)
🧬 AI Analyze
LCP
Target: <2500ms · Current: 1880ms ✓
CLS
Target: <0.1 · Current: 0.31 ✗
INP
Target: <200ms · Current: 183ms ✓
TTFB
Target: <400ms · Current: 528ms ✗
🚨 Revenue Impact of CWV
CLS 0.31 → eCPM penalty est. -15%
Google ADX reduces bid for high-CLS inventory. Fix ad container heights → immediate eCPM lift.
TTFB 528ms → delayed ad render -8% viewability
Ads that render later get fewer viewable impressions. Early Hints + edge cache = faster render = more revenue.
INP 183ms → no penalty (good)
Below 200ms threshold. 6.8% tail >500ms from analytics-widget.js — defer to fix.
⚡ JS Execution Waterfall3 BLOCKERS
Main thread blocking time analysis — scripts sorted by impact on ad revenue.
ScriptSizeBlock TimeImpactAction
analytics-widget.js89KB1,200msBlocks Criteo 4.2%, Amazon 3.1%defer
prebid8.51.js312KB84msAcceptable — tree-shake unused adaptersoptimize
gpt.js148KB62msNormal — GAM requiredok
lupon-sdk.js42KB8msExcellent — no actionok
quantcast-cmp.js67KB45msRequired for consent — acceptableok
📱 Mobile vs Desktop Gap
📱 Mobile (68% traffic)
LCP: 2,120ms · CLS: 0.31 · INP: 198ms · TTFB: 580ms
eCPM: €1.32 · Viewability: 64% · Fill: 91.2%
🖥 Desktop (32% traffic)
LCP: 1,440ms · CLS: 0.08 · INP: 142ms · TTFB: 420ms
eCPM: €1.84 · Viewability: 76% · Fill: 94.8%
Mobile CLS is the #1 revenue blocker. Desktop CLS 0.08 (good) vs Mobile 0.31 (failing). Fix mobile ad containers = biggest single revenue impact.
Revenue (30d)
€82,400
+8.2% vs prev
eCPM
€1.50
+14% vs network avg
Fill Rate
92.4%
+6% vs avg
RPM/Session
€6.20
+22% vs avg
Viewability
68%
below 70% PMP threshold
Recoverable
+€9,380
12 findings
(p75 benchmark eCPM − your eCPM) × monthly impressions. Benchmark: similar geo, device, vertical publishers. 78% confidence interval. Details →
💰 Revenue by Geo×Device
🧬 AI Analyze
SegmentImps/moeCPMRev/moFloorOptimalGap
DE Mobile1.8M€2.10€3,780€1.80€2.10-14%
DE Desktop840K€3.40€2,856€3.20€3.40-6%
AT All1.2M€2.80€3,360€2.60€2.80-7%
CH All420K€4.20€1,764€3.20€3.40-6%
BA Mobile12.4M€0.68€8,432€0.50€0.55-9%
BA Desktop4.1M€0.92€3,772€0.80€0.85-6%
Video Pre-Roll590K€8.60€5,074€2.10€3.20-34%
Total floor gap: €2,860/mo 72% CI (range: €1.8K–€3.4K) — DAB+ can auto-adjust. Video is biggest single opportunity.
📊 Viewability by Slot
SlotSizeView%eCPMRev/moStatus
Header ATF728×9082%€1.67€14,200keep
In-Article 1300×25076%€2.12€18,400keep
In-Article 2300×25069%€0.94€6,800optimize
Sidebar Top300×60071%€2.18€8,200keep
Sticky Mobile320×5094%€1.86€22,100keep
VideoVAST88%€8.60€5,074keep
Footer728×9032%€0.42€1,680remove
Sidebar BTF300×25028%€0.48€1,220remove
Footer + Sidebar BTF earn €2.9K but cost ~€3.2K 74% CI in suppressed sitewide eCPM. Remove both → viewability 68%→76%, unlock PMP deals.
📈 Revenue Trend (30d)
Jan 11Jan 18Jan 25Feb 1Feb 8
Direct Paths
94%
top 8% globally
ads.txt Entries
142
10 stale, 5 duplicate
Jounce Score
Premium
Direct Publisher
DSP Reach
94%
DV360, TTD, Xandr, Amazon
🔗 Supply Chain Flow
🧬 AI Analyze
82% Direct Path (1 hop) — Publisher → Lupon SSP → Prebid S2S → DSP → Advertiser
12% Secondary (2 hops) — Adds intermediary. Acceptable for incremental demand.
6% Long Chain (3+ hops) — 2-3 intermediaries taking 10-15% each. Effective eCPM 40-50% lower.
📄 ads.txt HealthACTION NEEDED
5 Magnite entries (3 DIRECT + 2 RESELLER)
Fragments bid competition by 30-40%. Consolidate to 1 DIRECT account immediately.
10 middleman resellers with no direct relationship
Arbitraging your inventory — buying at floor, keeping 15-25% margin.
8 stale entries (0 impressions in 90 days)
sovrn, adreach, vidoomy, sharethrough×2, smartadserver, smaato, stroeer. Remove to improve DSP trust.
🏪 sellers.json Verification
SellerTypeStatusRev ShareIssues
Lupon MediaPUBLISHERverified68%
Magnite (primary)INTERMEDIARYverified18%4 duplicate accounts
CriteoINTERMEDIARYverified8%
PubmaticINTERMEDIARYverified4%
Bidr.ioRESELLERunverified2%302 redirects, gdpr=0
🏆 Jounce Classification
Quality Tier
Premium Direct
Content Score
92/100
SSP Reputation
91/100
Sessions (30d)
8.4M
+4.2% vs prev
Pageviews
24.6M
2.93 pv/session
Bounce Rate
42%
news avg: 45%
IVT Rate
0.8%
best in class (avg 2.4%)
Consent Rate
74.8%
target: 85%+
FPID Coverage
72%
28% unaddressable
🌍 Traffic by Geo
🧬 AI Analyze
CountrySessionsShareRPMRev/moTrend
🇧🇦 Bosnia4.2M50%€3.80€15,960+2.1%
🇭🇷 Croatia1.4M17%€4.60€6,440+5.8%
🇩🇪 Germany1.1M13%€14.20€15,620+8.4%
🇦🇹 Austria840K10%€11.80€9,912+3.2%
🇨🇭 Switzerland420K5%€16.40€6,888+0.8%
🌍 Other420K5%€2.20€924-1.2%
DACH = 28% traffic but 39% revenue. Increasing DACH share by 2% = +€3,100/mo 65% CI (depends on content strategy · not directly controllable). High-value audience strategy.
📱 Device Split
📱
68%
Mobile · 5.7M
eCPM €1.32
🖥
28%
Desktop · 2.4M
eCPM €1.84
📟
4%
Tablet · 336K
eCPM €1.56
🤖 Bot & IVT DetectionCLEAN
GIVT
0.8%
SIVT
0.4%
Data Center
0.2%
Crawler
0.6%
✓ All IVT metrics well below industry thresholds. No action needed.
Data Points Analyzed
2,847
across 6 layers
Findings
12
3 critical, 4 high, 5 medium
Recoverable Revenue
€9,380/mo
94% confidence
AI Models Used
3
perf, revenue, supply
🧬 AI Diagnostic SummaryMULTI-MODEL
AI engine analyzed CrUX, PageSpeed, Cloudflare, Prebid/Loader, ads.txt/sellers.json, and GA4 data. Below are prioritized findings with estimated revenue impact and implementation effort.
🚨 Critical (fix today)
1. CLS 0.31 on mobile
Ad containers missing min-height. In-article slot 2 causes 0.08 spike. Fix: add min-height:250px. 5 minutes, +12-20% eCPM.
-€2,400/mo 92% CI
2. 5 Magnite accounts fragmenting demand
3 DIRECT + 2 RESELLER splits competition 30-40%. Consolidate to 1 DIRECT.
-€4,200/mo 91% CI
3. Rubicon/Bidr.io 302 redirects + gdpr=0
120-180ms latency per request, no consent check. Switch to direct endpoints, implement consent-based loading.
GDPR risk
⚡ High Impact (this week)
4. TTFB 528ms — enable Early Hints
Cloudflare Early Hints + Cache Everything. Target 280ms. Impact: faster ad render → higher viewability → higher eCPM.
+viewability
5. analytics-widget.js blocking 1.2s
Causes 4.2% Criteo timeouts, 3.1% Amazon timeouts. Defer or requestIdleCallback.
+€890/mo
6. Add Yieldmo + GumGum bidders
Cross-publisher analysis: +0.8x bid density. Strong on DACH contextual and in-image news.
+€5,000/mo
7. Remove Sovrn (net-negative)
241ms latency, €0.94 CPM, 8.7% timeout. Net contribution: -€0.02/auction.
+€890/mo
⚙️ Medium (this month)
8. Video floor underpriced 34%
€2.10 vs market €3.20. DACH CPMs rose post-Q4.
+€1,800/mo
9. Remove Footer + Sidebar BTF
Earn €2.9K but cost €3.2K in suppressed eCPM. Viewability 68%→76%.
+€3,200/mo net
10. FPID cookie bridge
Server-side cookie bridge: 72%→89% coverage. +22% yield on unaddressable browsers.
+€1,400/mo
📊 Implementation Roadmap
Today (30 min): Fix ad container heights (CLS) · Add preconnect hints · Defer analytics-widget.js
This week: Consolidate Magnite accounts · Enable CF Early Hints · Remove Sovrn · Raise video floors
This month: Add Yieldmo+GumGum · Remove low-view slots · Implement FPID bridge · Audit consent flow

Total estimated impact: +€9,380/mo 78% CI (range: €6.2K–€11.4K) · Based on 2,847 data points across 6 layers
🔌 Connected PlatformsINTEGRATE
Connect your SSP, DSP, and analytics accounts. Data merges in ClickHouse for cross-platform AI analysis.
Google Ad Manager
Revenue, impressions, ad units
Connected
Magnite (Rubicon)
Bid data, revenue, latency
Connected
Pubmatic
OpenWrap analytics
Connected
Criteo
Direct bidder performance
Connected
Google AdSense
Earnings, page RPM
Connected
Cloudflare
Edge analytics, bot score
Connected
Lupon Loader
Real-time Prebid, viewability
Live
Sovrn
Header bidding stats
Ready
Amazon TAM
Marketplace data
Ready
Google Analytics 4
Traffic, sessions
Ready
Index Exchange
Header bidding
Offline
Teads
Video outstream
Offline
ClickHouse Pipeline
📥 Ingest
🔄 Normalize
⚡ ClickHouse
🧬 AI
📊 Report
Storage
34GB
Rows 30d
847M
Avg query
42ms
Source Status
Lupon Loader · 2.8M events/daylive
GAM · synced 2h agook
Cloudflare · real-timelive
CrUX · monthlysynced
FLOOR INTELLIGENCE — LIVE · ClickHouse: 847M rows · Last query: 42ms · Streaming 11.8K auctions/sec
1H 2H 4H 24H
DE · Mobile · ATF
BA · Mobile · ATF
AT · All · SIDEBAR
CH · All · VIDEO
DE · Desktop · IN_ART
🔍 ClickHouse Data Layer10 QUERIES · 42msros-mvp-ana · 847M rows · auto-refresh 30s▼ expand
Q1 Ticker
Q2 Density
Q3 Campaign
Q4 Elasticity
Q5 Latency
Q6 Revenue
Q7 Gap
Q8 Consent
Q9 Anomaly
Q10 Floor
📈 Live Auction Feed — DE · Mobile · ATFSTREAMINGFloor: €1.80 · Avg Winning: €2.14 · Spread: €0.32
13:0213:1513:3013:4514:00
━━ Current Floor €1.80 ┅┅ Recommended €1.95 █ Volume
LIVE AUCTION FEED
14:02:41€2.345 bids+€0.54Criteo ✓
14:02:38€2.124 bids+€0.32ADX ✓
14:02:35€1.943 bids+€0.14Pubmatic ✓
14:02:31€1.782 bids-€0.02Magnite (below floor)
14:02:28€2.486 bids+€0.68Criteo ✓
14:02:24€2.064 bids+€0.26Amazon ✓
14:02:211 bidunfilledSovrn timeout
14:02:18€2.225 bids+€0.42ADX ✓
14:02:14€1.984 bids+€0.18Criteo ✓
14:02:11€1.863 bids+€0.06Pubmatic ✓
Bid Density
4.8x
↑ +0.3 vs 1h ago
Win Rate / Floor
0.68
elasticity tightening
p95 Latency
148ms
-12ms vs 1h ago
Campaign Intensity
↑ High
Criteo +14%, ADX +8%
📊 Market Signals (4 Dimensions)
Bid Density
4.8x
📈
4.8 bids/auction avg. Up from 4.5 (1h ago). Criteo increased frequency. Supports higher floor.
Campaign Spend
+14%
🔥
Criteo +14%, ADX +8% vs 2h baseline. Active campaign launches. Strong upward pressure.
Elasticity
0.68
Win rate drops 3.2% per €0.10 floor increase. Moderate sensitivity. Room exists but limited.
Latency Health
148ms
All bidders healthy. Sovrn p95=241ms (excluded from analysis). No timeout pressure.
Composite Signal: BULLISH ↑ — 3 of 4 signals support higher floor. Elasticity is the constraint. Net recommendation: moderate increase.
🎯 Floor RecommendationML + LLMHow we calculate
Signal-based reactive optimizer using 4 inputs: bid density (30%), campaign intensity (25%), elasticity curve (25%), latency health (20%). Confidence threshold: recommendations only shown above 60%. Max step: +10% per change. Auto-rollback on fill drop >5%.
Data: 30-day bid-level data from ClickHouse · Min 10K auctions per segment · Full methodology →
↑ RAISE FLOOR: €1.80 → €1.95
Current: €1.80 · Recommended: €1.95 (+8.3%) · Max safe: €2.05
Expected impact: eCPM +6.2% · Fill rate -1.8% · Net revenue +4.1%
Hold period: Minimum 15 minutes before next adjustment
Rollback trigger: If fill drops > 5% in 10min, auto-revert to €1.80
82% CI range: €1.90 – €2.05 · based on 2,847 auctions in last 30min
🧠 LLM Market AnalysisAI GENERATEDPowered by 10 ClickHouse queries · 42ms total
Q1 Q2 Q3 Q6 LLM

Market State (14:02 CET): Bid landscape is strengthening. Criteo launched a new DACH campaign ~45 minutes ago — their bid frequency increased 14% and average bid price rose from €2.08 to €2.34. Google ADX is also bidding more aggressively (+8%), likely competing for the same automotive inventory.

Why raise floor now: With 4.8 active bidders per auction (up from 4.5), the competitive pressure supports a higher floor. The current floor of €1.80 is being won at €2.14 average — that's a €0.34 spread where you're leaving money on the table. Moving to €1.95 captures part of this spread while maintaining healthy competition.

Q4 Q7 LLM
Risk factor: Elasticity is 0.68 — meaning for every €0.10 floor increase, win rate drops ~3.2%. At €1.95, projected fill rate drops from 94.2% to 92.4%. This is acceptable. Going above €2.05 would push fill below 90% which risks PMP deal thresholds.

Q5 Q8 LLM
Watch out for: Magnite p95 latency is 185ms and rising. If it crosses 200ms, timeout rate will spike and effective bid density drops to 3.8x — at which point the floor should be lowered back. Also: 26% of traffic has no consent (GDPR). Non-consent eCPM is €0.94 vs €2.14 with consent. Floor recommendation is for consented traffic only.

Confidence: 82%. Based on 2,847 auctions, 5 active bidders, 30-minute window. Recommendation valid for next 15-30 minutes unless bid landscape changes significantly.
💰 Per-Bidder Spending (Last 2h)
BidderBid FreqAvg BidTrendSpend/hBudget Signal
Criteo342/min€2.34↑ +14%€812new campaign
Google ADX518/min€1.98↑ +8%€1,024competing
Pubmatic186/min€1.44→ flat€268stable
Magnite124/min€1.38↓ -6%€171budget tapering
Amazon89/min€1.28↑ +3%€114steady
Sovrn42/min€0.94↓ -11%€39declining
📉 Floor Elasticity Curve
€1.20€1.50€1.80 (current)€2.10€2.40
━━ Revenue/request · ━━ Fill rate · ┅┅ Optimal zone
📋 Floor Change History (Last 24h)
TimeSegmentOld FloorNew FloorTriggerResult (1h after)Status
13:15DE·Mob·ATF€1.70€1.80Bid density ↑ 4.2→4.5eCPM +4.8%, fill -0.6%confirmed
10:30BA·Mob·ATF€0.55€0.58Campaign launch (Criteo)eCPM +5.2%, fill -1.1%confirmed
08:45DE·Mob·ATF€1.90€1.70Morning dip, density 3.2fill +3.1%, eCPM -2.8%confirmed
Yesterday 22:00DE·Mob·ATF€1.80€1.50Evening drop, 2 bidders onlyfill +8.2%, eCPM -6.1%net positive
Yesterday 14:30CH·All·VIDEO€3.20€4.50ML overconfidentfill -31%, eCPM +18% but net -4.2%reverted
CH·VIDEO revert: ML predicted high elasticity but sample size was only 480 auctions. LLM layer would have flagged this — confidence was below 60% threshold. This is why we added the confidence gate.
AYE v17 — ACTIVE · 14 experiments running · 3 graduated today · 0 reverted · Revenue impact: +€412/day
Region: EU-West · Uptime: 14d 7h
🧠 AYE Pipeline — Real-Time StatusLIVE
📡
Ingestion
11.8K rps
healthy
📬
Kafka
Lag: 2.1s
healthy
Signal Engine
42 signals/min
healthy
🧬
Decision Engine
8 decisions/min
healthy
🎯
Orchestrator
14 active
healthy
⚙️
Config Service
v1847
healthy
📊
Evaluation
3 graduated
healthy
🔄
Learning
SEM updated 4m ago
healthy
🛡 Watchdog (Side-Channel)
CF KV: ✓ live · GAM API: ✓ synced 12min ago · Kill Switch: OFF
Independent data path · Zero shared infra
Active Experiments
14
across 6 tenants
Graduated (7d)
18
82% success rate
Reverted (7d)
4
2 proxy, 2 settlement
Revenue Uplift (7d)
+€2,884
confirmed by settlement
Model Confidence
86%
SEM avg across segments
Projection Error
8.4%
proxy vs settlement
🧪 Active Experiments14 RUNNING
IDSegmentActionRolloutPhaseProxy ΔDuration
exp-2847novi.ba · DE·Mob·ATFFloor +15%25%evaluating+8.2% eCPM4h 12m
exp-2843klix.ba · BA·Mob·IN_ARTRemove Sovrn50%scaling+3.1% fill18h 40m
exp-2841avaz.ba · AT·Desk·SIDETimeout 1200ms10%active+0.4%2h 05m
exp-2838novi.ba · CH·All·VIDEOFloor €3.20→€3.8025%evaluating+12.4% eCPM6h 30m
exp-2835klix.ba · DE·Mob·STICKYAdd GumGum50%awaiting settlement+6.8% bid density26h 15m
Showing 5 of 14 · Sorted by revenue impact desc
🛡 Circuit Breakers
Level 1 · Throttle
OFF
Level 2 · Pause
OFF
Level 3 · Revert
OFF
Level 4 · Kill Switch
OFF
Last triggered: Level 1 (Throttle) · 3 days ago · Auto-recovered in 14min
📈 Segmented Elasticity Model — Health
🧬 AI Analyze
SegmentElasticityConfidenceProj. ErrorSamplesLast UpdatedStatus
DE · Mobile · ATF0.7291%6.2%4,2802h agohealthy
DE · Desktop · IN_ART0.6888%7.1%2,1404h agohealthy
BA · Mobile · ATF0.8184%9.8%12,4001h agohealthy
BA · Mobile · IN_ART0.6472%14.2%8,9003h agowatch
AT · All · SIDEBAR0.5568%16.8%1,8206h agolow samples
CH · All · VIDEO0.4352%22.1%48012h ago1 strike
CH · VIDEO has 1/3 strikes — projection error 22.1% vs 20% threshold. If next experiment also exceeds, elasticity resets to prior. Low sample size (480) is primary cause.
✅ Recently Graduated
exp-2821klix.ba · BA·Mob·ATF
Floor +8% (€0.50→€0.54)
Proxy: +5.2% eCPM · Settlement: +4.8% eCPM · Error: 0.4%
Duration: 38h · Graduated 6h ago · +€180/mo confirmed
exp-2818novi.ba · DE·Mob·STICKY
Timeout 1500→1200ms
Proxy: +2.8% fill · Settlement: +3.1% fill · Error: -0.3%
Duration: 42h · Graduated 14h ago · +€320/mo confirmed
exp-2812avaz.ba · BA·All·IN_ART
Remove Sovrn adapter
Proxy: -0.02% rev · Settlement: +0.8% rev · Error: 0.82%
Duration: 52h · Graduated 1d ago · +€890/mo confirmed (latency reduction)
↩️ Recently Reverted
exp-2830novi.ba · CH·All·VIDEO
Floor €3.20→€4.50 (aggressive)
Proxy: +18% eCPM · Settlement: -4.2% revenue · Error: 22.2%
Reverted after 48h · Fill dropped 31% — floor too aggressive for CH volume
exp-2826klix.ba · AT·Desk·ATF
Add Yieldmo bidder
Proxy: +4.2% bid density · Settlement: -1.8% eCPM · Error: 6%
Reverted after 52h · Yieldmo bids were low-quality, dragged floor competition down
📋 Event Log (Last 1h)
14:02:41 signal.created.v1 BIDDER_LATENCY_ANOMALY · novi.ba · DE·Mob·ATF · Magnite p95=342ms
14:02:44 decision.simulation.v1 Floor adjust +8% · risk=0.24 · confidence=88%
14:02:45 decision.command.v1 Auto-approved (risk < 0.3)
14:02:46 experiment.started.v1 exp-2847 · 25% rollout · config v1847
13:58:12 experiment.evaluated.v1 exp-2843 · proxy positive · scaling 25%→50%
13:55:30 experiment.graduated.v1 exp-2821 · settlement confirmed +4.8% eCPM
13:52:18 learning.elasticity_updated BA·Mob·ATF · 0.79→0.81 · confidence 84%
13:48:05 signal.created.v1 FILL_RATE_DROP · klix.ba · BA·Mob·IN_ART
13:47:20 watchdog.health_check All systems nominal · CF KV: ✓ · GAM: ✓
13:42:11 decision.rejected.v1 risk=0.72 · requires human approval · queued
13:38:44 experiment.scaled.v1 exp-2843 · 25%→50% · proxy trend positive
13:31:02 config.version_created v1846 · klix.ba · BA·Mob·IN_ART
🖥 Infrastructure Health
Kafka
Lag 2.1s / 60s
Redis State
13.4GB / 32GB
Redis Lock
5/5 quorum
Postgres
28ms avg · 0ms rep lag
ClickHouse
170GB / 500GB
Signal Engine
8/8 pods · 38% CPU
Decision Engine
4/4 pods · 52% mem
Watchdog
Independent · 12% CPU
ADMINSystem Overview
47Active Publishers
€84.2KMonthly Revenue (MRR)
2.1BImpressions / Month
99.8%System Uptime
📋 Recent Activity
klix.ba — DNA Score dropped 91→84. CLS spike detected on mobile.
1h ago
novi.ba — Floor changed €1.20→€1.35. AYE auto-optimization.
3h ago
telegraph.ba — New signup. Trust Score: 72. Auto-approved for Demo.
5h ago
sportal.ba — eCPM anomaly detected. Revenue -18% vs baseline.
6h ago
avaz.ba — Upgraded Managed → Full. Stripe payment confirmed.
1d ago
click.ba — Trust Gate REJECTED. Score 38. MFA pattern detected.
2d ago
⚙️ System Health
ClickHouse42ms avg · 847M rows · 34GBhealthy
Redpanda3 topics · 0 lag · 14.2K msg/shealthy
CF Workersbid-collector · health · crawlrunning
Go APIv1.4.2 · p99: 84ms · 0 errors/5mhealthy
Claude APISonnet · 342 calls today · $4.20active
Loader v3.2Deployed: 34/47 sites72%
Trust Gate Queue: 12 pending reviews · Oldest: 18h ago Review Now →
📊 Revenue by Tier
Full Tier
€62.4K
8 publishers · 74% of MRR
Managed Tier
€18.6K
22 publishers · 22% of MRR
Rev Share
€3.2K
Top 8 publishers · 3.8% of MRR
Demo (Free)
17
Conversion rate: 23%
ADMINAll Publishers
DomainTierTrusteCPMRev/moStatusScan
klix.ba
News · Sarajevo
Full91€2.14€24.2Klive2m
avaz.ba
News · Sarajevo
Full88€1.86€18.1Klive5m
24sata.hr
News · Zagreb
Full86€2.38€31.4Klive1m
index.hr
News · Zagreb
Full84€1.98€22.8Klive3m
novi.ba
News · Banja Luka
Managed74€1.44€8.4Klive1h
sportal.ba
Sport · Sarajevo
Managed72€1.22€5.2Klive2h
hayat.ba
Media · Sarajevo
Managed71€1.18€4.8Klive4h
telegraph.ba
News · Sarajevo
Demo68new1d
express.ba
News · Sarajevo
Demo62⏸ paused7d
click.ba
MFA · Flagged
Reject38❌ rejected
Total: 47 publishers · €84.2K MRR · 2.1B impressions/mo
ADMINTrust Gate — Pending Reviews12 PENDING
🔍 Scan Any Domain
Scan Domain
⏳ Pending Reviews (Score 40-59)
58
bhtelecom.ba
Telecom · Submitted 8h ago · Content score low (45) but legit business
Approve
Reject
52
vijesti.me
News · Submitted 12h ago · Traffic geo mismatch (40% non-Balkan)
Approve
Reject
44
novainfo.net
Unknown · Submitted 18h ago · Scraped content detected, domain 4mo old
Approve
Reject
👤 Account Info
Lupon Media d.o.o.Edit
HarunEdit
harun@lupon.mediaEdit
+387 6x xxx xxxEdit
Sarajevo, Bosnia & HerzegovinaEdit
BA123456789Edit
Super Admin
January 15, 2024
🌐 Sites 5 ACTIVE
Full · Trust 91 · ActiveManage
Full · Trust 88 · ActiveManage
Managed · Trust 74 · ActiveManage
Managed · Trust 72 · ActiveManage
Managed · Trust 71 · ActiveManage
+ Add New Site
👥 Team 4 MEMBERS
harun@lupon.media · Super Admin
amina@lupon.media · Lupon TeamEdit Role
mirza@lupon.media · Lupon TeamEdit Role
edin@klix.ba · ViewerEdit Role
+ Invite Team Member
🔑 API Keys
lp_live_••••••••••••••••3f8aCopy
1,240 / 10,000 calls this month
Regenerate Key
🔔 Notifications
Email + DashboardEdit
Email (Monday 9:00)Edit
Dashboard onlyEdit
Email + SlackEdit
https://hooks.slack.com/•••Edit
📦 Loader Setup
Copy
<script> (function(l,u,p,o,n){l['LuponObject']=n;l[n]=l[n]||function(){ (l[n].q=l[n].q||[]).push(arguments)};l[n].l=1*new Date(); o=u.createElement('script');o.async=1;o.src=p; u.getElementsByTagName('head')[0].appendChild(o); })(window,document,'https://cdn.lupon.media/loader/v3.js','lp','lupon'); lupon('init', 'YOUR_SITE_ID'); lupon('track', 'pageview'); </script>
klix.bainstalled
avaz.bainstalled
novi.bainstalled
sportal.bainstalled
hayat.bainstalled
💳 Current Plan
klix.ba
Full €2,499/mo
avaz.ba
Full €2,499/mo
novi.ba
Managed €499/mo
sportal.ba + hayat.ba
Managed €299/mo × 2
€6,095/mo
+€180/mo
€6,275/mo
March 1, 2026
Visa •••• 4242Update
💰 Revenue Impact — Your ROI with Lupon
Baseline eCPM (pre-Lupon)€1.20
Current eCPM (with Lupon)€1.50
Improvement+€0.30 (+25%)
Your extra revenue (all sites)+€4,800/mo
Lupon rev share (10%)-€180/mo
Your flat fees-€6,095/mo
Net ROI-€1,475/mo
📈 At current trajectory, ROI positive by Month 4. Projected Month 6 benefit: +€2,100/mo net. Full optimization (AYE + floor) typically doubles improvement within 90 days.
📊 Usage
Scans this month
48 / ∞
API calls
1,240 / 10K
Storage
34GB / 100GB
Team members
4 / 10
Sites
5 / 10
📋 Recent Invoices
€6,275PDF ↓
€6,220PDF ↓
€5,890PDF ↓
€5,640PDF ↓
📦 Available Plans
Demo
Free
1x/week scan
  • DNA Score (9 dim)
  • Top 3 Actions
  • PDF (watermarked)
  • Real-time data
  • Floor Intelligence
  • AYE Engine
Managed
€299/mo
+ 5% rev share
  • All findings
  • Daily scans
  • Real-time alerts
  • AI Diagnostic
  • Floor control
  • AYE Engine
Full
€999/mo
+ 10% rev share · CURRENT
  • Everything in Managed
  • Floor Intelligence live
  • Smart Fixer + Apply
  • AYE Engine
  • Config rollback
  • API access
Enterprise
Custom
SLA + dedicated AM
  • Everything in Full
  • White-label
  • Custom integrations
  • Volume discount
  • Dedicated support
  • Custom rev share
Talk to Sales
💰 Monetization · Deep Analysis
AI Summary

Monetization score is 89/100. Primary revenue leakage detected in header bidding latency and underpriced video floor. Estimated upside if fixed: +€3.2k – €5.1k / month.
Revenue Trend
eCPM · Fill · Revenue (30d trend)
eCPM
€1.92
Fill Rate
83%
Bid Density
3.8
Floor Efficiency
Floor vs Win Rate Curve
AI Co-Pilot · Monetization

Before you ask: The single highest leverage action here is reducing timeout variance before increasing floors. Doing it in reverse would reduce fill rate.
Supply Chain X-Ray45% TAX8 RISKYHow we calculate
Supply chain tax estimated from: ads.txt analysis, sellers.json crawl, well-known.dev data, industry fee benchmarks (ISBA/PwC, GroupM, Adalytics). Fee ranges per vendor type applied. Confidence ±10%. Full methodology →
Of every €1.00 an advertiser spends on your inventory, intermediaries take €0.45. You receive €0.55. Here's exactly where the money goes.
💸 Where Every €1.00 Goes
You: €0.55
DSP €0.15
SSP €0.12
Resellers
?? €0.06
Oth
📊 ISBA/PwC benchmark: publishers receive 51% on average — you're at 55% Optimal (direct paths only): 68%
Revenue Share
55%
of each €1 is yours
Supply Chain Tax
45%
goes to intermediaries
Direct Paths
62%
of ads.txt entries
Risky Entries
8
rated D or F
🔍 ads.txt Entry Analysis42 ENTRIESRated by: sellers.json + well-known.dev + TAG + industry data
#Ad SystemRelationshipRatingEst. FeeUnique?Action
1google.com
pub-1234567890 · TAG ✓ · sellers.json ✓
DIRECTA12%✓ YesKeep
2magnite.com (rubiconproject.com)
21642 · TAG ✓ · sellers.json ✓ · 4,200 publishers
DIRECTA12%✓ YesKeep
3pubmatic.com
157840 · TAG ✓ · sellers.json ✓ · Strong EU demand
DIRECTA13%✓ YesKeep
4indexexchange.com
192410 · TAG ✓ · sellers.json ✓
DIRECTB12%✓ YesKeep
5criteo.com
B-12345 · TAG ✓ · sellers.json ✓ · Retargeting demand
DIRECTB14%✓ YesKeep
6sovrn.com
456789 · TAG ✓ · sellers.json ✓ · Limited Balkans presence
DIRECTB15%~ WeakReview
7emxdgt.com
1234 · No TAG · sellers.json ✓ · 280 publishers · Resells to Magnite
RESELLERC18%~ SomeReview
8contextweb.com
561723 · No TAG · sellers.json partial · Resells to Magnite → duplicate path
RESELLERD22%✗ NoRemove
9adtech.de
Legacy entry · No sellers.json · No unique demand · Reseller chain 3 deep
RESELLERD20%✗ NoRemove
10unknownad.xyz
99887 · ❌ No TAG · ❌ No sellers.json · ❌ Unknown entity · ❌ 0 verified publishers
RESELLERF30%+✗ NoRemove
11sketchyads.com
44221 · ❌ No TAG · ❌ sellers.json all CONFIDENTIAL · ❌ Jounce: flagged
RESELLERF35%+✗ NoRemove
... showing 11 of 42 entries · Show all 42 →
🎯 Optimization Recommendations
🔴 REMOVE — 3 entries
unknownad.xyz, sketchyads.com, contextweb.com

These entries add no unique demand, have no valid sellers.json, and add 1-2 extra hops. Removing them:
Supply chain tax drops from 45% → 38%
• Your revenue share increases: 55% → 62%
• Estimated impact: +€840/mo (same traffic, more money reaches you)
🟡 REVIEW — 4 entries
emxdgt.com, adtech.de, adcolony.com, sovrn.com

These have limited or no unique demand for your geos. If they're not winning auctions → they're adding latency for no revenue. Run 7-day test: disable and monitor revenue.
🟢 ADD — 2 recommendations
amazon-adsystem.com (DIRECT), triplelift.com (DIRECT)

Strong demand in news vertical + EU geos. Both Tier 1, TAG certified. DIRECT relationship = no middleman fee. Estimated impact: +€620/mo
Total Optimization Potential+€1,460/mo
🔗 Supply Chain Depth
1 hop
38%
~12% tax
2 hops
34%
~24% tax
3 hops
18%
~38% tax
4+ hops
10%
50%+ tax
Your avg depth: 2.4 hops · Avg tax: 38% · Optimal: 1.2 hops / 14%
📊 Rating Distribution
A
12
B
10
C
12
D
5
F
3
42 total entries · 22 rated A/B (healthy) · 12 C (monitor) · 8 D/F (action needed)
Market Benchmarks47 PUBLISHERSHow we benchmark
Anonymized network data from 47+ publishers. Minimum 5 publishers per segment. Percentiles from 30-day rolling windows. No individual publisher data exposed. Full methodology →
eCPM
€1.50
p72
Network p50: €1.32
Fill Rate
82%
p65
Network p50: 78%
Viewability
68%
p68
Network p50: 62%
Page RPM
€4.20
p61
Network p50: €3.80
📊 Detailed Network ComparisonYour values highlighted in green
MetricYoup25p50p75p90Trend
eCPM€1.50€0.92€1.32€1.68€2.14
Fill Rate82%71%78%85%91%
Viewability68%52%62%72%81%
CLS0.040.180.080.040.02
LCP2.8s4.2s3.1s2.4s1.8s
Bid Density3.22.12.83.54.2
Timeout %14%28%18%12%8%
Ad RefreshNo42%YesYes
Adblock Rate28%18%26%32%38%
📅 Seasonal eCPM Pattern (12 months)
Mar
Apr
May
Jun
Jul
Aug
Sep
Oct
Nov
Dec
Jan
Feb
📈 Q4 peak: +35% avg📉 Jan dip: -22%🌙 Ramadan: +15% BA/HR
🎯 Opportunity Calculator
If you reached p75 on all below-median metrics:
Fill Rate: 82% → 85%+€420/mo
Viewability: 68% → 72%+€280/mo
Timeout: 14% → 12%+€180/mo
Ad Refresh: No → Yes+€1,200/mo
Total Opportunity+€2,080/mo
⚠ Estimates based on network averages. Actual results depend on implementation quality. Methodology →
🗺️ Segment Benchmarks
By Geo
By Device
By Format
GeoYour eCPMNetwork p50DeltaYour PositionImpressions
🇩🇪 Germany€2.14€1.86+15%p78340K
🇦🇹 Austria€1.92€1.74+10%p71180K
🇧🇦 Bosnia€0.84€0.72+17%p741.2M
🇭🇷 Croatia€0.96€1.04-8%p38420K
🇷🇸 Serbia€0.78€0.68+15%p72280K
DeviceYour eCPMNetwork p50DeltaPositionShare
📱 Mobile€1.28€1.14+12%p6864%
🖥️ Desktop€2.04€1.82+12%p7232%
📲 Tablet€1.62€1.48+9%p624%
FormatYour eCPMNetwork p50DeltaPositionShare
Banner 728×90€1.18€1.02+16%p7438%
MPU 300×250€1.86€1.64+13%p7028%
Billboard 970×250€3.20€2.88+11%p6512%
Sticky Footer€0.82€0.94-13%p3414%
Native€0.64€0.72-11%p388%
Report Builder3 REPORTS
+ New Report
Combine your data with Lupon intelligence. Upload GAM/GA4 exports or connect via API for automated reports.
📥 Data Sources
📊
Google Ad Manager
Last import: Feb 10, 2026 · 34,281 rows · Revenue + impressions
connected
📈
Google Analytics 4
Last import: Feb 9, 2026 · 28,440 sessions · Traffic + audience
connected
🧬
Lupon Scan Data
Latest scan: Feb 11, 2026 · DNA Score 91 · 12 findings
auto
📋
Upload Custom CSV
Map your columns to: date, impressions, revenue, eCPM, page URL
Upload →
✏️
Manual Entry
Add data points manually: date, metric, value
Add →
🔗 Merge Intelligence
GAM vs Lupon Data Comparison:
GAM eCPM
€1.42
Lupon eCPM
€1.50
Delta
Δ 5.6%
⚠ 5.6% discrepancy between GAM and Prebid analytics. Possible causes: unfilled passbacks, currency rounding, or timing difference. Learn more →
📝 Report Templates
📋
Executive Summary
1-page KPIs, DNA Score, top 3 actions. For CEO/Management.
🔬
Full Diagnostic
Complete scan + revenue + all recommendations. For Ad Ops.
📈
Monthly Performance
MoM comparison, trends, forecast. Regular review.
🎯
Custom Report
Build from scratch. Drag-and-drop sections.
📦 Report SectionsDrag to reorder
🧬 DNA Score Summaryincluded
💰 Revenue Overview (GAM)included
📈 Traffic Overview (GA4)included
⚡ CWV Performanceoptional
🏴 Bidder Analysisoptional
📊 Floor Intelligenceoptional
🔗 Supply Path Healthoptional
📊 Benchmarks vs Networkoptional
🤖 AI Recommendationsincluded
📝 Custom Notesoptional
📁 Generated Reports
Report NameTemplateDatePagesSizeActions
klix.ba — Monthly JanuaryMonthlyJan 3182.4MBViewPDF↓
novi.ba — Full DiagnosticDiagnosticFeb 5144.1MBViewPDF↓
avaz.ba — Executive SummaryExecutiveFeb 12840KBViewPDF↓
sportal.ba — Monthly JanuaryMonthlyJan 3161.8MBViewPDF↓
Alert Center 3 ACTIVE 5 WARNING
🔔 Notifications ON
⚙️ Rules
Real-time monitoring of 50 critical rules across infrastructure, revenue, bidders, compliance, and security. How alerts work →
All (8)
🔴 Critical (3)
🟡 Warning (5)
🔵 Info (2)
Resolved (14)
CRITICALSSL Certificate Expires in 4 Days — klix.ba2h ago
SSL certificate (Let's Encrypt) expires February 15, 2026. After expiry, browsers will show "Not Secure" warning, all HTTPS-required demand partners will stop bidding, and revenue drops to €0.
💡 Fix: Renew via sudo certbot renew or contact hosting provider. Auto-renewal may have failed — check cron job. ETA: 5 minutes.
💰 Impact: €24,200/day at risk📋 Rule: #1 SSL Certificate Expiry🔄 Checked: every 24h
✅ Mark Resolved
⏰ Snooze 24h
👤 Assign
CRITICALads.txt Missing Magnite Entry — novi.ba6h ago
Magnite (rubiconproject.com) is actively bidding on your inventory but is NOT listed in your ads.txt. Buyers using ads.txt verification will reject all Magnite bids. Magnite contributes €1,840/mo to this site.
💡 Fix: Add this line to ads.txt:
rubiconproject.com, 21642, DIRECT, 0bfd66d529a55807
Changes propagate within 24h after upload. ETA: 2 minutes.
💰 Impact: €1,840/mo revenue at risk📋 Rule: #34 ads.txt Missing Entry🔄 Checked: daily
✅ Mark Resolved
⏰ Snooze 24h
📧 Send to Publisher
CRITICALBidder Down: Criteo — avaz.ba45min ago
Criteo hasn't submitted any bids in the last 45 minutes. Last bid: 11:12 UTC. Criteo is the #2 revenue source for avaz.ba contributing €186/day. Other bidders are active and filling at normal rates.
💡 Fix: Check Criteo adapter version (current: 4.2.1, latest: 4.3.0). Verify Criteo network status at status.criteo.com. If persistent, contact Criteo rep. ETA: varies.
💰 Impact: €186/day lost while down📋 Rule: #21 Bidder Down🔄 Checked: every 5min
✅ Mark Resolved
⏰ Snooze 1h
🔄 Re-check Now
WARNINGCLS Spike on Mobile — novi.ba3h ago
CLS jumped to 0.18 on mobile (threshold: 0.1, was 0.04 yesterday). Main culprit: ad slot #div-gpt-ad-1 without explicit dimensions. This affects Core Web Vitals which Google uses for search ranking.
💡 Fix: Add min-height: 250px to the ad container CSS. This reserves space before the ad loads, preventing layout shift. ETA: 5 minutes.
💰 Impact: SEO ranking risk + lower bids📋 Rule: #31 CLS Spike
✅ Resolved
⏰ Snooze
WARNINGSovrn Timeout Rate 52% — klix.ba5h ago
Sovrn adapter timing out on 52% of auctions (normal: 12%). This delays all auctions by up to 1,500ms and reduces overall bid density. Sovrn contributes only €0.04 eCPM when it does respond.
💡 Fix: Option A: Reduce Sovrn timeout to 800ms. Option B: Move Sovrn to Server-Side bidding. Option C: Remove Sovrn (low revenue contribution). Recommended: Option B or C.
💰 Impact: ~€420/mo in auction delays📋 Rule: #22 Bidder Timeout Spike
✅ Resolved
⏰ Snooze
WARNINGeCPM Down 12% — sportal.ba8h ago
eCPM dropped from €1.22 to €1.07 over the last 6 hours. This is a 12% decline vs the 7-day same-hour baseline. Pattern matches end-of-campaign behaviour (Monday morning dips are common, but this is Thursday).
💡 Fix: Check Floor Intelligence for signal changes. If bid_density also dropped, this is a demand-side issue (campaigns pausing). If only eCPM dropped, floor may be too low. See: Floor Intel →
💰 Impact: -€48/day vs baseline📋 Rule: #9 eCPM Drop
✅ Resolved
⏰ Snooze
WARNINGConsent Rate Dropped to 58% — hayat.ba1d ago
TCF consent rate dropped from 74% to 58% over the last week. Non-consented traffic gets 40-60% lower bids from GDPR-compliant demand partners.
💡 Fix: Review CMP design. Common issues: banner too small, reject button same prominence as accept, CMP loading too late. A/B test CMP placement — top banner typically yields 10-15% higher consent.
💰 Impact: ~€380/mo in reduced bid value📋 Rule: #37 Consent Rate Drop
✅ Resolved
⏰ Snooze
WARNINGads.txt Changed — klix.ba1d ago
ads.txt was modified: 3 entries added, 1 removed. Verify these changes were intentional. Unauthorized changes could indicate security compromise or accidental edits.
💡 Fix: Review changes: Added: magnite.com (2 entries), ix.com (1 entry). Removed: sovrn.com (1 entry). If intentional, mark as resolved. If unexpected, restore from backup.
📋 Rule: #33 ads.txt Change🔄 Checked: daily
✅ Verified
🔄 Revert
INFONew Bidder Opportunity: Amazon TAM — novi.ba2d ago
Amazon TAM is performing well on similar Balkan news sites (avg €0.82 eCPM). Currently not active on novi.ba. Adding could increase bid density by ~0.4 and revenue by an estimated €240/mo.
💰 Opportunity: +€240/mo estimated📋 Rule: #18 New Bidder Available
INFOFloor Optimization Available — klix.ba DE Mobile3d ago
Floor for DE Mobile ATF has been at €1.60 for 14 days. Elasticity analysis suggests €1.80 would increase revenue per request by 8% with only 2% fill rate reduction. Net gain: ~€180/mo.
💰 Opportunity: +€180/mo estimated📋 Rule: #17 Floor Too Low
📊 Alert History (30 days)
12
Critical fired
34
Warnings fired
94%
Resolved within SLA
Avg resolution time: 2.4 hours for Critical, 18 hours for Warning. Alerts saved an estimated €14,200 in prevented revenue loss this month.
📬 Notification Channels
active harun@lupon.mediaEdit
active +387 6x ••• •••Edit
active #lupon-alertsEdit
configured https://hooks.slack.com/•••Edit
🔴 Critical → All channels instantly · 🟡 Warning → Email + Dashboard within 15min · 🔵 Info → Daily digest email
Knowledge HubAdOps Bible
Everything an Ad Ops professional needs in one place. Curated guides, live data feeds, official docs, and optimization playbooks.
1,200+
Resources
47
Categories
Daily
Updated
Free
Always
All
📋 How-To Guides
🔗 Official Docs
🛡️ Supply Chain
💰 Revenue Optimization
🔒 Privacy & Consent
📊 Live Data
🧩 Prebid
🎯 GAM
📊 Live Industry Data
well-known.dev — 2,847 ad systems tracked · sellers.json status for every SSP
LIVE
sellers.guide — 140K+ domains crawled · ads.txt health · clean-up wizard
LIVE
CrUX Dashboard — Core Web Vitals for any domain · Google public data
LIVE
Prebid Bidder List — 300+ adapters · current version compatibility
LIVE
TAG Registry — Certified sellers & anti-fraud registry
LIVE
🛡️ Supply Chain & Transparency
🔍
well-known.dev — Ad System Database
Complete database of all ad systems with sellers.json data, seller counts, DIRECT/RESELLER ratios. The single source of truth.
Essential
API Available
🧹
sellers.guide — ads.txt Clean-Up Wizard
Automated tool to analyze, validate, and clean your ads.txt. Cross-references with sellers.json. By Primis.
Essential
Free Tool
📜
IAB ads.txt Specification v1.1
Official spec: OWNERDOMAIN, MANAGERDOMAIN fields. How to implement correctly.
Official Spec
IAB
🔗
IAB sellers.json Specification
How SSPs declare their sellers. PUBLISHER vs INTERMEDIARY vs BOTH. SupplyChain object.
Official Spec
IAB
💸
ISBA Programmatic Supply Chain Study
The landmark study: only 51% of spend reaches publishers. 15% unaccounted for. With PwC methodology.
Revenue Impact
Research
📊
Adalytics — AdTech Supply Fees Study
SSP fees range 5-85% per impression. Avg 23%. With methodology and raw data.
Revenue Impact
Research
🧩 Prebid Ecosystem
📚
Prebid.js Module Overview
All modules: General, Vendor-Specific, User ID, RTD. Which to use and why. Size impact per module.
Prebid
Essential
🏗️
Prebid Bidder Adapters — Full List
300+ bidder adapters with params, supported media types, and server-side availability.
Prebid
Reference
👤
Prebid User ID Module
UID2, ID5, SharedID, LiveRamp — how to implement. Which bidders support which IDs.
Prebid
Privacy
💰
Prebid Price Floors Module
Dynamic floors, rules-based pricing, floor providers. Essential for yield optimization.
Prebid
Revenue
🖥️
Prebid Server — Setup & Hosting
S2S header bidding. Reduce client-side weight. PBS + Prebid.js integration guide.
Prebid
Advanced
📏
Prebid Module Rules & Compliance
What modules can and can't do. Disclosure requirements. Privacy rules.
Prebid
Governance
📋 How-To Guides (Top 20)
1
How to Set Up Header Bidding from Scratch
Step-by-step: Prebid.js install, GAM setup, first auction. 30-minute guide.
Essential
Prebid
GAM
2
How to Optimize Your ads.txt for Maximum Revenue
Remove middlemen, add DIRECT paths, verify sellers.json. With € impact calculation.
Essential
Revenue
3
How to Set Dynamic Price Floors
Floor strategies by geo, device, ad unit. When to use hard vs soft floors.
Revenue
Prebid
4
How to Fix CLS Caused by Ads
Reserve ad space, lazy loading best practices, min-height techniques. Google CWV guide.
Essential
CWV
5
How to Implement Consent Management (TCF 2.2)
CMP setup, TCF integration with Prebid, consent rate optimization tips.
Privacy
GDPR
6
How to Add a New Bidder to Your Stack
Evaluate, test, launch. Timeout settings, A/B testing, performance monitoring.
Prebid
Revenue
7
How to Implement Smart Ad Refresh
Viewable refresh only. Google policy compliance. Expected +10-25% revenue lift.
Revenue
Essential
8
How to Set Up Video Monetization (Outstream)
No video content needed. 3-10x display CPM. Player setup, VAST, bidder config.
Revenue
Video
9
How to Debug Prebid Auctions
pbjs.setConfig debug. Chrome DevTools. Common errors. Timeout troubleshooting.
Prebid
Debug
10
How to Recover Adblock Revenue
Acceptable Ads, server-side insertion, messaging strategies. 25-35% of EU traffic.
Revenue
Essential
... and 990+ more guides. Browse all →
🎯 Google Ad Manager
📚
GAM Complete Documentation
Official Google Ad Manager docs. Ad units, line items, targeting, reporting.
GAM
Official
🔑
GAM Key-Values for Prebid
How to set up hb_bidder, hb_pb, hb_size key-values. Price granularity settings.
GAM
Prebid
📊
GAM Reporting API
Automated report generation. Revenue, impressions, fill rate by ad unit.
GAM
API
💰 Revenue Optimization
📈
MonetizeMore Blog — Ad Ops Knowledge Base
1000+ articles on ad optimization, header bidding, IVT, revenue strategies. The original ad ops blog.
Revenue
Essential
📰
Setupad Blog — Publisher Monetization
Best ad networks, SSP comparisons, CWV guides, monetization strategies.
Revenue
Blog
🎓
State of Digital Publishing
In-depth reviews, comparisons, and analysis of ad tech platforms and tools.
Revenue
Reviews
🏆
AdExchanger — Industry News
Breaking programmatic news, opinion, research. The industry's newspaper of record.
News
Industry
🔒 Privacy, Consent & Compliance
🇪🇺
IAB TCF 2.2 — Implementation Guide
Transparency & Consent Framework. Vendor list, purpose definitions, CMP requirements.
Privacy
GDPR
🍪
Post-Cookie Survival Guide
First-party ID strategies, contextual targeting, Privacy Sandbox, Topics API.
Privacy
Essential
📋
Prebid Privacy Support Docs
GDPR, CCPA, US Privacy, Quebec, COPPA modules and configuration.
Privacy
Prebid
📐 About Our Methodology

Every score, recommendation, and revenue estimate in Lupon Cloud is derived from measurable, auditable data sources. We never present subjective opinions as findings. This page documents exactly how each metric is calculated, what data sources are used, and what confidence level applies. All formulas are open and verifiable against your own data.

📊 ClickHouse analytics (your data) 🌐 CrUX / Lighthouse (Google) 🔗 Jounce / TAG (industry) 🤖 Claude Sonnet (reasoning) 📋 ads.txt / sellers.json (public) 🛡️ Google Safe Browsing (safety)
🧬 DNA Score (0-100)

The DNA Score is a weighted composite of 9 independent dimensions. Each dimension is scored 0-100 individually, then combined using the weights below. We use a geometric mean (not arithmetic) so that a critically low score in any dimension pulls the overall score down — you can't mask a serious problem with strong scores elsewhere.

DNA Score = Π(dimension_score ^ weight) for all 9 dimensions
Example: (Perf^0.15 × Money^0.20 × Supply^0.12 × ...) ^ (1/Σweights)
DimensionWeightData SourceHow Scored
Performance15%CrUX API, Lighthouse, Loader CWVLCP <2.5s=100, <4s=60, >4s=20. Weighted: LCP 40%, CLS 30%, INP 30%
Monetization20%Prebid events, GAM API, ClickHouseeCPM vs network p50 (30%), fill rate vs 85% target (25%), viewability >60% (25%), floor optimization gap (20%)
Supply Path12%ads.txt crawl, sellers.json, Jounce APIDirect path ratio (30%), ads.txt validity (25%), Jounce classification (25%), sellers.json present (20%)
Traffic10%CF Radar, Loader analytics, IVT detectionVolume adequacy (25%), organic ratio >30% (25%), geo match (25%), IVT <5% (25%)
Compliance10%Page crawl (CMP detection), TCF APICMP present (30%), TCF 2.2+ (25%), privacy policy (20%), cookie policy (15%), consent rate (10%)
Safety8%Google Safe Browsing, TAG, page scanNo malware (40%), not on blocklists (30%), no redirects (20%), clean scripts (10%)
Trust10%WHOIS/RDAP, SSL check, page crawlDomain age (25%), registrar quality (20%), SSL grade (20%), about page (20%), contact info (15%)
Content8%Page crawl, NLP analysisEditorial team detected (25%), publish frequency (25%), content depth (25%), uniqueness (25%)
Infrastructure7%SSL probe, HTTP headers, DNS checkSSL health (25%), CDN detected (20%), HTTP/2+ (20%), response time (20%), DNS health (15%)
⚠ Weights sum to 100%. Scores are recalculated on every scan. Historical scores are not retroactively adjusted — each scan reflects conditions at scan time.
💰 Revenue Estimates

Revenue impact estimates (e.g., "You're leaving €3,200/mo on the table") are not projections or guarantees. They represent the mathematical difference between your current metrics and the achievable benchmark based on comparable publishers in our network.

Revenue Gap = (benchmark_eCPM - current_eCPM) × monthly_impressions / 1000

Where:
benchmark_eCPM = p75 of publishers with similar: geo mix, device split, content vertical, traffic volume
current_eCPM = your 30-day rolling average from Prebid/GAM data
monthly_impressions = your trailing 30-day total
Confidence levels: Each estimate includes a confidence range. "€3,200/mo ±18%" means we're 80% confident the true value is between €2,624 and €3,776. Confidence depends on: data sample size, metric stability, and how closely benchmark publishers match your profile.
⚠ Actual revenue improvement depends on implementation quality and market conditions. Past network averages do not guarantee future results.
📈 Floor Intelligence

Floor recommendations are generated by a signal-based reactive optimizer, not a predictive ML model. We detect present market conditions and react — we don't predict the future.

Floor Recommendation = argmax(revenue_per_request) over elasticity curve

4 Input Signals (weighted):
bid_density: active bids per auction (weight: 30%)
campaign_intensity: new campaigns/creatives/day (weight: 25%)
elasticity: fill_rate vs floor curve (weight: 25%)
latency_health: bidder p95 latency (weight: 20%)

Confidence = sample_size(40%) + signal_agreement(35%) + variance(25%)
→ Confidence <60%: no recommendation shown
→ Confidence 60-80%: recommendation with caveat
→ Confidence >80%: high-confidence recommendation
Safety constraints: Maximum floor step: +10% per change. Auto-rollback triggers if fill rate drops >5% within 10 minutes. Elasticity curve computed from 30-day bid-level data (minimum 10,000 auctions per segment).
Data source: Prebid.js auction events captured by Lupon Loader SDK → ClickHouse bid_responses + auction_events tables.
🧠 AI Diagnostic

AI Diagnostics use Claude Sonnet to synthesize findings from structured data. The LLM does not generate data — it interprets and narrates data already computed by deterministic queries.

Pipeline:
1. ClickHouse queries → 12 structured findings (deterministic, SQL-based)
2. Each finding includes: metric, value, threshold, severity, $ impact
3. Claude Sonnet receives findings as structured input
4. LLM generates: narrative summary, prioritized roadmap, causal explanation
5. LLM output is bounded: cannot contradict source data, cannot invent metrics
What AI does: Explains WHY metrics are the way they are, prioritizes actions by impact, and identifies non-obvious correlations (e.g., "your CLS spike on mobile is caused by late-loading ad creative from Bidder X").
What AI does NOT do: Generate revenue numbers, fabricate data points, or make guarantees. All numbers come from SQL queries, the AI only narrates them.
Model: Claude Sonnet (Anthropic) · Cached: 1h for diagnostics, 5min for floor reasoning · Fallback: pre-computed template if API unavailable.
🛡️ Trust Gate Score (0-100)

Trust Gate evaluates site legitimacy before onboarding. It uses only external, publicly verifiable data sources — no proprietary black-box scoring.

CategoryPointsData SourceVerification
Domain Health15WHOIS/RDAP, SSL probePublisher can verify via whois.domaintools.com
Content Quality15Page crawl, publishing frequencyVisible on publisher's own site
Traffic Quality15CF Radar, SimilarWeb estimatesPublisher can compare with their own GA data
Industry Reputation15Jounce API, TAG blocklistsJounce classification is public
Ad Tech Setup10Page crawl (Prebid/GAM detection)Visible in page source
Compliance10CMP detection, TCF checkCMP visible on site
Infrastructure10HTTP headers, SSL, DNSVerifiable via SSL Labs, GTmetrix
Security5Google Safe Browsing APICheck at transparencyreport.google.com
Transparency5Page crawl (about page, contact)Visible on publisher's site
Score <40: auto-reject · 40-59: manual review · 60-79: approved · 80+: fast-track. Publishers can dispute any score component with supporting evidence.
⚠️ Anomaly Detection
anomaly = |current_value - baseline| > (threshold × σ)

Baseline: same hour, same day-of-week, 28-day rolling average
σ (standard deviation): computed from same 28-day window

Default Rules:
eCPM: 30min window, 2.0σ threshold
Fill Rate: 15min window, 2.5σ threshold
Timeout %: 10min window, 2.0σ threshold
Bid Density: 30min window, 1.5σ threshold
CLS: 60min window, 2.0σ threshold
Data source: ClickHouse materialized view mv_anomaly_baseline, updated hourly.
🏆 Bidder Scorecard

Bidders are ranked by Net Value Score, a composite metric that accounts for both revenue contribution and operational cost.

Net Value Score = revenue_contribution(40%) + win_rate(20%) + latency_score(20%) + reliability(20%)

Where:
revenue_contribution = bidder_spend / total_spend × 100
win_rate = wins / bids_submitted × 100
latency_score = 100 - (p95_latency_ms / timeout_ms × 100)
reliability = 1 - (timeout_count / total_bid_requests)
Data source: Prebid.js events via Loader → ClickHouse bid_responses table. Minimum 1,000 auctions required for scoring. Updated hourly.
✅ Data Transparency Commitment
1. Every number is queryable. Full tier customers can access the underlying ClickHouse queries via API.
2. No black boxes. All scoring formulas are documented here and versioned. If we change a formula, we publish a changelog.
3. Benchmarks are anonymized. Network comparisons use anonymized, aggregated data from 47+ publishers. No individual publisher data is exposed.
4. AI is supervised. LLM outputs are bounded by deterministic data. The AI cannot override data or present hallucinated metrics.
5. Dispute process. Publishers can challenge any score or finding via support. We provide the underlying data within 24h.
📋 Report 0
L
🔒 https://novi.ba/vijesti/bih/clanak-12847
📍 Ad Overlay
⏱ Latency
🔥 Heatmap
✕ Close
VijestiSportMagazinTech
📰 HEADER ATF728×90
🟢 ADX WIN €1.6798msView 82%
▶ creative_id: dcm_4892710 · DV360 · 42KB · rendered 1020ms
Auction: 5 bids → ADX €1.67 > Criteo €1.42 > Pubmatic €1.38 > Rubicon €1.21 > Amazon €1.18 · Sovrn TIMEOUT

Predsjedništvo BiH donijelo važnu odluku o EU putu

📷 1200×630 · WebP · 84KB · LCP candidate

Predsjedništvo Bosne i Hercegovine danas je na sjednici donijelo odluku koja bi mogla ubrzati proces pristupanja Evropskoj uniji...

Prema riječima članova Predsjedništva, nova odluka podrazumijeva usklađivanje zakonodavstva sa EU standardima u narednih šest mjeseci...

📄 IN-ARTICLE 1300×250
🟢 CRITEO WIN €2.12168msView 76%
▶ creative_id: crt_direct_9281 · Criteo Direct · 38KB · rendered 1080ms

Analitičari smatraju da je ova odluka rezultat višemjesečnih pregovora sa Evropskom komisijom, koja je jasno stavila do znanja...

S druge strane, opozicija je kritikovala tempo reformi, navodeći da je potreban ambiciozniji pristup...

⚠️ IN-ARTICLE 2300×250
🔴 SOVRN TIMEOUT 1820msFALLBACK Pubmatic €0.94CLS +0.08
⚠ No min-height → layout shift · Sovrn p99=1820ms caused cascade · Revenue: -42% vs optimal
🔧 Smart Fix available: add min-height:250px + move Sovrn to S2S + raise floor €0.60→€1.10

Eksperti za evropske integracije naglašavaju da BiH mora ubrzati reforme pravosuđa i borbu protiv korupcije...

🎬 VIDEO PRE-ROLL640×480
🟢 ADX WIN €8.60⚠ Floor €2.10 vs Mkt €3.20
▶ VAST 4.2 · 15s pre-roll · VTR 72% · VPAID disabled
💰 Floor underpriced 34%. Raising to €3.00 would not impact fill but adds ~€1,800/mo
📎 SIDEBAR TOP300×600
🟢 €2.1871%
📎 SIDEBAR BTF300×250
👁 28% view€0.48
Remove candidate: 28% viewability drags sitewide avg. Net cost: -€1,400/mo after PMP loss.
📎 FOOTER728×90
👁 32% view€0.42Remove?
📱 STICKY MOBILE320×50
🟢 €1.8694% view98% fill
📡 Auction
🔎 Inspector
⚡ Perf
Live Auction · Page Load
Summary: 5/6 bids · €14.79 total · 1 timeout · 1 CLS · 2.04s render
Click any ad slot to inspect
Page Performance
TTFB
528ms
FCP
1.78s
LCP
1.88s
CLS
0.31
INP
183ms
TBT
1.2s
Resource Breakdown
JS
1.8MB
CSS
142KB
Images
680KB
Fonts
96KB
Ad Scripts
920KB
⚠ Ad scripts = 34% of total JS weight. analytics-widget.js alone blocks 1.2s.
💰 Monetization · Deep Analysis
AI Summary

Monetization score is 89/100. Primary revenue leakage detected in header bidding latency and underpriced video floor. Estimated upside if fixed: +€3.2k – €5.1k / month.
Revenue Trend
eCPM · Fill · Revenue (30d trend)
eCPM
€1.92
Fill Rate
83%
Bid Density
3.8
Floor Efficiency
Floor vs Win Rate Curve
AI Co-Pilot · Monetization

Before you ask: The single highest leverage action here is reducing timeout variance before increasing floors. Doing it in reverse would reduce fill rate.