Intersection Observer
Monitors when the ad slot is $\ge 50%$ in the viewport (IAB Standard). Timer pauses the instant the visitor scrolls away.
Standard ad rotations refresh on blind timers regardless of whether visitors are reading, have minimized the window, or have scrolled past the slot. This inflates non-viewable impressions, hurts advertiser conversion rates, and violates strict ad network policies (such as Google AdSense & Google Ad Manager’s 30-second viewability requirement).
AdFuz Pro Viewport Auto-Refresh introduces deterministic viewability tracking powered by the browser’s native Intersection Observer API and Page Visibility API. Ads only accumulate countdown time when actively visible on screen, maximizing publisher impression revenue while keeping CTR and viewability ratings high.
Intersection Observer
Monitors when the ad slot is $\ge 50%$ in the viewport (IAB Standard). Timer pauses the instant the visitor scrolls away.
Page Visibility API
Automatically freezes the countdown when the visitor switches browser tabs or minimizes the window.
Anti-Idle Watchdog
Detects user inactivity (mouse, scroll, keyboard) $> 60$ seconds and pauses timers to prevent runaway overnight impressions.
Smooth In-Place Transitions
Replaces creatives via seamless cross-fade or slide animations with zero Cumulative Layout Shift (CLS).
30 seconds).50% in Viewport (IAB Standard), 75% in Viewport, or 100% Fully Visible.5) to prevent creative exhaustion. Set 0 for unlimited.Fade In (Smooth cross-fade), Slide In, or Instant.| Setting | Default | Range / Options | Description |
|---|---|---|---|
| Enable Auto-Refresh | Off |
Toggle | Activates viewability tracking and rotation for this ad unit. |
| Refresh Interval | 30s |
15s – 300s |
Active seconds required before loading the next creative. |
| Viewability Threshold | 50% |
50%, 75%, 100% |
Minimum percentage of slot pixels within viewport boundaries. |
| Max Refreshes | 5 |
0 – 100 |
Maximum rotations per pageview. Set 0 for unlimited. |
| Transition | fade |
fade, slide, none |
Visual CSS animation applied during creative replacement. |
| Anti-Idle Guard | Enabled |
Toggle | Pauses timer after 60 seconds of zero user interaction. |
The client-side engine dispatches a custom jQuery / DOM event whenever an ad creative is refreshed:
jQuery(document).on('adfuz:ad_refreshed', function(event, data) { console.log('Ad refreshed in Space #' + data.spaceId); console.log('New Ad ID:', data.adId); console.log('Campaign ID:', data.campaignId); console.log('Refresh Count:', data.refreshCount);});Each refreshed creative automatically records an independent viewable impression with a unique UUID event key into AdFuz Daily Stats, keeping your performance analytics and advertiser billing accurate.