Case Study: How a Multi-Network Strategy Increased Revenue by 85%
Introduction: Beyond the Single-Network Approach
For two years, we ran our technology review site exclusively with a single ad network. The relationship was comfortable — we had a dedicated account manager, consistent payouts, and a predictable revenue stream of about $8,500 per month from 400,000 pageviews. But comfortable does not mean optimal. After attending a publisher conference and hearing multiple speakers advocate for multi-network strategies, we decided to test whether diversifying our demand sources could meaningfully increase our revenue. The result — an 85% revenue increase to $15,725 per month — validated the approach beyond any doubt.
This case study walks through the entire process of building a multi-network ad stack, from evaluating additional demand partners to implementing header bidding alongside a waterfall setup, and finally optimizing the configuration for maximum yield.
Our Starting Point: Single Network Performance
Before implementing any changes, we documented our baseline performance over three months to ensure accurate comparison. Our single-network setup consisted of a well-known programmatic ad platform that handled all of our display advertising. Here is what our numbers looked like:
- Monthly pageviews: 380,000–420,000
- Ad units per page: 4 (leaderboard, two in-content, sidebar)
- Average RPM: $20.50
- Average CPM: $5.80
- Fill rate: 92%
- Viewability: 64%
- Monthly revenue: $8,200–$8,800
These were respectable numbers for our niche, but we hypothesized that a single network was leaving demand on the table. With only one buyer competing for each impression, there was no auction pressure to drive up prices. We wanted to create competition among multiple demand sources for every single impression.
Building the Multi-Network Stack
Our multi-network strategy involved three layers of demand, each serving a specific purpose in maximizing yield across all impressions.
Layer 1: Header Bidding with Prebid.js
The foundation of our strategy was implementing header bidding using Prebid.js, an open-source framework that allows multiple demand partners to bid on each impression simultaneously. After researching and testing various demand partners, we selected eight bidders for our header bidding setup based on their performance in our content vertical:
- Three major SSPs: These provided broad programmatic demand from hundreds of DSPs and trading desks.
- Two video-focused SSPs: Even though we primarily served display ads, these partners offered strong outstream video demand that could compete for our in-content placements.
- Two specialized ad exchanges: These focused on technology and gadget advertisers — a perfect match for our content niche.
- One native advertising platform: This partner provided native ad demand that could compete with standard display for in-content positions.
We configured Prebid.js with a bid timeout of 1,500 milliseconds, giving partners enough time to respond without significantly impacting page load speed. We also implemented bid caching so that if a user navigated to a second page, bids from the first page could be reused while fresh bids were fetched in the background.
Layer 2: Google Ad Exchange as Primary Server
We used Google Ad Manager as our primary ad server, with Google Ad Exchange (AdX) competing against header bidding demand in a unified auction. This was important because AdX has access to demand from Google Ads advertisers that is not available through other channels. By forcing AdX to compete against header bidding partners, we ensured that Google's demand was priced fairly rather than getting preferential treatment.
Setting up the unified auction required configuring price priority line items in Google Ad Manager for each header bidding partner at various CPM levels. While this was tedious — we created over 200 line items — it ensured accurate competition between all demand sources.
Layer 3: Waterfall Backfill
For impressions that did not receive competitive bids from header bidding or AdX, we set up a waterfall of three additional networks ordered by historical CPM performance. This backfill layer captured value from impressions that might otherwise go unfilled or sell at floor prices. The waterfall networks were configured as remnant line items in Google Ad Manager, ensuring they only served when no higher-paying demand was available.
Implementation Timeline
Week 1-2: Technical Setup
The first two weeks were dedicated to technical implementation. We installed Prebid.js, configured all eight bidder adapters, set up Google Ad Manager line items, and integrated the waterfall networks. We also implemented analytics to track bid-level data from every demand source, which would be essential for ongoing optimization.
Week 3: Testing and Debugging
Week three was entirely focused on testing. We used Prebid.js debugging tools and browser developer consoles to verify that all bidders were responding correctly, that bids were being passed to Google Ad Manager accurately, and that the winning bid was always the highest available. We discovered and fixed several issues during this phase, including a bidder adapter that was sending incorrect ad sizes and a timeout configuration that was cutting off one slow-responding partner.
Week 4: Gradual Rollout
We rolled out the multi-network setup gradually, starting with 10% of traffic and increasing by 20% each day. This allowed us to monitor for any issues — ad quality problems, page speed degradation, or revenue anomalies — before committing to a full rollout. By day five, 100% of traffic was running on the new multi-network stack.
Results: Three Months of Data
The results were transformative. Here is a month-by-month comparison against our single-network baseline:
Month 1
- Pageviews: 395,000
- RPM: $31.20
- Revenue: $12,324
- Increase vs. baseline: +45%
Month 2
- Pageviews: 408,000
- RPM: $35.80
- Revenue: $14,606
- Increase vs. baseline: +72%
Month 3
- Pageviews: 415,000
- RPM: $37.90
- Revenue: $15,729
- Increase vs. baseline: +85%
The continued improvement from month one to month three was driven by two factors. First, the header bidding algorithms became more effective at pricing our inventory as they accumulated data about our audience. Second, we continuously optimized the setup based on bid-level analytics, removing underperforming bidders and adjusting floor prices.
Demand Source Performance Analysis
One of the most valuable aspects of a multi-network setup is the granular data it provides about demand source performance. After three months, we analyzed which partners were contributing the most value:
- Header bidding partners collectively: Won 58% of impressions, contributing 64% of revenue
- Google Ad Exchange: Won 31% of impressions, contributing 28% of revenue
- Waterfall backfill networks: Won 11% of impressions, contributing 8% of revenue
Within the header bidding layer, the two niche-specific exchanges punched well above their weight. Despite being smaller platforms, they consistently delivered the highest CPMs because their advertiser base was precisely aligned with our technology content. This reinforced the importance of including niche demand partners alongside major SSPs.
Optimization Strategies That Worked
After the initial setup, ongoing optimization was critical to reaching the 85% improvement. Here are the strategies that had the most impact:
Dynamic Floor Pricing
We implemented dynamic floor prices that adjusted based on time of day, day of week, and user geography. During peak advertising hours in North American business time, floors were set higher to capture premium demand. During off-peak hours, floors were lowered to maintain fill rates. This strategy alone increased RPM by approximately 12%.
Bidder Timeout Optimization
We analyzed response times for each bidder and discovered that two partners consistently needed more than 1,500ms to respond. Rather than extending the global timeout and slowing down page loads for everyone, we configured partner-specific timeouts: fast partners got 1,200ms, while slower partners got 2,000ms. This approach captured additional high-value bids without penalizing page speed.
Ad Refresh for Engaged Users
We implemented viewable ad refresh with a 30-second interval for users who remained actively engaged with the page. The refresh was triggered only when the ad unit was in the viewport and the user had performed a recent interaction like scrolling or clicking. This added an average of 1.4 additional impressions per pageview, increasing effective RPM by approximately 15%.
Challenges and Pitfalls
The multi-network approach is not without challenges. Here are the issues we encountered and how we addressed them:
- Page speed impact: Loading eight header bidding adapters added approximately 300ms to our page load time. We mitigated this by implementing script lazy loading and using a Prebid.js server-side configuration for mobile users.
- Ad quality control: With multiple demand sources, we occasionally saw low-quality or misleading ads slip through. We implemented a combination of network-level category blocks and a third-party ad quality monitoring service to catch and block problematic creatives.
- Reporting complexity: Consolidating revenue data across eight header bidding partners, AdX, and three waterfall networks required building a custom reporting dashboard. Without this, tracking performance would have been unmanageable.
- Payment terms: Different networks have different payment schedules, ranging from Net-30 to Net-90. Managing cash flow across ten separate payment schedules required careful financial planning.
Key Takeaways
- Competition drives prices up. The single most important principle of ad monetization is that more buyers competing for each impression leads to higher prices. A multi-network strategy maximizes competition.
- Include niche-specific partners. Do not just add the biggest SSPs. Niche demand partners often deliver the highest CPMs for specialized content.
- Invest in analytics. Without bid-level data and demand source reporting, you cannot effectively optimize a multi-network setup.
- Be patient. Allow at least 60 days for algorithms to learn and optimize before judging the full impact of a multi-network strategy.
- Monitor ad quality. More demand sources means more potential for low-quality ads. Proactive monitoring is essential.
Conclusion
Switching from a single ad network to a multi-network strategy was the most impactful revenue optimization we have ever implemented. The 85% increase in revenue came not from increasing traffic or adding more ad units, but from creating genuine competition for every impression on our site. If you are running a single ad network, the data strongly suggests that diversifying your demand sources could deliver significant revenue gains. The implementation requires technical effort and ongoing management, but the financial results more than justify the investment.