PubGuru Header Bidding Speed Test Results

April 2, 2021 | by Kean Graham
PubGuru Header Bidding Speed Test Results

How the Test has been run

With the help of Puppeteer, we have run lighthouse tests on multiple AWS regions with simulated network traffic. 63 test pages have been created based on script location, script injection method, Script Load Type, and Ad Unit Tag Type combination.

Code, Config and test pages are available on branch name year-pagespeed in folder test/pagespeed.


  • head
  • body start
  • body end

Script Injection

  • script tag (sync/async/defer)
  • embedded script (sync/async)
  • embedded wrapped in function (sync/async)

Script Load Type

  • sync
  • async
  • defer

AdUnit Tag Type

  • id – html div with id – <div id=”{slotId}”></div>
    • limitation – can’t use same id multiple times
  • attribute – html div with custom attribute – <div class=”pg-ad” data-pg-ad=”{slotId}”></div>
  • pgtag – custom html tag – <pubguru data-ad=”{slotId}”></pubguru>

Device Type Simulated

  • desktop
  • mobile

Result data from lighthouse test

Description of Metrics used in the Test

First contentful paint

Speed index

  • Speed Index shows how quickly the contents of a page are visibly populated.
  • Speed Index measures how quickly content is visually displayed during page load. Lighthouse first captures a video of the page loading in the browser and computes the visual progression between frames.

Total blocking time


Bootup time (JavaScript execution time)

  • Consider reducing the time spent parsing, compiling, and executing JS. You may find delivering smaller JS payloads helps with this.

Performance score

  • The Performance score is a weighted average of the metric scores. Naturally, more heavily weighted metrics have a bigger effect on your overall Performance score. The metric scores are not visible in the report but are calculated under the hood.

SEO score

Cumulative layout shift

  • Cumulative Layout Shift measures the movement of visible elements within the viewport.

Largest contentful paint

First meaningful paint


Based on average of performance score, time to interactive and speedindex I have found bodyEnd-embeddedWrapped-async performance better for desktop and mobile both.

bodyEnd-embeddedWrapped-async means javascript code to load script asynchronously is wrapped in function and placed at the end of body tag. Please check following snippet with example tag how it looks like.




var script = d.createElement(‘script’);

script.async = true;

script.type = ‘text/javascript’;

script.src = ‘//’;

var target = d.getElementsByTagName(‘head’)[0];

target.insertBefore(script, target.firstChild);




Ad Ops Tips & Guides, Industry News, Latest Tech and Success Stories - right in your inbox.

We are committed to protecting you Privacy Data

Here’s the course that 300+ pubs used to scale their ad revenue.

Enroll today

Book Banner

"Working with MonetizeMore has been a transformative experience as they helped to increase my overall revenues by over 180%"


Paid to Publishers


Ad Requests Monthly


Happy Publishers

Recommended Reading

March 22, 2023

The Ups and Downs of ChatGPT for Publishers| Maximize Your Revenue…But at What Cost?

Read More
Traffic Cop
Last updated: March 22, 2023

The High Cost of Fake Traffic: $143 Billion Gone

Read More
DoubleClick For Publishers / Google Ad Manager Ad Optimization
March 20, 2023

Google Ad Manager Advanced Troubleshooting Guide for Display Ads

Read More

Trusted by 1,500+ publishers worldwide

10X your ad revenue with our award-winning solutions.

Let's Talk

Ready to 10X your ad revenue with the #1 ad management partner?

Start Now