<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Google Data &#187; Adam Feldman</title>
	<atom:link href="/author/adam-feldman/feed/" rel="self" type="application/rss+xml" />
	<link>https://googledata.org</link>
	<description>Everything Google: News, Products, Services, Content, Culture</description>
	<lastBuildDate>Thu, 19 Mar 2015 22:49:02 +0000</lastBuildDate>
	<language>en-US</language>
		<sy:updatePeriod>hourly</sy:updatePeriod>
		<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.7.5</generator>
	<item>
		<title>Fall Housekeeping</title>
		<link>https://googledata.org/google-ajax-api/fall-housekeeping/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=fall-housekeeping</link>
		<comments>https://googledata.org/google-ajax-api/fall-housekeeping/#comments</comments>
		<pubDate>Mon, 01 Nov 2010 17:57:00 +0000</pubDate>
		<dc:creator><![CDATA[Adam Feldman]]></dc:creator>
				<category><![CDATA[Google Ajax API]]></category>
		<category><![CDATA[custom search engine]]></category>
		<category><![CDATA[google ajax]]></category>
		<category><![CDATA[google api]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[When we introduced this blog over four years ago, the term AJAX was only a year old, and Google had exactly one relevant API .  Ajax has since become a mainstream part of the Web, and our family of APIs has grown.  Like many growing families, we’ve a...]]></description>
				<content:encoded><![CDATA[When we <a href="http://googleajaxsearchapi.blogspot.com/2006_05_01_archive.html">introduced this blog</a> over four years ago, the term AJAX was only a year old, and Google had exactly one relevant API .  Ajax has since become a mainstream part of the Web, and our family of APIs has grown.  Like many growing families, we’ve accumulated a lot of cruft over the years, and have outgrown our first home.  Time for some housekeeping.<br /><br /><span style="font-weight: bold;">API Documentation - Now easier to find and use</span><br />We’ve reorganized our documentation to make it easier to find what you’re looking for, based on what you want to do.  We used to group our APIs based on technology - for instance, there were Google Data APIs and AJAX APIs.  Now, you’ll see that each API has been given its own place, including its own documentation pages.  This new documentation has been created from the ground up to provide a better experience for people coding against the APIs.  We’ve also organized these more logically by product, such as moving the Book Search API into the <a href="http://code.google.com/apis/books/docs/js/devguide.html">Books family of APIs</a>, and added many more samples to help you get started.<br /><br /><span style="font-weight: bold;">A fond farewell</span><br />In the spirit of consolidation, we’ll be retiring this blog in favor of the <a href="http://googlecode.blogspot.com">Google Code Blog</a>.  By concentrating on fewer blogs, we’ll be able to keep the blog fresher and help make sure that as wide an audience as possible is able to benefit from our posts.  We’ll continue using tags, so that you can subscribe to your favorite APIs and focus on the content that most interests you (though we hope you’ll check in occasionally to see what new stuff you might be missing).<br /><br />Show your support for the Code blog by hopping over to read about the new <a href="https://code.google.com/apis/console/">Google APIs console</a> and <a href="http://code.google.com/apis/customsearch/v1/overview.html">Custom Search API</a>, and also say good-bye to the Web and Local Search APIs, which are being deprecated.  Full post <a href="http://googlecode.blogspot.com/2010/11/introducing-google-apis-console-and-our.html">here</a>.<br /><br />Posted by:  Adam Feldman, Product Manager<div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/29072373-6754565313977492454?l=googleajaxsearchapi.blogspot.com' alt='' /></div>]]></content:encoded>
			<wfw:commentRss>https://googledata.org/google-ajax-api/fall-housekeeping/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Fall Housekeeping</title>
		<link>https://googledata.org/google-ajax-api/fall-housekeeping-2/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=fall-housekeeping-2</link>
		<comments>https://googledata.org/google-ajax-api/fall-housekeeping-2/#comments</comments>
		<pubDate>Mon, 01 Nov 2010 17:57:00 +0000</pubDate>
		<dc:creator><![CDATA[Adam Feldman]]></dc:creator>
				<category><![CDATA[Google Ajax API]]></category>
		<category><![CDATA[custom search engine]]></category>
		<category><![CDATA[google ajax]]></category>
		<category><![CDATA[google api]]></category>

		<guid isPermaLink="false">https://googledata.org/?guid=bee823b73f3362223aa1d13dbdb84ff2</guid>
		<description><![CDATA[When we <a href="http://googleajaxsearchapi.blogspot.com/2006_05_01_archive.html">introduced this blog</a> over four years ago, the term AJAX was only a year old, and Google had exactly one relevant API .  Ajax has since become a mainstream part of the Web, and our family of APIs has grown.  Like many growing families, we&#8217;ve accumulated a lot of cruft over the years, and have outgrown our first home.  Time for some housekeeping.<br /><br /><span>API Documentation - Now easier to find and use</span><br />We&#8217;ve reorganized our documentation to make it easier to find what you&#8217;re looking for, based on what you want to do.  We used to group our APIs based on technology - for instance, there were Google Data APIs and AJAX APIs.  Now, you&#8217;ll see that each API has been given its own place, including its own documentation pages.  This new documentation has been created from the ground up to provide a better experience for people coding against the APIs.  We&#8217;ve also organized these more logically by product, such as moving the Book Search API into the <a href="http://code.google.com/apis/books/docs/js/devguide.html">Books family of APIs</a>, and added many more samples to help you get started.<br /><br /><span>A fond farewell</span><br />In the spirit of consolidation, we&#8217;ll be retiring this blog in favor of the <a href="http://googlecode.blogspot.com/">Google Code Blog</a>.  By concentrating on fewer blogs, we&#8217;ll be able to keep the blog fresher and help make sure that as wide an audience as possible is able to benefit from our posts.  We&#8217;ll continue using tags, so that you can subscribe to your favorite APIs and focus on the content that most interests you (though we hope you&#8217;ll check in occasionally to see what new stuff you might be missing).<br /><br />Show your support for the Code blog by hopping over to read about the new <a href="https://code.google.com/apis/console/">Google APIs console</a> and <a href="http://code.google.com/apis/customsearch/v1/overview.html">Custom Search API</a>, and also say good-bye to the Web and Local Search APIs, which are being deprecated.  Full post <a href="http://googlecode.blogspot.com/2010/11/introducing-google-apis-console-and-our.html">here</a>.<br /><br />Posted by:  Adam Feldman, Product Manager]]></description>
				<content:encoded><![CDATA[When we <a href="http://googleajaxsearchapi.blogspot.com/2006_05_01_archive.html">introduced this blog</a> over four years ago, the term AJAX was only a year old, and Google had exactly one relevant API .  Ajax has since become a mainstream part of the Web, and our family of APIs has grown.  Like many growing families, we’ve accumulated a lot of cruft over the years, and have outgrown our first home.  Time for some housekeeping.<br /><br /><span style="font-weight: bold;">API Documentation - Now easier to find and use</span><br />We’ve reorganized our documentation to make it easier to find what you’re looking for, based on what you want to do.  We used to group our APIs based on technology - for instance, there were Google Data APIs and AJAX APIs.  Now, you’ll see that each API has been given its own place, including its own documentation pages.  This new documentation has been created from the ground up to provide a better experience for people coding against the APIs.  We’ve also organized these more logically by product, such as moving the Book Search API into the <a href="http://code.google.com/apis/books/docs/js/devguide.html">Books family of APIs</a>, and added many more samples to help you get started.<br /><br /><span style="font-weight: bold;">A fond farewell</span><br />In the spirit of consolidation, we’ll be retiring this blog in favor of the <a href="http://googlecode.blogspot.com/">Google Code Blog</a>.  By concentrating on fewer blogs, we’ll be able to keep the blog fresher and help make sure that as wide an audience as possible is able to benefit from our posts.  We’ll continue using tags, so that you can subscribe to your favorite APIs and focus on the content that most interests you (though we hope you’ll check in occasionally to see what new stuff you might be missing).<br /><br />Show your support for the Code blog by hopping over to read about the new <a href="https://code.google.com/apis/console/">Google APIs console</a> and <a href="http://code.google.com/apis/customsearch/v1/overview.html">Custom Search API</a>, and also say good-bye to the Web and Local Search APIs, which are being deprecated.  Full post <a href="http://googlecode.blogspot.com/2010/11/introducing-google-apis-console-and-our.html">here</a>.<br /><br />Posted by:  Adam Feldman, Product Manager]]></content:encoded>
			<wfw:commentRss>https://googledata.org/google-ajax-api/fall-housekeeping-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="" length="" type="" />
		</item>
		<item>
		<title>Increase site efficiency by retrieving just your preferred number of results</title>
		<link>https://googledata.org/google-ajax-api/increase-site-efficiency-by-retrieving-just-your-preferred-number-of-results/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=increase-site-efficiency-by-retrieving-just-your-preferred-number-of-results</link>
		<comments>https://googledata.org/google-ajax-api/increase-site-efficiency-by-retrieving-just-your-preferred-number-of-results/#comments</comments>
		<pubDate>Tue, 29 Jun 2010 17:42:00 +0000</pubDate>
		<dc:creator><![CDATA[Adam Feldman]]></dc:creator>
				<category><![CDATA[Google Ajax API]]></category>
		<category><![CDATA[google ajax]]></category>
		<category><![CDATA[google api]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[When using any of the  searchers available in the Search API, four results are  returned by default.  Historically, it has been possible to request a  large set of eight results (or ten for filter Custom Search Engines),  but that’s it.  We understan...]]></description>
				<content:encoded><![CDATA[<span style="font-size: 11pt; font-family: Arial; color: rgb(0, 0, 0);  background-color: transparent; font-weight: normal; font-style: normal;  text-decoration: none; vertical-align: baseline;">When using any of the  searchers available in the </span><a href="http://code.google.com/apis/ajaxsearch/"><span style="font-size:  11pt; font-family: Arial; color: rgb(0, 0, 153); background-color:  transparent; font-weight: normal; font-style: normal; text-decoration:  underline; vertical-align: baseline;">Search API</span></a><span style="font-size: 11pt; font-family: Arial; color: rgb(0, 0, 0);  background-color: transparent; font-weight: normal; font-style: normal;  text-decoration: none; vertical-align: baseline;">, four results are  returned by default.  Historically, it has been possible to request a  large set of eight results (or ten for filter Custom Search Engines),  but that’s it.  We understand that there are many use cases for this  API, and some of them require a finer grain of control over the number  of results displayed.</span><br /><span style="font-size: 11pt;  font-family: Arial; color: rgb(0, 0, 0); background-color: transparent;  font-weight: normal; font-style: normal; text-decoration: none;  vertical-align: baseline;"></span><br /><span style="font-size: 11pt;  font-family: Arial; color: rgb(0, 0, 0); background-color: transparent;  font-weight: normal; font-style: normal; text-decoration: none;  vertical-align: baseline;">For instance, with the JavaScript API, you  can use <code>.setResultSetSize(1)</code> or  <code>.setResultSetSize(6)</code> in addition to using the  enum to request a <code>SMALL_RESULTSET</code> or  <code>LARGE_RESULTSET</code>.  When using the RESTful  interface, you can also use any integer from 1 to 8 with the <code>rsz</code>  parameter.</span><br /><span style="font-size: 11pt; font-family: Arial;  color: rgb(0, 0, 0); background-color: transparent; font-weight: normal;  font-style: normal; text-decoration: none; vertical-align: baseline;"></span><br /><span style="font-size: 11pt; font-family: Arial; color: rgb(0, 0, 0);  background-color: transparent; font-weight: normal; font-style: normal;  text-decoration: none; vertical-align: baseline;">With this addition,  you can now request an arbitrary number of results, based on the exact  number you need.  By requesting only the results you’re going to show to  the end-user, you can make your site or app more efficient.  Also, this  will control the cursor values that can be used to retrieve subsequent  pages of results (and impact paging in the </span><a href="http://www.google.com/webelements/customsearch/"><span style="font-size: 11pt; font-family: Arial; color: rgb(0, 0, 153);  background-color: transparent; font-weight: normal; font-style: normal;  text-decoration: underline; vertical-align: baseline;">Custom Search  element</span></a><span style="font-size: 11pt; font-family: Arial;  color: rgb(0, 0, 0); background-color: transparent; font-weight: normal;  font-style: normal; text-decoration: none; vertical-align: baseline;">).</span><br /><span style="font-size: 11pt; font-family: Arial; color: rgb(0, 0, 0);  background-color: transparent; font-weight: normal; font-style: normal;  text-decoration: none; vertical-align: baseline;"></span><br /><span style="font-size: 11pt; font-family: Arial; color: rgb(0, 0, 0);  background-color: transparent; font-weight: normal; font-style: normal;  text-decoration: none; vertical-align: baseline;">For more details,  check out the </span><a href="http://code.google.com/apis/ajaxsearch/documentation/reference.html#_class_GSearch"><span style="font-size: 11pt; font-family: Arial; color: rgb(0, 0, 153);  background-color: transparent; font-weight: normal; font-style: normal;  text-decoration: underline; vertical-align: baseline;">documentation</span></a><span style="font-size: 11pt; font-family: Arial; color: rgb(0, 0, 0);  background-color: transparent; font-weight: normal; font-style: normal;  text-decoration: none; vertical-align: baseline;">, and if you have any  questions, stop by our </span><a href="https://groups.google.com/group/google-ajax-search-api/browse_thread/thread/ccbcf6c42d5a78bc"><span style="font-size: 11pt; font-family: Arial; color: rgb(0, 0, 153);  background-color: transparent; font-weight: normal; font-style: normal;  text-decoration: underline; vertical-align: baseline;">IRC channel</span></a><span style="font-size: 11pt; font-family: Arial; color: rgb(0, 0, 0);  background-color: transparent; font-weight: normal; font-style: normal;  text-decoration: none; vertical-align: baseline;"> and </span><a href="http://groups.google.com/group/Google-AJAX-Search-API"><span style="font-size: 11pt; font-family: Arial; color: rgb(0, 0, 153);  background-color: transparent; font-weight: normal; font-style: normal;  text-decoration: underline; vertical-align: baseline;">support forum</span></a><span style="font-size: 11pt; font-family: Arial; color: rgb(0, 0, 0);  background-color: transparent; font-weight: normal; font-style: normal;  text-decoration: none; vertical-align: baseline;">.</span><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/29072373-5109806866677922899?l=googleajaxsearchapi.blogspot.com' alt='' /></div>]]></content:encoded>
			<wfw:commentRss>https://googledata.org/google-ajax-api/increase-site-efficiency-by-retrieving-just-your-preferred-number-of-results/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Increase site efficiency by retrieving just your preferred number of results</title>
		<link>https://googledata.org/google-ajax-api/increase-site-efficiency-by-retrieving-just-your-preferred-number-of-results-2/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=increase-site-efficiency-by-retrieving-just-your-preferred-number-of-results-2</link>
		<comments>https://googledata.org/google-ajax-api/increase-site-efficiency-by-retrieving-just-your-preferred-number-of-results-2/#comments</comments>
		<pubDate>Tue, 29 Jun 2010 17:42:00 +0000</pubDate>
		<dc:creator><![CDATA[Adam Feldman]]></dc:creator>
				<category><![CDATA[Google Ajax API]]></category>
		<category><![CDATA[google ajax]]></category>
		<category><![CDATA[google api]]></category>

		<guid isPermaLink="false">https://googledata.org/?guid=dfdd402a766a4a1764cc3235b1467c1f</guid>
		<description><![CDATA[<span>When using any of the  searchers available in the </span><a href="http://code.google.com/apis/ajaxsearch/"><span>Search API</span></a><span>, four results are  returned by default.  Historically, it has been possible to request a  large set of eight results (or ten for filter Custom Search Engines),  but that&#8217;s it.  We understand that there are many use cases for this  API, and some of them require a finer grain of control over the number  of results displayed.</span><br /><span></span><br /><span>For instance, with the JavaScript API, you  can use <code>.setResultSetSize(1)</code> or  <code>.setResultSetSize(6)</code> in addition to using the  enum to request a <code>SMALL_RESULTSET</code> or  <code>LARGE_RESULTSET</code>.  When using the RESTful  interface, you can also use any integer from 1 to 8 with the <code>rsz</code>  parameter.</span><br /><span></span><br /><span>With this addition,  you can now request an arbitrary number of results, based on the exact  number you need.  By requesting only the results you&#8217;re going to show to  the end-user, you can make your site or app more efficient.  Also, this  will control the cursor values that can be used to retrieve subsequent  pages of results (and impact paging in the </span><a href="http://www.google.com/webelements/customsearch/"><span>Custom Search  element</span></a><span>).</span><br /><span></span><br /><span>For more details,  check out the </span><a href="http://code.google.com/apis/ajaxsearch/documentation/reference.html#_class_GSearch"><span>documentation</span></a><span>, and if you have any  questions, stop by our </span><a href="https://groups.google.com/group/google-ajax-search-api/browse_thread/thread/ccbcf6c42d5a78bc"><span>IRC channel</span></a><span> and </span><a href="http://groups.google.com/group/Google-AJAX-Search-API"><span>support forum</span></a><span>.</span>]]></description>
				<content:encoded><![CDATA[<span style="font-size: 11pt; font-family: Arial; color: rgb(0, 0, 0);  background-color: transparent; font-weight: normal; font-style: normal;  text-decoration: none; vertical-align: baseline;">When using any of the  searchers available in the </span><a href="http://code.google.com/apis/ajaxsearch/"><span style="font-size:  11pt; font-family: Arial; color: rgb(0, 0, 153); background-color:  transparent; font-weight: normal; font-style: normal; text-decoration:  underline; vertical-align: baseline;">Search API</span></a><span style="font-size: 11pt; font-family: Arial; color: rgb(0, 0, 0);  background-color: transparent; font-weight: normal; font-style: normal;  text-decoration: none; vertical-align: baseline;">, four results are  returned by default.  Historically, it has been possible to request a  large set of eight results (or ten for filter Custom Search Engines),  but that’s it.  We understand that there are many use cases for this  API, and some of them require a finer grain of control over the number  of results displayed.</span><br /><span style="font-size: 11pt;  font-family: Arial; color: rgb(0, 0, 0); background-color: transparent;  font-weight: normal; font-style: normal; text-decoration: none;  vertical-align: baseline;"></span><br /><span style="font-size: 11pt;  font-family: Arial; color: rgb(0, 0, 0); background-color: transparent;  font-weight: normal; font-style: normal; text-decoration: none;  vertical-align: baseline;">For instance, with the JavaScript API, you  can use <code>.setResultSetSize(1)</code> or  <code>.setResultSetSize(6)</code> in addition to using the  enum to request a <code>SMALL_RESULTSET</code> or  <code>LARGE_RESULTSET</code>.  When using the RESTful  interface, you can also use any integer from 1 to 8 with the <code>rsz</code>  parameter.</span><br /><span style="font-size: 11pt; font-family: Arial;  color: rgb(0, 0, 0); background-color: transparent; font-weight: normal;  font-style: normal; text-decoration: none; vertical-align: baseline;"></span><br /><span style="font-size: 11pt; font-family: Arial; color: rgb(0, 0, 0);  background-color: transparent; font-weight: normal; font-style: normal;  text-decoration: none; vertical-align: baseline;">With this addition,  you can now request an arbitrary number of results, based on the exact  number you need.  By requesting only the results you’re going to show to  the end-user, you can make your site or app more efficient.  Also, this  will control the cursor values that can be used to retrieve subsequent  pages of results (and impact paging in the </span><a href="http://www.google.com/webelements/customsearch/"><span style="font-size: 11pt; font-family: Arial; color: rgb(0, 0, 153);  background-color: transparent; font-weight: normal; font-style: normal;  text-decoration: underline; vertical-align: baseline;">Custom Search  element</span></a><span style="font-size: 11pt; font-family: Arial;  color: rgb(0, 0, 0); background-color: transparent; font-weight: normal;  font-style: normal; text-decoration: none; vertical-align: baseline;">).</span><br /><span style="font-size: 11pt; font-family: Arial; color: rgb(0, 0, 0);  background-color: transparent; font-weight: normal; font-style: normal;  text-decoration: none; vertical-align: baseline;"></span><br /><span style="font-size: 11pt; font-family: Arial; color: rgb(0, 0, 0);  background-color: transparent; font-weight: normal; font-style: normal;  text-decoration: none; vertical-align: baseline;">For more details,  check out the </span><a href="http://code.google.com/apis/ajaxsearch/documentation/reference.html#_class_GSearch"><span style="font-size: 11pt; font-family: Arial; color: rgb(0, 0, 153);  background-color: transparent; font-weight: normal; font-style: normal;  text-decoration: underline; vertical-align: baseline;">documentation</span></a><span style="font-size: 11pt; font-family: Arial; color: rgb(0, 0, 0);  background-color: transparent; font-weight: normal; font-style: normal;  text-decoration: none; vertical-align: baseline;">, and if you have any  questions, stop by our </span><a href="https://groups.google.com/group/google-ajax-search-api/browse_thread/thread/ccbcf6c42d5a78bc"><span style="font-size: 11pt; font-family: Arial; color: rgb(0, 0, 153);  background-color: transparent; font-weight: normal; font-style: normal;  text-decoration: underline; vertical-align: baseline;">IRC channel</span></a><span style="font-size: 11pt; font-family: Arial; color: rgb(0, 0, 0);  background-color: transparent; font-weight: normal; font-style: normal;  text-decoration: none; vertical-align: baseline;"> and </span><a href="http://groups.google.com/group/Google-AJAX-Search-API"><span style="font-size: 11pt; font-family: Arial; color: rgb(0, 0, 153);  background-color: transparent; font-weight: normal; font-style: normal;  text-decoration: underline; vertical-align: baseline;">support forum</span></a><span style="font-size: 11pt; font-family: Arial; color: rgb(0, 0, 0);  background-color: transparent; font-weight: normal; font-style: normal;  text-decoration: none; vertical-align: baseline;">.</span>]]></content:encoded>
			<wfw:commentRss>https://googledata.org/google-ajax-api/increase-site-efficiency-by-retrieving-just-your-preferred-number-of-results-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="" length="" type="" />
		</item>
		<item>
		<title>Even more ways for developers to optimize with AdSense</title>
		<link>https://googledata.org/google-code/even-more-ways-for-developers-to-optimize-with-adsense/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=even-more-ways-for-developers-to-optimize-with-adsense</link>
		<comments>https://googledata.org/google-code/even-more-ways-for-developers-to-optimize-with-adsense/#comments</comments>
		<pubDate>Wed, 19 May 2010 18:37:00 +0000</pubDate>
		<dc:creator><![CDATA[Adam Feldman]]></dc:creator>
				<category><![CDATA[Google Code]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Last year, we announced that developers can earn revenue by showing ads  in two of our products, the GoogleBar for Local Searches on a  Google Map and the Custom Search element for  site-restricted and other curated searches. Today, we're happy to  ann...]]></description>
				<content:encoded><![CDATA[Last year, we announced that developers can earn revenue by showing ads  in two of our products, the <a href="http://googlegeodevelopers.blogspot.com/2009/03/changes-to-googlebar.html" id="f:pn" title="GoogleBar">GoogleBar</a> for Local Searches on a  Google Map and the <a href="http://www.google.com/webelements/customsearch/" id="a31v" title="Custom Search element">Custom Search element</a> for  site-restricted and other curated searches. Today, we're happy to  announce two new AdSense product updates to help monetize your website.<br /><br /><div><b>AdSense  for search ads only</b><br /><a href="http://www.google.com/adsense/afs" id="w9:d" title="AdSense for Search">AdSense for search</a> allows  publishers to add Google search functionality to their site and monetize  from search ads. The Custom Search element is a prime example. However,  despite the <a href="http://googleajaxsearchapi.blogspot.com/2010/04/rendering-custom-data-in-custom-search.html" id="g7x2" title="power and flexibility of the element">power and  flexibility of the element</a>, you may want to show ads next to your  own non-Google search results. With <a href="http://code.google.com/apis/afs-ads-only" id="vlh5" title="AFS Ads  Only">AdSense for search ads only</a>, developers can now include  AdSense for search ads on their pages, paired with their own homegrown  search results.<br /><br /></div><div><b>AdSense for Ajax</b><br />The other  side of AdSense is ads targeted to content on your site. In this case,  developers turn to <a href="http://www.google.com/adsense/afc-online-overview" id="qbd0" title="AdSense for Content">AdSense for content</a>. But what if your  content isn't crawlable by search engines or uses Ajax to dynamically  update without a page refresh? Now you can deliver AdSense for content  ads via <a href="http://code.google.com/apis/afa" id="d_3l" title="AdSense for Ajax">AdSense for Ajax</a>, which allows you to give  hints about your uncrawlable content. Even better, it allows you to  refresh the ads dynamically when there is a context change.<br /><br />If  your site is a good fit for either, or both, of these offerings, sign-up  for <a href="http://code.google.com/apis/afa" id="k9x9" title="AdSense  for Ajax">AdSense for Ajax</a> or <a href="http://code.google.com/apis/afs-ads-only" id="v1xr" title="AFS Ads  Only">AdSense for search ads only</a> today!  Learn more about them from the <a href="http://adsense.blogspot.com/2010/05/two-new-ways-to-optimize-adsense-on.html">AdSense Blog post</a>.<br /><br /></div><font style="font-style: italic;" class="byline-author">By Adam Feldman and Mike Brandell, AdSense Team</font><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11300808-2967244333505979826?l=googlecode.blogspot.com' alt='' /></div>]]></content:encoded>
			<wfw:commentRss>https://googledata.org/google-code/even-more-ways-for-developers-to-optimize-with-adsense/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google Feed API — Now with instant gratification</title>
		<link>https://googledata.org/google-ajax-api/google-feed-api-now-with-instant-gratification/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=google-feed-api-now-with-instant-gratification</link>
		<comments>https://googledata.org/google-ajax-api/google-feed-api-now-with-instant-gratification/#comments</comments>
		<pubDate>Wed, 19 May 2010 16:19:00 +0000</pubDate>
		<dc:creator><![CDATA[Adam Feldman]]></dc:creator>
				<category><![CDATA[Google Ajax API]]></category>
		<category><![CDATA[google ajax]]></category>
		<category><![CDATA[google api]]></category>

		<guid isPermaLink="false">https://googledata.org/?guid=b7f4e1a67643f2d97de7bf49f5ecb3d2</guid>
		<description><![CDATA[One of Google's most popular APIs is our Feed  API.  This API is found all over the web, making any feed content  available for developers to embed on their sites.A problem  with embedding content in this manner is that there's no good way to  make sur...]]></description>
				<content:encoded><![CDATA[One of Google's most popular APIs is our <a href="http://code.google.com/apis/ajaxfeeds/" id="fsa:" title="Feed API">Feed  API</a>.  This API is found all over the web, making any feed content  available for developers to embed on their sites.<br /><br />A problem  with embedding content in this manner is that there's no good way to  make sure that your visitors see the freshest data, regardless of how  long they stay on your page.  Of course, you could try polling (also  known as the "are we there yet?" method), repeatedly reloading the feed  to see if the content has changed.  This technique is generally a waste  of bandwidth and doesn't always result in very low latency.<br /><br />Instead,  we've got something better.  I'm pleased to announce a preview of a  brand new version of the Feed API, which includes push updates.  With  this new version, you'll be able to make the latest feed data available  to your visitors - when it's available - without polling or requiring a  page refresh.  The best part is that this will work with any <a href="http://code.google.com/p/pubsubhubbub/" id="cjh6" title="PubSubHubbub">PubSubHubbub</a> enabled feed.<br /><br />Here's a short <a href="http://www.youtube.com/watch?v=9FhVKx6-C6w">demonstration</a> of what I'm talking about:<br /><object width="320" height="266" class="BLOG_video_class" id="BLOG_video-dab984481799a64c" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="movie" value="//www.youtube.com/get_player"><param name="bgcolor" value="#FFFFFF"><param name="allowfullscreen" value="true"><param name="flashvars" value="flvurl=http://redirector.googlevideo.com/videoplayback?id%3Ddab984481799a64c%26itag%3D5%26source%3Dblogger%26app%3Dblogger%26cmo%3Dsensitive_content%253Dyes%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1428835290%26sparams%3Did,itag,source,ip,ipbits,expire%26signature%3D2B43E41464738F46C79BB0BB7071A51736D1C91A.52C527BB35CD234FFF1CA85FC0105A47B6BEE506%26key%3Dck2&amp;iurl=http://video.google.com/ThumbnailServer2?app%3Dblogger%26contentid%3Ddab984481799a64c%26offsetms%3D5000%26itag%3Dw160%26sigh%3Dex81MTRdmljuM7yAzs6-ZmS6Tkc&amp;autoplay=0&amp;ps=blogger"><embed src="//www.youtube.com/get_player" type="application/x-shockwave-flash" width="320" height="266" bgcolor="#FFFFFF" flashvars="flvurl=http://redirector.googlevideo.com/videoplayback?id%3Ddab984481799a64c%26itag%3D5%26source%3Dblogger%26app%3Dblogger%26cmo%3Dsensitive_content%253Dyes%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1428835290%26sparams%3Did,itag,source,ip,ipbits,expire%26signature%3D2B43E41464738F46C79BB0BB7071A51736D1C91A.52C527BB35CD234FFF1CA85FC0105A47B6BEE506%26key%3Dck2&iurl=http://video.google.com/ThumbnailServer2?app%3Dblogger%26contentid%3Ddab984481799a64c%26offsetms%3D5000%26itag%3Dw160%26sigh%3Dex81MTRdmljuM7yAzs6-ZmS6Tkc&autoplay=0&ps=blogger" allowFullScreen="true" /></object><br /><br />As the video shows, this new version works much  like the older Feed API.  But instead of loading the existing feed  data, you actually subscribe to the feed, and your callback is executed  any time new feed data comes in.<br /><br />Let's see how this works.   First, you must load the API (just like before, except now v2):<br /><pre>google.load("feeds",  "2");</pre>Now, subscribe to the feed you're  interested in and give the callback to be executed:<br /><pre>var feed = new google.feed.push.Feed("example.com/atom.xml");<br />feed.subscribe(myCallback);</pre>And, finally, you need to write the callback method that is run every time  there's an update.  In this example, we just display each new entry  title as it comes in:<br /><pre>function myCallback() {<br />  var container = document.getElementById("feed");<br />  for (var i = 0; i &lt; result.feed.entries.length; i++) {<br />    var div = document.createElement("div");<br />    div.appendChild(document.createTextNode(result.feed.entries[i].title));<br />    container.appendChild(div);<br />  }<br />}</pre>For a running example you can try out,  check out the <a href="http://code.google.com/apis/ajax/playground/#include_historical_entries" id="nd9b" title="Code Playground">Code Playground</a>.<br /><br />We want to encourage  you to experiment and build innovative applications with this new API -  but since we don't know how it will be used, we can't quite open the  floodgates yet.  Therefore, we're initially making it available on a  sign-up basis.  Please fill out this <a href="http://code.google.com/apis/feed/push/" id="krb3" title="form">form</a>,  telling us a little about how you'd like to use this API, and we'll try  to give you access as soon as possible.  Also, please remember that  this is a <a href="http://code.google.com/labs/" id="cclc" title="Code  Labs">Code Labs</a> version, and therefore it may change or be removed  at any time.<br /><br />After we get some data from this experimental period  we'll be able to open it up to everyone.  Once you've begun  experimenting, be sure to stop by our <a href="http://groups.google.com/group/Google-AJAX-Search-API" id="ctrm" title="support forum">support forum</a> or <a href="https://groups.google.com/group/google-ajax-search-api/browse_thread/thread/ccbcf6c42d5a78bc" id="u06n" title="IRC channel">IRC channel</a> to share your creations  with everyone.  If you'd like to learn more about how this API works,  our <a href="http://code.google.com/events/io/2010/sessions/building-real-time-apps-app-engine-feed-api.html" id="ldxk" title="Google I/O session">Google I/O session</a> will be  posted to YouTube soon.<br /><br /><br />Posted by:  Brett Bavar, Software  Engineer and Adam Feldman, Product Manager]]></content:encoded>
			<wfw:commentRss>https://googledata.org/google-ajax-api/google-feed-api-now-with-instant-gratification/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="" length="" type="" />
		</item>
		<item>
		<title>Google Feed API — Now with instant gratification</title>
		<link>https://googledata.org/google-ajax-api/google-feed-api-%e2%80%94-now-with-instant-gratification/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=google-feed-api-%25e2%2580%2594-now-with-instant-gratification</link>
		<comments>https://googledata.org/google-ajax-api/google-feed-api-%e2%80%94-now-with-instant-gratification/#comments</comments>
		<pubDate>Wed, 19 May 2010 16:19:00 +0000</pubDate>
		<dc:creator><![CDATA[Adam Feldman]]></dc:creator>
				<category><![CDATA[Google Ajax API]]></category>
		<category><![CDATA[google ajax]]></category>
		<category><![CDATA[google api]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[One of Google's most popular APIs is our Feed  API.  This API is found all over the web, making any feed content  available for developers to embed on their sites.A problem  with embedding content in this manner is that there's no good way to  make sur...]]></description>
				<content:encoded><![CDATA[One of Google's most popular APIs is our <a href="http://code.google.com/apis/ajaxfeeds/" id="fsa:" title="Feed API">Feed  API</a>.  This API is found all over the web, making any feed content  available for developers to embed on their sites.<br /><br />A problem  with embedding content in this manner is that there's no good way to  make sure that your visitors see the freshest data, regardless of how  long they stay on your page.  Of course, you could try polling (also  known as the "are we there yet?" method), repeatedly reloading the feed  to see if the content has changed.  This technique is generally a waste  of bandwidth and doesn't always result in very low latency.<br /><br />Instead,  we've got something better.  I'm pleased to announce a preview of a  brand new version of the Feed API, which includes push updates.  With  this new version, you'll be able to make the latest feed data available  to your visitors - when it's available - without polling or requiring a  page refresh.  The best part is that this will work with any <a href="http://code.google.com/p/pubsubhubbub/" id="cjh6" title="PubSubHubbub">PubSubHubbub</a> enabled feed.<br /><br />Here's a short <a href="http://www.youtube.com/watch?v=9FhVKx6-C6w">demonstration</a> of what I'm talking about:<br /><object width="320" height="266" class="BLOG_video_class" id="BLOG_video-dab984481799a64c" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="movie" value="http://www.youtube.com/get_player"><param name="bgcolor" value="#FFFFFF"><param name="allowfullscreen" value="true"><param name="flashvars" value="flvurl=http://v5.nonxt6.googlevideo.com/videoplayback?id%3Ddab984481799a64c%26itag%3D5%26app%3Dblogger%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1312821625%26sparams%3Did,itag,ip,ipbits,expire%26signature%3D5C9F00521E301A5DA075BECD82602C34C4607E4.813F4C4576C5967AEF122206240397C6B5C5C501%26key%3Dck1&amp;iurl=http://video.google.com/ThumbnailServer2?app%3Dblogger%26contentid%3Ddab984481799a64c%26offsetms%3D5000%26itag%3Dw160%26sigh%3Dex81MTRdmljuM7yAzs6-ZmS6Tkc&amp;autoplay=0&amp;ps=blogger"><embed src="http://www.youtube.com/get_player" type="application/x-shockwave-flash"width="320" height="266" bgcolor="#FFFFFF"flashvars="flvurl=http://v5.nonxt6.googlevideo.com/videoplayback?id%3Ddab984481799a64c%26itag%3D5%26app%3Dblogger%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1312821625%26sparams%3Did,itag,ip,ipbits,expire%26signature%3D5C9F00521E301A5DA075BECD82602C34C4607E4.813F4C4576C5967AEF122206240397C6B5C5C501%26key%3Dck1&iurl=http://video.google.com/ThumbnailServer2?app%3Dblogger%26contentid%3Ddab984481799a64c%26offsetms%3D5000%26itag%3Dw160%26sigh%3Dex81MTRdmljuM7yAzs6-ZmS6Tkc&autoplay=0&ps=blogger"allowFullScreen="true" /></object><br /><br />As the video shows, this new version works much  like the older Feed API.  But instead of loading the existing feed  data, you actually subscribe to the feed, and your callback is executed  any time new feed data comes in.<br /><br />Let's see how this works.   First, you must load the API (just like before, except now v2):<br /><pre>google.load("feeds",  "2");</pre>Now, subscribe to the feed you're  interested in and give the callback to be executed:<br /><pre>var feed = new google.feed.push.Feed("example.com/atom.xml");<br />feed.subscribe(myCallback);</pre>And, finally, you need to write the callback method that is run every time  there's an update.  In this example, we just display each new entry  title as it comes in:<br /><pre>function myCallback() {<br />  var container = document.getElementById("feed");<br />  for (var i = 0; i &lt; result.feed.entries.length; i++) {<br />    var div = document.createElement("div");<br />    div.appendChild(document.createTextNode(result.feed.entries[i].title));<br />    container.appendChild(div);<br />  }<br />}</pre>For a running example you can try out,  check out the <a href="http://code.google.com/apis/ajax/playground/#include_historical_entries" id="nd9b" title="Code Playground">Code Playground</a>.<br /><br />We want to encourage  you to experiment and build innovative applications with this new API -  but since we don't know how it will be used, we can't quite open the  floodgates yet.  Therefore, we're initially making it available on a  sign-up basis.  Please fill out this <a href="http://code.google.com/apis/feed/push/" id="krb3" title="form">form</a>,  telling us a little about how you'd like to use this API, and we'll try  to give you access as soon as possible.  Also, please remember that  this is a <a href="http://code.google.com/labs/" id="cclc" title="Code  Labs">Code Labs</a> version, and therefore it may change or be removed  at any time.<br /><br />After we get some data from this experimental period  we'll be able to open it up to everyone.  Once you've begun  experimenting, be sure to stop by our <a href="http://groups.google.com/group/Google-AJAX-Search-API" id="ctrm" title="support forum">support forum</a> or <a href="https://groups.google.com/group/google-ajax-search-api/browse_thread/thread/ccbcf6c42d5a78bc" id="u06n" title="IRC channel">IRC channel</a> to share your creations  with everyone.  If you'd like to learn more about how this API works,  our <a href="http://code.google.com/events/io/2010/sessions/building-real-time-apps-app-engine-feed-api.html" id="ldxk" title="Google I/O session">Google I/O session</a> will be  posted to YouTube soon.<br /><br /><br />Posted by:  Brett Bavar, Software  Engineer and Adam Feldman, Product Manager<div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/29072373-2118622936804156034?l=googleajaxsearchapi.blogspot.com' alt='' /></div>]]></content:encoded>
			<wfw:commentRss>https://googledata.org/google-ajax-api/google-feed-api-%e2%80%94-now-with-instant-gratification/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>New Google Web Elements released</title>
		<link>https://googledata.org/google-checkout/new-google-web-elements-released/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=new-google-web-elements-released</link>
		<comments>https://googledata.org/google-checkout/new-google-web-elements-released/#comments</comments>
		<pubDate>Fri, 30 Apr 2010 21:49:00 +0000</pubDate>
		<dc:creator><![CDATA[Adam Feldman]]></dc:creator>
				<category><![CDATA[Google Checkout]]></category>
		<category><![CDATA[Google Code]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Today we've added four new Google Web Elements:  Sidewiki, Checkout, Wave  and Virtual Keyboard.  These are all  designed to help you quickly and easily integrate Google products into  your website.Sidewiki elementGoogle Sidewiki  makes it easy for vis...]]></description>
				<content:encoded><![CDATA[<div><div>Today we've added four new <a href="http://www.google.com/webelements" id="nyyg" title="Google Web Elements">Google Web Elements</a>:  <a href="http://www.google.com/webelements/sidewiki" id="u0r4" title="Sidewiki">Sidewiki</a>, <a href="http://www.google.com/webelements/checkout" id="pc3d" title="Checkout">Checkout</a>, <a href="http://www.google.com/webelements/wave" id="xh0w" title="Wave">Wave</a>  and <a href="http://www.google.com/webelements/virtualkeyboard" id="gosk" title="Virtual Keyboard">Virtual Keyboard</a>.  These are all  designed to help you quickly and easily integrate Google products into  your website.<br /><br /><b><u>Sidewiki element</u></b><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_qU0w4wiK3GA/S9s4rCgLlgI/AAAAAAAAACY/jnJis1zRHm0/s1600/ss-sidewiki.png"><img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 275px; height: 200px;" src="http://1.bp.blogspot.com/_qU0w4wiK3GA/S9s4rCgLlgI/AAAAAAAAACY/jnJis1zRHm0/s400/ss-sidewiki.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5466024884801607170" /></a><div id="pukp" style="text-align: left;"></div><div id="pukp" style="text-align: left;"><a href="http://www.google.com/sidewiki/" >Google Sidewiki</a>  makes it easy for visitors of your website to share helpful information  with each other. Unlike regular comments, all Sidewiki entries are <a href="http://www.google.com/support/toolbar/bin/answer.py?answer=157294" id="akiu" title="ranked by usefulness">ranked by usefulness</a> so that  the best ones are shown first. The element was built entirely on the <a href="http://code.google.com/apis/sidewiki/" >Sidewiki  API</a> and can be customized in many ways to fit into your site.  Sidewiki originally launched as a feature of <a href="http://www.google.com/sidewiki/" >Google Toolbar</a>  and as a <a href="https://chrome.google.com/extensions/detail/fldmleagmkblgoeodhdlhdejhhngdihi" >Chrome extension</a> - this element is our newest step  in making Sidewiki more open and accessible across the web. If you'll be  using the element on your site, let us know via <a href="http://twitter.com/googlesidewiki" title="@googlesidewiki">@googlesidewiki</a>  on Twitter!</div><br />If you're looking for a way to add commenting to an  otherwise static page, the <a href="http://www.google.com/webelements/sidewiki" id="x:ez" title="Sidewiki element">Google Sidewiki element</a> gives you an easy  and simple way to collect and display comments about a page. One of the  new and exciting features of the Sidewiki element is that it allows  visitors to leave a comment even if they do not have Sidewiki or Google  Toolbar installed. Like all Sidewiki entries, the comments in the  element will be ranked to show the most useful items more prominently.<br /><br /><b><u>Checkout  element</u></b><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_qU0w4wiK3GA/S9s5lP1HqRI/AAAAAAAAACg/UMUeT98xnNM/s1600/ss-checkout.png"><img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 275px; height: 200px;" src="http://1.bp.blogspot.com/_qU0w4wiK3GA/S9s5lP1HqRI/AAAAAAAAACg/UMUeT98xnNM/s400/ss-checkout.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5466025884811503890" /></a><div id="x.x-" style="text-align: left;"></div>The <a href="http://www.google.com/webelements/checkout" id="s4im" title="Google Checkout element">Google Checkout element</a> allows you  to quickly and easily create an online store using a spreadsheet.  Once  you have a <a href="http://checkout.google.com/" id="a6.o" title="Google  Checkout">Google Checkout</a> merchant account, you just have to add  details for each item you're selling into a <a href="http://docs.google.com/" id="bbcu" title="Google Spreadsheet">Google  Spreadsheet</a>, then use the wizard and copy/paste the code into your  website.  The element is compatible with Blogger, Google Sites, iGoogle,  and personal websites where HTML can be modified, but doesn't require  any programming skills or experience.  In fact, you can get your first  online store up and running in under five minutes.<br /><br><br><br><br /><b><u>Wave  element</u></b><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_qU0w4wiK3GA/S9s6FDM8acI/AAAAAAAAACo/xsmhIkN_bCc/s1600/ss-wave.png"><img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 275px; height: 200px;" src="http://2.bp.blogspot.com/_qU0w4wiK3GA/S9s6FDM8acI/AAAAAAAAACo/xsmhIkN_bCc/s400/ss-wave.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5466026431177583042" /></a><div id="k8bp" style="text-align: left;"></div><div>The <a href="http://www.google.com/webelements/wave" id="wc70" title="Google  Wave element">Google Wave element</a> enables you to quickly drop a wave  -- a shared workspace -- onto your own website. The wave could be used  for many different things, including: encouraging collaborative  discussion among the visitors, or as a means of publishing content on  the page. For deeper integrations of waves onto your own site, please  check out the recently improved <a href="http://code.google.com/apis/wave/embed/guide.html" id="shpx" title="Wave Embed API">Wave Embed API</a>.  For more information on  embedding waves, see the <a href="http://googlewavedev.blogspot.com/2010/04/embed-api-improvements-viewing-public.html" id="b75c" title="Google Wave Developer Blog post">Google Wave Developer  Blog post</a>.<br /></div><br /><br><br><br><br><br /><b><u>Virtual Keyboard element</u></b><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_qU0w4wiK3GA/S9s6Yzs5nHI/AAAAAAAAACw/ZJWMLG0rh-s/s1600/vk+element.bmp"><img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 275px; height: 200px;" src="http://2.bp.blogspot.com/_qU0w4wiK3GA/S9s6Yzs5nHI/AAAAAAAAACw/ZJWMLG0rh-s/s400/vk+element.bmp" border="0" alt=""id="BLOGGER_PHOTO_ID_5466026770614033522" /></a><div id="j0ek" style="text-align: left;">Adding a <a href="http://code.google.com/apis/ajaxlanguage/documentation/#Keyboard" id="oi2-" title="virtual keyboard">virtual keyboard</a> to your site  just got easier with the <a href="http://www.google.com/webelements/virtualkeyboard" id="r_5l" title="Virtual Keyboard element">Google Virtual Keyboard element</a>.  After choosing a keyboard layout, copy and paste the HTML into your page  and voila, a virtual keyboard will be able to enter characters into any  text input or text area on your page. If you've never heard a virtual  keyboard, it's an on screen keyboard which translates the input from one keyboard layout to another and it allows users to type their own languages on foreign keyboards or by clicking the on screen display.<br /><br><br><br><br><br />Google  Web Elements are great for folks who don't have much time or  experience.  However, even for advanced developers, elements are a great  starting point, as most are backed by an underlying API to give you  even more control over the content or look and feel.  Take a look at all  of the elements at <a href="http://www.google.com/webelements" id="jg-3" title="http://www.google.com/webelements">http://www.google.com/webelements</a>  and stop by our <a href="http://www.google.com/support/forum/p/webelements" id="pov_" title="help forum">help forum</a> if you have any questions.</div></div><div><br /></div><span style="font-style: italic;" class="byline-author">By Jeff Scudder and Adam Feldman, Google Web Elements Team</span></div><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11300808-5993407716170630700?l=googlecode.blogspot.com' alt='' /></div>]]></content:encoded>
			<wfw:commentRss>https://googledata.org/google-checkout/new-google-web-elements-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="" length="" type="" />
		</item>
		<item>
		<title>Transliteration API adds 6 more languages</title>
		<link>https://googledata.org/google-ajax-api/transliteration-api-adds-6-more-languages-2/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=transliteration-api-adds-6-more-languages-2</link>
		<comments>https://googledata.org/google-ajax-api/transliteration-api-adds-6-more-languages-2/#comments</comments>
		<pubDate>Mon, 26 Apr 2010 05:58:00 +0000</pubDate>
		<dc:creator><![CDATA[Adam Feldman]]></dc:creator>
				<category><![CDATA[Google Ajax API]]></category>
		<category><![CDATA[google ajax]]></category>
		<category><![CDATA[google api]]></category>

		<guid isPermaLink="false">https://googledata.org/?guid=beb0b836ca0fe86fc9e31fd0b6abd4a0</guid>
		<description><![CDATA[<h4><span><span>We're excited to announce the addition  of 6 new languages (Greek, Russian, Serbian, Sanskrit, Amharic,  Tigrinya) to the </span><a href="http://code.google.com/apis/ajaxlanguage/documentation/#Transliteration"><span>Transliteration  API</span></a><span>.  Using Google Transliteration you can convert Roman characters to their  phonetic equivalent in your language. Note that this is not the same as  translation &#8212; it's the sound of the words that are converted from one  alphabet to the other.</span></span></h4><a href="http://code.google.com/apis/ajaxlanguage/documentation/#Transliteration"><span>Transliteration  API</span></a><span>  allows this functionality to be available to all websites, which will  make it easier for you to add transliteration capabilities to textfields  on your webpages. Using this customizable API, you can enable users of  your website to type </span><a href="http://code.google.com/apis/ajaxlanguage/documentation/#TransliterationSupportedLanguages"><span>19 languages</span></a><span>. </span><span>For more information,  please take a look at the</span><a href="http://code.google.com/apis/ajaxlanguage/documentation/#Transliteration"><span> </span><span>documentation</span></a><span> </span><span>and samples at our</span><a href="http://code.google.com/apis/ajax/playground/#transliterate_hindi"><span> </span><span>code playground</span></a><span>. </span><span>If you're looking for a  finer level of control on your web pages, also check out the </span><a href="http://code.google.com/apis/ajaxlanguage/documentation/#LowLevelTransliteration"><span>low-level  interface</span></a><span>  to transliteration, and the </span><a href="http://code.google.com/apis/ajaxlanguage/documentation/#FontRendering"><span>font rendering  support APIs</span></a><span>.</span><br /><span></span><br /><span>Google Transliteration is integrated  into</span><a href="http://www.google.com/transliterate/about.html?v=1#products"><span> </span><span>several Google  properties</span></a><span> and we have</span><a href="http://code.google.com/p/t13n/"><span> </span><span>bookmarklets</span></a><span> in addition to API to  extend this capability to other websites. </span><span>Please try these out  and</span><a href="http://groups.google.com/group/google-india-labs"><span> </span><span>let us know</span></a><span> what you think and  how you're using it.</span><br /><span></span><br /><span>Posted by: Kuntal Loya and Ajay Somani,  Software Engineers</span><br /><span></span>]]></description>
				<content:encoded><![CDATA[<h4 id="internal-source-marker_0.7507443823917048"><span class="Apple-style-span" style="font-weight: normal; "><span style="font-size:  10pt; font-family: Verdana; color: rgb(0, 0, 0); background-color:  transparent; font-weight: normal; font-style: normal; text-decoration:  none; vertical-align: baseline;">We're excited to announce the addition  of 6 new languages (Greek, Russian, Serbian, Sanskrit, Amharic,  Tigrinya) to the </span><a href="http://code.google.com/apis/ajaxlanguage/documentation/#Transliteration"><span style="font-size: 10pt; font-family: Verdana; color: rgb(0, 0, 153);  background-color: transparent; font-weight: normal; font-style: normal;  text-decoration: underline; vertical-align: baseline;">Transliteration  API</span></a><span style="font-size: 10pt; font-family: Verdana; color:  rgb(51, 51, 51); background-color: transparent; font-weight: normal;  font-style: normal; text-decoration: none; vertical-align: baseline;">.  Using Google Transliteration you can convert Roman characters to their  phonetic equivalent in your language. Note that this is not the same as  translation — it's the sound of the words that are converted from one  alphabet to the other.</span></span></h4><a href="http://code.google.com/apis/ajaxlanguage/documentation/#Transliteration"><span style="font-size: 10pt; font-family: Verdana; color: rgb(0, 0, 153);  background-color: transparent; font-weight: normal; font-style: normal;  text-decoration: underline; vertical-align: baseline;">Transliteration  API</span></a><span style="font-size: 10pt; font-family: Verdana; color:  rgb(0, 0, 0); background-color: transparent; font-weight: normal;  font-style: normal; text-decoration: none; vertical-align: baseline;">  allows this functionality to be available to all websites, which will  make it easier for you to add transliteration capabilities to textfields  on your webpages. Using this customizable API, you can enable users of  your website to type </span><a href="http://code.google.com/apis/ajaxlanguage/documentation/#TransliterationSupportedLanguages"><span style="font-size: 10pt; font-family: Verdana; color: rgb(0, 0, 153);  background-color: transparent; font-weight: normal; font-style: normal;  text-decoration: underline; vertical-align: baseline;">19 languages</span></a><span style="font-size: 10pt; font-family: Verdana; color: rgb(51, 51, 51);  background-color: transparent; font-weight: normal; font-style: normal;  text-decoration: none; vertical-align: baseline;">. </span><span style="font-size: 10pt; font-family: Verdana; color: rgb(0, 0, 0);  background-color: transparent; font-weight: normal; font-style: normal;  text-decoration: none; vertical-align: baseline;">For more information,  please take a look at the</span><a href="http://code.google.com/apis/ajaxlanguage/documentation/#Transliteration"><span style="font-size: 10pt; font-family: Verdana; color: rgb(51, 51, 51);  background-color: transparent; font-weight: normal; font-style: normal;  text-decoration: none; vertical-align: baseline;"> </span><span style="font-size: 10pt; font-family: Verdana; color: rgb(0, 0, 153);  background-color: transparent; font-weight: normal; font-style: normal;  text-decoration: underline; vertical-align: baseline;">documentation</span></a><span style="font-size: 10pt; font-family: Verdana; color: rgb(51, 51, 51);  background-color: transparent; font-weight: normal; font-style: normal;  text-decoration: none; vertical-align: baseline;"> </span><span style="font-size: 10pt; font-family: Verdana; color: rgb(0, 0, 0);  background-color: transparent; font-weight: normal; font-style: normal;  text-decoration: none; vertical-align: baseline;">and samples at our</span><a href="http://code.google.com/apis/ajax/playground/#transliterate_hindi"><span style="font-size: 10pt; font-family: Verdana; color: rgb(0, 0, 0);  background-color: transparent; font-weight: normal; font-style: normal;  text-decoration: none; vertical-align: baseline;"> </span><span style="font-size: 10pt; font-family: Verdana; color: rgb(0, 0, 153);  background-color: transparent; font-weight: normal; font-style: normal;  text-decoration: underline; vertical-align: baseline;">code playground</span></a><span style="font-size: 10pt; font-family: Verdana; color: rgb(51, 51, 51);  background-color: transparent; font-weight: normal; font-style: normal;  text-decoration: none; vertical-align: baseline;">. </span><span style="font-size: 10pt; font-family: Verdana; color: rgb(0, 0, 0);  background-color: transparent; font-weight: normal; font-style: normal;  text-decoration: none; vertical-align: baseline;">If you're looking for a  finer level of control on your web pages, also check out the </span><a href="http://code.google.com/apis/ajaxlanguage/documentation/#LowLevelTransliteration"><span style="font-size: 10pt; font-family: Verdana; color: rgb(0, 0, 153);  background-color: transparent; font-weight: normal; font-style: normal;  text-decoration: underline; vertical-align: baseline;">low-level  interface</span></a><span style="font-size: 10pt; font-family: Verdana;  color: rgb(0, 0, 0); background-color: transparent; font-weight: normal;  font-style: normal; text-decoration: none; vertical-align: baseline;">  to transliteration, and the </span><a href="http://code.google.com/apis/ajaxlanguage/documentation/#FontRendering"><span style="font-size: 10pt; font-family: Verdana; color: rgb(0, 0, 153);  background-color: transparent; font-weight: normal; font-style: normal;  text-decoration: underline; vertical-align: baseline;">font rendering  support APIs</span></a><span style="font-size: 10pt; font-family:  Verdana; color: rgb(0, 0, 0); background-color: transparent;  font-weight: normal; font-style: normal; text-decoration: none;  vertical-align: baseline;">.</span><br /><span style="font-size: 10pt;  font-family: Verdana; color: rgb(0, 0, 0); background-color:  transparent; font-weight: normal; font-style: normal; text-decoration:  none; vertical-align: baseline;"></span><br /><span style="font-size:  10pt; font-family: Verdana; color: rgb(51, 51, 51); background-color:  transparent; font-weight: normal; font-style: normal; text-decoration:  none; vertical-align: baseline;">Google Transliteration is integrated  into</span><a href="http://www.google.com/transliterate/about.html?v=1#products"><span style="font-size: 10pt; font-family: Verdana; color: rgb(51, 51, 51);  background-color: transparent; font-weight: normal; font-style: normal;  text-decoration: none; vertical-align: baseline;"> </span><span style="font-size: 10pt; font-family: Verdana; color: rgb(85, 26, 139);  background-color: transparent; font-weight: normal; font-style: normal;  text-decoration: underline; vertical-align: baseline;">several Google  properties</span></a><span style="font-size: 10pt; font-family: Verdana;  color: rgb(51, 51, 51); background-color: transparent; font-weight:  normal; font-style: normal; text-decoration: none; vertical-align:  baseline;"> and we have</span><a href="http://code.google.com/p/t13n/"><span style="font-size: 10pt; font-family: Verdana; color: rgb(51, 51, 51);  background-color: transparent; font-weight: normal; font-style: normal;  text-decoration: none; vertical-align: baseline;"> </span><span style="font-size: 10pt; font-family: Verdana; color: rgb(85, 26, 139);  background-color: transparent; font-weight: normal; font-style: normal;  text-decoration: underline; vertical-align: baseline;">bookmarklets</span></a><span style="font-size: 10pt; font-family: Verdana; color: rgb(51, 51, 51);  background-color: transparent; font-weight: normal; font-style: normal;  text-decoration: none; vertical-align: baseline;"> in addition to API to  extend this capability to other websites. </span><span style="font-size: 10pt; font-family: Verdana; color: rgb(0, 0, 0);  background-color: transparent; font-weight: normal; font-style: normal;  text-decoration: none; vertical-align: baseline;">Please try these out  and</span><a href="http://groups.google.com/group/google-india-labs"><span style="font-size: 10pt; font-family: Verdana; color: rgb(0, 0, 0);  background-color: transparent; font-weight: normal; font-style: normal;  text-decoration: none; vertical-align: baseline;"> </span><span style="font-size: 10pt; font-family: Verdana; color: rgb(0, 0, 153);  background-color: transparent; font-weight: normal; font-style: normal;  text-decoration: underline; vertical-align: baseline;">let us know</span></a><span style="font-size: 10pt; font-family: Verdana; color: rgb(0, 0, 0);  background-color: transparent; font-weight: normal; font-style: normal;  text-decoration: none; vertical-align: baseline;"> what you think and  how you're using it.</span><br /><span style="font-size: 10pt;  font-family: Verdana; color: rgb(0, 0, 0); background-color:  transparent; font-weight: normal; font-style: normal; text-decoration:  none; vertical-align: baseline;"></span><br /><span style="font-size:  10pt; font-family: Verdana; color: rgb(0, 0, 0); background-color:  transparent; font-weight: normal; font-style: normal; text-decoration:  none; vertical-align: baseline;">Posted by: Kuntal Loya and Ajay Somani,  Software Engineers</span><br /><span style="font-size: 10pt; font-family:  Verdana; color: rgb(0, 0, 0); background-color: transparent;  font-weight: normal; font-style: normal; text-decoration: none;  vertical-align: baseline;"></span>]]></content:encoded>
			<wfw:commentRss>https://googledata.org/google-ajax-api/transliteration-api-adds-6-more-languages-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="" length="" type="" />
		</item>
		<item>
		<title>Transliteration API adds 6 more languages</title>
		<link>https://googledata.org/google-ajax-api/transliteration-api-adds-6-more-languages/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=transliteration-api-adds-6-more-languages</link>
		<comments>https://googledata.org/google-ajax-api/transliteration-api-adds-6-more-languages/#comments</comments>
		<pubDate>Mon, 26 Apr 2010 05:58:00 +0000</pubDate>
		<dc:creator><![CDATA[Adam Feldman]]></dc:creator>
				<category><![CDATA[Google Ajax API]]></category>
		<category><![CDATA[google ajax]]></category>
		<category><![CDATA[google api]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[We're excited to announce the addition  of 6 new languages (Greek, Russian, Serbian, Sanskrit, Amharic,  Tigrinya) to the Transliteration  API.  Using Google Transliteration you can convert Roman characters to their  phonetic equivalent in your languag...]]></description>
				<content:encoded><![CDATA[<h4 id="internal-source-marker_0.7507443823917048"><span class="Apple-style-span" style="font-weight: normal; "><span style="font-size:  10pt; font-family: Verdana; color: rgb(0, 0, 0); background-color:  transparent; font-weight: normal; font-style: normal; text-decoration:  none; vertical-align: baseline;">We're excited to announce the addition  of 6 new languages (Greek, Russian, Serbian, Sanskrit, Amharic,  Tigrinya) to the </span><a href="http://code.google.com/apis/ajaxlanguage/documentation/#Transliteration"><span style="font-size: 10pt; font-family: Verdana; color: rgb(0, 0, 153);  background-color: transparent; font-weight: normal; font-style: normal;  text-decoration: underline; vertical-align: baseline;">Transliteration  API</span></a><span style="font-size: 10pt; font-family: Verdana; color:  rgb(51, 51, 51); background-color: transparent; font-weight: normal;  font-style: normal; text-decoration: none; vertical-align: baseline;">.  Using Google Transliteration you can convert Roman characters to their  phonetic equivalent in your language. Note that this is not the same as  translation — it's the sound of the words that are converted from one  alphabet to the other.</span></span></h4><a href="http://code.google.com/apis/ajaxlanguage/documentation/#Transliteration"><span style="font-size: 10pt; font-family: Verdana; color: rgb(0, 0, 153);  background-color: transparent; font-weight: normal; font-style: normal;  text-decoration: underline; vertical-align: baseline;">Transliteration  API</span></a><span style="font-size: 10pt; font-family: Verdana; color:  rgb(0, 0, 0); background-color: transparent; font-weight: normal;  font-style: normal; text-decoration: none; vertical-align: baseline;">  allows this functionality to be available to all websites, which will  make it easier for you to add transliteration capabilities to textfields  on your webpages. Using this customizable API, you can enable users of  your website to type </span><a href="http://code.google.com/apis/ajaxlanguage/documentation/#TransliterationSupportedLanguages"><span style="font-size: 10pt; font-family: Verdana; color: rgb(0, 0, 153);  background-color: transparent; font-weight: normal; font-style: normal;  text-decoration: underline; vertical-align: baseline;">19 languages</span></a><span style="font-size: 10pt; font-family: Verdana; color: rgb(51, 51, 51);  background-color: transparent; font-weight: normal; font-style: normal;  text-decoration: none; vertical-align: baseline;">. </span><span style="font-size: 10pt; font-family: Verdana; color: rgb(0, 0, 0);  background-color: transparent; font-weight: normal; font-style: normal;  text-decoration: none; vertical-align: baseline;">For more information,  please take a look at the</span><a href="http://code.google.com/apis/ajaxlanguage/documentation/#Transliteration"><span style="font-size: 10pt; font-family: Verdana; color: rgb(51, 51, 51);  background-color: transparent; font-weight: normal; font-style: normal;  text-decoration: none; vertical-align: baseline;"> </span><span style="font-size: 10pt; font-family: Verdana; color: rgb(0, 0, 153);  background-color: transparent; font-weight: normal; font-style: normal;  text-decoration: underline; vertical-align: baseline;">documentation</span></a><span style="font-size: 10pt; font-family: Verdana; color: rgb(51, 51, 51);  background-color: transparent; font-weight: normal; font-style: normal;  text-decoration: none; vertical-align: baseline;"> </span><span style="font-size: 10pt; font-family: Verdana; color: rgb(0, 0, 0);  background-color: transparent; font-weight: normal; font-style: normal;  text-decoration: none; vertical-align: baseline;">and samples at our</span><a href="http://code.google.com/apis/ajax/playground/#transliterate_hindi"><span style="font-size: 10pt; font-family: Verdana; color: rgb(0, 0, 0);  background-color: transparent; font-weight: normal; font-style: normal;  text-decoration: none; vertical-align: baseline;"> </span><span style="font-size: 10pt; font-family: Verdana; color: rgb(0, 0, 153);  background-color: transparent; font-weight: normal; font-style: normal;  text-decoration: underline; vertical-align: baseline;">code playground</span></a><span style="font-size: 10pt; font-family: Verdana; color: rgb(51, 51, 51);  background-color: transparent; font-weight: normal; font-style: normal;  text-decoration: none; vertical-align: baseline;">. </span><span style="font-size: 10pt; font-family: Verdana; color: rgb(0, 0, 0);  background-color: transparent; font-weight: normal; font-style: normal;  text-decoration: none; vertical-align: baseline;">If you're looking for a  finer level of control on your web pages, also check out the </span><a href="http://code.google.com/apis/ajaxlanguage/documentation/#LowLevelTransliteration"><span style="font-size: 10pt; font-family: Verdana; color: rgb(0, 0, 153);  background-color: transparent; font-weight: normal; font-style: normal;  text-decoration: underline; vertical-align: baseline;">low-level  interface</span></a><span style="font-size: 10pt; font-family: Verdana;  color: rgb(0, 0, 0); background-color: transparent; font-weight: normal;  font-style: normal; text-decoration: none; vertical-align: baseline;">  to transliteration, and the </span><a href="http://code.google.com/apis/ajaxlanguage/documentation/#FontRendering"><span style="font-size: 10pt; font-family: Verdana; color: rgb(0, 0, 153);  background-color: transparent; font-weight: normal; font-style: normal;  text-decoration: underline; vertical-align: baseline;">font rendering  support APIs</span></a><span style="font-size: 10pt; font-family:  Verdana; color: rgb(0, 0, 0); background-color: transparent;  font-weight: normal; font-style: normal; text-decoration: none;  vertical-align: baseline;">.</span><br /><span style="font-size: 10pt;  font-family: Verdana; color: rgb(0, 0, 0); background-color:  transparent; font-weight: normal; font-style: normal; text-decoration:  none; vertical-align: baseline;"></span><br /><span style="font-size:  10pt; font-family: Verdana; color: rgb(51, 51, 51); background-color:  transparent; font-weight: normal; font-style: normal; text-decoration:  none; vertical-align: baseline;">Google Transliteration is integrated  into</span><a href="http://www.google.com/transliterate/about.html?v=1#products"><span style="font-size: 10pt; font-family: Verdana; color: rgb(51, 51, 51);  background-color: transparent; font-weight: normal; font-style: normal;  text-decoration: none; vertical-align: baseline;"> </span><span style="font-size: 10pt; font-family: Verdana; color: rgb(85, 26, 139);  background-color: transparent; font-weight: normal; font-style: normal;  text-decoration: underline; vertical-align: baseline;">several Google  properties</span></a><span style="font-size: 10pt; font-family: Verdana;  color: rgb(51, 51, 51); background-color: transparent; font-weight:  normal; font-style: normal; text-decoration: none; vertical-align:  baseline;"> and we have</span><a href="http://code.google.com/p/t13n/"><span style="font-size: 10pt; font-family: Verdana; color: rgb(51, 51, 51);  background-color: transparent; font-weight: normal; font-style: normal;  text-decoration: none; vertical-align: baseline;"> </span><span style="font-size: 10pt; font-family: Verdana; color: rgb(85, 26, 139);  background-color: transparent; font-weight: normal; font-style: normal;  text-decoration: underline; vertical-align: baseline;">bookmarklets</span></a><span style="font-size: 10pt; font-family: Verdana; color: rgb(51, 51, 51);  background-color: transparent; font-weight: normal; font-style: normal;  text-decoration: none; vertical-align: baseline;"> in addition to API to  extend this capability to other websites. </span><span style="font-size: 10pt; font-family: Verdana; color: rgb(0, 0, 0);  background-color: transparent; font-weight: normal; font-style: normal;  text-decoration: none; vertical-align: baseline;">Please try these out  and</span><a href="http://groups.google.com/group/google-india-labs"><span style="font-size: 10pt; font-family: Verdana; color: rgb(0, 0, 0);  background-color: transparent; font-weight: normal; font-style: normal;  text-decoration: none; vertical-align: baseline;"> </span><span style="font-size: 10pt; font-family: Verdana; color: rgb(0, 0, 153);  background-color: transparent; font-weight: normal; font-style: normal;  text-decoration: underline; vertical-align: baseline;">let us know</span></a><span style="font-size: 10pt; font-family: Verdana; color: rgb(0, 0, 0);  background-color: transparent; font-weight: normal; font-style: normal;  text-decoration: none; vertical-align: baseline;"> what you think and  how you're using it.</span><br /><span style="font-size: 10pt;  font-family: Verdana; color: rgb(0, 0, 0); background-color:  transparent; font-weight: normal; font-style: normal; text-decoration:  none; vertical-align: baseline;"></span><br /><span style="font-size:  10pt; font-family: Verdana; color: rgb(0, 0, 0); background-color:  transparent; font-weight: normal; font-style: normal; text-decoration:  none; vertical-align: baseline;">Posted by: Kuntal Loya and Ajay Somani,  Software Engineers</span><br /><span style="font-size: 10pt; font-family:  Verdana; color: rgb(0, 0, 0); background-color: transparent;  font-weight: normal; font-style: normal; text-decoration: none;  vertical-align: baseline;"></span><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/29072373-2269040763882480159?l=googleajaxsearchapi.blogspot.com' alt='' /></div>]]></content:encoded>
			<wfw:commentRss>https://googledata.org/google-ajax-api/transliteration-api-adds-6-more-languages/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Rendering custom data in the Custom Search element</title>
		<link>https://googledata.org/google-ajax-api/rendering-custom-data-in-the-custom-search-element/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=rendering-custom-data-in-the-custom-search-element</link>
		<comments>https://googledata.org/google-ajax-api/rendering-custom-data-in-the-custom-search-element/#comments</comments>
		<pubDate>Wed, 14 Apr 2010 01:19:00 +0000</pubDate>
		<dc:creator><![CDATA[Adam Feldman]]></dc:creator>
				<category><![CDATA[Google Ajax API]]></category>
		<category><![CDATA[custom search engine]]></category>
		<category><![CDATA[google ajax]]></category>
		<category><![CDATA[google api]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Last year we introduced <a href="http://googlecustomsearch.blogspot.com/2009/05/enabling-rich-snippets-in-custom-search.html" title="Rich Snippets">Rich Snippets in Custom Search</a>,  allowing you to define your own custom attributes that we'll index and  return with your custom search results.  A few months later we showed  you <a href="http://adsense.blogspot.com/2009/10/more-customized-search-experience-for.html" title="how to render">how to render</a> some of these rich  snippets in your <a href="http://www.google.com/webelements/customsearch/" title="Custom Search element">Custom Search element</a>.  Sure, this was  a powerful way to let your visitors see thumbnails or interact with the results via <a href="http://googlecustomsearch.blogspot.com/2009/10/structured-custom-search.html" title="actions">actions</a>.  But we felt it was still too constrained.  It is with great pleasure that today we're announcing that you now have full rendering control of all your metadata in the Custom Search element.<br /><br />What do I mean?  If a picture is worth a thousand  words, an example is worth a thousand pictures.  Here's a fully customized element, showcasing results and metadata from <a href="http://www.scribd.com/" title="Scribd.com">Scribd.com</a>:<br />  <div> <div> <div data-if="Vars.thumbnail"> <a data-attr="{href:url, target:target}"> <img class="gs-image" data-attr="{src:thumbnail.src, width:48, height: 48}" /> </a> </div> </div> <div> <div data-vars="{longUrl:function() { var i = unescapedUrl.indexOf(visibleUrl); return i &#60; 1 ? visibleUrl : unescapedUrl.substring(i);}}"> <table> <tr> <td valign="top"> <div data-if="Vars.richSnippet" data-attr="0" data-body="render('thumbnail',richSnippet,{url:unescapedUrl,target:target})"></div> </td> <td valign="top"> <div> <a data-attr="{href:unescapedUrl,target:target}" data-body="html(title)"></a> </div> <div data-body="html(content)"></div> <div data-body="longUrl()"></div> <div color="#676767" data-if="Vars.richSnippet &#038;& Vars.richSnippet.document"> <img data-attr="{src:Vars.richSnippet.document.filetypeImage}" /> By <span data-body="Vars.richSnippet.document.author"></span> &#160;-&#160; <span data-body="Vars.richSnippet.document.pageCount"></span> pages&#160;-&#160; <span data-body="Vars.richSnippet.document.viewCount"></span> views &#160;-&#160;last modified&#160;<span data-body="Vars.richSnippet.document.timeAgo"></span> </div> <div data-if="Vars.richSnippet &#038;& Vars.richSnippet.action" data-body="render('action',richSnippet,{url:unescapedUrl,target:target})"></div> </td> </tr> </table> </div> </div> </div> <div></div><br /><div><br />The  results really jump out at you, huh?  The thumbnails really help users  see what they're looking at, but we've shown you those before.  Same  with the Download action links by each result.  But never before could  you include arbitrary, per-result metadata with your Google Custom  Search results so easily.  Notice the author, length, views and date  information in each result.  There's even an icon representing each  result's document type.<br /><br />So how can you add this to your page?   Let's take a look.<br /><br />First, you need to include custom attributes  within your webpages, either via microformats, RDFa, or a special markup  called PageMaps.  A PageMap identifies specific attributes that Google  recognizes and indexes, and then returns along with search results.  Our  prior blog post on <a href="http://googlecustomsearch.blogspot.com/2009/10/structured-custom-search.html" title="Structured Custom Search">Structured Custom Search</a>  tells you how to add PageMaps to your site.  Please keep in mind that  your site needs to be re-indexed, which can take some time.  Therefore,  your PageMaps might not show up immediately.<br /><br />Once your custom  attributes have been indexed, you're ready to tell the element how to  render them.  If you don't already have the element on your page, you  can add it with a few lines:<br /><pre>&#60;script src="http://www.google.com/jsapi" type="text/javascript"&#62;&#60;/script&#62;<br />&#60;script type="text/javascript"&#62;<br />// Load the Search API<br />google.load('search', '1');<br /><br />// Set a callback to load the Custom Search Control when you page loads<br />google.setOnLoadCallback(<br />  function(){<br />    new google.search.CustomSearchControl('INSERT-YOUR-ID').draw('cse');<br />  },<br />true);<br />&#60;/script&#62;<br />&#60;div id="cse"&#62;&#60;/div&#62;</pre>Here's the Scribd.com <a href="http://ajax-apis.appspot.com/html/csedr1.html" title="sample">sample</a>, with only the default rich snippet inclusion:<br /><div><a href="http://1.bp.blogspot.com/_qU0w4wiK3GA/S8Ub3s_7EAI/AAAAAAAAACE/_aMDGr-7X_0/s1600/3.bmp"><img style="cursor:pointer; cursor:hand;width: 400px; height: 81px;" src="http://1.bp.blogspot.com/_qU0w4wiK3GA/S8Ub3s_7EAI/AAAAAAAAACE/_aMDGr-7X_0/s400/3.bmp" border="0" alt="" id="BLOGGER_PHOTO_ID_5459800767042621442" /></a></div><br />It looks okay, but let's  make it better.<br /><br />We have to override the default rendering, by adding this line to the <code>onLoadCallback</code>:<pre>google.search.Csedr.addOverride("mysite_");</pre>Now, create a div to hold all of the rendering information - put it right  above the div that the element uses:<pre>&#60;div style="display:none"&#62;<br />&#60;/div&#62;<br /></pre>Okay,  now that everything's set up, it's time for the good part.  First off,  let's try shrinking the thumbnails a bit.  Inside the  <code>div</code> that was just added above, and tell the  element to render the images at 48x48 pixels:<pre>&#60;div id="mysite_thumbnail"&#62;<br />&#60;div data-if="Vars.thumbnail" class="gs-image-box gs-web-image-box"&#62;<br />  &#60;a class="gs-image" data-attr="{href:url, target:target}"&#62;<br />    &#60;img class="gs-image" data-attr="{src:thumbnail.src, width:48, height: 48}"/&#62;<br />  &#60;/a&#62;<br />&#60;/div&#62;<br />&#60;/div&#62;</pre>This replaces the default thumbnail rendering code with a  similar version that sets the image dimensions directly.<br /><br />Here's  the same <a href="http://ajax-apis.appspot.com/html/csedr2.html" title="sample">sample</a> with the above code added:<br /><div><a href="http://4.bp.blogspot.com/_qU0w4wiK3GA/S8Ub3f3HYrI/AAAAAAAAAB8/BS9qknKss0I/s1600/2.bmp"><img style="cursor:pointer; cursor:hand;width: 400px; height: 62px;" src="http://4.bp.blogspot.com/_qU0w4wiK3GA/S8Ub3f3HYrI/AAAAAAAAAB8/BS9qknKss0I/s400/2.bmp" border="0" alt="" id="BLOGGER_PHOTO_ID_5459800763516019378" /></a></div>Now it's time to add the  new content and tweak the rendering of the basic content, too:<pre>&#60;div id="mysite_webResult"&#62;<br />&#60;div class="gs-webResult gs-result"<br />  data-vars="{longUrl:function() {<br />    var i = unescapedUrl.indexOf(visibleUrl);<br />    return i &#60; 1 ? visibleUrl : unescapedUrl.substring(i);}}"&#62;<br /><br />  &#60;table&#62;<br />    &#60;tr&#62;<br />      &#60;td valign="top"&#62;<br />        &#60;div data-if="Vars.richSnippet" data-attr="0"<br />          data-body="render('thumbnail',richSnippet,{url:unescapedUrl,target:target})"&#62;&#60;/div&#62;<br />      &#60;/td&#62;<br /><br />      &#60;td valign="top"&#62;<br />        &#60;div class="gs-title"&#62;<br />          &#60;a class="gs-title" data-attr="{href:unescapedUrl,target:target}"<br />            data-body="html(title)"&#62;&#60;/a&#62;<br />        &#60;/div&#62;<br />        &#60;div class="gs-snippet" data-body="html(content)"&#62;&#60;/div&#62;<br />        &#60;div class="gs-visibleUrl gs-visibleUrl-short" data-body="longUrl()"&#62;&#60;/div&#62;<br />        &#60;div style="&#38; Vars.richSnippet.document"&#62;<br />          &#60;img data-attr="{src:Vars.richSnippet.document.filetypeImage}"&#62;<br />          By &#60;span data-body="Vars.richSnippet.document.author"&#62;&#60;/span&#62;  -<br />          &#60;span data-body="Vars.richSnippet.document.pageCount"&#62;&#60;/span&#62; pages -<br />          &#60;span data-body="Vars.richSnippet.document.viewCount"&#62;&#60;/span&#62; views<br />           - last modified  &#60;span data-body="Vars.richSnippet.document.timeAgo"&#62;&#60;/span&#62;<br />        &#60;/div&#62;<br /><br />        &#60;div data-if="Vars.richSnippet &#38;&#38; Vars.richSnippet.action" class="gs-actions"<br />          data-body="render('action',richSnippet,{url:unescapedUrl,target:target})"&#62;&#60;/div&#62;<br />      &#60;/td&#62;<br />    &#60;/tr&#62;<br />  &#60;/table&#62;<br />&#60;/div&#62;<br />&#60;/div&#62;</pre>Voila!  The <a href="http://ajax-apis.appspot.com/html/csedr3.html" title="sample">sample</a> is now complete, and here's how it looks:<br /><div><a href="http://1.bp.blogspot.com/_qU0w4wiK3GA/S8Ub27fq5XI/AAAAAAAAAB0/ZOgrk9kBPUg/s1600/1.bmp"><img style="cursor:pointer; cursor:hand;width: 400px; height: 83px;" src="http://1.bp.blogspot.com/_qU0w4wiK3GA/S8Ub27fq5XI/AAAAAAAAAB0/ZOgrk9kBPUg/s400/1.bmp" border="0" alt="" id="BLOGGER_PHOTO_ID_5459800753754006898" /></a></div><br />This example is a bit  more complex.  It shows how to use the <code>render()</code>  function to call other code, and also how you can include any  JavaScript logic.  You can even define internal functions, such as  <code>longUrl()</code>.<br /><br />Didn't quite catch all of  that or want to do even more?  Check out the <a href="http://code.google.com/apis/ajaxsearch/documentation/customsearch/rendering.html" title="documentation">documentation</a>.<br /><br />The best part of announcing new features like this is seeing what innovative  implementations people come up with.  Don't keep us waiting - come show off your handiwork in our <a href="http://groups.google.com/group/Google-AJAX-Search-API" title="support forum">support forum</a> or <a href="https://groups.google.com/group/google-ajax-search-api/browse_thread/thread/ccbcf6c42d5a78bc" title="IRC channel">IRC channel</a>!</div><div></div>Posted by:  David Gibson, Software Engineer and Adam Feldman, Product Manager<div><img width="1" height="1" src="https://blogger.googleusercontent.com/tracker/29072373-3153939506135843744?l=googleajaxsearchapi.blogspot.com" alt="" /></div>]]></description>
				<content:encoded><![CDATA[Last year we introduced <a href="http://googlecustomsearch.blogspot.com/2009/05/enabling-rich-snippets-in-custom-search.html" id="a1_7" title="Rich Snippets">Rich Snippets in Custom Search</a>,  allowing you to define your own custom attributes that we'll index and  return with your custom search results.  A few months later we showed  you <a href="http://adsense.blogspot.com/2009/10/more-customized-search-experience-for.html" id="wbi4" title="how to render">how to render</a> some of these rich  snippets in your <a href="http://www.google.com/webelements/customsearch/" id="w:t2" title="Custom Search element">Custom Search element</a>.  Sure, this was  a powerful way to let your visitors see thumbnails or interact with the results via <a href="http://googlecustomsearch.blogspot.com/2009/10/structured-custom-search.html" id="t:0p" title="actions">actions</a>.  But we felt it was still too constrained.  It is with great pleasure that today we're announcing that you now have full rendering control of all your metadata in the Custom Search element.<br /><br />What do I mean?  If a picture is worth a thousand  words, an example is worth a thousand pictures.  Here's a fully customized element, showcasing results and metadata from <a href="http://www.scribd.com/" id="g-0j" title="Scribd.com">Scribd.com</a>:<br /><script src="http://www.google.com/jsapi" type="text/javascript"></script> <script type="text/javascript"> google.load('search', '1'); google.setOnLoadCallback( function(){ var customSearchControl = new google.search.CustomSearchControl( '000458029060823693019:rufl7axsp9k'); google.search.Csedr.addOverride("mysite_"); customSearchControl.draw('cse'); customSearchControl.execute("cheetah"); }, true); </script> <div style="display:none"> <div id="mysite_thumbnail"> <div data-if="Vars.thumbnail" class="gs-image-box gs-web-image-box"> <a class="gs-image" data-attr="{href:url, target:target}"> <img class="gs-image" data-attr="{src:thumbnail.src, width:48, height: 48}" /> </a> </div> </div> <div id="mysite_webResult"> <div class="gs-webResult gs-result" data-vars="{longUrl:function() { var i = unescapedUrl.indexOf(visibleUrl); return i &lt; 1 ? visibleUrl : unescapedUrl.substring(i);}}"> <table> <tr> <td valign="top"> <div data-if="Vars.richSnippet" data-attr="0" data-body="render('thumbnail',richSnippet,{url:unescapedUrl,target:target})"></div> </td> <td valign="top"> <div class="gs-title"> <a class="gs-title" data-attr="{href:unescapedUrl,target:target}" data-body="html(title)"></a> </div> <div class="gs-snippet" data-body="html(content)"></div> <div class="gs-visibleUrl gs-visibleUrl-short" data-body="longUrl()"></div> <div color="#676767" data-if="Vars.richSnippet && Vars.richSnippet.document"> <img data-attr="{src:Vars.richSnippet.document.filetypeImage}" /> By <span data-body="Vars.richSnippet.document.author"></span> &nbsp;-&nbsp; <span data-body="Vars.richSnippet.document.pageCount"></span> pages&nbsp;-&nbsp; <span data-body="Vars.richSnippet.document.viewCount"></span> views &nbsp;-&nbsp;last modified&nbsp;<span data-body="Vars.richSnippet.document.timeAgo"></span> </div> <div data-if="Vars.richSnippet && Vars.richSnippet.action" class="gs-actions" data-body="render('action',richSnippet,{url:unescapedUrl,target:target})"></div> </td> </tr> </table> </div> </div> </div> <div id="cse"></div><br /><div style="clear:both; margin-top: 2em;"><br />The  results really jump out at you, huh?  The thumbnails really help users  see what they're looking at, but we've shown you those before.  Same  with the Download action links by each result.  But never before could  you include arbitrary, per-result metadata with your Google Custom  Search results so easily.  Notice the author, length, views and date  information in each result.  There's even an icon representing each  result's document type.<br /><br />So how can you add this to your page?   Let's take a look.<br /><br />First, you need to include custom attributes  within your webpages, either via microformats, RDFa, or a special markup  called PageMaps.  A PageMap identifies specific attributes that Google  recognizes and indexes, and then returns along with search results.  Our  prior blog post on <a href="http://googlecustomsearch.blogspot.com/2009/10/structured-custom-search.html" id="w3hp" title="Structured Custom Search">Structured Custom Search</a>  tells you how to add PageMaps to your site.  Please keep in mind that  your site needs to be re-indexed, which can take some time.  Therefore,  your PageMaps might not show up immediately.<br /><br />Once your custom  attributes have been indexed, you're ready to tell the element how to  render them.  If you don't already have the element on your page, you  can add it with a few lines:<br /><pre>&lt;script src="http://www.google.com/jsapi" type="text/javascript"&gt;&lt;/script&gt;<br />&lt;script type="text/javascript"&gt;<br />// Load the Search API<br />google.load('search', '1');<br /><br />// Set a callback to load the Custom Search Control when you page loads<br />google.setOnLoadCallback(<br />  function(){<br />    new google.search.CustomSearchControl('INSERT-YOUR-ID').draw('cse');<br />  },<br />true);<br />&lt;/script&gt;<br />&lt;div id="cse"&gt;&lt;/div&gt;</pre>Here's the Scribd.com <a href="http://ajax-apis.appspot.com/html/csedr1.html" id="mqwq" title="sample">sample</a>, with only the default rich snippet inclusion:<br /><div style="text-align: center;"><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_qU0w4wiK3GA/S8Ub3s_7EAI/AAAAAAAAACE/_aMDGr-7X_0/s1600/3.bmp"><img style="cursor:pointer; cursor:hand;width: 400px; height: 81px;" src="http://1.bp.blogspot.com/_qU0w4wiK3GA/S8Ub3s_7EAI/AAAAAAAAACE/_aMDGr-7X_0/s400/3.bmp" border="0" alt="" id="BLOGGER_PHOTO_ID_5459800767042621442" /></a></div><br />It looks okay, but let's  make it better.<br /><br />We have to override the default rendering, by adding this line to the <code>onLoadCallback</code>:<pre>google.search.Csedr.addOverride("mysite_");</pre>Now, create a div to hold all of the rendering information - put it right  above the div that the element uses:<pre>&lt;div style="display:none"&gt;<br />&lt;/div&gt;<br /></pre>Okay,  now that everything's set up, it's time for the good part.  First off,  let's try shrinking the thumbnails a bit.  Inside the  <code>div</code> that was just added above, and tell the  element to render the images at 48x48 pixels:<pre>&lt;div id="mysite_thumbnail"&gt;<br />&lt;div data-if="Vars.thumbnail" class="gs-image-box gs-web-image-box"&gt;<br />  &lt;a class="gs-image" data-attr="{href:url, target:target}"&gt;<br />    &lt;img class="gs-image" data-attr="{src:thumbnail.src, width:48, height: 48}"/&gt;<br />  &lt;/a&gt;<br />&lt;/div&gt;<br />&lt;/div&gt;</pre>This replaces the default thumbnail rendering code with a  similar version that sets the image dimensions directly.<br /><br />Here's  the same <a href="http://ajax-apis.appspot.com/html/csedr2.html" id="nz0w" title="sample">sample</a> with the above code added:<br /><div style="text-align: center;"><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_qU0w4wiK3GA/S8Ub3f3HYrI/AAAAAAAAAB8/BS9qknKss0I/s1600/2.bmp"><img style="cursor:pointer; cursor:hand;width: 400px; height: 62px;" src="http://4.bp.blogspot.com/_qU0w4wiK3GA/S8Ub3f3HYrI/AAAAAAAAAB8/BS9qknKss0I/s400/2.bmp" border="0" alt="" id="BLOGGER_PHOTO_ID_5459800763516019378" /></a></div>Now it's time to add the  new content and tweak the rendering of the basic content, too:<pre>&lt;div id="mysite_webResult"&gt;<br />&lt;div class="gs-webResult gs-result"<br />  data-vars="{longUrl:function() {<br />    var i = unescapedUrl.indexOf(visibleUrl);<br />    return i &lt; 1 ? visibleUrl : unescapedUrl.substring(i);}}"&gt;<br /><br />  &lt;table&gt;<br />    &lt;tr&gt;<br />      &lt;td valign="top"&gt;<br />        &lt;div data-if="Vars.richSnippet" data-attr="0"<br />          data-body="render('thumbnail',richSnippet,{url:unescapedUrl,target:target})"&gt;&lt;/div&gt;<br />      &lt;/td&gt;<br /><br />      &lt;td valign="top"&gt;<br />        &lt;div class="gs-title"&gt;<br />          &lt;a class="gs-title" data-attr="{href:unescapedUrl,target:target}"<br />            data-body="html(title)"&gt;&lt;/a&gt;<br />        &lt;/div&gt;<br />        &lt;div class="gs-snippet" data-body="html(content)"&gt;&lt;/div&gt;<br />        &lt;div class="gs-visibleUrl gs-visibleUrl-short" data-body="longUrl()"&gt;&lt;/div&gt;<br />        &lt;div style="&amp; Vars.richSnippet.document"&gt;<br />          &lt;img data-attr="{src:Vars.richSnippet.document.filetypeImage}"&gt;<br />          By &lt;span data-body="Vars.richSnippet.document.author"&gt;&lt;/span&gt;  -<br />          &lt;span data-body="Vars.richSnippet.document.pageCount"&gt;&lt;/span&gt; pages -<br />          &lt;span data-body="Vars.richSnippet.document.viewCount"&gt;&lt;/span&gt; views<br />           - last modified  &lt;span data-body="Vars.richSnippet.document.timeAgo"&gt;&lt;/span&gt;<br />        &lt;/div&gt;<br /><br />        &lt;div data-if="Vars.richSnippet &amp;&amp; Vars.richSnippet.action" class="gs-actions"<br />          data-body="render('action',richSnippet,{url:unescapedUrl,target:target})"&gt;&lt;/div&gt;<br />      &lt;/td&gt;<br />    &lt;/tr&gt;<br />  &lt;/table&gt;<br />&lt;/div&gt;<br />&lt;/div&gt;</pre>Voila!  The <a href="http://ajax-apis.appspot.com/html/csedr3.html" id="y0yr" title="sample">sample</a> is now complete, and here's how it looks:<br /><div style="text-align: center;"><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_qU0w4wiK3GA/S8Ub27fq5XI/AAAAAAAAAB0/ZOgrk9kBPUg/s1600/1.bmp"><img style="cursor:pointer; cursor:hand;width: 400px; height: 83px;" src="http://1.bp.blogspot.com/_qU0w4wiK3GA/S8Ub27fq5XI/AAAAAAAAAB0/ZOgrk9kBPUg/s400/1.bmp" border="0" alt="" id="BLOGGER_PHOTO_ID_5459800753754006898" /></a></div><br />This example is a bit  more complex.  It shows how to use the <code>render()</code>  function to call other code, and also how you can include any  JavaScript logic.  You can even define internal functions, such as  <code>longUrl()</code>.<br /><br />Didn't quite catch all of  that or want to do even more?  Check out the <a href="http://code.google.com/apis/ajaxsearch/documentation/customsearch/rendering.html" id="w3.g" title="documentation">documentation</a>.<br /><br />The best part of announcing new features like this is seeing what innovative  implementations people come up with.  Don't keep us waiting - come show off your handiwork in our <a href="http://groups.google.com/group/Google-AJAX-Search-API" id="n6jj" title="support forum">support forum</a> or <a href="https://groups.google.com/group/google-ajax-search-api/browse_thread/thread/ccbcf6c42d5a78bc" id="u_it" title="IRC channel">IRC channel</a>!</div><div style="clear:both; margin-top: 2em;"></div>Posted by:  David Gibson, Software Engineer and Adam Feldman, Product Manager<div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/29072373-3153939506135843744?l=googleajaxsearchapi.blogspot.com' alt='' /></div>]]></content:encoded>
			<wfw:commentRss>https://googledata.org/google-ajax-api/rendering-custom-data-in-the-custom-search-element/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="" length="" type="" />
		</item>
		<item>
		<title>Rendering custom data in the Custom Search element</title>
		<link>https://googledata.org/google-ajax-api/rendering-custom-data-in-the-custom-search-element-2/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=rendering-custom-data-in-the-custom-search-element-2</link>
		<comments>https://googledata.org/google-ajax-api/rendering-custom-data-in-the-custom-search-element-2/#comments</comments>
		<pubDate>Wed, 14 Apr 2010 01:19:00 +0000</pubDate>
		<dc:creator><![CDATA[Adam Feldman]]></dc:creator>
				<category><![CDATA[Google Ajax API]]></category>
		<category><![CDATA[custom search engine]]></category>
		<category><![CDATA[google ajax]]></category>
		<category><![CDATA[google api]]></category>

		<guid isPermaLink="false">https://googledata.org/?guid=ef7580980357a18f16930ac176a66405</guid>
		<description><![CDATA[Last year we introduced <a href="http://googlecustomsearch.blogspot.com/2009/05/enabling-rich-snippets-in-custom-search.html" title="Rich Snippets">Rich Snippets in Custom Search</a>,  allowing you to define your own custom attributes that we'll index and  return with your custom search results.  A few months later we showed  you <a href="http://adsense.blogspot.com/2009/10/more-customized-search-experience-for.html" title="how to render">how to render</a> some of these rich  snippets in your <a href="http://www.google.com/webelements/customsearch/" title="Custom Search element">Custom Search element</a>.  Sure, this was  a powerful way to let your visitors see thumbnails or interact with the results via <a href="http://googlecustomsearch.blogspot.com/2009/10/structured-custom-search.html" title="actions">actions</a>.  But we felt it was still too constrained.  It is with great pleasure that today we're announcing that you now have full rendering control of all your metadata in the Custom Search element.<br /><br />What do I mean?  If a picture is worth a thousand  words, an example is worth a thousand pictures.  Here's a fully customized element, showcasing results and metadata from <a href="http://www.scribd.com/" title="Scribd.com">Scribd.com</a>:<br /><div> <div> <div> <a> <img></a> </div> </div> <div> <div> <table><tr><td valign="top"> <div></div> </td> <td valign="top"> <div> <a></a> </div> <div></div> <div></div> <div> <img> By <span></span> &#160;-&#160; <span></span> pages&#160;-&#160; <span></span> views &#160;-&#160;last modified&#160;<span></span> </div> <div></div> </td> </tr></table></div> </div> </div> <div></div><br /><div><br />The  results really jump out at you, huh?  The thumbnails really help users  see what they're looking at, but we've shown you those before.  Same  with the Download action links by each result.  But never before could  you include arbitrary, per-result metadata with your Google Custom  Search results so easily.  Notice the author, length, views and date  information in each result.  There's even an icon representing each  result's document type.<br /><br />So how can you add this to your page?   Let's take a look.<br /><br />First, you need to include custom attributes  within your webpages, either via microformats, RDFa, or a special markup  called PageMaps.  A PageMap identifies specific attributes that Google  recognizes and indexes, and then returns along with search results.  Our  prior blog post on <a href="http://googlecustomsearch.blogspot.com/2009/10/structured-custom-search.html" title="Structured Custom Search">Structured Custom Search</a>  tells you how to add PageMaps to your site.  Please keep in mind that  your site needs to be re-indexed, which can take some time.  Therefore,  your PageMaps might not show up immediately.<br /><br />Once your custom  attributes have been indexed, you're ready to tell the element how to  render them.  If you don't already have the element on your page, you  can add it with a few lines:<br /><pre>&#60;script src="http://www.google.com/jsapi" type="text/javascript"&#62;&#60;/script&#62;<br />&#60;script type="text/javascript"&#62;<br />// Load the Search API<br />google.load('search', '1');<br /><br />// Set a callback to load the Custom Search Control when you page loads<br />google.setOnLoadCallback(<br />  function(){<br />    new google.search.CustomSearchControl('INSERT-YOUR-ID').draw('cse');<br />  },<br />true);<br />&#60;/script&#62;<br />&#60;div id="cse"&#62;&#60;/div&#62;</pre>Here's the Scribd.com <a href="http://ajax-apis.appspot.com/html/csedr1.html" title="sample">sample</a>, with only the default rich snippet inclusion:<br /><div><a href="http://1.bp.blogspot.com/_qU0w4wiK3GA/S8Ub3s_7EAI/AAAAAAAAACE/_aMDGr-7X_0/s1600/3.bmp"><img src="http://1.bp.blogspot.com/_qU0w4wiK3GA/S8Ub3s_7EAI/AAAAAAAAACE/_aMDGr-7X_0/s400/3.bmp" border="0" alt=""></a></div><br />It looks okay, but let's  make it better.<br /><br />We have to override the default rendering, by adding this line to the <code>onLoadCallback</code>:<pre>google.search.Csedr.addOverride("mysite_");</pre>Now, create a div to hold all of the rendering information - put it right  above the div that the element uses:<pre>&#60;div style="display:none"&#62;<br />&#60;/div&#62;<br /></pre>Okay,  now that everything's set up, it's time for the good part.  First off,  let's try shrinking the thumbnails a bit.  Inside the  <code>div</code> that was just added above, and tell the  element to render the images at 48x48 pixels:<pre>&#60;div id="mysite_thumbnail"&#62;<br />&#60;div data-if="Vars.thumbnail" class="gs-image-box gs-web-image-box"&#62;<br />  &#60;a class="gs-image" data-attr="{href:url, target:target}"&#62;<br />    &#60;img class="gs-image" data-attr="{src:thumbnail.src, width:48, height: 48}"/&#62;<br />  &#60;/a&#62;<br />&#60;/div&#62;<br />&#60;/div&#62;</pre>This replaces the default thumbnail rendering code with a  similar version that sets the image dimensions directly.<br /><br />Here's  the same <a href="http://ajax-apis.appspot.com/html/csedr2.html" title="sample">sample</a> with the above code added:<br /><div><a href="http://4.bp.blogspot.com/_qU0w4wiK3GA/S8Ub3f3HYrI/AAAAAAAAAB8/BS9qknKss0I/s1600/2.bmp"><img src="http://4.bp.blogspot.com/_qU0w4wiK3GA/S8Ub3f3HYrI/AAAAAAAAAB8/BS9qknKss0I/s400/2.bmp" border="0" alt=""></a></div>Now it's time to add the  new content and tweak the rendering of the basic content, too:<pre>&#60;div id="mysite_webResult"&#62;<br />&#60;div class="gs-webResult gs-result"<br />  data-vars="{longUrl:function() {<br />    var i = unescapedUrl.indexOf(visibleUrl);<br />    return i &#60; 1 ? visibleUrl : unescapedUrl.substring(i);}}"&#62;<br /><br />  &#60;table&#62;<br />    &#60;tr&#62;<br />      &#60;td valign="top"&#62;<br />        &#60;div data-if="Vars.richSnippet" data-attr="0"<br />          data-body="render('thumbnail',richSnippet,{url:unescapedUrl,target:target})"&#62;&#60;/div&#62;<br />      &#60;/td&#62;<br /><br />      &#60;td valign="top"&#62;<br />        &#60;div class="gs-title"&#62;<br />          &#60;a class="gs-title" data-attr="{href:unescapedUrl,target:target}"<br />            data-body="html(title)"&#62;&#60;/a&#62;<br />        &#60;/div&#62;<br />        &#60;div class="gs-snippet" data-body="html(content)"&#62;&#60;/div&#62;<br />        &#60;div class="gs-visibleUrl gs-visibleUrl-short" data-body="longUrl()"&#62;&#60;/div&#62;<br />        &#60;div style="&#38; Vars.richSnippet.document"&#62;<br />          &#60;img data-attr="{src:Vars.richSnippet.document.filetypeImage}"&#62;<br />          By &#60;span data-body="Vars.richSnippet.document.author"&#62;&#60;/span&#62;  -<br />          &#60;span data-body="Vars.richSnippet.document.pageCount"&#62;&#60;/span&#62; pages -<br />          &#60;span data-body="Vars.richSnippet.document.viewCount"&#62;&#60;/span&#62; views<br />           - last modified  &#60;span data-body="Vars.richSnippet.document.timeAgo"&#62;&#60;/span&#62;<br />        &#60;/div&#62;<br /><br />        &#60;div data-if="Vars.richSnippet &#38;&#38; Vars.richSnippet.action" class="gs-actions"<br />          data-body="render('action',richSnippet,{url:unescapedUrl,target:target})"&#62;&#60;/div&#62;<br />      &#60;/td&#62;<br />    &#60;/tr&#62;<br />  &#60;/table&#62;<br />&#60;/div&#62;<br />&#60;/div&#62;</pre>Voila!  The <a href="http://ajax-apis.appspot.com/html/csedr3.html" title="sample">sample</a> is now complete, and here's how it looks:<br /><div><a href="http://1.bp.blogspot.com/_qU0w4wiK3GA/S8Ub27fq5XI/AAAAAAAAAB0/ZOgrk9kBPUg/s1600/1.bmp"><img src="http://1.bp.blogspot.com/_qU0w4wiK3GA/S8Ub27fq5XI/AAAAAAAAAB0/ZOgrk9kBPUg/s400/1.bmp" border="0" alt=""></a></div><br />This example is a bit  more complex.  It shows how to use the <code>render()</code>  function to call other code, and also how you can include any  JavaScript logic.  You can even define internal functions, such as  <code>longUrl()</code>.<br /><br />Didn't quite catch all of  that or want to do even more?  Check out the <a href="http://code.google.com/apis/ajaxsearch/documentation/customsearch/rendering.html" title="documentation">documentation</a>.<br /><br />The best part of announcing new features like this is seeing what innovative  implementations people come up with.  Don't keep us waiting - come show off your handiwork in our <a href="http://groups.google.com/group/Google-AJAX-Search-API" title="support forum">support forum</a> or <a href="https://groups.google.com/group/google-ajax-search-api/browse_thread/thread/ccbcf6c42d5a78bc" title="IRC channel">IRC channel</a>!</div><div></div>Posted by:  David Gibson, Software Engineer and Adam Feldman, Product Manager]]></description>
				<content:encoded><![CDATA[Last year we introduced <a href="http://googlecustomsearch.blogspot.com/2009/05/enabling-rich-snippets-in-custom-search.html" id="a1_7" title="Rich Snippets">Rich Snippets in Custom Search</a>,  allowing you to define your own custom attributes that we'll index and  return with your custom search results.  A few months later we showed  you <a href="http://adsense.blogspot.com/2009/10/more-customized-search-experience-for.html" id="wbi4" title="how to render">how to render</a> some of these rich  snippets in your <a href="http://www.google.com/webelements/customsearch/" id="w:t2" title="Custom Search element">Custom Search element</a>.  Sure, this was  a powerful way to let your visitors see thumbnails or interact with the results via <a href="http://googlecustomsearch.blogspot.com/2009/10/structured-custom-search.html" id="t:0p" title="actions">actions</a>.  But we felt it was still too constrained.  It is with great pleasure that today we're announcing that you now have full rendering control of all your metadata in the Custom Search element.<br /><br />What do I mean?  If a picture is worth a thousand  words, an example is worth a thousand pictures.  Here's a fully customized element, showcasing results and metadata from <a href="http://www.scribd.com/" id="g-0j" title="Scribd.com">Scribd.com</a>:<br /><script src="http://www.google.com/jsapi" type="text/javascript"></script> <script type="text/javascript"> google.load('search', '1'); google.setOnLoadCallback( function(){ var customSearchControl = new google.search.CustomSearchControl( '000458029060823693019:rufl7axsp9k'); google.search.Csedr.addOverride("mysite_"); customSearchControl.draw('cse'); customSearchControl.execute("cheetah"); }, true); </script> <div style="display:none"> <div id="mysite_thumbnail"> <div data-if="Vars.thumbnail" class="gs-image-box gs-web-image-box"> <a class="gs-image" data-attr="{href:url, target:target}"> <img class="gs-image" data-attr="{src:thumbnail.src, width:48, height: 48}" /> </a> </div> </div> <div id="mysite_webResult"> <div class="gs-webResult gs-result" data-vars="{longUrl:function() { var i = unescapedUrl.indexOf(visibleUrl); return i &lt; 1 ? visibleUrl : unescapedUrl.substring(i);}}"> <table> <tr> <td valign="top"> <div data-if="Vars.richSnippet" data-attr="0" data-body="render('thumbnail',richSnippet,{url:unescapedUrl,target:target})"></div> </td> <td valign="top"> <div class="gs-title"> <a class="gs-title" data-attr="{href:unescapedUrl,target:target}" data-body="html(title)"></a> </div> <div class="gs-snippet" data-body="html(content)"></div> <div class="gs-visibleUrl gs-visibleUrl-short" data-body="longUrl()"></div> <div color="#676767" data-if="Vars.richSnippet && Vars.richSnippet.document"> <img data-attr="{src:Vars.richSnippet.document.filetypeImage}" /> By <span data-body="Vars.richSnippet.document.author"></span> &nbsp;-&nbsp; <span data-body="Vars.richSnippet.document.pageCount"></span> pages&nbsp;-&nbsp; <span data-body="Vars.richSnippet.document.viewCount"></span> views &nbsp;-&nbsp;last modified&nbsp;<span data-body="Vars.richSnippet.document.timeAgo"></span> </div> <div data-if="Vars.richSnippet && Vars.richSnippet.action" class="gs-actions" data-body="render('action',richSnippet,{url:unescapedUrl,target:target})"></div> </td> </tr> </table> </div> </div> </div> <div id="cse"></div><br /><div style="clear:both; margin-top: 2em;"><br />The  results really jump out at you, huh?  The thumbnails really help users  see what they're looking at, but we've shown you those before.  Same  with the Download action links by each result.  But never before could  you include arbitrary, per-result metadata with your Google Custom  Search results so easily.  Notice the author, length, views and date  information in each result.  There's even an icon representing each  result's document type.<br /><br />So how can you add this to your page?   Let's take a look.<br /><br />First, you need to include custom attributes  within your webpages, either via microformats, RDFa, or a special markup  called PageMaps.  A PageMap identifies specific attributes that Google  recognizes and indexes, and then returns along with search results.  Our  prior blog post on <a href="http://googlecustomsearch.blogspot.com/2009/10/structured-custom-search.html" id="w3hp" title="Structured Custom Search">Structured Custom Search</a>  tells you how to add PageMaps to your site.  Please keep in mind that  your site needs to be re-indexed, which can take some time.  Therefore,  your PageMaps might not show up immediately.<br /><br />Once your custom  attributes have been indexed, you're ready to tell the element how to  render them.  If you don't already have the element on your page, you  can add it with a few lines:<br /><pre>&lt;script src="http://www.google.com/jsapi" type="text/javascript"&gt;&lt;/script&gt;<br />&lt;script type="text/javascript"&gt;<br />// Load the Search API<br />google.load('search', '1');<br /><br />// Set a callback to load the Custom Search Control when you page loads<br />google.setOnLoadCallback(<br />  function(){<br />    new google.search.CustomSearchControl('INSERT-YOUR-ID').draw('cse');<br />  },<br />true);<br />&lt;/script&gt;<br />&lt;div id="cse"&gt;&lt;/div&gt;</pre>Here's the Scribd.com <a href="http://ajax-apis.appspot.com/html/csedr1.html" id="mqwq" title="sample">sample</a>, with only the default rich snippet inclusion:<br /><div style="text-align: center;"><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_qU0w4wiK3GA/S8Ub3s_7EAI/AAAAAAAAACE/_aMDGr-7X_0/s1600/3.bmp"><img style="cursor:pointer; cursor:hand;width: 400px; height: 81px;" src="http://1.bp.blogspot.com/_qU0w4wiK3GA/S8Ub3s_7EAI/AAAAAAAAACE/_aMDGr-7X_0/s400/3.bmp" border="0" alt="" id="BLOGGER_PHOTO_ID_5459800767042621442" /></a></div><br />It looks okay, but let's  make it better.<br /><br />We have to override the default rendering, by adding this line to the <code>onLoadCallback</code>:<pre>google.search.Csedr.addOverride("mysite_");</pre>Now, create a div to hold all of the rendering information - put it right  above the div that the element uses:<pre>&lt;div style="display:none"&gt;<br />&lt;/div&gt;<br /></pre>Okay,  now that everything's set up, it's time for the good part.  First off,  let's try shrinking the thumbnails a bit.  Inside the  <code>div</code> that was just added above, and tell the  element to render the images at 48x48 pixels:<pre>&lt;div id="mysite_thumbnail"&gt;<br />&lt;div data-if="Vars.thumbnail" class="gs-image-box gs-web-image-box"&gt;<br />  &lt;a class="gs-image" data-attr="{href:url, target:target}"&gt;<br />    &lt;img class="gs-image" data-attr="{src:thumbnail.src, width:48, height: 48}"/&gt;<br />  &lt;/a&gt;<br />&lt;/div&gt;<br />&lt;/div&gt;</pre>This replaces the default thumbnail rendering code with a  similar version that sets the image dimensions directly.<br /><br />Here's  the same <a href="http://ajax-apis.appspot.com/html/csedr2.html" id="nz0w" title="sample">sample</a> with the above code added:<br /><div style="text-align: center;"><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_qU0w4wiK3GA/S8Ub3f3HYrI/AAAAAAAAAB8/BS9qknKss0I/s1600/2.bmp"><img style="cursor:pointer; cursor:hand;width: 400px; height: 62px;" src="http://4.bp.blogspot.com/_qU0w4wiK3GA/S8Ub3f3HYrI/AAAAAAAAAB8/BS9qknKss0I/s400/2.bmp" border="0" alt="" id="BLOGGER_PHOTO_ID_5459800763516019378" /></a></div>Now it's time to add the  new content and tweak the rendering of the basic content, too:<pre>&lt;div id="mysite_webResult"&gt;<br />&lt;div class="gs-webResult gs-result"<br />  data-vars="{longUrl:function() {<br />    var i = unescapedUrl.indexOf(visibleUrl);<br />    return i &lt; 1 ? visibleUrl : unescapedUrl.substring(i);}}"&gt;<br /><br />  &lt;table&gt;<br />    &lt;tr&gt;<br />      &lt;td valign="top"&gt;<br />        &lt;div data-if="Vars.richSnippet" data-attr="0"<br />          data-body="render('thumbnail',richSnippet,{url:unescapedUrl,target:target})"&gt;&lt;/div&gt;<br />      &lt;/td&gt;<br /><br />      &lt;td valign="top"&gt;<br />        &lt;div class="gs-title"&gt;<br />          &lt;a class="gs-title" data-attr="{href:unescapedUrl,target:target}"<br />            data-body="html(title)"&gt;&lt;/a&gt;<br />        &lt;/div&gt;<br />        &lt;div class="gs-snippet" data-body="html(content)"&gt;&lt;/div&gt;<br />        &lt;div class="gs-visibleUrl gs-visibleUrl-short" data-body="longUrl()"&gt;&lt;/div&gt;<br />        &lt;div style="&amp; Vars.richSnippet.document"&gt;<br />          &lt;img data-attr="{src:Vars.richSnippet.document.filetypeImage}"&gt;<br />          By &lt;span data-body="Vars.richSnippet.document.author"&gt;&lt;/span&gt;  -<br />          &lt;span data-body="Vars.richSnippet.document.pageCount"&gt;&lt;/span&gt; pages -<br />          &lt;span data-body="Vars.richSnippet.document.viewCount"&gt;&lt;/span&gt; views<br />           - last modified  &lt;span data-body="Vars.richSnippet.document.timeAgo"&gt;&lt;/span&gt;<br />        &lt;/div&gt;<br /><br />        &lt;div data-if="Vars.richSnippet &amp;&amp; Vars.richSnippet.action" class="gs-actions"<br />          data-body="render('action',richSnippet,{url:unescapedUrl,target:target})"&gt;&lt;/div&gt;<br />      &lt;/td&gt;<br />    &lt;/tr&gt;<br />  &lt;/table&gt;<br />&lt;/div&gt;<br />&lt;/div&gt;</pre>Voila!  The <a href="http://ajax-apis.appspot.com/html/csedr3.html" id="y0yr" title="sample">sample</a> is now complete, and here's how it looks:<br /><div style="text-align: center;"><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_qU0w4wiK3GA/S8Ub27fq5XI/AAAAAAAAAB0/ZOgrk9kBPUg/s1600/1.bmp"><img style="cursor:pointer; cursor:hand;width: 400px; height: 83px;" src="http://1.bp.blogspot.com/_qU0w4wiK3GA/S8Ub27fq5XI/AAAAAAAAAB0/ZOgrk9kBPUg/s400/1.bmp" border="0" alt="" id="BLOGGER_PHOTO_ID_5459800753754006898" /></a></div><br />This example is a bit  more complex.  It shows how to use the <code>render()</code>  function to call other code, and also how you can include any  JavaScript logic.  You can even define internal functions, such as  <code>longUrl()</code>.<br /><br />Didn't quite catch all of  that or want to do even more?  Check out the <a href="http://code.google.com/apis/ajaxsearch/documentation/customsearch/rendering.html" id="w3.g" title="documentation">documentation</a>.<br /><br />The best part of announcing new features like this is seeing what innovative  implementations people come up with.  Don't keep us waiting - come show off your handiwork in our <a href="http://groups.google.com/group/Google-AJAX-Search-API" id="n6jj" title="support forum">support forum</a> or <a href="https://groups.google.com/group/google-ajax-search-api/browse_thread/thread/ccbcf6c42d5a78bc" id="u_it" title="IRC channel">IRC channel</a>!</div><div style="clear:both; margin-top: 2em;"></div>Posted by:  David Gibson, Software Engineer and Adam Feldman, Product Manager]]></content:encoded>
			<wfw:commentRss>https://googledata.org/google-ajax-api/rendering-custom-data-in-the-custom-search-element-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="" length="" type="" />
		</item>
		<item>
		<title>Restricting by licenses now available in the Image Search API</title>
		<link>https://googledata.org/google-ajax-api/restricting-by-licenses-now-available-in-the-image-search-api/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=restricting-by-licenses-now-available-in-the-image-search-api</link>
		<comments>https://googledata.org/google-ajax-api/restricting-by-licenses-now-available-in-the-image-search-api/#comments</comments>
		<pubDate>Mon, 12 Apr 2010 22:38:00 +0000</pubDate>
		<dc:creator><![CDATA[Adam Feldman]]></dc:creator>
				<category><![CDATA[Google Ajax API]]></category>
		<category><![CDATA[google ajax]]></category>
		<category><![CDATA[google api]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[I'm always amazed at the creative ways developers use Google's APIs.   I'm always pleased when we are able to add a new feature to the API, as I  know that someone, somewhere will do something cool and unexpected with  it.  The latest addition is to th...]]></description>
				<content:encoded><![CDATA[I'm always amazed at the creative ways developers use Google's APIs.   I'm always pleased when we are able to add a new feature to the API, as I  know that someone, somewhere will do something cool and unexpected with  it.  The latest addition is to the Image Search API.  You can now  restrict results by various licenses applied to each image.<br /><br />There  are two different ways to use this feature.  In the JavaScript API, you  can restrict your results to one of four common licenses (just like on <a href="http://images.google.com/" id="k3.3" title="Google Image Search">Google  Image Search</a>).  This is done using the <a href="http://code.google.com/apis/ajaxsearch/documentation/reference.html#_class_GimageSearch" id="mi-l" title="setRestriction">setRestriction</a> method, after  creating your Image Search searcher.  Here's how to restrict to images  which have been labeled for reuse with modification:<br /><pre><div class="udiff"><span class="dump">var searcher = new google.search.ImageSearch();</span></div><a id="0" name="0"></a><div class="udiffremove"><a id="0" name="0"></a><div class="udiffadd"><span class="dump">searcher.setRestriction(google.search.ImageSearch.RESTRICT_RIGHTS,</span></div><div class="udiffadd"><span class="dump">                        google.search.ImageSearch.RIGHTS_MODIFICATION);</span></div></div></pre><div class="udiffadd"><span class="dump">You can experiment with a <a href="http://code.google.com/apis/ajax/playground/#rights_restrict" id="g4ab" title="live example">live example</a> of this in our Code  Playground.<br /><br />If you're using the JSON API, you can use the <a id="0" name="0"></a><span class="dump" id="bh3q"><a href="http://code.google.com/apis/ajaxsearch/documentation/reference.html#_fonje_image" id="dvo4" title="as_rights">as_rights</a></span> optional parameter to  tell the API to include or exclude certain attributions.  To perform the  same restriction as above, try adding this to your requests:<pre>&amp;as_rights=<br /> (cc_publicdomain|cc_attribute|cc_sharealike|cc_noncommercial).-(cc_nonderived)</pre></span></div>For  a full list of the attribute combinations for each type of license,  perform an appropriately restricted search on Google Image Search's <a href="http://images.google.com/advanced_image_search" id="t9_h" title="advanced search">advanced search</a> and take a look at the  as_rights parameter in the URL on the results page.<br /><br /><div class="udiffadd"><span class="dump">Note: Images returned with this  filter may still have conditions on the license for use. Please remember  that violating copyright is strictly prohibited by the API <a href="http://code.google.com/apis/ajaxsearch/terms.html" id="v-57" title="Terms of Use">Terms of Use</a>.  For more details, see <a href="http://www.google.com/support/websearch/bin/answer.py?answer=29508" id="karv" title="this article">this article</a>.</span></div><br />Please  come visit our <a href="https://groups.google.com/group/google-ajax-search-api/browse_thread/thread/ccbcf6c42d5a78bc" id="oq.e" title="IRC channel">IRC channel</a> and <a href="http://groups.google.com/group/Google-AJAX-Search-API" id="pj6e" title="support forum">support forum</a> and let us know how you've used  this feature in your site or app!<div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/29072373-7978281892405184801?l=googleajaxsearchapi.blogspot.com' alt='' /></div>]]></content:encoded>
			<wfw:commentRss>https://googledata.org/google-ajax-api/restricting-by-licenses-now-available-in-the-image-search-api/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Restricting by licenses now available in the Image Search API</title>
		<link>https://googledata.org/google-ajax-api/restricting-by-licenses-now-available-in-the-image-search-api-2/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=restricting-by-licenses-now-available-in-the-image-search-api-2</link>
		<comments>https://googledata.org/google-ajax-api/restricting-by-licenses-now-available-in-the-image-search-api-2/#comments</comments>
		<pubDate>Mon, 12 Apr 2010 22:38:00 +0000</pubDate>
		<dc:creator><![CDATA[Adam Feldman]]></dc:creator>
				<category><![CDATA[Google Ajax API]]></category>
		<category><![CDATA[google ajax]]></category>
		<category><![CDATA[google api]]></category>

		<guid isPermaLink="false">https://googledata.org/?guid=0e6f1e7fad34017cf01e90e391e6a5fe</guid>
		<description><![CDATA[I'm always amazed at the creative ways developers use Google's APIs.   I'm always pleased when we are able to add a new feature to the API, as I  know that someone, somewhere will do something cool and unexpected with  it.  The latest addition is to th...]]></description>
				<content:encoded><![CDATA[I'm always amazed at the creative ways developers use Google's APIs.   I'm always pleased when we are able to add a new feature to the API, as I  know that someone, somewhere will do something cool and unexpected with  it.  The latest addition is to the Image Search API.  You can now  restrict results by various licenses applied to each image.<br /><br />There  are two different ways to use this feature.  In the JavaScript API, you  can restrict your results to one of four common licenses (just like on <a href="http://images.google.com/" id="k3.3" title="Google Image Search">Google  Image Search</a>).  This is done using the <a href="http://code.google.com/apis/ajaxsearch/documentation/reference.html#_class_GimageSearch" id="mi-l" title="setRestriction">setRestriction</a> method, after  creating your Image Search searcher.  Here's how to restrict to images  which have been labeled for reuse with modification:<br /><pre><div class="udiff"><span class="dump">var searcher = new google.search.ImageSearch();</span></div><a id="0" name="0"></a><div class="udiffremove"><a id="0" name="0"></a><div class="udiffadd"><span class="dump">searcher.setRestriction(google.search.ImageSearch.RESTRICT_RIGHTS,</span></div><div class="udiffadd"><span class="dump">                        google.search.ImageSearch.RIGHTS_MODIFICATION);</span></div></div></pre><div class="udiffadd"><span class="dump">You can experiment with a <a href="http://code.google.com/apis/ajax/playground/#rights_restrict" id="g4ab" title="live example">live example</a> of this in our Code  Playground.<br /><br />If you're using the JSON API, you can use the <a id="0" name="0"></a><span class="dump" id="bh3q"><a href="http://code.google.com/apis/ajaxsearch/documentation/reference.html#_fonje_image" id="dvo4" title="as_rights">as_rights</a></span> optional parameter to  tell the API to include or exclude certain attributions.  To perform the  same restriction as above, try adding this to your requests:<pre>&amp;as_rights=<br /> (cc_publicdomain|cc_attribute|cc_sharealike|cc_noncommercial).-(cc_nonderived)</pre></span></div>For  a full list of the attribute combinations for each type of license,  perform an appropriately restricted search on Google Image Search's <a href="http://images.google.com/advanced_image_search" id="t9_h" title="advanced search">advanced search</a> and take a look at the  as_rights parameter in the URL on the results page.<br /><br /><div class="udiffadd"><span class="dump">Note: Images returned with this  filter may still have conditions on the license for use. Please remember  that violating copyright is strictly prohibited by the API <a href="http://code.google.com/apis/ajaxsearch/terms.html" id="v-57" title="Terms of Use">Terms of Use</a>.  For more details, see <a href="http://www.google.com/support/websearch/bin/answer.py?answer=29508" id="karv" title="this article">this article</a>.</span></div><br />Please  come visit our <a href="https://groups.google.com/group/google-ajax-search-api/browse_thread/thread/ccbcf6c42d5a78bc" id="oq.e" title="IRC channel">IRC channel</a> and <a href="http://groups.google.com/group/Google-AJAX-Search-API" id="pj6e" title="support forum">support forum</a> and let us know how you've used  this feature in your site or app!]]></content:encoded>
			<wfw:commentRss>https://googledata.org/google-ajax-api/restricting-by-licenses-now-available-in-the-image-search-api-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="" length="" type="" />
		</item>
		<item>
		<title>Media RSS support added to the Feed API</title>
		<link>https://googledata.org/google-ajax-api/media-rss-support-added-to-the-feed-api-2/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=media-rss-support-added-to-the-feed-api-2</link>
		<comments>https://googledata.org/google-ajax-api/media-rss-support-added-to-the-feed-api-2/#comments</comments>
		<pubDate>Thu, 08 Apr 2010 17:15:00 +0000</pubDate>
		<dc:creator><![CDATA[Adam Feldman]]></dc:creator>
				<category><![CDATA[Google Ajax API]]></category>
		<category><![CDATA[google ajax]]></category>
		<category><![CDATA[google api]]></category>

		<guid isPermaLink="false">https://googledata.org/?guid=db2bfc63e41627946bba90fccb39e839</guid>
		<description><![CDATA[More and more sites are adding support for MediaRSS  to include images, videos and other types of multimedia files.  Today,  we're announcing that the Google Feed API now includes this metadata in the  response.  This content is now included in the JSO...]]></description>
				<content:encoded><![CDATA[More and more sites are adding support for <a href="http://video.search.yahoo.com/mrss" id="y.63" title="MediaRSS">MediaRSS</a>  to include images, videos and other types of multimedia files.  Today,  we're announcing that the <a href="http://code.google.com/apis/ajaxfeeds/" id="jdkc" title="Google  Feed API">Google Feed API</a> now includes this metadata in the  response.  This content is now included in the JSON and XML results  returned by the API.  For more details on the result format, check out  the <a href="http://code.google.com/apis/ajaxfeeds/documentation/reference.html#JSON" id="upd7" title="documentation">documentation</a>.<br /><br />Please note  that complete MediaRSS content is generally only available in feed  entries newer than February 1, 2010.<br /><br />Questions?  Comments?  If  you're attending <a href="http://code.google.com/events/io/2010/" id="jfzb" title="Google I/O">Google I/O</a>, come meet the team and  learn more about the Feed API at our <a href="http://code.google.com/events/io/2010/officehours.html" id="humm" title="Office Hours">Office Hours</a>.  If you can't wait that long,  there's always our <a href="https://groups.google.com/group/google-ajax-search-api/browse_thread/thread/ccbcf6c42d5a78bc" id="ztof" title="IRC channel">IRC channel</a> and <a href="http://groups.google.com/group/Google-AJAX-Search-API" id="vmrt" title="support forum">support forum</a>.]]></content:encoded>
			<wfw:commentRss>https://googledata.org/google-ajax-api/media-rss-support-added-to-the-feed-api-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="" length="" type="" />
		</item>
		<item>
		<title>Media RSS support added to the Feed API</title>
		<link>https://googledata.org/google-ajax-api/media-rss-support-added-to-the-feed-api/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=media-rss-support-added-to-the-feed-api</link>
		<comments>https://googledata.org/google-ajax-api/media-rss-support-added-to-the-feed-api/#comments</comments>
		<pubDate>Thu, 08 Apr 2010 17:15:00 +0000</pubDate>
		<dc:creator><![CDATA[Adam Feldman]]></dc:creator>
				<category><![CDATA[Google Ajax API]]></category>
		<category><![CDATA[google ajax]]></category>
		<category><![CDATA[google api]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[More and more sites are adding support for MediaRSS  to include images, videos and other types of multimedia files.  Today,  we're announcing that the Google Feed API now includes this metadata in the  response.  This content is now included in the JSO...]]></description>
				<content:encoded><![CDATA[More and more sites are adding support for <a href="http://video.search.yahoo.com/mrss" id="y.63" title="MediaRSS">MediaRSS</a>  to include images, videos and other types of multimedia files.  Today,  we're announcing that the <a href="http://code.google.com/apis/ajaxfeeds/" id="jdkc" title="Google  Feed API">Google Feed API</a> now includes this metadata in the  response.  This content is now included in the JSON and XML results  returned by the API.  For more details on the result format, check out  the <a href="http://code.google.com/apis/ajaxfeeds/documentation/reference.html#JSON" id="upd7" title="documentation">documentation</a>.<br /><br />Please note  that complete MediaRSS content is generally only available in feed  entries newer than February 1, 2010.<br /><br />Questions?  Comments?  If  you're attending <a href="http://code.google.com/events/io/2010/" id="jfzb" title="Google I/O">Google I/O</a>, come meet the team and  learn more about the Feed API at our <a href="http://code.google.com/events/io/2010/officehours.html" id="humm" title="Office Hours">Office Hours</a>.  If you can't wait that long,  there's always our <a href="https://groups.google.com/group/google-ajax-search-api/browse_thread/thread/ccbcf6c42d5a78bc" id="ztof" title="IRC channel">IRC channel</a> and <a href="http://groups.google.com/group/Google-AJAX-Search-API" id="vmrt" title="support forum">support forum</a>.<div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/29072373-7716660715513068817?l=googleajaxsearchapi.blogspot.com' alt='' /></div>]]></content:encoded>
			<wfw:commentRss>https://googledata.org/google-ajax-api/media-rss-support-added-to-the-feed-api/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Helping you help us help you</title>
		<link>https://googledata.org/google-ajax-api/helping-you-help-us-help-you-2/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=helping-you-help-us-help-you-2</link>
		<comments>https://googledata.org/google-ajax-api/helping-you-help-us-help-you-2/#comments</comments>
		<pubDate>Thu, 01 Apr 2010 02:25:00 +0000</pubDate>
		<dc:creator><![CDATA[Adam Feldman]]></dc:creator>
				<category><![CDATA[Google Ajax API]]></category>
		<category><![CDATA[google ajax]]></category>
		<category><![CDATA[google api]]></category>

		<guid isPermaLink="false">https://googledata.org/?guid=77adc85898d714389bb4876bf1f015bf</guid>
		<description><![CDATA[As I mentioned in a previous post, we've taken several  measures to help differentiate legitimate API traffic from bad requests.    To help us serve you better, I'm pleased to announce a new way for  you to identify your request as harmful.   Beginning...]]></description>
				<content:encoded><![CDATA[As I mentioned in a <a href="http://googleajaxsearchapi.blogspot.com/2010/01/new-parameter-for-server-side-api-calls.html" id="kbsz" title="previous post">previous post</a>, we've taken several  measures to help differentiate legitimate API traffic from bad requests.    To help us serve you better, I'm pleased to announce a new way for  you to identify your request as harmful.   Beginning today, please  include the <code>&amp;evil=true</code> parameter in  your API requests if you're one of the bad guys.<br /><br />How does this  work in practice?   Here's an <a href="http://ajax.googleapis.com/ajax/services/search/web?v=1.0&amp;q=april+fools+day&amp;evil=true" id="nzq6" title="example query">example query</a> which lets Google  know that you're intending to use the API for nefarious purposes.  This  way, we can respond to your request in the appropriate manner as  efficiently as possible.<br /><br />Note:  In order to encourage adoption as  quickly as possible, we are requiring all bad requests to include the <a href="http://google.com/search?q=evil+bit" id="ev96" title="evil bit">evil  bit</a> by the end of today, April 1.]]></content:encoded>
			<wfw:commentRss>https://googledata.org/google-ajax-api/helping-you-help-us-help-you-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="" length="" type="" />
		</item>
		<item>
		<title>Helping you help us help you</title>
		<link>https://googledata.org/google-ajax-api/helping-you-help-us-help-you/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=helping-you-help-us-help-you</link>
		<comments>https://googledata.org/google-ajax-api/helping-you-help-us-help-you/#comments</comments>
		<pubDate>Thu, 01 Apr 2010 02:25:00 +0000</pubDate>
		<dc:creator><![CDATA[Adam Feldman]]></dc:creator>
				<category><![CDATA[Google Ajax API]]></category>
		<category><![CDATA[google ajax]]></category>
		<category><![CDATA[google api]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[As I mentioned in a previous post, we've taken several  measures to help differentiate legitimate API traffic from bad requests.    To help us serve you better, I'm pleased to announce a new way for  you to identify your request as harmful.   Beginning...]]></description>
				<content:encoded><![CDATA[As I mentioned in a <a href="http://googleajaxsearchapi.blogspot.com/2010/01/new-parameter-for-server-side-api-calls.html" id="kbsz" title="previous post">previous post</a>, we've taken several  measures to help differentiate legitimate API traffic from bad requests.    To help us serve you better, I'm pleased to announce a new way for  you to identify your request as harmful.   Beginning today, please  include the <code>&amp;evil=true</code> parameter in  your API requests if you're one of the bad guys.<br /><br />How does this  work in practice?   Here's an <a href="http://ajax.googleapis.com/ajax/services/search/web?v=1.0&amp;q=april+fools+day&amp;evil=true" id="nzq6" title="example query">example query</a> which lets Google  know that you're intending to use the API for nefarious purposes.  This  way, we can respond to your request in the appropriate manner as  efficiently as possible.<br /><br />Note:  In order to encourage adoption as  quickly as possible, we are requiring all bad requests to include the <a href="http://google.com/search?q=evil+bit" id="ev96" title="evil bit">evil  bit</a> by the end of today, April 1.<div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/29072373-8087571674302048209?l=googleajaxsearchapi.blogspot.com' alt='' /></div>]]></content:encoded>
			<wfw:commentRss>https://googledata.org/google-ajax-api/helping-you-help-us-help-you/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>New Parameter for Server Side API Calls</title>
		<link>https://googledata.org/google-ajax-api/new-parameter-for-server-side-api-calls-2/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=new-parameter-for-server-side-api-calls-2</link>
		<comments>https://googledata.org/google-ajax-api/new-parameter-for-server-side-api-calls-2/#comments</comments>
		<pubDate>Tue, 19 Jan 2010 21:10:00 +0000</pubDate>
		<dc:creator><![CDATA[Adam Feldman]]></dc:creator>
				<category><![CDATA[Google Ajax API]]></category>
		<category><![CDATA[google ajax]]></category>
		<category><![CDATA[google api]]></category>

		<guid isPermaLink="false">https://googledata.org/?guid=277272526ad3ec829116e1158aaa8791</guid>
		<description><![CDATA[Over the last several years, you've helped make Google's AJAX APIs incredibly successful.  Not surprisingly, however, there are some people who try to take advantage of these free APIs by using them in ways that they were not designed for, abuse which ...]]></description>
				<content:encoded><![CDATA[<div>Over the last several years, you've helped make <a href="http://code.google.com/apis/ajax/">Google's AJAX APIs</a> incredibly successful.  Not surprisingly, however, there are some people who try to take advantage of these free APIs by using them in ways that they were not designed for, abuse which is prohibited by the <a href="http://code.google.com/apis/ajaxsearch/terms.html">Terms of Use</a>.  Specifically, some servers are making countless requests - requests not made on the behalf of an end-user - in an attempt to scrape data from the APIs.</div><div><br /></div><div>To help us discourage this behavior without affecting legitimate developers, we're adding a new parameter to the RESTful interface, userip.  With this parameter, developers have the option of supplying the IP address of the end-user on whose behalf they are making the API request.  Doing so will help us distinguish this legitimate server-side traffic from the more abusive scraping in which there are no end-users.</div><div><br /></div><div>Use of this new parameter is *not* required.  However, if it is not included with server-side requests, those requests are more likely to be interpreted and automatically blocked as abuse, especially in situations where a server is sending a high volume of traffic to the API.  Additional safeguards you can take include setting setting a valid HTTP referer (as required by our Terms of Use) and using an <a href="http://code.google.com/apis/ajaxsearch/signup.html">API key</a>.  These additional measures will help us contact you in case there are problems with your website or application (sometimes a programming error results in massive traffic, forcing us to block your access if we are unable to contact you).  In choosing to utilize this parameter, please be sure that you're in compliance with any local laws, including any laws relating to disclosure of personal information being sent.</div><div><br /></div><div>Check the <a href="http://code.google.com/apis/ajaxsearch/documentation/reference.html#_intro_fonje">documentation</a> for usage of the new parameter.  We'd love to hear any comments, questions or problems you're having in the <a href="http://groups.google.com/group/Google-AJAX-Search-API">support forum</a>.</div>]]></content:encoded>
			<wfw:commentRss>https://googledata.org/google-ajax-api/new-parameter-for-server-side-api-calls-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="" length="" type="" />
		</item>
		<item>
		<title>New Parameter for Server Side API Calls</title>
		<link>https://googledata.org/google-ajax-api/new-parameter-for-server-side-api-calls/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=new-parameter-for-server-side-api-calls</link>
		<comments>https://googledata.org/google-ajax-api/new-parameter-for-server-side-api-calls/#comments</comments>
		<pubDate>Tue, 19 Jan 2010 21:10:00 +0000</pubDate>
		<dc:creator><![CDATA[Adam Feldman]]></dc:creator>
				<category><![CDATA[Google Ajax API]]></category>
		<category><![CDATA[google ajax]]></category>
		<category><![CDATA[google api]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Over the last several years, you've helped make Google's AJAX APIs incredibly successful.  Not surprisingly, however, there are some people who try to take advantage of these free APIs by using them in ways that they were not designed for, abuse which ...]]></description>
				<content:encoded><![CDATA[<div>Over the last several years, you've helped make <a href="http://code.google.com/apis/ajax/">Google's AJAX APIs</a> incredibly successful.  Not surprisingly, however, there are some people who try to take advantage of these free APIs by using them in ways that they were not designed for, abuse which is prohibited by the <a href="http://code.google.com/apis/ajaxsearch/terms.html">Terms of Use</a>.  Specifically, some servers are making countless requests - requests not made on the behalf of an end-user - in an attempt to scrape data from the APIs.</div><div><br /></div><div>To help us discourage this behavior without affecting legitimate developers, we're adding a new parameter to the RESTful interface, userip.  With this parameter, developers have the option of supplying the IP address of the end-user on whose behalf they are making the API request.  Doing so will help us distinguish this legitimate server-side traffic from the more abusive scraping in which there are no end-users.</div><div><br /></div><div>Use of this new parameter is *not* required.  However, if it is not included with server-side requests, those requests are more likely to be interpreted and automatically blocked as abuse, especially in situations where a server is sending a high volume of traffic to the API.  Additional safeguards you can take include setting setting a valid HTTP referer (as required by our Terms of Use) and using an <a href="http://code.google.com/apis/ajaxsearch/signup.html">API key</a>.  These additional measures will help us contact you in case there are problems with your website or application (sometimes a programming error results in massive traffic, forcing us to block your access if we are unable to contact you).  In choosing to utilize this parameter, please be sure that you're in compliance with any local laws, including any laws relating to disclosure of personal information being sent.</div><div><br /></div><div>Check the <a href="http://code.google.com/apis/ajaxsearch/documentation/reference.html#_intro_fonje">documentation</a> for usage of the new parameter.  We'd love to hear any comments, questions or problems you're having in the <a href="http://groups.google.com/group/Google-AJAX-Search-API">support forum</a>.</div><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/29072373-5903802290198334801?l=googleajaxsearchapi.blogspot.com' alt='' /></div>]]></content:encoded>
			<wfw:commentRss>https://googledata.org/google-ajax-api/new-parameter-for-server-side-api-calls/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Behind the scenes with two AJAX API Developers</title>
		<link>https://googledata.org/google-ajax-api/behind-the-scenes-with-two-ajax-api-developers/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=behind-the-scenes-with-two-ajax-api-developers</link>
		<comments>https://googledata.org/google-ajax-api/behind-the-scenes-with-two-ajax-api-developers/#comments</comments>
		<pubDate>Tue, 21 Jul 2009 00:59:00 +0000</pubDate>
		<dc:creator><![CDATA[Adam Feldman]]></dc:creator>
				<category><![CDATA[Google Ajax API]]></category>
		<category><![CDATA[google ajax]]></category>
		<category><![CDATA[google api]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[We enjoy featuring real-world applications that show how versatile the AJAX APIs can be. Below we're highlighting two very different apps and the developers who built them:AroundMeAroundMe is an iPhone application where the AJAX APIs are central to the...]]></description>
				<content:encoded><![CDATA[We enjoy featuring real-world applications that show how versatile the AJAX APIs can be. Below we're highlighting two very different apps and the developers who built them:<br /><br /><span style="font-weight: bold;">AroundMe</span><br />AroundMe is an iPhone application where the AJAX APIs are central to the user experience. Specifically, the app utilizes the Local Search API to enable users to find information about their surroundings. In the videos below, Marco Pifferi (the developer behind AroundMe) gives a demo of his app, his thoughts on using the AJAX APIs, and tips for integrating them in mobile apps.<br /><br /><object width="480" height="385"><param name="movie" value="http://www.youtube.com/p/199B096EAD8832EC&amp;hl=en&amp;fs=1"><param name="allowFullScreen" value="true"><param name="allowscriptaccess" value="always"><embed src="http://www.youtube.com/p/199B096EAD8832EC&amp;hl=en&amp;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="385"></embed></object><br /><br /><span style="font-weight: bold;">Mibbit</span><br />Mibbit is a web-based chat application that uses the AJAX APIs to enhance the chat experience. The language APIs help users to translate their messages into a number of different languages. Mibbit also uses the Maps API and YouTube API to display embedded maps or YouTube videos if a user includes a Maps or YouTube URL in their chat. Jimmy Moore, creator of Mibbit, walks through Mibbit in his video below.<br /><br /><object width="560" height="340"><param name="movie" value="http://www.youtube.com/v/nlpsQYKLLv0&amp;hl=en&amp;fs=1&amp;"><param name="allowFullScreen" value="true"><param name="allowscriptaccess" value="always"><embed src="http://www.youtube.com/v/nlpsQYKLLv0&amp;hl=en&amp;fs=1&amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="560" height="340"></embed></object><br /><br />Do you have a great app that uses the AJAX APIs? <a href="http://code.google.com/videos/submit.html">Submit a video</a> about it and we may feature it on this blog.  Questions?  Stop by our <a href="http://groups.google.com/group/Google-AJAX-Search-API">support forum</a> or <a href="http://www.mibbit.com/?server=irc.freenode.net&amp;channel=%23googleajaxapis">IRC channel</a>.<div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/29072373-1927544842322758476?l=googleajaxsearchapi.blogspot.com' alt='' /></div>]]></content:encoded>
			<wfw:commentRss>https://googledata.org/google-ajax-api/behind-the-scenes-with-two-ajax-api-developers/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Behind the scenes with two AJAX API Developers</title>
		<link>https://googledata.org/google-ajax-api/behind-the-scenes-with-two-ajax-api-developers-2/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=behind-the-scenes-with-two-ajax-api-developers-2</link>
		<comments>https://googledata.org/google-ajax-api/behind-the-scenes-with-two-ajax-api-developers-2/#comments</comments>
		<pubDate>Tue, 21 Jul 2009 00:59:00 +0000</pubDate>
		<dc:creator><![CDATA[Adam Feldman]]></dc:creator>
				<category><![CDATA[Google Ajax API]]></category>
		<category><![CDATA[google ajax]]></category>
		<category><![CDATA[google api]]></category>

		<guid isPermaLink="false">https://googledata.org/?guid=9fd41c7e5f34887030668f0ad98c9490</guid>
		<description><![CDATA[We enjoy featuring real-world applications that show how versatile the AJAX APIs can be. Below we're highlighting two very different apps and the developers who built them:AroundMeAroundMe is an iPhone application where the AJAX APIs are central to the...]]></description>
				<content:encoded><![CDATA[We enjoy featuring real-world applications that show how versatile the AJAX APIs can be. Below we're highlighting two very different apps and the developers who built them:<br /><br /><span style="font-weight: bold;">AroundMe</span><br />AroundMe is an iPhone application where the AJAX APIs are central to the user experience. Specifically, the app utilizes the Local Search API to enable users to find information about their surroundings. In the videos below, Marco Pifferi (the developer behind AroundMe) gives a demo of his app, his thoughts on using the AJAX APIs, and tips for integrating them in mobile apps.<br /><br /><object width="480" height="385"><param name="movie" value="http://www.youtube.com/p/199B096EAD8832EC&amp;hl=en&amp;fs=1"><param name="allowFullScreen" value="true"><param name="allowscriptaccess" value="always"><embed src="http://www.youtube.com/p/199B096EAD8832EC&amp;hl=en&amp;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="385"></embed></object><br /><br /><span style="font-weight: bold;">Mibbit</span><br />Mibbit is a web-based chat application that uses the AJAX APIs to enhance the chat experience. The language APIs help users to translate their messages into a number of different languages. Mibbit also uses the Maps API and YouTube API to display embedded maps or YouTube videos if a user includes a Maps or YouTube URL in their chat. Jimmy Moore, creator of Mibbit, walks through Mibbit in his video below.<br /><br /><object width="560" height="340"><param name="movie" value="http://www.youtube.com/v/nlpsQYKLLv0&amp;hl=en&amp;fs=1&amp;"><param name="allowFullScreen" value="true"><param name="allowscriptaccess" value="always"><embed src="http://www.youtube.com/v/nlpsQYKLLv0&amp;hl=en&amp;fs=1&amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="560" height="340"></embed></object><br /><br />Do you have a great app that uses the AJAX APIs? <a href="http://code.google.com/videos/submit.html">Submit a video</a> about it and we may feature it on this blog.  Questions?  Stop by our <a href="http://groups.google.com/group/Google-AJAX-Search-API">support forum</a> or <a href="http://www.mibbit.com/?server=irc.freenode.net&amp;channel=%23googleajaxapis">IRC channel</a>.]]></content:encoded>
			<wfw:commentRss>https://googledata.org/google-ajax-api/behind-the-scenes-with-two-ajax-api-developers-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="" length="" type="" />
		</item>
		<item>
		<title>Introducing the Virtual Keyboard API</title>
		<link>https://googledata.org/google-ajax-api/introducing-the-virtual-keyboard-api-2/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=introducing-the-virtual-keyboard-api-2</link>
		<comments>https://googledata.org/google-ajax-api/introducing-the-virtual-keyboard-api-2/#comments</comments>
		<pubDate>Mon, 22 Jun 2009 19:07:00 +0000</pubDate>
		<dc:creator><![CDATA[Adam Feldman]]></dc:creator>
				<category><![CDATA[Google Ajax API]]></category>
		<category><![CDATA[google ajax]]></category>
		<category><![CDATA[google api]]></category>

		<guid isPermaLink="false">https://googledata.org/?guid=1f1c8dfb30d1de1132d103d93899235a</guid>
		<description><![CDATA[<p> It is often difficult for Internet users to input text in many non-Latin script-based languages for a variety of reasons.  The correct keyboard layout may not be installed on the computer they're using - sometimes such a layout may not be well developed or widely available.  This poses a challenging problem for web developers because there is no way they can ensure that their users have access to this very basic input technology.  Our <a href="http://code.google.com/apis/ajaxlanguage/documentation/#Transliteration" title="Transliteration API">Transliteration API</a> can help, but requires that the user know multiple languages.<br /><br />Right on the heels of introducing support for <a title="translating Persian (Farsi)" href="http://googleblog.blogspot.com/2009/06/google-translates-persian.html">translating Persian (Farsi)</a>,   we've added a new <a href="http://code.google.com/apis/ajaxlanguage/documentation/#Keyboard" title="Virtual Keyboard API">Virtual Keyboard API</a> into the <a href="http://code.google.com/apis/ajaxlanguage/" title="Google AJAX Language API">Google AJAX Language API</a> to further assist with text input.  With this, developers can help their users input text without relying on the right software being installed on the computer they happen to be using.<br /><br />It couldn't be easier to get this on your page.  Simply load the right package:</p><pre>google.load("elements", "1", {<br /> packages: "keyboard"<br />});</pre><br />Then create a keyboard, specifying the keyboard layout and text field to bind to:<pre>var kbd = new google.elements.keyboard.Keyboard(<br /> [google.elements.keyboard.LayoutCode.Arabic],<br /> ['myTextArea']);</pre><br />And here's what it looks like:<div>   <img src="https://docs.google.com/a/google.com/File?id=chj3qbn7_3ccmdkrkf_b"></div><p>This gives you the control to provide a better user experience, even for multilingual websites.  By creating multiple keyboards with different layouts, each text field can be bound to the appropriate keyboard - and the user will see only the keyboard attached to whichever text field has the focus.<br /><br />But don't take my word for it - check out a <a href="http://code.google.com/apis/ajax/playground/#virtual_keyboard" title="sample">sample</a> for yourself.  Notice that in addition to allowing users to click on the virtual keyboard, it also temporarily transforms the key assignments on their physical keyboard, allowing rapid typing for those users accustomed to a given layout.<br /><br />With this initial release, we are launching 5 language layouts.  They are: </p> <div> </div> <div>   <div>     <ul><li>         Arabic (<span><span>&#1575;&#1604;&#1593;&#1585;&#1576;&#1610;&#1577;)</span></span>       </li><li>         Hindi (<span><span>&#2361;&#2367;&#2344;&#2381;&#2342;&#2368;)</span></span>       </li><li>         Polish (<span><span>Polski)</span></span>       </li><li>         Russian (<span><span>&#1056;&#1091;&#1089;&#1089;&#1082;&#1080;&#1081;)</span></span>       </li><li>         Thai (<span><span>&#3652;&#3607;&#3618;)</span></span>       </li></ul></div> </div> <p><br />We plan to roll out support for more keyboard layouts in the future.  But in the meantime, read through the <a href="http://code.google.com/apis/ajaxlanguage/documentation/referenceKeyboard.html" title="class reference">class reference</a> and see the rest of the <a href="http://code.google.com/apis/ajax/playground/#virtual_keyboard" title="Code Playground samples">Code Playground samples</a>.<br /><br />After you've had time to experiment, let us know what you think and which other layouts you'd like to see.  Feedback is always welcome in our <a href="http://groups.google.com/group/Google-AJAX-Search-API" title="support forum">support forum</a> and <a href="http://www.mibbit.com/?server=irc.freenode.net&#38;channel=%23googleajaxapis" title="IRC channel">IRC channel</a>. </p>    <p> </p>]]></description>
				<content:encoded><![CDATA[<p> It is often difficult for Internet users to input text in many non-Latin script-based languages for a variety of reasons.  The correct keyboard layout may not be installed on the computer they're using - sometimes such a layout may not be well developed or widely available.  This poses a challenging problem for web developers because there is no way they can ensure that their users have access to this very basic input technology.  Our <a href="http://code.google.com/apis/ajaxlanguage/documentation/#Transliteration" id="fp3y" title="Transliteration API">Transliteration API</a> can help, but requires that the user know multiple languages.<br /><br />Right on the heels of introducing support for <a title="translating Persian (Farsi)" href="http://googleblog.blogspot.com/2009/06/google-translates-persian.html" id="rpfm">translating Persian (Farsi)</a>,   we've added a new <a href="http://code.google.com/apis/ajaxlanguage/documentation/#Keyboard" id="h8oa" title="Virtual Keyboard API">Virtual Keyboard API</a> into the <a href="http://code.google.com/apis/ajaxlanguage/" id="okla" title="Google AJAX Language API">Google AJAX Language API</a> to further assist with text input.  With this, developers can help their users input text without relying on the right software being installed on the computer they happen to be using.<br /><br />It couldn't be easier to get this on your page.  Simply load the right package:<pre class="code">google.load("elements", "1", {<br /> packages: "keyboard"<br />});</pre><br />Then create a keyboard, specifying the keyboard layout and text field to bind to:<pre class="code">var kbd = new google.elements.keyboard.Keyboard(<br /> [google.elements.keyboard.LayoutCode.Arabic],<br /> ['myTextArea']);</pre><br />And here's what it looks like:</p><div id="mb4b" style="text-align: left;">   <img src="https://docs.google.com/a/google.com/File?id=chj3qbn7_3ccmdkrkf_b" style="width: 402px; height: 182px;" /> </div><p>This gives you the control to provide a better user experience, even for multilingual websites.  By creating multiple keyboards with different layouts, each text field can be bound to the appropriate keyboard - and the user will see only the keyboard attached to whichever text field has the focus.<br /><br />But don't take my word for it - check out a <a href="http://code.google.com/apis/ajax/playground/#virtual_keyboard" id="pydr" title="sample">sample</a> for yourself.  Notice that in addition to allowing users to click on the virtual keyboard, it also temporarily transforms the key assignments on their physical keyboard, allowing rapid typing for those users accustomed to a given layout.<br /><br />With this initial release, we are launching 5 language layouts.  They are: </p> <div> </div> <div>   <div>     <ul><li>         Arabic (<span style="font-family:-webkit-monospace;"><span style="font-size:100%;">العربية)</span></span>       </li><li>         Hindi (<span style="font-family:Arial;"><span style="font-size:100%;">हिन्दी)</span></span>       </li><li>         Polish (<span style="font-family:-webkit-monospace;"><span style="font-size:100%;">Polski)</span></span>       </li><li>         Russian (<span style="font-family:-webkit-monospace;"><span style="font-size:100%;">Русский)</span></span>       </li><li>         Thai (<span style="font-family:-webkit-monospace;"><span style="font-size:100%;">ไทย)</span></span>       </li></ul>   </div> </div> <p><br />We plan to roll out support for more keyboard layouts in the future.  But in the meantime, read through the <a href="http://code.google.com/apis/ajaxlanguage/documentation/referenceKeyboard.html" id="j4cg" title="class reference">class reference</a> and see the rest of the <a href="http://code.google.com/apis/ajax/playground/#virtual_keyboard" id="gj1i" title="Code Playground samples">Code Playground samples</a>.<br /><br />After you've had time to experiment, let us know what you think and which other layouts you'd like to see.  Feedback is always welcome in our <a href="http://groups.google.com/group/Google-AJAX-Search-API" id="d8z9" title="support forum">support forum</a> and <a href="http://www.mibbit.com/?server=irc.freenode.net&amp;channel=%23googleajaxapis" id="m0_:" title="IRC channel">IRC channel</a>. </p>    <p> </p>]]></content:encoded>
			<wfw:commentRss>https://googledata.org/google-ajax-api/introducing-the-virtual-keyboard-api-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="" length="" type="" />
		</item>
		<item>
		<title>Arabic Transliteration added to the AJAX Language API</title>
		<link>https://googledata.org/google-ajax-api/arabic-transliteration-added-to-the-ajax-language-api/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=arabic-transliteration-added-to-the-ajax-language-api</link>
		<comments>https://googledata.org/google-ajax-api/arabic-transliteration-added-to-the-ajax-language-api/#comments</comments>
		<pubDate>Mon, 08 Jun 2009 07:23:00 +0000</pubDate>
		<dc:creator><![CDATA[Adam Feldman]]></dc:creator>
				<category><![CDATA[Google Ajax API]]></category>
		<category><![CDATA[google ajax]]></category>
		<category><![CDATA[google api]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Last year we launched the Transliteration API as an addition to the AJAX Language API.  This gave users the ability to transliterate (the process of phonetically converting words from one script into another) text into several Indic languages using a n...]]></description>
				<content:encoded><![CDATA[Last year we launched the Transliteration API as an addition to the AJAX Language API.  This gave users the ability to transliterate (the process of phonetically converting words from one script into another) text into several Indic languages using a normal English keyboard.<br /><br />We're happy to announce that we've now added Arabic to the list of supported languages.  Now, you can allow your users to easily input Arabic-language text into any text field or text area on your web page without switching to a non-Latin alphabet keyboard - just like on the <a href="http://www.google.com/ta3reeb/" id="xfpj" title="our Labs page">Labs page</a>.  For example, if the user types '<i>mar7aban bekom'</i>, the API will transliterate each word, with the result '<span style="font-size:100%;"><span style="font-family:Tahoma;">مرحبا بكم</span></span>' (Arabic for <i>welcome</i>). The API will even automatically adjust the direction of the text area to support this right-to-left language.<br /><br />Take a look at the <a title="documentation" href="http://code.google.com/apis/ajaxlanguage/documentation/#Transliteration" id="lua-">documentation</a> and then head over to the <a title="Code Playground" href="http://code.google.com/apis/ajax/playground/#transliterate_arabic" id="h0gs">Code Playground</a> to give it a try for yourself.  If you have any questions, stop by the <a title="Google AJAX API developer forum" href="http://groups.google.com/group/Google-AJAX-Search-API" id="a-.w">Google AJAX API developer forum</a> or <a title="IRC channel" href="http://www.mibbit.com/?server=irc.freenode.net&amp;channel=%23googleajaxapis" id="npsz">IRC channel</a>.<div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/29072373-474641750922618239?l=googleajaxsearchapi.blogspot.com' alt='' /></div>]]></content:encoded>
			<wfw:commentRss>https://googledata.org/google-ajax-api/arabic-transliteration-added-to-the-ajax-language-api/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Arabic Transliteration added to the AJAX Language API</title>
		<link>https://googledata.org/google-ajax-api/arabic-transliteration-added-to-the-ajax-language-api-2/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=arabic-transliteration-added-to-the-ajax-language-api-2</link>
		<comments>https://googledata.org/google-ajax-api/arabic-transliteration-added-to-the-ajax-language-api-2/#comments</comments>
		<pubDate>Mon, 08 Jun 2009 07:23:00 +0000</pubDate>
		<dc:creator><![CDATA[Adam Feldman]]></dc:creator>
				<category><![CDATA[Google Ajax API]]></category>
		<category><![CDATA[google ajax]]></category>
		<category><![CDATA[google api]]></category>

		<guid isPermaLink="false">https://googledata.org/?guid=9907e53f964f804a6add5d7387a68325</guid>
		<description><![CDATA[Last year we launched the Transliteration API as an addition to the AJAX Language API.  This gave users the ability to transliterate (the process of phonetically converting words from one script into another) text into several Indic languages using a normal English keyboard.<br /><br />We're happy to announce that we've now added Arabic to the list of supported languages.  Now, you can allow your users to easily input Arabic-language text into any text field or text area on your web page without switching to a non-Latin alphabet keyboard - just like on the <a href="http://www.google.com/ta3reeb/" title="our Labs page">Labs page</a>.  For example, if the user types '<i>mar7aban bekom'</i>, the API will transliterate each word, with the result '<span><span>&#1605;&#1585;&#1581;&#1576;&#1575; &#1576;&#1603;&#1605;</span></span>' (Arabic for <i>welcome</i>). The API will even automatically adjust the direction of the text area to support this right-to-left language.<br /><br />Take a look at the <a title="documentation" href="http://code.google.com/apis/ajaxlanguage/documentation/#Transliteration">documentation</a> and then head over to the <a title="Code Playground" href="http://code.google.com/apis/ajax/playground/#transliterate_arabic">Code Playground</a> to give it a try for yourself.  If you have any questions, stop by the <a title="Google AJAX API developer forum" href="http://groups.google.com/group/Google-AJAX-Search-API">Google AJAX API developer forum</a> or <a title="IRC channel" href="http://www.mibbit.com/?server=irc.freenode.net&#38;channel=%23googleajaxapis">IRC channel</a>.]]></description>
				<content:encoded><![CDATA[Last year we launched the Transliteration API as an addition to the AJAX Language API.  This gave users the ability to transliterate (the process of phonetically converting words from one script into another) text into several Indic languages using a normal English keyboard.<br /><br />We're happy to announce that we've now added Arabic to the list of supported languages.  Now, you can allow your users to easily input Arabic-language text into any text field or text area on your web page without switching to a non-Latin alphabet keyboard - just like on the <a href="http://www.google.com/ta3reeb/" id="xfpj" title="our Labs page">Labs page</a>.  For example, if the user types '<i>mar7aban bekom'</i>, the API will transliterate each word, with the result '<span style="font-size:100%;"><span style="font-family:Tahoma;">مرحبا بكم</span></span>' (Arabic for <i>welcome</i>). The API will even automatically adjust the direction of the text area to support this right-to-left language.<br /><br />Take a look at the <a title="documentation" href="http://code.google.com/apis/ajaxlanguage/documentation/#Transliteration" id="lua-">documentation</a> and then head over to the <a title="Code Playground" href="http://code.google.com/apis/ajax/playground/#transliterate_arabic" id="h0gs">Code Playground</a> to give it a try for yourself.  If you have any questions, stop by the <a title="Google AJAX API developer forum" href="http://groups.google.com/group/Google-AJAX-Search-API" id="a-.w">Google AJAX API developer forum</a> or <a title="IRC channel" href="http://www.mibbit.com/?server=irc.freenode.net&amp;channel=%23googleajaxapis" id="npsz">IRC channel</a>.]]></content:encoded>
			<wfw:commentRss>https://googledata.org/google-ajax-api/arabic-transliteration-added-to-the-ajax-language-api-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="" length="" type="" />
		</item>
		<item>
		<title>AJAX Custom Search Gadget on Blogger</title>
		<link>https://googledata.org/google-ajax-api/ajax-custom-search-gadget-on-blogger/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=ajax-custom-search-gadget-on-blogger</link>
		<comments>https://googledata.org/google-ajax-api/ajax-custom-search-gadget-on-blogger/#comments</comments>
		<pubDate>Mon, 01 Jun 2009 17:06:00 +0000</pubDate>
		<dc:creator><![CDATA[Adam Feldman]]></dc:creator>
				<category><![CDATA[Google Ajax API]]></category>
		<category><![CDATA[google ajax]]></category>
		<category><![CDATA[google api]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[The AJAX Search gadget for Blogger is now available to all users on Blogger.com. This gadget accesses a Custom Search Engine (CSE) that is created automatically for your blog and provides search results inline, with the look and feel of your blog. You ...]]></description>
				<content:encoded><![CDATA[The AJAX Search gadget for Blogger is now available to all users on Blogger.com. This gadget accesses a <a href="http://www.google.com/cse">Custom Search Engine</a> (CSE) that is created automatically for your blog and provides search results inline, with the look and feel of your blog. You can get all this with just a few clicks from the Blogger control panel.<br /><br />One cool feature of the gadget is the 'Linked From Here' feature that searches the pages you've linked to from your blog posts. As you create new posts, we automatically update your search engine to include all the linked pages, as well as all the pages linked from your link lists and blog lists.  Check out the <a href="http://buzz.blogger.com/2009/06/search-box-gadget-available-to-all.html">gadget</a> — the search results match the look and feel of your blog and show up inline, as shown in the screenshot below. You can click a button to dismiss the results when you are done, and go back to reading the current post.<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_qU0w4wiK3GA/ShWMhtBLTxI/AAAAAAAAABc/kX6vTXaXyHo/s1600-h/blogger.gif"><img style="cursor:pointer; cursor:hand;width: 400px; height: 298px;" src="http://1.bp.blogspot.com/_qU0w4wiK3GA/ShWMhtBLTxI/AAAAAAAAABc/kX6vTXaXyHo/s400/blogger.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5338327443965693714" /></a><br /><br />If you are not using Blogger, you can still create something similar for your website using the <a href="http://www.google.com/webelements/customsearch/">Custom Search element</a> (read more about this new element at the <a href="http://googlecustomsearch.blogspot.com/2009/05/introducing-custom-search-web-element.html">Custom Search blog</a>).<div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/29072373-3082419461139249241?l=googleajaxsearchapi.blogspot.com' alt='' /></div>]]></content:encoded>
			<wfw:commentRss>https://googledata.org/google-ajax-api/ajax-custom-search-gadget-on-blogger/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="" length="" type="" />
		</item>
		<item>
		<title>Easy as 1-2-3 &#8211; introducing Google Web Elements</title>
		<link>https://googledata.org/google-ajax-api/easy-as-1-2-3-introducing-google-web-elements/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=easy-as-1-2-3-introducing-google-web-elements</link>
		<comments>https://googledata.org/google-ajax-api/easy-as-1-2-3-introducing-google-web-elements/#comments</comments>
		<pubDate>Wed, 27 May 2009 18:54:00 +0000</pubDate>
		<dc:creator><![CDATA[Adam Feldman]]></dc:creator>
				<category><![CDATA[Google Ajax API]]></category>
		<category><![CDATA[google ajax]]></category>
		<category><![CDATA[google api]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Today at Google I/O, we launched Google Web Elements with one goal in mind - making life easier for developers. Google Web Elements make it incredibly simple to add Google products to your site, app or blog. It's so easy, you'll feel like you're cheati...]]></description>
				<content:encoded><![CDATA[<span class="Apple-style-span" style="font-family: Verdana; font-size: 13px;"></span><br /><div style="margin-bottom: 0px; margin-top: 0px;">Today at Google I/O, we launched <a href="http://www.google.com/webelements/" id="u7wm" style="color: #551a8b;" title="Google Web Elements">Google Web Elements</a> with one goal in mind - making life easier for developers. Google Web Elements make it incredibly simple to add Google products to your site, app or blog. It's so easy, you'll feel like you're cheating.  Inspired by the convenience of embeddable YouTube videos, Google Web Elements allow you to add products like Google Custom Search, Google Docs, and Google Maps to your website with the simplicity of copy and paste.  For instance, here's the new Google News element:<br /><br /><center><iframe allowtransparency="true" border="0" frameborder="0" marginheight="0" marginwidth="0" scrolling="no" src="http://www.google.com/uds/modules/elements/newsshow/iframe.html?rsz=large&amp;format=300x250&amp;element=true" style="border: 0pt none; height: 250px; margin: 0pt; width: 300px;"></iframe></center><br /><br />Each element is designed to help you get started quickly without spending time on the deep technical details.  Yet behind it all, Google Web Elements are powered by Google's scalable and flexible <a href="http://code.google.com/" id="cph1" style="color: #551a8b;" title="developer APIs">developer APIs</a>, offering a world of customization just beneath the surface, keeping up with your site as it grows.<br /></div><div style="margin-bottom: 0px; margin-top: 0px;"><br /></div><div style="margin-bottom: 0px; margin-top: 0px;">For more details, check out the <a href="http://google-code-updates.blogspot.com/2009/05/introduce-google-web-elements.html">Google Code</a> and <a href="http://googlecustomsearch.blogspot.com/2009/05/introducing-custom-search-web-element.html">Custom Search</a> blogs.  Google Web Elements are already available for eight of our most popular products, with more soon to follow.  To get started, visit the <a href="http://www.google.com/webelements/" id="tvpk" style="color: #551a8b;" title="Google Web Elements">Google Web Elements</a> homepage and please be sure to <a href="http://www.google.com/support/forum/p/webelements" id="x6_3" title="let us know">let us know</a> what you'd like to see us work on next.</insert></div><div style="margin-bottom: 0px; margin-top: 0px;"><br /></div><div style="margin-bottom: 0px; margin-top: 0px;">Want to know what else is going on at Google I/O?  Follow us on twitter <a href="http://twitter.com/googleio" id="jv3j" title="@googleio">@googleio</a> and <a href="http://googleio.twazzup.com/" title="twazzup">twazzup</a>.</div><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/29072373-2472555723556331421?l=googleajaxsearchapi.blogspot.com' alt='' /></div>]]></content:encoded>
			<wfw:commentRss>https://googledata.org/google-ajax-api/easy-as-1-2-3-introducing-google-web-elements/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Updated Local Search Control used in brand new GoogleBar</title>
		<link>https://googledata.org/google-ajax-api/updated-local-search-control-used-in-brand-new-googlebar/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=updated-local-search-control-used-in-brand-new-googlebar</link>
		<comments>https://googledata.org/google-ajax-api/updated-local-search-control-used-in-brand-new-googlebar/#comments</comments>
		<pubDate>Wed, 18 Mar 2009 00:50:00 +0000</pubDate>
		<dc:creator><![CDATA[Adam Feldman]]></dc:creator>
				<category><![CDATA[Google Ajax API]]></category>
		<category><![CDATA[google ajax]]></category>
		<category><![CDATA[google api]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[A much requested feature, the Local Search Control now includes ads when a search is performed.  Users will benefit from seeing targeted and relevant sponsored results, and you can benefit by sharing in the revenue of including these results on your si...]]></description>
				<content:encoded><![CDATA[A much requested feature, the Local Search Control now includes ads when a search is performed.  Users will benefit from seeing targeted and relevant sponsored results, and you can benefit by sharing in the revenue of including these results on your site.  Ads aren't the only thing that's new - there's also a new (and, we hope you agree, better) UI:<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_qU0w4wiK3GA/ScAxWrXbwoI/AAAAAAAAABU/HMKZ-0DBahU/s1600-h/LSC-example.gif"><img style="cursor:pointer; cursor:hand;width: 400px; height: 203px;" src="http://4.bp.blogspot.com/_qU0w4wiK3GA/ScAxWrXbwoI/AAAAAAAAABU/HMKZ-0DBahU/s400/LSC-example.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5314301825965081218" /></a><br /><br />This new Local Search Control has been used in a brand new version of the <a href="http://code.google.com/apis/maps/documentation/services.html#UsingGoogleBar">GoogleBar</a> (part of the Maps API).  In almost all cases, the GoogleBar provides the ideal way to add searches to Google Maps.  The GoogleBar, too, includes advertisements with the results.  In order to share in the revenue, you need to supply your AdSense publisher ID.  You can use your existing ID or <a href="https://www.google.com/adsense/support/bin/answer.py?answer=9880">sign up for a new AdSense account</a>.  Once you have an account, <a href="https://www.google.com/adsense/support/bin/answer.py?answer=45465">get your AdSense publisher ID</a> and include it as an option when you set up the GoogleBar:<br /><br /><pre class="code" style="overflow:scroll;"><br />&lt;script src=&quot;/jsapi?key=YOUR_KEY_HERE&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;<br />&lt;script type=&quot;text/javascript&quot;&gt;<br /> google.load(&quot;maps&quot;, &quot;2&quot;);<br /> var opts = {<br /><br />    googleBarOptions : {<br />      style : 'new',   // This tag is necessary for the first few weeks until the new UI becomes default<br />      adsOptions : {<br />        client : ####  // Your Google AdSense publisher ID<br />      }<br />    }<br />  }<br />  map = new GMap2(document.getElementById(&quot;map&quot;), opts);<br />  map.setCenter(new GLatLng(33.956461,-118.396225), 13);<br />  map.enableGoogleBar();<br />&lt;/script&gt;</pre><br /><br />Optionally, you may also specify an AdSense for Search channel (<a href="https://www.google.com/adsense/support/bin/answer.py?hl=en&answer=32614">more info on channels</a>), the Ad Safety Level to associate with your advertising, and the language in which to display results. For a full list of options and details on including them, see the <a href="http://code.google.com/apis/maps/documentation/services.html#UsingGoogleBar">GoogleBar documentation</a>. Note: currently ads only appear for results that are inline - this limitation should be removed within a few weeks.<br /><br /><br />If you'd like to learn more about the new underlying, low-level Local Search Control, the <a href="http://code.google.com/apis/ajaxsearch/documentation/localsearch/index.html">reference documentation</a> and <a href="http://code.google.com/apis/ajax/playground/#local_search_control">Code Playground examples </a>contain everything you need to know.<br /><br />For more information, see this recent post on the <a href="http://googlegeodevelopers.blogspot.com/2009/03/changes-to-googlebar.html">Maps API blog</a>.  Questions or comments?  Please visit the <a href="http://groups.google.com/group/Google-AJAX-Search-API">AJAX API</a> and <a href="http://groups.google.com/group/Google-Maps-API">Maps API</a> discussion groups.<div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/29072373-6968261194225642610?l=googleajaxsearchapi.blogspot.com' alt='' /></div>]]></content:encoded>
			<wfw:commentRss>https://googledata.org/google-ajax-api/updated-local-search-control-used-in-brand-new-googlebar/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="" length="" type="" />
		</item>
		<item>
		<title>Experimental Features</title>
		<link>https://googledata.org/google-ajax-api/experimental-features/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=experimental-features</link>
		<comments>https://googledata.org/google-ajax-api/experimental-features/#comments</comments>
		<pubDate>Fri, 06 Mar 2009 01:20:00 +0000</pubDate>
		<dc:creator><![CDATA[Adam Feldman]]></dc:creator>
				<category><![CDATA[Google Ajax API]]></category>
		<category><![CDATA[google ajax]]></category>
		<category><![CDATA[google api]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[As part of Tuesday's Google Code Labs announcement, the AJAX Search API became part of the graduating class.  We're still working with our lawyerly team members to update our Terms of Use to include a 3-year deprecation policy.  If you're curious what ...]]></description>
				<content:encoded><![CDATA[As part of Tuesday's <a href="http://google-code-updates.blogspot.com/2009/03/introducing-labs-for-google-code.html">Google Code Labs announcement</a>, the AJAX Search API became part of the graduating class.  We're still working with our lawyerly team members to update our Terms of Use to include a 3-year deprecation policy.  If you're curious what that policy will look like, take a look at Section 4.5 of the <a href="http://code.google.com/apis/visualization/terms.html">Visualization API terms</a> -- it will be similar to that.<br /><br />You'll see that an exception to the deprecation policy will be features marked "<a href="http://code.google.com/labs/faq.html#experimental">experimental</a>."  This label is for experimental features that the deprecation policy does not apply to and therefore they can be changed or removed in the future, even if the deprecation policy applies to the rest of the API.  You may have seen in the <a href="http://code.google.com/apis/ajaxsearch/documentation/reference.html">AJAX Search API reference</a> that we have a few such features already, so we wanted to make sure you knew which ones those were.<br /><br />The current experimental features include all of Book Search and the "image type" restriction of Image Search.  We've done our best to clearly mark all of these as experimental in the <a href="http://code.google.com/apis/ajaxsearch/documentation/reference.html">docs</a>.<br /><br />As always, please let us know if you have any questions or comments.<div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/29072373-1874035892041830596?l=googleajaxsearchapi.blogspot.com' alt='' /></div>]]></content:encoded>
			<wfw:commentRss>https://googledata.org/google-ajax-api/experimental-features/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google Code Labs and the SOAP Search API</title>
		<link>https://googledata.org/google-ajax-api/google-code-labs-and-the-soap-search-api/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=google-code-labs-and-the-soap-search-api</link>
		<comments>https://googledata.org/google-ajax-api/google-code-labs-and-the-soap-search-api/#comments</comments>
		<pubDate>Tue, 03 Mar 2009 18:59:00 +0000</pubDate>
		<dc:creator><![CDATA[Adam Feldman]]></dc:creator>
				<category><![CDATA[Google Ajax API]]></category>
		<category><![CDATA[google ajax]]></category>
		<category><![CDATA[google api]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[As recently announced, a new program was introduced today for Google Code Labs.  We're proud that the AJAX Search API has already graduated from Labs, which demonstrates our long-term commitment to it.Also part of that announcement was that the SOAP Se...]]></description>
				<content:encoded><![CDATA[As <a href="http://google-code-updates.blogspot.com/2009/03/introducing-labs-for-google-code.html">recently announced</a>, a new program was introduced today for <a href="http://code.google.com/labs/">Google Code Labs</a>.  We're proud that the AJAX Search API has already graduated from Labs, which demonstrates our long-term commitment to it.<br /><br />Also part of that announcement was that the SOAP Search API will be retired on August 31st, 2009.  It was deprecated in 2006, when we stopped accepting new developers for the API.  Since then, it's been steadily declining in usage and we believe the majority of use cases are sufficiently handled by the more comprehensive AJAX Search API.<br /><br />In many ways, this AJAX API is a superset of the SOAP API, providing access to local, news, image, and video search results, among others, in addition to web search.  Therefore, we encourage SOAP developers to explore our <a href="http://code.google.com/apis/ajaxsearch/documentation/">documentation</a> and consider migrating their applications.  <br /><br />Please keep in mind that the AJAX APIs exist for the benefit of end-users; several of their features and usage guidelines are designed with them in mind.  For instance, each search performed with the API must be the direct result of a user action.  Automated searching is strictly prohibited, as is permanently storing any search results.  Please refer to the <a href="http://code.google.com/apis/ajaxsearch/terms.html">Terms of Use</a> for more detail.<br /><br />And for developers new to the AJAX Search API, don't forget to check out our <a href="http://groups.google.com/group/Google-AJAX-Search-API">discussion group</a>, a good resource if you have questions or need more help.  Welcome aboard!<div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/29072373-3851641607209509762?l=googleajaxsearchapi.blogspot.com' alt='' /></div>]]></content:encoded>
			<wfw:commentRss>https://googledata.org/google-ajax-api/google-code-labs-and-the-soap-search-api/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Adding Google News to Your Website</title>
		<link>https://googledata.org/google-ajax-api/adding-google-news-to-your-website/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=adding-google-news-to-your-website</link>
		<comments>https://googledata.org/google-ajax-api/adding-google-news-to-your-website/#comments</comments>
		<pubDate>Tue, 03 Feb 2009 17:47:00 +0000</pubDate>
		<dc:creator><![CDATA[Adam Feldman]]></dc:creator>
				<category><![CDATA[Google Ajax API]]></category>
		<category><![CDATA[google ajax]]></category>
		<category><![CDATA[google api]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Today we are launching a new extension to the AJAX Search API, a Google News-based element.  This element embeds a news slideshow on your site, letting your users see headlines and previews from Google News based on queries that you've selected. Here i...]]></description>
				<content:encoded><![CDATA[Today we are launching a new extension to the <a href="http://code.google.com/apis/ajaxsearch/">AJAX Search API</a>, a Google News-based element.  This element embeds a news slideshow on your site, letting your users see headlines and previews from Google News based on queries that you've selected. Here is an example of the NewsShow in action:<br /><br /><center><iframe src="http://www.google.com/uds/modules/elements/newsshow/iframe.html?format=300x250" frameborder="0" width="300" height="250" marginwidth="0" marginheight="0"></iframe></center><br /><br />It couldn't be easier to add this to your site.  Simply include this iframe:<br /><br /><pre class="code" style="overflow:scroll;"><br />&lt;iframe src="http://www.google.com/uds/modules/elements/newsshow/iframe.html?format=300x250"<br />        frameborder="0" width="300" height="250"<br />        marginwidth="0" marginheight="0"&gt;<br />&lt;/iframe&gt;</pre><br /><br />The element comes in two standard sizes: <a href="http://www.google.com/uds/modules/elements/newsshow/iframe.html?format=728x90">728x90</a> and <a href="http://www.google.com/uds/modules/elements/newsshow/iframe.html?format=300x250">300x250</a>.<br /><br />Adding a NewsShow to your site in this way allows you to customize its shape and content with URL arguments.  Simply input your parameters into our <a href="http://code.google.com/apis/ajaxsearch/documentation/newsshow/wizard.html">wizard</a> and we'll build the code for you.  Or, for greater control over the NewsShow's look and feel, you can call the classes directly.  Check out the <a href="http://code.google.com/apis/ajaxsearch/documentation/newsshow/">documentation</a> for details and the <a href="http://code.google.com/apis/ajax/playground/#news_show">Code Playground</a> to try your hand at customizing.<br /><br />As always, let us know what you think in the <a href="http://groups.google.com/group/Google-AJAX-Search-API">Google AJAX API developer forum</a>.<br /><br />Note:  Earlier this evening a reader pointed out a typo in the iframe snippet which has since been corrected.<div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/29072373-6456343174651899629?l=googleajaxsearchapi.blogspot.com' alt='' /></div>]]></content:encoded>
			<wfw:commentRss>https://googledata.org/google-ajax-api/adding-google-news-to-your-website/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Local Search results now include China</title>
		<link>https://googledata.org/google-ajax-api/local-search-results-now-include-china/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=local-search-results-now-include-china</link>
		<comments>https://googledata.org/google-ajax-api/local-search-results-now-include-china/#comments</comments>
		<pubDate>Thu, 13 Nov 2008 22:58:00 +0000</pubDate>
		<dc:creator><![CDATA[Adam Feldman]]></dc:creator>
				<category><![CDATA[Google Ajax API]]></category>
		<category><![CDATA[google ajax]]></category>
		<category><![CDATA[google api]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[We're pleased to announce the addition of local search for China.  For users already using the AJAX Search API for local search, you should now be able to search for businesses in China without having to make any changes.  Try typing "hotels in Beijing...]]></description>
				<content:encoded><![CDATA[We're pleased to announce the addition of local search for China.  For users already using the AJAX Search API for local search, you should now be able to search for businesses in China without having to make any changes.  Try typing "hotels in Beijing" in your site or app which uses the Google AJAX Search API.  You should see some results:<br /><br /><center><img src="http://3.bp.blogspot.com/_qU0w4wiK3GA/SRy9DWL_0gI/AAAAAAAAAA8/YcmXo36XAIs/s320/China+Local+Search+result.jpg"></center><br /><br />To take advantage of local search functionality, take a look at the <a href="http://code.google.com/apis/ajaxsearch/">AJAX Search API</a>.  The samples <a href="http://code.google.com/apis/ajaxsearch/local.html">here</a> are also particularly useful.<br /><br />If you have any feedback or comments, please drop by our <a href="http://groups.google.com/group/Google-AJAX-Search-API">Google Group</a> or new IRC channel (irc details can be found at the bottom of <a href="http://googleajaxsearchapi.blogspot.com/2008/11/swfobject-library-added-to-libraries.html">this post</a>).<div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/29072373-7515998404774281616?l=googleajaxsearchapi.blogspot.com' alt='' /></div>]]></content:encoded>
			<wfw:commentRss>https://googledata.org/google-ajax-api/local-search-results-now-include-china/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="" length="" type="" />
		</item>
		<item>
		<title>New Languages for Translate and POST Interface</title>
		<link>https://googledata.org/google-ajax-api/new-languages-for-translate-and-post-interface/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=new-languages-for-translate-and-post-interface</link>
		<comments>https://googledata.org/google-ajax-api/new-languages-for-translate-and-post-interface/#comments</comments>
		<pubDate>Tue, 07 Oct 2008 17:37:00 +0000</pubDate>
		<dc:creator><![CDATA[Adam Feldman]]></dc:creator>
				<category><![CDATA[Google Ajax API]]></category>
		<category><![CDATA[google ajax]]></category>
		<category><![CDATA[google api]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[We are pleased to announce two enhancements to our AJAX Language API.Thanks to the great efforts of the Google Translate team, the API is now able to support 11 additional languages for translation:Catalan (ca)Filipino (tl)Hebrew (iw)Indonesian (id)Lat...]]></description>
				<content:encoded><![CDATA[We are pleased to announce two enhancements to our AJAX Language API.<br /><br />Thanks to the great efforts of the Google Translate team, the API is now able to support 11 additional languages for translation:<br /><ul><li>Catalan (ca)<br /></li><li>Filipino (tl)<br /></li><li>Hebrew (iw)<br /></li><li>Indonesian (id)<br /></li><li>Latvian (lv)<br /></li><li>Lithuanian (lt)<br /></li><li>Serbian (sr)<br /></li><li>Slovak (sk)<br /></li><li>Slovenian (sl)<br /></li><li>Ukrainian (uk)<br /></li><li>Vietnamese (vi)</li></ul>Also, we'd like to introduce the new POST interface.  Among other things, this can be used to send longer URLs by implementing a JavaScript bridge to, for example, Flash or Java using the <a href="http://code.google.com/apis/ajaxlanguage/documentation/reference.html#_intro_fonje">RESTful interface</a>.  For additional information, take a look around our <a href="https://groups.google.com/group/Google-AJAX-Search-API">Google Group</a>.<br /><br />If you have not already done so, please take a moment to familiarize yourself with the <a href="http://code.google.com/apis/ajaxlanguage/terms.html">AJAX Language API terms</a><a>.</a><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/29072373-7637043501735339234?l=googleajaxsearchapi.blogspot.com' alt='' /></div>]]></content:encoded>
			<wfw:commentRss>https://googledata.org/google-ajax-api/new-languages-for-translate-and-post-interface/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Clarifying our TOS to allow additional uses</title>
		<link>https://googledata.org/google-ajax-api/clarifying-our-tos-to-allow-additional-uses/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=clarifying-our-tos-to-allow-additional-uses</link>
		<comments>https://googledata.org/google-ajax-api/clarifying-our-tos-to-allow-additional-uses/#comments</comments>
		<pubDate>Mon, 15 Sep 2008 23:58:00 +0000</pubDate>
		<dc:creator><![CDATA[Adam Feldman]]></dc:creator>
				<category><![CDATA[Google Ajax API]]></category>
		<category><![CDATA[google ajax]]></category>
		<category><![CDATA[google api]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[As the AJAX APIs have undergone tremendous growth and adoption, developers have used these APIs in many new and exciting ways. When things move fast, sometimes details get left behind, and our Terms of Service has not been keeping up with the rapid rat...]]></description>
				<content:encoded><![CDATA[As the AJAX APIs have undergone tremendous growth and adoption, developers have used these APIs in many new and exciting ways. When things move fast, sometimes details get left behind, and our Terms of Service has not been keeping up with the rapid rate of change. We want to make it clear that you can use these APIs in the context of websites, gadgets, mobile apps, desktop client apps, etc.  In response to your feedback, we've dusted off and updated the <a href="http://code.google.com/apis/ajaxsearch/terms.html">AJAX Search API terms</a> and the <a href="http://code.google.com/apis/ajaxlanguage/terms.html">AJAX Language API terms</a>. The primary change was replacing "website" with "Property" that's defined as a "website, application, or other product".<br /><br />As always, thank you for the feedback.  Keep your <a href="http://groups.google.com/group/Google-AJAX-Search-API">comments and suggestions</a> coming! We look forward to all of your amazing creations using the Google AJAX APIs.<div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/29072373-6129388203011319716?l=googleajaxsearchapi.blogspot.com' alt='' /></div>]]></content:encoded>
			<wfw:commentRss>https://googledata.org/google-ajax-api/clarifying-our-tos-to-allow-additional-uses/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
