Understanding the Prebid Intersection Module: Practical Insights for Publishers

Viewability has become a key metric for publishers seeking to maximize both revenue and advertiser satisfaction. However, accurately capturing whether an ad slot is actually in view when an auction runs can be challenging—especially in dynamic layouts.

Prebid’s Intersection Module aims to solve this by supplying real-time intersection data for ad slots, letting publishers fine-tune bidding and improve ad performance. This post breaks down how it works, why it matters, and how you can leverage it effectively in your monetization stack.

What Is the Prebid Intersection Module and Why Should Publishers Care?

The Intersection Module is an add-on for Prebid.js that uses the browser’s Intersection Observer API to track when and how an ad slot is visible within the user’s viewport. By collecting precise data about which ads are actually viewable, it helps inform smarter bidding and reporting.

For example, running an auction when an ad is outside the viewport leads to wasted impressions—even if a bid wins, it likely won’t count as a viewable impression. The Intersection Module bridges this gap by giving ad ops teams the ability to delay auctions until real viewability is confirmed, making each impression more valuable.

How It Fits Into the Header Bidding Flow

Without the Intersection Module, header bidding auctions are typically triggered as soon as the ad slot is rendered in the DOM, regardless of whether it’s visible. By using intersection data, Prebid.js can hold the auction until an ad slot comes into view—or for a configured period—giving buyers a better shot at reaching engaged users.

Example Use Case: Lazy-Loaded Ads

On sites with infinite scroll or lazy-loaded placements, ads may not immediately enter the user’s viewport. The Intersection Module ensures that bidding waits until there’s a chance the impression will actually be seen, improving quality and reporting accuracy.

Configuring the Intersection Module: Key Steps for Ad Ops Teams

Getting the most out of the Intersection Module requires proper Prebid.js setup and thoughtful configuration. Here’s how publishers can integrate it into their stack:

Enabling and Including the Module

You must include the Intersection Module when building your Prebid.js package. On your build command, add:

gulp build –modules=intersectionRtdProvider

This ensures your Prebid instance can generate intersection data for ad units.

Setting Up Real-Time Data Collection

After the module is loaded, configure it via the realTimeData.dataProviders option in Prebid’s setConfig. For example:

pbjs.setConfig({
realTimeData: {
auctionDelay: 100,
dataProviders: [
{ name: ‘intersection’, waitForIt: true }
]
}
});

The optional waitForIt flag delays the auction until intersection data is present, or until the auctionDelay interval elapses. This is critical for ensuring only viewable ad slots are sent to auction, especially with quick scrolling or dynamic layouts.

Interpreting Intersection Output Data: What to Look For

When active, the Intersection Module injects detailed data into each bid request. Understanding this output can help troubleshoot issues and optimize your setup.

Key Metrics Explained

The output contains information like boundingClientRect (the position and size of the ad slot), intersectionRatio (what proportion is visible), isIntersecting (true if any part is in view), and timestamps.

For example:

{
intersection: {
boundingClientRect: { width: 300, height: 250, … },
intersectionRatio: 0.5,
isIntersecting: false,
time: 1636993868145
}
}

If isIntersecting is false, you may want to avoid triggering an auction, as the ad isn’t visible.

Troubleshooting Common Publisher Mistakes

– Not waiting long enough for intersection data (auctionDelay too low)
– Using the module without proper Prebid.js build configuration
– Failing to monitor intersectionRatio thresholds relevant to viewability goals
Reviewing these values can quickly surface issues in auction timing or ad slot setup.

Optimizing Auction Performance and Yield With Intersection Data

Smart use of intersection data directly impacts both ad performance and revenue. Publishers can use this module to prioritize visible impressions—potentially setting higher floors or more valuable line items only when ads are truly in view.

This approach also increases buyer trust, since advertisers know bids are for actual opportunities, leading to better CPMs and fill rates over time.

Prebid.js and GAM Considerations

Passing more reliable viewability data to Prebid and to demand partners (via key-value pairs or custom targeting in Google Ad Manager) creates new opportunities for optimizing both direct and programmatic deals. For instance, you can segment inventory by average intersectionRatio, or only trigger ‘high-value’ deals when an ad meets certain viewability standards.

What this means for publishers

Ad ops and monetization teams gain more control over impression quality, ensuring that only visible ad slots are auctioned, maximizing both viewability rates and demand partner confidence. Proper use of the Intersection Module also simplifies troubleshooting for unviewable or underperforming ad slots and enables more accurate performance reporting to advertisers.

Practical takeaway

To unlock the benefits of the Prebid Intersection Module, publishers should:
– Include the module at build time and carefully configure auction delays to collect reliable intersection data.
– Monitor intersectionRatio and isIntersecting outputs to diagnose and tune impression quality.
– Use this data operationally in both Prebid.js and your ad server (such as GAM), to segment, price, or troubleshoot inventory for better results.

Long-term, leveraging real-time viewability signals elevates the value of your ad inventory and positions your site for stronger, more transparent partnerships with advertisers.