choonkeat / postload_google_ads

Solution (that works) to prevent Google ads from stalling your page render

This URL has Read+Write access

Ethan Czahor (author)
Wed Nov 25 12:08:15 -0800 2009
commit  9aa4329f37ba286c6526b2a4dea622011653c24b
tree    8db1e522370b752d958133f8e0ebf6ebaad0b6f3
parent  2ea72a4cc085c18509e8449ad506e3b7367d2b20
name age message
file MIT-LICENSE Wed Mar 18 18:13:39 -0700 2009 first cut [choonkeat]
file README.rdoc Thu Mar 19 00:30:04 -0700 2009 Fix typo in instructions [choonkeat]
file Rakefile Wed Mar 18 18:13:39 -0700 2009 first cut [choonkeat]
file init.rb Wed Mar 18 18:13:39 -0700 2009 first cut [choonkeat]
file install.rb Wed Mar 18 18:13:39 -0700 2009 first cut [choonkeat]
directory lib/ Wed Nov 25 12:08:15 -0800 2009 added fix to prevent exceptions when no ads are... [Ethan Czahor]
directory tasks/ Wed Mar 18 18:13:39 -0700 2009 first cut [choonkeat]
directory test/ Wed Mar 18 18:13:39 -0700 2009 first cut [choonkeat]
file uninstall.rb Wed Mar 18 18:13:39 -0700 2009 first cut [choonkeat]
README.rdoc

Description

Problems

  1. The ads you include on your website is doing "document.write"
  2. They block your webpage from being rendered nicely — chunks appear as ads comes in

Solutions

  1. Drop ads, or change ads provider.
  2. Hack "document.write"
  3. Refactor your web page, so that ads are at the bottom & all your content renders before them
  4. Use postload_google_ads plugin to do (3) for you.

Requirements

In this implementation, jQuery, Hpricot & Rails are required.

Getting started

Make sure you give your <script> tags for google something identifiable, e.g. <script class="googleads"> Then configure the necessary controller:

  class ApplicationController < ActionController::Base
    include PostloadGoogleAds                     # step 1
    @@google_ads_cssselector = 'script.googleads' # step 2
    cattr_accessor :google_ads_cssselector        # step 3
    after_filter :postload_google_ads             # step 4
  end

Restart your Rails server and see

Tips

To prevent ads from shifting your layout, it is best to wrap your google ads <script> tag in something (e.g. div) and give it an explicit height width.

Copyright © 2009 Chew Choon Keat, released under the MIT license