Recently in Google Category

News, announcements, and analysis about Google search, ads, and apps.

  1. Apr10

    Google App Engine for developers

    Google App Engine

    On Monday Google launched Google App Engine, a hosted dynamic runtime environment for Python web applications inside Google's geo-distributed architecture. Google App Engine is the latest in a series of Google-hosted application environments and the first publicly-available dynamic runtime and storage environment based on large-scale propriety computing systems.

    Google App Engine lets any Python developer execute CGI-driven Web applications, store its results, and serve static content from a fault-tolerant geo-distributed computing grid built exclusively for modern Web applications. I met with the App Engine's team leads on Monday morning for an in-depth overview of the product, its features, and its limitations. Google has been working on the Google App Engine since at least March 2006 and has only just begun revealing some of its features. In this post I will summarize Google App Engine from a developer's point of view, outline its major features, and examine pitfalls for developers and startups interested in deploying web applications on Google's servers.

    What is Google App Engine?

    Google App Engine is a proprietary virtualized computing suite covering the major common components of a modern web application: dynamic runtime, persistent storage, static file serving, user management, external web requests, e-mail communication, service monitoring, and log analysis. The Google App Engine product offers a single hosted production web server stack hosted on Google's custom-designed computers and datacenters distributed around the world.

    Google App Engine is a managed hosting environment with a tightly managed stack running in a machine-independent environment. It simplifies the deployment and management of your web application software stack while constraining you to a specific stack. When I start a new web development project today I have to first setup a tiered system to effectively handle site growth:

    3tera Applogic grid
    1. Purchase dedicated servers or virtualized slices. Estimate necessary CPU, memory, disk space, etc. at each tier.
    2. Configure a web server for dynamic content. Install Python and its eggs, Apache HTTPd and extra modules such as modwsgi. Configure and tweak each. Open appropriate ports. Listen.
    3. Setup a MySQL database server and choose the appropriate storage engine. Configure MySQL, add users, add permissions. Tweak and optimize.
    4. Add an in-memory caching layer for frequently accessed dynamic content.
    5. Monitor your uptime and resource utilization with Ganglia and/or other tools on each machine.
    6. Serve static files such as JavaScript, CSS, and images from a specialized serving environment such as Amazon's Simple Storage Service.
    7. Turn your static server into an origin server for a CDN with points of presence close to your website's users.
    8. Connect each piece of the stack, keep its software updated to avoid security vulnerabilities, and hopefully respond to all website requests in less than a second.
    9. Dedicate work hours and expertise to all the above. Hire outside assistance if needed.
    10. Don't go broke trying.

    Your tiers will expand as your new web application gains popularity. Your single-server tiers become load-balanced services, message bus broadcasts and listeners, and distributed cache arrays at scale. You'll probably spend time rearchitecting your application at each stage of growth to incorporate for these new resource demands if you can afford the time, expertise, and effort.

    Google App Engine is a new and interesting solution for Python developers interested in adding features, not servers. Google spends hundreds of millions of dollars developing its custom infrastructure with 12-volt power supplies tapped into a hydro-electric dam next door and fat fiber pipes owned by local governments carrying requests and responses to their proper home. Google's physical infrastructure is vast array of highly optimized web machines, and we'll now be able to see how such infrastructure performs across more generic applications on App Engine.

    Freemium hosting model

    Google App Engine is a "freemium" business model offering basic features for free with paid upsells available for application developers exceeding approximately 5 million pageviews a month. This resource quota approximately matches the Google Analytics 5 million pageview limit. Google Analytics customers may currently exceed this limit if they maintain an active AdWords account with a daily advertising budget of $1 or more. The Google App Engine team plans to introduce pricing and service level agreements for additional resources, priced in a pay-as-you-go marginal resource structure, once the product leaves its limited 10,000-person preview period later this year.

    Quota TypeLimit / day
    HTTP requests650,000
    Bandwidth In9.77 GB
    Bandwidth Out9.77 GB
    CPU megacycles200 million
    E-mails2,000
    Datastore calls2.5 million
    External URL requests160,000

    Google publishes these quotas and provides administrative monitoring tools. The quotas are just a guideline as Google may cut off access to your application if you receive a traffic spike of an unspecified duration. The Google App Engine quota page specifies:

    If your application sustains very heavy traffic for too long, it is possible to see quota denials even though your 24-hour limit has not yet been reached.

    Google App Engine over quota

    Google App Engine already failed the Techcrunch effect and appears the platform is currently unable to handle referral traffic loads from a popular blog or news site typically associated with a product launch. The traffic spike cutoffs make me think twice about hosting anything of value on App Engine.

    The team

    The Google team behind App Engine has a long history in developer services. Team members include some of the top Python experts in the world, financial transaction specialists, and developer tool builders.

    • Python creator Guido van Rossum wrote the App Engine SDK and ported the Python runtime and Django framework for the new environment. Google App Engine is Guido's first full-time project at Google after his Noogler project Mondrian.
    • Technical lead Kevin Gibbs previously worked on the the SashXB Linux development toolset and multiple RPC projects at IBM before he created Google Suggest in 2004.
    • Developer Ryan Barrett wrote the BigTable datastore implementation and related APIs. Previously Ryan was tech lead on Moneta, Google's transaction processing platform and customer data store.
    • Product lead Paul McDonald has worked on Google Checkout, AdWords, and a Web-based IDE named Mashup Editor (all strong candidates for App Engine inclusion).
    • Product manager Peter Koomen has previously authored papers on natural language search and semantic analysis.

    The list above is just a sampling of the full-team behind App Engine.

    Feature limitations

    Google App Engine is not without its faults. Applications cannot currently expand beyond the quota's ceiling. It's still unclear how an application will dynamically scale on App Engine once it leaves the farm leagues, and at what cost.

    A few major issues include:

    1. Static files are limited to 1 MB. App Engine does not support partial content requests (Accept-Ranges).
    2. Cron jobs and other long-life processes are not permitted.
    3. Applications are not uniquely identifiable by IP address, leading to a lack of identification for external communications. Applications may suffer from bad neighbor penalties from API providers upset at another app on the service.
    4. No SSL support. No IP address complicates signing, but port 443 is open for requests. You can rely on Google services (and branding) for trusted login and possibly future payments.
    5. No image processing. Python Imaging Library relies on C, and is therefore not a possible App Engine module.
    6. Google user accounts. Site visitors are very aware of your choice in web hosts each time they attempt to logon to your application. I feel like this flow makes your application seem less professional, but may be a reasonable trade-off. Google will store your user data and potentially mine its data for better ad targeting.

    Summary

    Overall I am quite impressed with Google App Engine and its potential to remove operations management and systems administration from my task list. I am not confident in Google App Engine as a hosting solution for any real business while the host is in preview stage but those concerns may be alleviated once the product is ready for real customers and real service-level agreements.

    Python developers have just been granted a few superpowers for future projects. As an existing Python and Django developer I know how difficult it can be to find a managed hosting provider with modern Python support. Many hosts are years behind, running Python 2.3. I am excited App Engine already features the programming tools I use every day, with a few modifications for their proprietary systems. App Engine should introduce more developers to Python and the Django framework and hopefully cause other web hosts to provide better Python support as well.

  2. Jan17

    Upgrade your Google Analytics tracker

    Google Analytics logo

    Google released a new version of its Google Analytics tracking code in December after a two-month limited beta. The new Google Analytics tracker is a complete rewrite of JavaScript inherited from the Urchin acquisition in 2005 and the first time the two products have been officially decoupled. The existing version of Google Analytics tracker, urchin.js, has been deprecated but should continue to function until the end of 2008. Google will only roll out new features on the new ga.js tracker. If you currently track website statistics using Google Analytics you should upgrade your templates to take advantage of the new libraries.

    What changed?

    The new Google Analytics tracker supports proper JavaScript namespacing and more intuitive configuration methods (e.g. _setDomainName instead of _udn). My tests show about a 100 ms faster execution even with a 24% increase (1514 bytes) in file size (ga.js is also minified).

    The new tracking code makes advanced features a lot more accessible. You can now track a page on multiple Google Analytics accounts, which should help user generated content sites integrate their author's Google Analytics IDs alongside the company's own tracking account. The new event tracker lets you group a set of on-page related actions such as clicking a drop-down menu or typing a search query (very useful for widgets). Ecommerce tracking is now a lot more readable. You can read about all the tracker changes in the Google Analytics migration guide PDF.

    Implementation

    Switching your site tracker is pretty simple. Trackers are now created as objects and configured before the page is tracked.

    <script type="text/javascript" src="http://www.google-analytics.com/ga.js"></script>
    <script type="text/javascript">
    var pageTracker=_gat._getTracker('UA-XXXXXX-X');
    pageTracker._initData();
    pageTracker._trackPageview();
    </script>
    

    That's it. You are now running the new Google Analytics tracker. You'll need to swap in your Analytics account and profile IDs, which should be pretty easy to spot in your existing code.

    Summary

    Google Analytics tracking code is completely rewritten for faster on-page behavior that plays well with others. The old tracker will be deprecated within a year, and new features are only available to users running the new code. Existing Google Analytics users should swap out their tracking code to take full advantage of this free stats tool.

  3. Jan08

    Google processes over 20 petabytes of data per day

    Google currently processes over 20 petabytes of data per day through an average of 100,000 MapReduce jobs spread across its massive computing clusters. The average MapReduce job ran across approximately 400 machines in September 2007, crunching approximately 11,000 machine years in a single month. These are just some of the facts about the search giant's computational processing infrastructure revealed in an ACM paper by Google Fellows Jeffrey Dean and Sanjay Ghemawat.

    Twenty petabytes (20,000 terabytes) per day is a tremendous amount of data processing and a key contributor to Google's continued market dominance. Competing search storage and processing systems at Microsoft (Dyrad) and Yahoo! (Hadoop) are still playing catch-up to Google's suite of GFS, MapReduce, and BigTable.

    MapReduce statistics for different months
    Aug. 2004Mar. 2006Sep. 2007
    Number of jobs (1000s)291712,217
    Avg. completion time (secs)634874395
    Machine years used2172,00211,081
    map input data (TB)3,28852,254403,152
    map output data (TB)7586,74334,774
    reduce output data (TB)1932,97014,018
    Avg. machines per job157268394
    Unique implementations
    map3951,9584,083
    reduce2691,2082,418

    Google processes its data on a standard machine cluster node consisting two 2 GHz Intel Xeon processors with Hyper-Threading enabled, 4 GB of memory, two 160 GB IDE hard drives and a gigabit Ethernet link. This type of machine costs approximately $2400 each through providers such as Penguin Computing or Dell or approximately $900 a month through a managed hosting provider such as Verio (for startup comparisons).

    The average MapReduce job runs across a $1 million hardware cluster, not including bandwidth fees, datacenter costs, or staffing.

    Summary

    The January 2008 MapReduce paper provides new insights into Google's hardware and software crunching processing tens of petabytes of data per day. Google converted its search indexing systems to the MapReduce system in 2003, and currently processes over 20 terabytes of raw web data. It's some fascinating large-scale processing data that makes your head spin and appreciate the years of distributed computing fine-tuning applied to today's large problems.

  4. Oct06

    Google releases stand-alone desktop widget engine

    iGoogle Desktop widgets

    Google Desktop widgets can now be embedded in your iGoogle personal start page. This new functionality adds OS-level functionality such as CPU utilization, currently playing tracks in iTunes, or a battery indicator inside a Web interface. Google Desktop 5.5 is now available in a widget-only version for Windows 2000, XP, and Vista to bridge the desktop and Web worlds.

    The decoupling of Google Desktop Sidebar puts its desktop widget platform in direct competition with Windows Vista Sidebar and Konfabulator. Google can use its widget platform as a beachhead onto the desktop and later encourage its users to enable more Google Desktop features such as search and personalization.

    (Disclosure: Google is a sponsor of my upcoming widget conference, Widget Summit.)

  5. Sep18

    Google introduces Gadget Ads

    Google officially launched Google Gadgets as an ad unit tonight after about three months of pilot testing. Google's AdWords platform now supports Google Gadget content in addition to existing text, image, and video offerings. The gadget ads feature an entirely new widget analytics platform for tracking gadget success and interaction, an open caching proxy hosted by Google's geo-distributed servers, and the introduction of YouTube as a video hosting and transcoding platform free from any Google branding. I previously covered Google's upcoming advertising widgets in early May.

    Advertisers can create Google Gadget content in any size supported by AdWords images. In the example shown above Intel combined a Flash game with tabs displaying images and text with more information on the Intel Centrino Duo mobile processor. Each gadget interaction is recorded according to a set list of actions such as mouse over, tab views, entering a ZIP code, subscribing to a web feed, or initiating audio or visual playback. External links such as a visit to an external website pass through Google trackers for CPC billing.

    Mixed Media

    Starbucks meeting planner Google Gadget

    Gadget ads provide new mixed media interactions across Google's AdSense network. A Starbucks ad unit could display a web feed of the latest 5 tracks playing in its stores, query the local weather and suggest either an iced or hot drink, display local stores on a Google Map, and help you browse seasonal offerings from within a single ad unit. Google serves all of the content via proxy, and the rich media load never touches Starbucks' servers.

    Gadget ads also integrate with DoubleClick's DART for tracking as part of a larger portfolio. Google is currently limiting the number of publishers with access to widget advertising due to its more technical nature but existing Flash advertisers may already have the option exposed in AdWords.

    YouTube ad hosting

    Google is promoting YouTube as a video hosting and transcoding destination for advertisers. The Google Gadget Ads tutorial page includes detailed instructions for separating hosted Flash video content from an advertiser's video playback tools. This tutorial is the first time I have seen Google promote the use of YouTube in an without Google branding.

    Open caching proxy

    Google will cache almost any content passed to its gadget caching proxy including images, CSS, and JavaScript.

    http://gmodules.com/ig/proxy?url= + your URL

    Google delivers any file on your behalf from its thousands of servers distributed around the globe. It's like your own free CDN for your websites, although primarily designed for gadget content. I can cache my site's CSS through Google for example.

    Summary

    Online advertising is big business and the primary monetization engine of new web startups. Google's expansion of its dominant AdWords product into the widget space should extend the demand for quality gadget developers and designers, and bring even more attention to the space. Each advertisement is also listed in the Google Gadgets branded content directory, which may cause some product fans to integrate branded interactions for free on their blogs or personal homepage.

    Google is currently promoting gadget developers and companies experienced in Google Gadget development and design. It seems like a really good way to get exposure and potential contracts from big clients such as Honda or Coca-Cola. Designers and widget programmers may want to go get listed and take advantage of some new revenue opportunities.

    It's always exciting to see new advertising options emerge that may have richer interaction experiences and therefore drive a higher CPM. I added AdSense to my blog entry pages a few months ago hoping I might catch a new gadget ad in action -- it's so far not creating much revenue -- and I now expect even more regular Google Gadget content matched with my pages.

    Widget advertising is one of the emerging widget topics we will cover at this year's Widget Summit event October 15-16 in San Francisco.

  6. Jul17

    Scaling Google Gadget content

    Google spends hundreds of millions of dollars building efficient web serving infrastructure spread throughout the globe. Widget developers can take advantage of this optimized infrastructure to serve widgets quickly to one or a million users. In my last post I discussed best practices for scaling web widget content based on existing browser and Internet technologies. In this post I'll outline different ways you can take advantage of Google's architecture to serve your widget content to the world. I'll cover various depths of integration and their branding and licensing issues.

    1. Google widget hosting
    2. Caching remote content
    3. Summary

    Hosting your widget content on Google

    Google not only serves widget content in its personalized homepage and desktop products, it's also a web host.

    Google Gadgets Editor

    The Google Gadgets Editor helps developers build and test new gadgets inside their browser window. Once you are happy with the test results you can save and publish your gadget manifest file directly onto the "google.com" domain.

    The Gadgets Editor only saves XML files. Developers with external resources such as images, Flash, or movies, will need to serve those files using a different hosting option.

    Google Page Creator

    Google Page Creator logo

    Anyone with a Google account can create new web pages and upload files to their Google Page Creator account. Standard Google accounts can choose their own subdomain at "googlepages.com" and Google Apps customers can add pages and files under their own custom domain.

    Add a new site subdomain such as "widgets.example.com" or sign-up for an entirely new domain such as "examplewidgets.com" on the Google Apps website. All of your new content uploaded to Google Pages will be served from Google's infrastructure under the name you choose.

    Google Code Project Hosting

    Google hosts projects licensed under an Apache, Artistic, BSD, GPL, GLPL, MIT, or Mozilla open-source license. Google Code Project Hosting manages project collaborations on wikis, bug lists, and version control systems to help your users report issues with their widget or contribute new patches.

    If you're willing to open up your widget licensing and receive built-in community features Google Code Project Hosting may be the right widget hosting platform for you.

    Caching remote content

    Google caches your widget manifest file for quick response times and can cache even more files with the proper JavaScript calls. The core Google Gadgets library can cache your data sources, images, and any other form of remote content you choose.

    Remote data

    External data requests have an optional parameter, refreshInterval, that can override Google's default caching behaviors for all supported widget update data formats. You might lower your refresh interval to 15 to pull updates from a frequently changing data set or extend your refresh to 3600 for content that updates once per week.

    Remote images

    Google Gadgets has special handlers for caching and retrieving image files. The _IG_GetImage method constructs an img element for any URL for quick insertion into any DOM. The _IG_GetImageUrl replaces your typical src attribute with the appropriate location of a cached image on Google's servers.

    Cache anything

    Google will cache any URL specified in your code using the _IG_GetCachedUrl method. If you use external CSS, JavaScript, or Flash files you should pass each URL through the caching method to save your server some strain.

    Track statistics

    Cached content does not hit your server log files and therefore will not reflect the true use of your widget. Modern analytics tools have adjusted to the new forms of pageviews presented by heavy JavaScript and Flash utilization and your own measurement software should be able to plug-in to this new reporting style.

    Google Analytics customers can track widget pageviews using their existing software and accounts. You can create a new Analytics profile for each new widget or integrate reporting with your existing website, it's up to you.

    You need to require the Google Analytics library in your gadget manifest to load the appropriate libraries. You can then log new page requests using the _IG_Analytics method, a passthrough for the urchinTracker method found in the traditional Google Analytics and Urchin code. You can assign unique page names to each gadget action to track popular activities and use cases.

    Summary

    Popular widget content has the potential to melt your servers but the right code and planning can offload a lot of that burden onto Google's server farms. Your content will appear on each widget user's screen faster and with higher availability than you might be able to offer on your own servers. External free hosting and caching also helps you experiment without the fear you might crash your existing boxes.

  7. Jun27

    Google offers seed funding for widget startups

    Google is directly investing in small companies to expand the popularity of its iGoogle product. Google Gadget Ventures grants popular Google gadgets $5,000 for further development. Popular widget businesses are eligible for $100,000 in seed capital with Google taking an equity stake in each company. Google expects to invest $700,000 or more in third-party widget development over the next year.

    About 9% of Google's gadget directory would be eligible for the grant consideration based on the Google Gadget pageview analysis I last conducted in April.

    How it works

    A gadget must have at least 250,000 gadget views per week to qualify for free Google money. If you develop a Sudoku puzzle from Ireland, Super Monkey Poop Fight, or a collection of daily comics you might be eligible for Google grant money. A selection committee within Google reviews one-page summary e-mails for eligibility and grants money around the world (presumably to anywhere they already have financial means to do so, similar to the Google Summer of Code restrictions).

    Successful grant recipients located in the United States are eligible for a $100,000 seed investment for further gadget development. Google invests an initial seed amount and provides incremental slices (trances) of the $100,000 total investment as additional usage targets are met.

    Why it's a big deal

    Google now has a corporate investment arm focused on third-party developers. Many of the popular widgets on iGoogle are developed by a single person in their spare time who might achieve surprising success. Success on a platform such as Google Gadgets or Facebook might not have immediate financial impact, but developers now have an additional source of income to build a small business around their JavaScript and Flash skills applied to a small web widget. A developer receiving funding might be able to hire a designer, buy better server hardware, or finance more hours developing fun tools for the Google Gadget platforms.

    If surprise success stories such as Desktop Tower Defense are any indication, viral gadget content could receive a new business viability onramp with the supply of these new funds. Google Gadget Ventures could also boost Google's general developer program and encourage the use of additional Google developer products and services within the gadget window. The introductory Google Gadgets Ventures blog post on the Google Code blog already hints at some of the other Google development tools available to gadget developers such as GData or Google Gears.

    In theory a popular web feed could receive a $5,000 grant from Google to develop a Google Gadget version of their news or information. A feed such as Engadget (4,386,688 weekly gadget views) or Daily Kos (226,863 gadget views) might receive $5,000 to create a nice-looking gadget with advanced functionality. Google just provided a widget budget to companies and services who might be on the fence about widget development.

  8. May17

    Google relaunches its search rankings and result pages

    Google's search result ranking algorithm received a major upgrade yesterday, incorporating its vertical search properties directly in the main search result page. The new design, Universal Search, integrates results from specialized Google verticals such as blogs, images, news, maps, and video. Results we've previously expected to find inside of a OneBox now appear anywhere in the users' result listings thanks to rewritten ranking and content examination algorithms.

    Examining vertical search

    Google and other large search engines crawl the worldwide web for new information every minute of every day. The modern web consists of billions of documents expressed in multiple formats and languages created to serve various purposes of their authors and intended audiences. Search has also recently expanded its reach into our libraries' book shelves, converting dead trees and ink into their digital representation.

    Each vertical search engine takes a specialized approach to data and its sources, extracting more information than a generic crawler such as Googlebot. The main crawler might recognize a webpage contains web feeds and pass its RSS and Atom content to a specialized engine such as Google Blog Search for further analysis. A local search engine contains an entire Yellow Pages full of local listings data and other interesting pieces of information such as hours of operation, payment methods, or other items of local interest. A patent search engine knows how to navigate intellectual property databases such as the United States Patent office, turning standardized forms into structured data and diagrams.

    Current Google search offerings

    I'm sure there are even more specialized public data search verticals supported by Google I'm leaving out of this list. All of these various verticals present contain possible pieces of relevant information for a given query entered into the Google search box. Until yesterday they were isolated from the main Google search box in a separate silo or perhaps a short summary inside OneBox, the integrated results section at the top of a search page.

    Google Universal Search

    Google's new search process collects relevant information for each search query from each of its vertical search properties. The universal search for data needs to be processed by a universal ranking algorithm to determine the top 10 results shown for each query. A search for "Utah Jazz" might contain recent news stories, video highlights, pictures of star basketball players, as well as relevant search results from across the Web. Google's algorithms need to weight results from each vertical, assign it a universal search rank, order the results, and return a response to the user as quickly as possible. No small feat, and the new algorithm and breadth of search definitely impress. Google also announced yesterday it will process your search query in multiple different languages, returning results for your search term if it were translated into its equivalent value in French, Spanish, and more, creating an even more complicated problems of query extraction and result set analysis.

    Visual changes

    All of these behind the scenes updates allow a few new tweaks to the front-end UI adapted to your query's result set. I'll walk through some of the major changes.

    Search refinement

    Google search iPod

    Google lists search verticals with appropriate results for your queries at the top of this search result page. In this example I searched for "iPod" expecting to find information about Apple's popular music player. Google assembles 10 "universal" results on the page, but clusters relevant search options across its vertical properties such as iPod patents, iPod products, and iPod news search enabling a quick refinement.

    Inline video thumbnails and playback

    Google search video results

    Video thumbnails are included directly alongside video search results along with the video's total length and user rating. You can even watch the video directly from the search result page using embedded players from YouTube and Google Video. Google gathers metadata from other popular video sites such as Metacafe, but embedded players video playback is currently not available for these third-party sites. Searchers will see a thumbnail image from supported sites' video content and will need to visit the site directly before playing back any videos.

    Google's Marissa Mayer mentioned during yesterday's Searchology event a lack of support for external video players and not the actual site content. The Media RSS module can help smart publishers better define video thumbnails and an appropriate web browser media playback console. The thumbnail element provides search engines with visual search result data and the player element specifies the location of your preferred playback interface. I don't expect Google to load remote code such as a Flash player inside of their search results pages, but at least you can be properly prepared.

    Related content

    Google results Jerry Falwell

    The search result page also suggest alternate searches related to your current query where appropriate. In a sample search for "Jerry Falwell" I received five related searches, three results from the news archive broken out by year of publication, and three recent blog posts on Falwell's recent death.

    If a searcher makes it all the way to the bottom of the page it's likely they never found what they were looking for, and a few quick suggestions might boost the relevancy of their experience.

    Summary

    The main Google search result page just received a major revamp yesterday with more content integrated from search verticals and new methods of displaying information about your query. Google's sidebar advertising has always restrained itself to matching the layout and expectations of the main search result page, so perhaps Google Universal Search opens up new advertising options beyond a text summary such as maps, images, and video.

    Publishers should now be even more motivated to list their content in a Google vertical and stand out on the main search result page. I expect video publishers and local businesses will pay even more attention to Google and its referral power now that their data can be highlighted in a more visually appealing search result than the competition.

  9. May04

    Google Gadgets are now an AdSense unit

    Webmasters will soon be able to auction off widget space on their sites and blogs managed and marketed by advertising powerhouse Google. Advertisers will produce a Google Gadget in standard IAB unit sizes for distribution across the Google network at CPC or CPM billing rates. Google will bolster its current Google Analytics package to support better tracking paid and free widget campaigns in this sub-page and asynchronous pageload environment. The Google Gadget advertising beta program was publicly announced during a marketing summit for the automotive industry according to Online Media Daily.

    By the end of 2007 Google will offer its traditional text link advertising, display advertising, and interactive gadgets to its huge network of advertisers. AdSense publishers can select the interactive marketing unit that best suits their need, and the Google bidding system can select the most profitable ad content. The advertising content can behave like a miniature application, integrating tabs, updating its content on-the-fly using web feeds and other data protocols, and creating small interactive experiences across the web. Google Gadget advertisements will benefit from the same contextual analysis, click-through rate, and other measures of interactivity and success already measured by the Google system.

    Pretty cool stuff, and it will be interesting to see what type of CPM might be commanded from a 300 x 250 pixel widget as an advertising vehicle. The new advertising system should be a huge boost to widget-producing design studios as big brands will be much more aware of this potential advertising spend.

    Google is not the only company thinking about widgets as a paid advertising model. Startups such as Widgetbox and Clearspring feature widget analytics, directories, and plans for future advertising revenue. The 800-pound gorilla just entered the room, the same giant powering advertisements on widget-friendly MySpace for at least the next three years. The widget industry just shook a bit, and expect more announcements from Google's gadget program in the next few months.

  10. Apr19

    Google Feed API

    Google Reader finally has its first official API. Any developer in the world can request the entire history of a web feed from Google's geo-distributed server cloud in a normalized response for inclusion in their websites or products. I've been hoping for such an API since I first deconstructed the Google Reader backend in December 2005.

    Most users will likely interact with the Google AJAX Feed API through a JavaScript library included on their site or a pre-configured badge generated on the Google site. The Feed API wrapper is part of a larger effort by Google to extend its search and advertising network onto more sites. Page authors can integrate slick-looking results from Google's web search, news search, blog search, local search, and video properties.

    Google AJAX Feed API HTTP profile

    It's possible to route around the pre-configured JavaScript API libraries and program directly against the JSON and XML response from Google's servers. Advanced users can code directly against the service inside of client-side JavaScript or stand-alone programs to optimize user experience and efficiency with 3 less HTTP requests, 5 KB less data transferred over the wire, resulting in about a half-second performance improvement per page load in my test. Here's how.

    Google AJAX Feed API endpoint

    It's much quicker and simpler for advanced users to directly code against Google's feed API endpoint. I'll walk through each required and optional parameter of the REST interface.

    An example request for my Atom feed.

    http://www.google.com/uds/Gfeeds
    Base URL.
    q
    A properly escaped feed URL.
    callback
    Define a JavaScript callback function for client-side processing of JSON results. Set to blank for requests from your server.
    context
    DOM Level 1 document context for XML. Set to blank if not needed.
    output
    json, xml, or mixed. The JSON response is the JavaScript wrapper's default and therefore most likely to be already cached for common feeds.
    v
    API version number, currently 1.0.
    num
    Optional. Maximum number of entries included in the response. Default is 4.
    key
    Optional. Lets Google track your requests for metering and other purposes. You can agree to a terms of service and receive a key if you'd like.

    This endpoint is unsupported and technically in violation of the product's terms of service. Yet it functions just fine for my needs and provides a quicker load for client- and server-side scripts.

Niall Kennedy Niall Kennedy is a web technologist in San Francisco, California in the United States. I am very interested in the world of... MORE »

Search this weblog:

Subscribe:

Latest feature: Widget development

Archives: Popular Categories

Sites: More from Niall