Async AdSense
JavaScriptRewrites synchronous Google AdSense tags to the asynchronous format.
Filter
make_show_ads_async
· Filter docs · Demonstrates rewriting the Google AdSense tag.
A mod_pagespeed 1.1 filter. ModPageSpeed 2.0 applies it as part of one always-on pipeline, not as a separate switch.
Both frames render identically — that's the goal. The win is in the bytes and requests
below, not the look. They're served live by mod_pagespeed 1.1 on
demo-httpd-1.1.modpagespeed.com; the optimized frame
applies only this filter. Right after a cache purge it may briefly match the original while
the worker rewrites it — reload to see the result.
Measured impact
HTML size
What changed in the source
The page's HTML, before and after this filter. Red lines are removed, green lines are added.
… 4 unchanged lines …
<body>
An ad in a blue box:
<div style="border: 2px solid blue;">
- <script>
- google_ad_client = "ca-google";
- google_ad_width = 728;
- google_ad_height = 90;
- google_ad_format = "728x90";
- google_adtest = "on";
- google_ad_type = "text";
- </script>
- <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
- </script>
+ <script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script><ins class="adsbygoogle" style="display:inline-block;width:728px;height:90px" data-ad-client="ca-google" data-ad-format="728x90" data-ad-type="text" data-adtest="on"></ins>
+ <script>(adsbygoogle = window.adsbygoogle || []).push({})</script>
</div>
Another ad:
<div style="border: 2px solid blue;">
- <script>
- google_ad_client = "ca-google";
- google_ad_width = 728;
- google_ad_height = 90;
- google_ad_format = "728x90";
- google_adtest = "on";
- google_ad_type = "text";
- </script>
- <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
- </script>
+ <ins class="adsbygoogle" style="display:inline-block;width:728px;height:90px" data-ad-client="ca-google" data-ad-format="728x90" data-ad-type="text" data-adtest="on"></ins>
+ <script>(adsbygoogle = window.adsbygoogle || []).push({})</script>
</div>
</body>
</html>