Wednesday, August 6, 2008

What Google Can Teach Ajax Developers

With Google Gadgets, Google has arguably pushed Ajax scalability and testing harder than any other single vendor. But that was only the beginning. Adam Sah, architect of Google Gadgets, has been experimenting with using Gadgets to display ads. In June, 2008, he gave a talk on this work for the Visual Ajax User Group.

Google Gadgets are XML files that run inside an iframe on your web page, complete with embedded Javascript. The XML file itself is divided into 3 parts: module preferences, user preferences and content (html with inline css and javascript). SEOish has a good Google Gadgets tutorial for Ajax Developers.

The next logical step for Google is inserting gadgets into Google's ad infrastructure - introducing rich content ads, such as ads that show pictures of things for sale. Rich media also allows advertisers to combine branding with lead generation, giving them the best of banner ads and click-through ads.

Google gadgets themselves represent an interesting proving ground for Ajax technology. Incorporating Google Gadgets into adsense takes Ajax to a whole new level. Adam described "unpausing" an Ajax ad without the proper infrastructure in place as "a very fast way to do a denial of service attack on yourself."

Here are some of the lessons learned from working in the high volume world of Google Gadget ads:

  1. Relevancy trumps latency. Rich ad widgets can make multiple Ajax calls and take ten times longer to load (sometimes several seconds), but get a much higher click through rate. In a nutshell, this is why Web 2.0/Rich Internet Apps/Ajax are taking over from the old internet - people are willing to wait for content that is more relevant and interactive.
  2. Context is difficult. Because syndicated ads live in their own isolated iframes, it is hard to create context-aware ads. Of course, having a good WYSIWYG Ajax tool to build iframe applications could help!
  3. Scalability is a challenge. Every ad impression hits a database, so going live with an Ajax ad on a high volume site creates a huge amount of database traffic. This is even worse for ads which have a number of images. On the other hand, the size limit for a Google Gadget is 50K, which at least sets an upper limit on the damage you can do.
  4. Testing is difficult. When ads are created on the fly, it is literally impossible to test all combinations of content, browsers and interaction.

With Google Gadgets, a developer can create a Google ad that includes images and interactivity. The ad publisher gets to define what a "click" means within their gadget. Their incentive to cheat is low because if they don't have a way to measure clicks, they will never win a bid!

Adam also gave a good perspective on how Google fights the proprietary web (what Alex Russell calls the unweb) - with Gadgets and standards! People choose proprietary solutions when good open alternatives are not available. Google is trying to make it so easy and cheap to work with open standards that proprietary standards lose their appeal.

No comments: