Home Blog |
In this article, I'll take a look at an actual click on a Google ad to see what really happens. Disclaimer : this is a neutral research. To conduct my research, I only needed a couple of things :
Choosing a web page of interestI then picked an arbitrary web site which hosts Google AdSense blocks. The url of the web site is http://wesnerm.blogs.com/, and here is a screen capture of what you see when you visit it : A web page which happens to host a couple of Google AdSense blocks
I have circled in red the AdSense block of interest. Note that the web page has three : two vertical blocks on the left, and one horizontal block at the top of the page : Our GoogleAdSense block of interest
What we are going to do is click on the top horizontal AdSense block (width = 468, height = 60), as depicted here : Clicking on one ad (Keil.com)
Clicking the ad makes us visit Keil.com website. Keil.com has a Google AdWords campaign with a running site-targeted campaign. Keil.com's landing page for the ad is http://www.keil.com/c51/, at least that's what one can deduce from clicking there. Here is what their website looks like : Keil.com website
Recorded click-throughNow that we have seen what happens when a user clicks, let's see the requests produced by the web browser in order to do all of this. Phase 1 : reaching http://wesnerm.blogs.com/Here is how to read the sequence below :
<?xml version="1.0" encoding="UTF-8" ?> - <webh4ck> - <url name="page1" source="http://wesnerm.blogs.com/" method="get"> <header name="Host" value="wesnerm.blogs.com" /> <header name="User-Agent" value="Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1) Gecko/20060918 Firefox/2.0" /> <header name="Accept" value="text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5" /> <header name="Accept-Language" value="en-us" /> <header name="Accept-Encoding" value="gzip,deflate" /> <header name="Accept-Charset" value="ISO-8859-1,utf-8;q=0.7,*;q=0.7" /> <header name="Keep-Alive" value="300" /> <header name="Proxy-Connection" value="keep-alive" /> </url> - <url name="page2" source="http://wesnerm.blogs.com/net_undocumented/styles.css" method="get"> <header name="Host" value="wesnerm.blogs.com" /> <header name="User-Agent" value="Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1) Gecko/20060918 Firefox/2.0" /> <header name="Accept" value="text/css,*/*;q=0.1" /> <header name="Accept-Language" value="en-us" /> <header name="Accept-Encoding" value="gzip,deflate" /> <header name="Accept-Charset" value="ISO-8859-1,utf-8;q=0.7,*;q=0.7" /> <header name="Keep-Alive" value="300" /> <header name="Proxy-Connection" value="keep-alive" /> <header name="Referer" value="http://wesnerm.blogs.com/" /> </url> - <url name="page3" source="http://wesnerm.blogs.com/.shared/themes/common/base-weblog.css" method="get"> <header name="Host" value="wesnerm.blogs.com" /> <header name="User-Agent" value="Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1) Gecko/20060918 Firefox/2.0" /> <header name="Accept" value="text/css,*/*;q=0.1" /> <header name="Accept-Language" value="en-us" /> <header name="Accept-Encoding" value="gzip,deflate" /> <header name="Accept-Charset" value="ISO-8859-1,utf-8;q=0.7,*;q=0.7" /> <header name="Keep-Alive" value="300" /> <header name="Proxy-Connection" value="keep-alive" /> <header name="Referer" value="http://wesnerm.blogs.com/net_undocumented/styles.css" /> </url> - <url name="page4" source="http://wesnerm.blogs.com/.shared/themes/lilia/theme-stevenson.css" method="get"> <header name="Host" value="wesnerm.blogs.com" /> <header name="User-Agent" value="Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1) Gecko/20060918 Firefox/2.0" /> <header name="Accept" value="text/css,*/*;q=0.1" /> <header name="Accept-Language" value="en-us" /> <header name="Accept-Encoding" value="gzip,deflate" /> <header name="Accept-Charset" value="ISO-8859-1,utf-8;q=0.7,*;q=0.7" /> <header name="Keep-Alive" value="300" /> <header name="Proxy-Connection" value="keep-alive" /> <header name="Referer" value="http://wesnerm.blogs.com/net_undocumented/styles.css" /> </url> - <url name="page5" source="http://www.google-analytics.com/urchin.js" method="get"> <header name="Host" value="www.google-analytics.com" /> <header name="User-Agent" value="Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1) Gecko/20060918 Firefox/2.0" /> <header name="Accept" value="*/*" /> <header name="Accept-Language" value="en-us" /> <header name="Accept-Encoding" value="gzip,deflate" /> <header name="Accept-Charset" value="ISO-8859-1,utf-8;q=0.7,*;q=0.7" /> <header name="Keep-Alive" value="300" /> <header name="Proxy-Connection" value="keep-alive" /> <header name="Referer" value="http://wesnerm.blogs.com/" /> </url> - <url name="page6" source="http://www.google-analytics.com/__utm.gif?utmwv=1&utmn=2082620850&utmsr=1024x768&utmsc=32-bit&utmul=en-us&utmje=1& utmfl=8.0%20%20r24&utmcn=1&utmdt=Smart%20Software&utmhn=wesnerm.blogs.com&utmr=-&utmp=/&utmac=UA-51244-1&utmcc=" method="get"> <header name="Host" value="www.google-analytics.com" /> <header name="User-Agent" value="Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1) Gecko/20060918 Firefox/2.0" /> <header name="Accept" value="image/png,*/*;q=0.5" /> <header name="Accept-Language" value="en-us" /> <header name="Accept-Encoding" value="gzip,deflate" /> <header name="Accept-Charset" value="ISO-8859-1,utf-8;q=0.7,*;q=0.7" /> <header name="Keep-Alive" value="300" /> <header name="Proxy-Connection" value="keep-alive" /> <header name="Referer" value="http://wesnerm.blogs.com/" /> </url> - <url name="page7" source="http://wesnerm.blogs.com/.shared/themes/lilia/theme-stevenson/body-bg.gif" method="get"> <header name="Host" value="wesnerm.blogs.com" /> <header name="User-Agent" value="Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1) Gecko/20060918 Firefox/2.0" /> <header name="Accept" value="image/png,*/*;q=0.5" /> <header name="Accept-Language" value="en-us" /> <header name="Accept-Encoding" value="gzip,deflate" /> <header name="Accept-Charset" value="ISO-8859-1,utf-8;q=0.7,*;q=0.7" /> <header name="Keep-Alive" value="300" /> <header name="Proxy-Connection" value="keep-alive" /> <header name="Referer" value="http://wesnerm.blogs.com/.shared/themes/lilia/theme-stevenson.css" /> </url> - <url name="page8" source="http://pagead2.googlesyndication.com/pagead/show_ads.js" method="get"> <header name="Host" value="pagead2.googlesyndication.com" /> <header name="User-Agent" value="Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1) Gecko/20060918 Firefox/2.0" /> <header name="Accept" value="*/*" /> <header name="Accept-Language" value="en-us" /> <header name="Accept-Encoding" value="gzip,deflate" /> <header name="Accept-Charset" value="ISO-8859-1,utf-8;q=0.7,*;q=0.7" /> <header name="Keep-Alive" value="300" /> <header name="Proxy-Connection" value="keep-alive" /> <header name="Referer" value="http://wesnerm.blogs.com/" /> </url> - <url name="page9" source="http://wesnerm.blogs.com/.shared/themes/lilia/theme-stevenson/container-bg.gif" method="get"> <header name="Host" value="wesnerm.blogs.com" /> <header name="User-Agent" value="Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1) Gecko/20060918 Firefox/2.0" /> <header name="Accept" value="image/png,*/*;q=0.5" /> <header name="Accept-Language" value="en-us" /> <header name="Accept-Encoding" value="gzip,deflate" /> <header name="Accept-Charset" value="ISO-8859-1,utf-8;q=0.7,*;q=0.7" /> <header name="Keep-Alive" value="300" /> <header name="Proxy-Connection" value="keep-alive" /> <header name="Referer" value="http://wesnerm.blogs.com/.shared/themes/lilia/theme-stevenson.css" /> </url> - <url name="page10" source="http://wesnerm.blogs.com/.shared/themes/lilia/theme-stevenson/banner-bg.gif" method="get"> <header name="Host" value="wesnerm.blogs.com" /> <header name="User-Agent" value="Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1) Gecko/20060918 Firefox/2.0" /> <header name="Accept" value="image/png,*/*;q=0.5" /> <header name="Accept-Language" value="en-us" /> <header name="Accept-Encoding" value="gzip,deflate" /> <header name="Accept-Charset" value="ISO-8859-1,utf-8;q=0.7,*;q=0.7" /> <header name="Keep-Alive" value="300" /> <header name="Proxy-Connection" value="keep-alive" /> <header name="Referer" value="http://wesnerm.blogs.com/.shared/themes/lilia/theme-stevenson.css" /> </url> - <url name="page11" source="http://wesnerm.blogs.com/.shared/themes/lilia/theme-stevenson/column-left-bg.gif" method="get"> <header name="Host" value="wesnerm.blogs.com" /> <header name="User-Agent" value="Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1) Gecko/20060918 Firefox/2.0" /> <header name="Accept" value="image/png,*/*;q=0.5" /> <header name="Accept-Language" value="en-us" /> <header name="Accept-Encoding" value="gzip,deflate" /> <header name="Accept-Charset" value="ISO-8859-1,utf-8;q=0.7,*;q=0.7" /> <header name="Keep-Alive" value="300" /> <header name="Proxy-Connection" value="keep-alive" /> <header name="Referer" value="http://wesnerm.blogs.com/.shared/themes/lilia/theme-stevenson.css" /> </url> - <url name="page12" source="http://wesnerm.blogs.com/.shared/themes/lilia/theme-stevenson/colitem-header-bg.gif" method="get"> <header name="Host" value="wesnerm.blogs.com" /> <header name="User-Agent" value="Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1) Gecko/20060918 Firefox/2.0" /> <header name="Accept" value="image/png,*/*;q=0.5" /> <header name="Accept-Language" value="en-us" /> <header name="Accept-Encoding" value="gzip,deflate" /> <header name="Accept-Charset" value="ISO-8859-1,utf-8;q=0.7,*;q=0.7" /> <header name="Keep-Alive" value="300" /> <header name="Proxy-Connection" value="keep-alive" /> <header name="Referer" value="http://wesnerm.blogs.com/.shared/themes/lilia/theme-stevenson.css" /> </url> - <url name="page13" source="http://pagead2.googlesyndication.com/pagead/ads?client=ca-pub-6379068705570091&dt=1159003441093&lmt=1159003438& alt_color=ECEBF5&format=120x240_as&output=html&url=http%3A%2F%2Fwesnerm.blogs.com%2F&color_bg=ECEBF5&color_text=6F6F6F& color_link=0000CC&color_url=008000&color_border=ECEBF5&ad_type=text_image&cc=100&u_h=768&u_w=1024&u_ah=704&u_aw=1024& u_cd=32&u_tz=120&u_his=1&u_java=true&u_nplug=25&u_nmime=106" method="get"> <header name="Host" value="pagead2.googlesyndication.com" /> <header name="User-Agent" value="Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1) Gecko/20060918 Firefox/2.0" /> <header name="Accept" value="text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5" /> <header name="Accept-Language" value="en-us" /> <header name="Accept-Encoding" value="gzip,deflate" /> <header name="Accept-Charset" value="ISO-8859-1,utf-8;q=0.7,*;q=0.7" /> <header name="Keep-Alive" value="300" /> <header name="Proxy-Connection" value="keep-alive" /> <header name="Referer" value="http://wesnerm.blogs.com/" /> </url> - <url name="page14" source="http://pagead2.googlesyndication.com/pagead/ads?client=ca-pub-6379068705570091&dt=1159003441171&lmt=1159003438& alt_color=ECEBF5&prev_fmts=120x240_as&format=160x600_as&output=html&url=http%3A%2F%2Fwesnerm.blogs.com%2F&color_bg=ECEBF5& color_text=6F6F6F&color_link=0000CC&color_url=008000&color_border=ECEBF5&ad_type=text_image&cc=100&u_h=768&u_w=1024& u_ah=704&u_aw=1024&u_cd=32&u_tz=120&u_his=1&u_java=true&u_nplug=25&u_nmime=106" method="get"> <header name="Host" value="pagead2.googlesyndication.com" /> <header name="User-Agent" value="Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1) Gecko/20060918 Firefox/2.0" /> <header name="Accept" value="text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5" /> <header name="Accept-Language" value="en-us" /> <header name="Accept-Encoding" value="gzip,deflate" /> <header name="Accept-Charset" value="ISO-8859-1,utf-8;q=0.7,*;q=0.7" /> <header name="Keep-Alive" value="300" /> <header name="Proxy-Connection" value="keep-alive" /> <header name="Referer" value="http://wesnerm.blogs.com/" /> </url> - <url name="page15" source="http://pagead2.googlesyndication.com/pagead/ads?client=ca-pub-6379068705570091&dt=1159003441187&lmt=1159003438& alt_color=FFFFFF&prev_fmts=120x240_as%2C160x600_as&format=468x60_as&output=html&url=http%3A%2F%2Fwesnerm.blogs.com%2F& color_bg=FFFFFF&color_text=000000&color_link=0000FF&color_url=008000&color_border=FFFFFF&ad_type=text_image&cc=100&u_h=768& u_w=1024&u_ah=704&u_aw=1024&u_cd=32&u_tz=120&u_his=1&u_java=true&u_nplug=25&u_nmime=106" method="get"> <header name="Host" value="pagead2.googlesyndication.com" /> <header name="User-Agent" value="Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1) Gecko/20060918 Firefox/2.0" /> <header name="Accept" value="text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5" /> <header name="Accept-Language" value="en-us" /> <header name="Accept-Encoding" value="gzip,deflate" /> <header name="Accept-Charset" value="ISO-8859-1,utf-8;q=0.7,*;q=0.7" /> <header name="Keep-Alive" value="300" /> <header name="Proxy-Connection" value="keep-alive" /> <header name="Referer" value="http://wesnerm.blogs.com/" /> </url> - <url name="page16" source="http://www.assoc-amazon.com/e/ir?t=netundocume-20&l=as2&o=1&a=0670033847" method="get"> <header name="Host" value="www.assoc-amazon.com" /> <header name="User-Agent" value="Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1) Gecko/20060918 Firefox/2.0" /> <header name="Accept" value="image/png,*/*;q=0.5" /> <header name="Accept-Language" value="en-us" /> <header name="Accept-Encoding" value="gzip,deflate" /> <header name="Accept-Charset" value="ISO-8859-1,utf-8;q=0.7,*;q=0.7" /> <header name="Keep-Alive" value="300" /> <header name="Proxy-Connection" value="keep-alive" /> <header name="Referer" value="http://wesnerm.blogs.com/" /> </url> - <url name="page17" source="http://www.assoc-amazon.com/e/ir?t=netundocume-20&l=as2&o=1&a=0596101139" method="get"> <header name="Host" value="www.assoc-amazon.com" /> <header name="User-Agent" value="Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1) Gecko/20060918 Firefox/2.0" /> <header name="Accept" value="image/png,*/*;q=0.5" /> <header name="Accept-Language" value="en-us" /> <header name="Accept-Encoding" value="gzip,deflate" /> <header name="Accept-Charset" value="ISO-8859-1,utf-8;q=0.7,*;q=0.7" /> <header name="Keep-Alive" value="300" /> <header name="Proxy-Connection" value="keep-alive" /> <header name="Referer" value="http://wesnerm.blogs.com/" /> </url> - <url name="page18" source="http://www.blogpatrol.com/counter.php?i=4273&r=&n=Mozilla/5.0%20%28Windows%3B%20U%3B%20Windows%20NT%205.1%3B%20en-US%3B %20rv%3A1.8.1%29%20Gecko/20060918%20Firefox/2.0&p=Mozilla/5.0%20%28Windows%3B%20U%3B%20Windows%20NT%205.1%3B%20en-US%3B%20rv%3A 1.8.1%29%20Gecko/20060918%20Firefox/2.0&g=http%3A//wesnerm.blogs.com/&sd=32&sw=1024x768" method="get"> <header name="Host" value="www.blogpatrol.com" /> <header name="User-Agent" value="Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1) Gecko/20060918 Firefox/2.0" /> <header name="Accept" value="image/png,*/*;q=0.5" /> <header name="Accept-Language" value="en-us" /> <header name="Accept-Encoding" value="gzip,deflate" /> <header name="Accept-Charset" value="ISO-8859-1,utf-8;q=0.7,*;q=0.7" /> <header name="Keep-Alive" value="300" /> <header name="Proxy-Connection" value="keep-alive" /> <header name="Referer" value="http://wesnerm.blogs.com/" /> </url> - <url name="page19" source="http://wesnerm.blogs.com/net_undocumented/911scan3.png" method="get"> <header name="Host" value="wesnerm.blogs.com" /> <header name="User-Agent" value="Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1) Gecko/20060918 Firefox/2.0" /> <header name="Accept" value="image/png,*/*;q=0.5" /> <header name="Accept-Language" value="en-us" /> <header name="Accept-Encoding" value="gzip,deflate" /> <header name="Accept-Charset" value="ISO-8859-1,utf-8;q=0.7,*;q=0.7" /> <header name="Keep-Alive" value="300" /> <header name="Proxy-Connection" value="keep-alive" /> <header name="Referer" value="http://wesnerm.blogs.com/" /> </url> - <url name="page20" source="http://www.typepad.com/t/stats?blog_id=7693&page=http%3A//wesnerm.blogs.com/&referrer=" method="get"> <header name="Host" value="www.typepad.com" /> <header name="User-Agent" value="Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1) Gecko/20060918 Firefox/2.0" /> <header name="Accept" value="image/png,*/*;q=0.5" /> <header name="Accept-Language" value="en-us" /> <header name="Accept-Encoding" value="gzip,deflate" /> <header name="Accept-Charset" value="ISO-8859-1,utf-8;q=0.7,*;q=0.7" /> <header name="Keep-Alive" value="300" /> <header name="Proxy-Connection" value="keep-alive" /> <header name="Referer" value="http://wesnerm.blogs.com/" /> </url> - <url name="page21" source="http://wesnerm.blogs.com/.shared/themes/lilia/theme-stevenson/li-bg.gif" method="get"> <header name="Host" value="wesnerm.blogs.com" /> <header name="User-Agent" value="Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1) Gecko/20060918 Firefox/2.0" /> <header name="Accept" value="image/png,*/*;q=0.5" /> <header name="Accept-Language" value="en-us" /> <header name="Accept-Encoding" value="gzip,deflate" /> <header name="Accept-Charset" value="ISO-8859-1,utf-8;q=0.7,*;q=0.7" /> <header name="Keep-Alive" value="300" /> <header name="Proxy-Connection" value="keep-alive" /> <header name="Referer" value="http://wesnerm.blogs.com/.shared/themes/lilia/theme-stevenson.css" /> </url> - <url name="page22" source="http://wesnerm.blogs.com/.shared/themes/lilia/theme-stevenson/date-header-bg.gif" method="get"> <header name="Host" value="wesnerm.blogs.com" /> <header name="User-Agent" value="Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1) Gecko/20060918 Firefox/2.0" /> <header name="Accept" value="image/png,*/*;q=0.5" /> <header name="Accept-Language" value="en-us" /> <header name="Accept-Encoding" value="gzip,deflate" /> <header name="Accept-Charset" value="ISO-8859-1,utf-8;q=0.7,*;q=0.7" /> <header name="Keep-Alive" value="300" /> <header name="Proxy-Connection" value="keep-alive" /> <header name="Referer" value="http://wesnerm.blogs.com/.shared/themes/lilia/theme-stevenson.css" /> </url> - <url name="page23" source="http://wesnerm.blogs.com/.shared/themes/lilia/theme-stevenson/entry-header-bg.gif" method="get"> <header name="Host" value="wesnerm.blogs.com" /> <header name="User-Agent" value="Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1) Gecko/20060918 Firefox/2.0" /> <header name="Accept" value="image/png,*/*;q=0.5" /> <header name="Accept-Language" value="en-us" /> <header name="Accept-Encoding" value="gzip,deflate" /> <header name="Accept-Charset" value="ISO-8859-1,utf-8;q=0.7,*;q=0.7" /> <header name="Keep-Alive" value="300" /> <header name="Proxy-Connection" value="keep-alive" /> <header name="Referer" value="http://wesnerm.blogs.com/.shared/themes/lilia/theme-stevenson.css" /> </url> - <url name="page24" source="http://wesnerm.blogs.com/favicon.ico" method="get"> <header name="Host" value="wesnerm.blogs.com" /> <header name="User-Agent" value="Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1) Gecko/20060918 Firefox/2.0" /> <header name="Accept" value="image/png,*/*;q=0.5" /> <header name="Accept-Language" value="en-us" /> <header name="Accept-Encoding" value="gzip,deflate" /> <header name="Accept-Charset" value="ISO-8859-1,utf-8;q=0.7,*;q=0.7" /> <header name="Keep-Alive" value="300" /> <header name="Proxy-Connection" value="keep-alive" /> </url> - <url name="page25" source="http://6a.typepad.com/favicon.ico" method="get"> <header name="Host" value="6a.typepad.com" /> <header name="User-Agent" value="Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1) Gecko/20060918 Firefox/2.0" /> <header name="Accept" value="text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5" /> <header name="Accept-Language" value="en-us" /> <header name="Accept-Encoding" value="gzip,deflate" /> <header name="Accept-Charset" value="ISO-8859-1,utf-8;q=0.7,*;q=0.7" /> <header name="Keep-Alive" value="300" /> <header name="Proxy-Connection" value="keep-alive" /> </url> </webh4ck> In order to build Google AdSense blocks, the web browser makes requests to There are 4 requests in total related to Google AdSense :
The first request is a shared Javascript piece of code which dynamically adds html markup to the web page. This takes shape of an html Notice that, because of the nature of the web, the 3 last requests can appear in any order. But we can disambiguate which is which thanks to the passed parameters. In bold is the At this point, Google AdSense block units have been built and ready to be clicked, but as a user we still have no idea what's going to happen when we click on an ad. Let's click.
Phase 2 : clicking the first ad in the horizontal Google AdSense block unitClicking on one ad (Keil.com) Let's see what clicking the ad produces in terms of web requests. <?xml version="1.0" encoding="UTF-8" ?> - <webh4ck> - <url name="page1" source="http://pagead2.googlesyndication.com/pagead/iclk?sa=l&ai=BTG4HVPwURb63F5Oa-QLjoLmeCarwiw3KnsjQBsCNtwGA6jAQARgIIOj_o AMoAjAAOABAyhFQ4MaKwwGYAcLVggKgAZOWwf8DsgERd2VzbmVybS5ibG9ncy5jb226AQk0Njh4NjBfYXPIAQHaARlodHRwOi8vd2VzbmVybS5ibG9ncy5jb20v4AE DgAIB&num=8&adurl=http://www.keil.com/gl/c51/&client=ca-pub-6379068705570091&nm=16&nh=1&jca=8770" method="get"> <header name="Host" value="pagead2.googlesyndication.com" /> <header name="User-Agent" value="Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1) Gecko/20060918 Firefox/2.0" /> <header name="Accept" value="text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5" /> <header name="Accept-Language" value="en-us" /> <header name="Accept-Encoding" value="gzip,deflate" /> <header name="Accept-Charset" value="ISO-8859-1,utf-8;q=0.7,*;q=0.7" /> <header name="Keep-Alive" value="300" /> <header name="Proxy-Connection" value="keep-alive" /> </url> - <url name="page2" source="http://www.googleadservices.com/pagead/adclick?sa=L&ai=BTG4HVPwURb63F5Oa-QLjoLmeCarwiw3KnsjQBsCNtwGA6jAQARgIIOj_o AMoAjAAOABAyhFQ4MaKwwGYAcLVggKgAZOWwf8DsgERd2VzbmVybS5ibG9ncy5jb226AQk0Njh4NjBfYXPIAQHaARlodHRwOi8vd2VzbmVybS5ibG9ncy5jb20v4AE DgAIB&num=8&adurl=http://www.keil.com/gl/c51/&client=ca-pub-6379068705570091&nm=16&nh=1&jca=8770" method="get"> <header name="Host" value="www.googleadservices.com" /> <header name="User-Agent" value="Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1) Gecko/20060918 Firefox/2.0" /> <header name="Accept" value="text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5" /> <header name="Accept-Language" value="en-us" /> <header name="Accept-Encoding" value="gzip,deflate" /> <header name="Accept-Charset" value="ISO-8859-1,utf-8;q=0.7,*;q=0.7" /> <header name="Keep-Alive" value="300" /> <header name="Proxy-Connection" value="keep-alive" /> <header name="Referer" value="http://pagead2.googlesyndication.com/pagead/ads?client=ca-pub-6379068705570091&dt=1159003441187&lmt=1159003438& alt_color=FFFFFF&prev_fmts=120x240_as%2C160x600_as&format=468x60_as&output=html&url=http%3A%2F%2Fwesnerm.blogs.com%2F& color_bg=FFFFFF&color_text=000000&color_link=0000FF&color_url=008000&color_border=FFFFFF&ad_type=text_image&cc=100&u_h=768& u_w=1024&u_ah=704&u_aw=1024&u_cd=32&u_tz=120&u_his=1&u_java=true&u_nplug=25&u_nmime=106" /> </url> - <url name="page3" source="http://www.keil.com/gl/c51/?gclid=CN-2nfa6w4cCFSU5XgodS3NUHg" method="get"> <header name="Host" value="www.keil.com" /> <header name="User-Agent" value="Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1) Gecko/20060918 Firefox/2.0" /> <header name="Accept" value="text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5" /> <header name="Accept-Language" value="en-us" /> <header name="Accept-Encoding" value="gzip,deflate" /> <header name="Accept-Charset" value="ISO-8859-1,utf-8;q=0.7,*;q=0.7" /> <header name="Keep-Alive" value="300" /> <header name="Proxy-Connection" value="keep-alive" /> <header name="Referer" value="http://pagead2.googlesyndication.com/pagead/ads?client=ca-pub-6379068705570091&dt=1159003441187&lmt=1159003438& alt_color=FFFFFF&prev_fmts=120x240_as%2C160x600_as&format=468x60_as&output=html&url=http%3A%2F%2Fwesnerm.blogs.com%2F& color_bg=FFFFFF&color_text=000000&color_link=0000FF&color_url=008000&color_border=FFFFFF&ad_type=text_image&cc=100&u_h=768& u_w=1024&u_ah=704&u_aw=1024&u_cd=32&u_tz=120&u_his=1&u_java=true&u_nplug=25&u_nmime=106" /> </url> - <url name="page4" source="http://www.keil.com/c51/" method="get"> <header name="Host" value="www.keil.com" /> <header name="User-Agent" value="Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1) Gecko/20060918 Firefox/2.0" /> <header name="Accept" value="text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5" /> <header name="Accept-Language" value="en-us" /> <header name="Accept-Encoding" value="gzip,deflate" /> <header name="Accept-Charset" value="ISO-8859-1,utf-8;q=0.7,*;q=0.7" /> <header name="Keep-Alive" value="300" /> <header name="Proxy-Connection" value="keep-alive" /> <header name="Referer" value="http://pagead2.googlesyndication.com/pagead/ads?client=ca-pub-6379068705570091&dt=1159003441187&lmt=1159003438& alt_color=FFFFFF&prev_fmts=120x240_as%2C160x600_as&format=468x60_as&output=html&url=http%3A%2F%2Fwesnerm.blogs.com%2F& color_bg=FFFFFF&color_text=000000&color_link=0000FF&color_url=008000&color_border=FFFFFF&ad_type=text_image&cc=100&u_h=768& u_w=1024&u_ah=704&u_aw=1024&u_cd=32&u_tz=120&u_his=1&u_java=true&u_nplug=25&u_nmime=106" /> </url> - <url name="page5" source="http://www.keil.com/_css/t5_ns_screen.css" method="get"> <header name="Host" value="www.keil.com" /> <header name="User-Agent" value="Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1) Gecko/20060918 Firefox/2.0" /> <header name="Accept" value="text/css,*/*;q=0.1" /> <header name="Accept-Language" value="en-us" /> <header name="Accept-Encoding" value="gzip,deflate" /> <header name="Accept-Charset" value="ISO-8859-1,utf-8;q=0.7,*;q=0.7" /> <header name="Keep-Alive" value="300" /> <header name="Proxy-Connection" value="keep-alive" /> <header name="Referer" value="http://www.keil.com/c51/" /> </url> - <url name="page6" source="http://www.keil.com/_css/t5_common.css" method="get"> <header name="Host" value="www.keil.com" /> <header name="User-Agent" value="Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1) Gecko/20060918 Firefox/2.0" /> <header name="Accept" value="text/css,*/*;q=0.1" /> <header name="Accept-Language" value="en-us" /> <header name="Accept-Encoding" value="gzip,deflate" /> <header name="Accept-Charset" value="ISO-8859-1,utf-8;q=0.7,*;q=0.7" /> <header name="Keep-Alive" value="300" /> <header name="Proxy-Connection" value="keep-alive" /> <header name="Referer" value="http://www.keil.com/c51/" /> </url> - <url name="page7" source="http://www.keil.com/_css/keilinfo.js" method="get"> <header name="Host" value="www.keil.com" /> <header name="User-Agent" value="Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1) Gecko/20060918 Firefox/2.0" /> <header name="Accept" value="*/*" /> <header name="Accept-Language" value="en-us" /> <header name="Accept-Encoding" value="gzip,deflate" /> <header name="Accept-Charset" value="ISO-8859-1,utf-8;q=0.7,*;q=0.7" /> <header name="Keep-Alive" value="300" /> <header name="Proxy-Connection" value="keep-alive" /> <header name="Referer" value="http://www.keil.com/c51/" /> </url> - <url name="page8" source="http://www.keil.com/product/brochures/cx51_v8.jpg" method="get"> <header name="Host" value="www.keil.com" /> <header name="User-Agent" value="Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1) Gecko/20060918 Firefox/2.0" /> <header name="Accept" value="image/png,*/*;q=0.5" /> <header name="Accept-Language" value="en-us" /> <header name="Accept-Encoding" value="gzip,deflate" /> <header name="Accept-Charset" value="ISO-8859-1,utf-8;q=0.7,*;q=0.7" /> <header name="Keep-Alive" value="300" /> <header name="Proxy-Connection" value="keep-alive" /> <header name="Referer" value="http://www.keil.com/c51/" /> </url> - <url name="page9" source="http://www.keil.com/images/keilarm.gif" method="get"> <header name="Host" value="www.keil.com" /> <header name="User-Agent" value="Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1) Gecko/20060918 Firefox/2.0" /> <header name="Accept" value="image/png,*/*;q=0.5" /> <header name="Accept-Language" value="en-us" /> <header name="Accept-Encoding" value="gzip,deflate" /> <header name="Accept-Charset" value="ISO-8859-1,utf-8;q=0.7,*;q=0.7" /> <header name="Keep-Alive" value="300" /> <header name="Proxy-Connection" value="keep-alive" /> <header name="Referer" value="http://www.keil.com/c51/" /> </url> - <url name="page10" source="http://www.keil.com/images/keilinfo.gif?js=1&ts=1159004377234.58&rs=1024x768&cd=32&ln=en&tz=GMT%20+02%3A00&jv=1" method="get"> <header name="Host" value="www.keil.com" /> <header name="User-Agent" value="Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1) Gecko/20060918 Firefox/2.0" /> <header name="Accept" value="image/png,*/*;q=0.5" /> <header name="Accept-Language" value="en-us" /> <header name="Accept-Encoding" value="gzip,deflate" /> <header name="Accept-Charset" value="ISO-8859-1,utf-8;q=0.7,*;q=0.7" /> <header name="Keep-Alive" value="300" /> <header name="Proxy-Connection" value="keep-alive" /> <header name="Referer" value="http://www.keil.com/c51/" /> </url> - <url name="page11" source="http://www.keil.com/product/brochures/uv3.jpg" method="get"> <header name="Host" value="www.keil.com" /> <header name="User-Agent" value="Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1) Gecko/20060918 Firefox/2.0" /> <header name="Accept" value="image/png,*/*;q=0.5" /> <header name="Accept-Language" value="en-us" /> <header name="Accept-Encoding" value="gzip,deflate" /> <header name="Accept-Charset" value="ISO-8859-1,utf-8;q=0.7,*;q=0.7" /> <header name="Keep-Alive" value="300" /> <header name="Proxy-Connection" value="keep-alive" /> <header name="Referer" value="http://www.keil.com/c51/" /> </url> - <url name="page12" source="http://www.keil.com/iconexp/24x24/shadow/cpu.png" method="get"> <header name="Host" value="www.keil.com" /> <header name="User-Agent" value="Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1) Gecko/20060918 Firefox/2.0" /> <header name="Accept" value="image/png,*/*;q=0.5" /> <header name="Accept-Language" value="en-us" /> <header name="Accept-Encoding" value="gzip,deflate" /> <header name="Accept-Charset" value="ISO-8859-1,utf-8;q=0.7,*;q=0.7" /> <header name="Keep-Alive" value="300" /> <header name="Proxy-Connection" value="keep-alive" /> <header name="Referer" value="http://www.keil.com/c51/" /> </url> - <url name="page13" source="http://www.keil.com/iconexp/24x24/shadow/text_marked.png" method="get"> <header name="Host" value="www.keil.com" /> <header name="User-Agent" value="Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1) Gecko/20060918 Firefox/2.0" /> <header name="Accept" value="image/png,*/*;q=0.5" /> <header name="Accept-Language" value="en-us" /> <header name="Accept-Encoding" value="gzip,deflate" /> <header name="Accept-Charset" value="ISO-8859-1,utf-8;q=0.7,*;q=0.7" /> <header name="Keep-Alive" value="300" /> <header name="Proxy-Connection" value="keep-alive" /> <header name="Referer" value="http://www.keil.com/c51/" /> </url> - <url name="page14" source="http://www.keil.com/c51/dp_c51.png" method="get"> <header name="Host" value="www.keil.com" /> <header name="User-Agent" value="Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1) Gecko/20060918 Firefox/2.0" /> <header name="Accept" value="image/png,*/*;q=0.5" /> <header name="Accept-Language" value="en-us" /> <header name="Accept-Encoding" value="gzip,deflate" /> <header name="Accept-Charset" value="ISO-8859-1,utf-8;q=0.7,*;q=0.7" /> <header name="Keep-Alive" value="300" /> <header name="Proxy-Connection" value="keep-alive" /> <header name="Referer" value="http://www.keil.com/c51/" /> </url> - <url name="page15" source="http://www.keil.com/favicon.ico" method="get"> <header name="Host" value="www.keil.com" /> <header name="User-Agent" value="Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1) Gecko/20060918 Firefox/2.0" /> <header name="Accept" value="image/png,*/*;q=0.5" /> <header name="Accept-Language" value="en-us" /> <header name="Accept-Encoding" value="gzip,deflate" /> <header name="Accept-Charset" value="ISO-8859-1,utf-8;q=0.7,*;q=0.7" /> <header name="Keep-Alive" value="300" /> <header name="Proxy-Connection" value="keep-alive" /> </url> </webh4ck> Here is how to read the sequence of requests above :
If you ping or trace-route Then the landing page has a parameter of the form If we take a closer look at the respective requests sent to Another question of interest is who and when is the key
ConclusionThe article explains what's going on when one clicks an ad in a Google AdSense block. A simple recording tool is used to track the sequence of web requests. And another tool, not used here, could be used to reveal the post-processed html markup, for instance the actual markup for the Google AdSense block units. Google uses two requests to make an actual click and charge a sponsor. It's unclear whether a web check is performed to ensure the click leads to a real visit. Google official answer on the subject is that no web check is performed and that Google assumes the click leads to a real visit, and charges the sponsor for the click. The whole click sequence can easily be automated. Of course, Google probably monitors additional information that does not appear above such as the IP address of the user, or the time when web requests are issued (especially if a ton of these are issued simultaneously) to disambiguate families of invalid clicks and detect click frauds. That said, Google only holds a part of the truth, they don't own the sponsor web server logs for instance. To minimize click fraud in the future, it would seem quite logical that either Google performs a web check before charging : for instance the sponsor landing page ( written by Stéphane Rodriguez - September 23, 2006. |