Skip to content

Active Viewport Auto-Refresh

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


  1. In WordPress Admin, navigate to Ad Fuz → Ad Spaces.
  2. Click Edit on your target Ad Space.
  3. Locate the Active Viewport Auto-Refresh (Pro) section.
  4. Check Enable Auto-Refresh for this Ad Space.
  5. Configure your interval and viewability thresholds:
    • Refresh Interval: Minimum seconds of active viewability before rotating (Default: 30 seconds).
    • Viewability Threshold: 50% in Viewport (IAB Standard), 75% in Viewport, or 100% Fully Visible.
    • Max Refreshes Per Page View: Set a cap (e.g., 5) to prevent creative exhaustion. Set 0 for unlimited.
    • Transition Animation: Choose between Fade In (Smooth cross-fade), Slide In, or Instant.
    • Anti-Idle Guard: Enabled by default to pause timer during visitor inactivity.
  6. Click Update Ad Space.

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.