<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" xml:lang="en-us"><title>Open Juice Blog</title><link href="http://www.juiceanalytics.com/openjuice/" rel="alternate" /><id>http://www.juiceanalytics.com/openjuice/</id><updated>2010-04-15T10:52:56Z</updated><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/OpenJuiceBlog" /><feedburner:info uri="openjuiceblog" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><feedburner:emailServiceId>OpenJuiceBlog</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><entry><title>External Interface, Internet Explorer and Time Wasted</title><link href="http://feedproxy.google.com/~r/OpenJuiceBlog/~3/uJhgxOJUkvg/" rel="alternate" /><updated>2010-04-15T10:52:56Z</updated><id>http://www.juiceanalytics.com/openjuice/external-interface-internet-explorer-and-time-wasted/</id><summary type="html">&lt;p&gt;Dear Googlers,&lt;/p&gt;

&lt;p&gt;I leave this message for you in the case that you encounter a similar obstacle to your productivity.  Internet Explorers 6, 7 and 8 do not like uppercase letters (or hyphens) in the object ID when embedding a swf into the page if you then plan on using the code with ExternalInterface.  They do not like it with SWFObject or with the simple old fashioned object tag.  The solution was elusive, but there is some help on the &lt;a href="http://ghettocooler.net/2008/02/27/swfobject-external-interface-internet-explorer/"&gt;ghettocooler.net Treasure Trove&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The following code will work in Firefox and Safari, but will mysteriously have a problem in Internet Explorer:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;&amp;lt;script language="javascript"&amp;gt;
function submitLemon() {
   var swf = document.getElementById("myContent");
   swf.iCanHasParameter('lemon');
}

swfobject.embedSWF("movie.swf", "myContent", "800", 
                   "100%", "9.0.124", null, {}, {bgcolor: '#ffffff'});
&amp;lt;/script&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;It will however work if you replace the upper case letter with its lowercase equivalent:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;&amp;lt;script language="javascript"&amp;gt;
function submitLemon() {
   var swf = document.getElementById("mycontent");
   swf.iCanHasParameter('lemon');
}

swfobject.embedSWF("movie.swf", "mycontent", "800", 
                    "100%", "9.0.124", null, {}, {bgcolor: '#ffffff'});
&amp;lt;/script&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;img src="http://feeds.feedburner.com/~r/OpenJuiceBlog/~4/uJhgxOJUkvg" height="1" width="1"/&gt;</summary><category term="" /><feedburner:origLink>http://www.juiceanalytics.com/openjuice/external-interface-internet-explorer-and-time-wasted/</feedburner:origLink></entry><entry><title>Depth and Discovery: Powering Visualizations with the Google Analytics API</title><link href="http://feedproxy.google.com/~r/OpenJuiceBlog/~3/IUaW4HHUE7g/" rel="alternate" /><updated>2009-11-17T13:49:05Z</updated><id>http://www.juiceanalytics.com/writing/visualizations-with-google-analytics-api/</id><summary type="html">&lt;p&gt;At Juice, we work with web analytics APIs large and small, from Google, comScore and Omniture. The Google Analytics API is our favorite. It powers the world's best, most widely deployed analytics site.  And it powers Juice products like &lt;a href="http://www.concentrateme.com"&gt;Concentrate&lt;/a&gt; (innovative search analytics) and &lt;a href="http://vascodegapi.juiceanalytics.com"&gt;Vasco de Gapi&lt;/a&gt; (a tool for exploring the Google Analytics API).&lt;/p&gt;

&lt;p&gt;We were approached by the Google Analytics API team to find ways to explore new ways of looking at data with the API, and we were excited by the possibilities. We've been working on our own visualization framework, &lt;a href="http://www.juicekit.org"&gt;JuiceKit&lt;/a&gt;, that integrates the power of the &lt;a href="http://flare.prefuse.org/"&gt;Flare Visualization Library&lt;/a&gt; with &lt;a href="http://www.adobe.com/products/flex/"&gt;Adobe Flex&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The result is &lt;a href="http://analyticsvisualizations.appspot.com"&gt;Analytics Visualizations&lt;/a&gt;, two visualizations powered by the &lt;a href="http://code.google.com/apis/analytics/docs/"&gt;Google Analytics API&lt;/a&gt; that are free to use. You just need a Google account with access to Google Analytics data to explore your own data.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://analyticsvisualizations.appspot.com"&gt;&lt;img src="http://media.juiceanalytics.com/images/analyticsvisualizations.jpg" alt="Analytics Visualizations Home Page" title="Analytics Visualizations Home Page"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;Referrer Flow&lt;/h3&gt;

&lt;p&gt;Curious about what sites are linking to you and what content is benefitting the most? Referrer Flow answers those question and shows how results change over time. Here is a brief video introduction:&lt;/p&gt;

&lt;p&gt;&lt;object width="580" height="465"&gt;&lt;param name="movie" value="http://www.youtube.com/v/WkgFK2rshUk&amp;amp;hl=en_US&amp;amp;fs=1&amp;amp;"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/WkgFK2rshUk&amp;amp;hl=en_US&amp;amp;fs=1&amp;amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="580" height="465"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/p&gt;

&lt;p&gt;Referrer Flow is a stream of daily treemaps showing pageviews and bounce rates for various groupings of your website's pages. You can group by combinations of page title, referrer and url. Clicking on the treemap will filter all the data by the page, referrer or url that you clicked on. Click again to clear your filter. &lt;/p&gt;

&lt;h3&gt;Keyword Tree&lt;/h3&gt;

&lt;p&gt;A list of top keywords isn't enough to really understand how people are searching and finding your site. Keyword Tree visually displays the most frequently used search keywords and how they are used together. Here's a video overview:&lt;/p&gt;

&lt;p&gt;&lt;object width="580" height="465"&gt;&lt;param name="movie" value="http://www.youtube.com/v/Ap0Nsm08A9o&amp;amp;hl=en_US&amp;amp;fs=1&amp;amp;"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/Ap0Nsm08A9o&amp;amp;hl=en_US&amp;amp;fs=1&amp;amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="580" height="465"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/p&gt;

&lt;p&gt;You'll see a frequently used search term at the center and the words and phrases that are most often used in combination with that word. Pick a different starting word by typing into the box in the upper right or selecting from the top word across the bottom of the screen. The words are sized by their frequency of use and colored by bounce rate (or % new visitors or average time on site). Roll over a word to see details about that combination of connected words.&lt;/p&gt;

&lt;h3&gt;Depth and Discovery&lt;/h3&gt;

&lt;p&gt;In designing these visualizations we focused on the question: how can we let users uncover the unexpected? That means designing targeted visualizations focused on limited well-defined issues. The Referrer Flow monomaniacally focuses on a single question "What pages are people viewing on your site and where are they coming from?" The Keyword Tree is laser-focused on word ordering and what that means for keyword performance.&lt;/p&gt;

&lt;p&gt;The Google Analytics reporting tool is a great general-purpose reporting solution. It gives the advanced users everything they need to answer specific questions. However, its generality means it has limited ability to focus on two issues; depth and discovery.&lt;/p&gt;

&lt;p&gt;The Google Analytics API is Google's solution to this problem. It's an opportunity both for businesses like ours that can create new ways of analyzing data, and for large sites that can use the API for integration, custom analytics, and more. &lt;/p&gt;

&lt;p&gt;&lt;em&gt;Thanks to Nick Mihailovski at Google for his gracious support, help and encouragement and &lt;a href="http://www.kaushik.net/avinash/"&gt;Avinash Kaushik&lt;/a&gt; for inspiring this idea.&lt;/em&gt;&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/OpenJuiceBlog/~4/IUaW4HHUE7g" height="1" width="1"/&gt;</summary><category term="visualizations" /><category term="juicekit" /><category term="googleanalytics" /><category term="api" /><feedburner:origLink>http://www.juiceanalytics.com/writing/visualizations-with-google-analytics-api/</feedburner:origLink></entry><entry><title>Enhanced Google Analytics: Firefox Plugin</title><link href="http://feedproxy.google.com/~r/OpenJuiceBlog/~3/LnQ3tvJHiMQ/" rel="alternate" /><updated>2009-04-13T14:10:09Z</updated><id>http://www.juiceanalytics.com/writing/enhanced-google-analytics-firefox-plugin/</id><summary type="html">&lt;p&gt;There is new life in the tool that shows change in Google Analytics.  A year after releasing our &lt;a href="http://www.juiceanalytics.com/writing/enhancing-google-analytics-using-greasemonkey/"&gt;Greasemonkey script&lt;/a&gt;, we are pleased to release an updated version of the Enhanced Google Analytics script as a &lt;a href="https://addons.mozilla.org/en-US/firefox/addon/11120"&gt;free Firefox Plugin&lt;/a&gt;.  For those already using the older Greasemonkey script, you can skip ahead to the &lt;em&gt;What's new?&lt;/em&gt; and &lt;em&gt;How do I get this plugin?&lt;/em&gt; sections of the page. For the rest, you may be wondering: Why does my Google Analytics need change?&lt;/p&gt;

&lt;hr&gt;

&lt;h3 id="change_header"&gt;Change, and why it is important&lt;/h3&gt;

&lt;p&gt;When I first started working at Juice Analytics, my boss Zach showed me a part of his daily Google Analytics routine.  He would open up the Referring Sites page, glance at all of our 942 referrers.  Using his superior intellect and capacity for remembering random urls, Zach would discover interesting deviations in the traffic from sites linking to our blog. &lt;/p&gt;

&lt;p&gt;Our top referrers looked more or less similar day to day.  Even once you get past the more recognizable top sites such as Twitter and Google, the various &lt;a href="http://www.blogger.com"&gt;somethingblog.com&lt;/a&gt; pages, without context, often look a lot like &lt;a href="http://www.livejournal.com"&gt;somethingelseblog.com&lt;/a&gt;.  To top it off, most of the information is not even specifically interesting.  Our &lt;a href="http://chartchooser.juiceanalytics.com"&gt;chartchooser.juiceanalytics.com&lt;/a&gt; domain sends us consistent regular referrals, but so what?  Day to day, I don't even really care about Google or Twitter unless something &lt;em&gt;changes&lt;/em&gt;.  With change, I know whether someone has posted something new about me, sending valuable traffic.  A good read on the topic is Avinash's rant about "&lt;a href="http://www.kaushik.net/avinash/2008/04/make-web-analytics-actionable-focus-on-whats-changed.html/comment-page-1"&gt;actionable analytics&lt;/a&gt;".  &lt;/p&gt;

&lt;p&gt;Our Firefox plugin is designed to allow analysts to get more action out of what changed in the Referring Sites and Keyword Reports.  Here are a couple examples of the plugin in action from our Google Analytics account:
&lt;img title="Referring Site Newbies" src="http://media.juiceanalytics.com/images/referring_site_improvement.png"&gt;
&lt;img title="Keyword Lions" src="http://media.juiceanalytics.com/images/keyword_improvement.png"&gt;&lt;/p&gt;

&lt;hr&gt;

&lt;h3 id="what_new_header"&gt;What's new?&lt;/h3&gt;

&lt;p&gt;Our focus for this release has been to improve functionality, to reduce the barrier to entry for new users, and to allow automatic updates for the plugin.  The new version of the script works nearly instantaneously, and the installation involves only two clicks (in contrast to the 7 clicks of the Greasemonkey version).  As a Firefox plugin, updates are now automatic and require no reinstall.  Keyword sensitivity has been raised to 50% for consistency.  As a slight bonus, the design and layout of the form and buttons is now sleeker and the table stands out in a pretty Google blue.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/748"&gt;Greasemonkey&lt;/a&gt; itself is no longer required for the plugin, but you may want to keep it around for any of the other cool scripts available from the &lt;a href="http://userscripts.org/"&gt;community&lt;/a&gt;.  If you ever find yourself wishing that something about the web looked different, acted different or had different functionality, there may be a Greasemonkey script to ease your pain.&lt;/p&gt;

&lt;hr&gt;

&lt;h3 id="how_to_get_header"&gt;How do I get this plugin?&lt;/h3&gt;

&lt;p&gt;First, you need &lt;a href="http://www.mozilla.com/firefox/"&gt;Firefox 2.0+&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;If you are a user of the equivalent older Greasemonkey version of this script, you may want to go ahead and uninstall it.  Go to Tools=&gt;Greasemonkey=&gt;Manage User Scripts..., select Google Analytics Downloader, and uncheck the Enabled box.&lt;/p&gt;

&lt;p&gt;If you never had the script installed, or once you removed it, simply click &lt;a href="https://addons.mozilla.org/en-US/firefox/addon/11120"&gt;here&lt;/a&gt; to go the mozilla addon site, select the checkbox and click the button.  Once installed, navigate to Google Analytics, and go to either the &lt;a href="https://www.google.com/analytics/reporting/referring_sources"&gt;Referring Sites&lt;/a&gt; or &lt;a href="https://www.google.com/analytics/reporting/keywords"&gt;Keyword&lt;/a&gt; pages, and click the blue button.&lt;/p&gt;

&lt;p&gt;Happy analyzing!&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/OpenJuiceBlog/~4/LnQ3tvJHiMQ" height="1" width="1"/&gt;</summary><category term="search," /><category term="google" /><category term="analytics" /><category term="" /><feedburner:origLink>http://www.juiceanalytics.com/writing/enhanced-google-analytics-firefox-plugin/</feedburner:origLink></entry><entry><title>US Economic Census Treemap</title><link href="http://feedproxy.google.com/~r/OpenJuiceBlog/~3/0sUtackkqQA/" rel="alternate" /><updated>2009-03-20T13:47:18Z</updated><id>http://www.juiceanalytics.com/writing/us-economic-census-treemap/</id><summary type="html">&lt;p&gt;Now that I&amp;#8217;ve got treemaps on the &lt;a href="http://www.juiceanalytics.com/writing/10-lessons-treemap-design/"&gt;brain&lt;/a&gt;, I keep noticing how many things could be better understood using this visualization technique. A few examples:&lt;/p&gt;

&lt;p&gt;&lt;img src="http://media.juiceanalytics.com/images/treemap_ideas.png" alt="treemap ideas" title=""&gt;&lt;/p&gt;

&lt;p&gt;We thought it would be a nice demonstration to use data from the 1997 and 2002 US Economic Census (unfortunately 2007 isn't out yet) to see what kind of stories bubble forth. The &lt;a href="http://www.juicekit.org/demos/treemap4flex/index.html" target="_blank"&gt;demonstration&lt;/a&gt; was built using a component from &lt;a href="http://www.juicekit.org" target="_blank"&gt;JuiceKit&lt;/a&gt;™, our recently open sourced Software Development Kit (SDK) for building Information Experience™ applications. The SDK can be used by web designers and developers to build graphically rich and interactive information displays. JuiceKit currently integrates with Adobe Flex to create components that are easy to implement and aesthetically pleasing.&lt;/p&gt;

&lt;p&gt;Check out the treemap &lt;a href="http://www.juicekit.org/demos/treemap4flex/index.html" target="_blank"&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.juicekit.org/demos/treemap4flex/index.html" target="_blank"&gt;&lt;img src="http://media.juiceanalytics.com/images/census_treemap.png" alt="US Economic Census Treemap" title=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Here are a few of the macro-trends that I found:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;em&gt;The rise of CostCo, Amazon, and Home Depot&lt;/em&gt;: This time period saw strong growth in warehouse clubs and superstores, online retailers (&amp;#8220;electronic shopping&amp;#8221;), and home centers.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;From manufacturing to services economy&lt;/em&gt;: Most of the growth was in service sectors (financial services, healthcare, professional services) while manufacturing was shrinking.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Productivity gains, even in adversity&lt;/em&gt;: For struggling sectors, the employee declines almost always outpaced the sales declines &amp;#8212; squeezing more sales per employee.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Demographic shifts&lt;/em&gt;: Homes and services for the elderly were among the strongest areas of growth in the category of &amp;#8220;healthcare and social assistance.&amp;#8221;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And there were lots of little insights as well:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;em&gt;No wonder hospital TV shows are so popular&lt;/em&gt;: Hospitals are the largest single employer as a business-type.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Starbucks and Krispy Kreme steal the unhealthy food dollar&lt;/em&gt;: Cookies and frozen yogurt retail saw a rapid decline while coffee and donut shops flourished.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Goodbye stand-alone pump&lt;/em&gt;: Gas stations with convenience stores overtook the just-plain gas station.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;It can&amp;#8217;t last, can it?&lt;/em&gt;: Mortgage broker payroll up 177%.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Once you understand how to read treemaps, they are great for exploring data like this: hierarchical with both quantity and quality-type measures. In a true testament to their power, my wife admitted this visualization was &amp;#8220;kinda interesting.&amp;#8221; &lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/OpenJuiceBlog/~4/0sUtackkqQA" height="1" width="1"/&gt;</summary><category term="treemap," /><category term="visualization" /><feedburner:origLink>http://www.juiceanalytics.com/writing/us-economic-census-treemap/</feedburner:origLink></entry><entry><title>Announcing: JuiceKit&amp;trade; SDK Open Source</title><link href="http://feedproxy.google.com/~r/OpenJuiceBlog/~3/vScVNpnsiS8/" rel="alternate" /><updated>2009-02-21T09:23:30Z</updated><id>http://www.juiceanalytics.com/writing/announcing-juicekit-sdk-open-source/</id><summary type="html">&lt;p&gt;As our followers know, for the past few years Juice has been creating software applications that solve customers' real information visualization problems in purposeful, understandable, and beautiful ways. In doing this, we have found ourselves reusing quite a few components over and over again - which has made our jobs a lot easier. It occurred to us that others might like to benefit from using these components to achieve great results too.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;We're proud to announce the open source release of Juice Analytics' JuiceKit SDK.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The JuiceKit is a toolkit built on &lt;a href="http://www.adobe.com/products/flex/"&gt;Adobe's Flex SDK&lt;/a&gt; to make it easier for web designers and software developers to build visually compelling Information Experiences&amp;trade;. It contains a wide variety of development components from individual data renderers such as a single "small multiple", to a large visualization component such as a treemap or US Map, to fine grained "helpers" that provide handy capabilities such as copying data to the computer's clipboard. These components can be used independently, within other applications, or assembled together to create full applications. &lt;/p&gt;

&lt;h3&gt;What can I do with it? (Show me the money)&lt;/h3&gt;

&lt;p&gt;Because we've been using the JuiceKit for quite a while, we have a number of customer proven applications based on the SDK that we thought you'd be interested in seeing.&lt;/p&gt;

&lt;p&gt;Here is a screenshot of an application that we built to help our client see trends in their internet search and traffic activity. We used the JuiceKit&amp;trade; to create the small multiples data visualization component of this application.&lt;/p&gt;

&lt;p&gt;&lt;comScore small multiples screenshot&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src="http://media.juiceanalytics.com/images/cs.png" alt="Use JuiceKit to build small multiples" title=""&gt;&lt;/p&gt;

&lt;p&gt;We've also frequently used JuiceKit to create dashboard prototypes. If you haven't seen our recent application of our treemap component to the incomprehensible Federal Stimulus Plan, here is a nice example (click to explore):&lt;/p&gt;

&lt;p&gt;&lt;a href="http://recoveryact.juiceanalytics.com/treemap/"&gt;&lt;img src="http://media.juiceanalytics.com/images/stimulus_bill_explorer.png" alt="Stimulus Bill Explorer" title=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;And here is a very quick one we did for an IVR monitoring application where we assembled multiple different components together into one view:&lt;/p&gt;

&lt;p&gt;&lt;Nuance JK demonstration image&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src="http://media.juiceanalytics.com/images/SafariScreenSnapz003.png" alt="Use JuiceKit to build a prototype" title=""&gt;&lt;/p&gt;

&lt;p&gt;Finally, we've used JuiceKit many times to build full enterprise applications such as this sales pipeline tracking dashboard:&lt;/p&gt;

&lt;p&gt;&lt;sales dashboard image&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src="http://media.juiceanalytics.com/images/SafariScreenSnapz002.png" alt="Use JuiceKit to build a dashboard" title=""&gt;&lt;/p&gt;

&lt;h3&gt;How do I get it?&lt;/h3&gt;

&lt;p&gt;Now it's time for you to have a go. Here's how you do it:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Go to the JuiceKit SDK web page at &lt;a href="http://www.juicekit.org"&gt;juicekit.org&lt;/a&gt; and catch up on the current status of the project&lt;/li&gt;
&lt;li&gt;Check out the &lt;a href="http://groups.google.com/group/juicekit"&gt;JuiceKit discussion group&lt;/a&gt; on Google Groups&lt;/li&gt;
&lt;li&gt;Download the JuiceKit &lt;a href="http://github.com/chrisgemignani/juicekit/tree/master"&gt;library&lt;/a&gt; from github&lt;/li&gt;
&lt;li&gt;Contribute back to the JuiceKit community to make the JuiceKit even better&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;While Juice continues to focus on designing and providing software solutions (as opposed to toolkits) for our clients, we believe offering the JuiceKit as open source will benefit the information visualization community we try to serve. In the future we will continue to extend the JuiceKit with other components and technologies.&lt;/p&gt;

&lt;p&gt;Good luck, and make sure you share how you're using the SDK so we can continue to drive it in the right direction not only for us, but for you as well.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/OpenJuiceBlog/~4/vScVNpnsiS8" height="1" width="1"/&gt;</summary><category term="juicekit" /><feedburner:origLink>http://www.juiceanalytics.com/writing/announcing-juicekit-sdk-open-source/</feedburner:origLink></entry><entry><title>Delivering Data in Excel: The DTP Framework</title><link href="http://feedproxy.google.com/~r/OpenJuiceBlog/~3/hePcX7GyHXw/" rel="alternate" /><updated>2009-01-27T10:44:41Z</updated><id>http://www.juiceanalytics.com/writing/delivering-data-excel-dtp-framework/</id><summary type="html">&lt;p&gt;Here at Juice we build fewer Excel dashboards than we used to. Excel itself is a decidedly imperfect vessel for any serious development--it's simply too easy to veer off of the disciplined track onto the underbrush.&lt;/p&gt;

&lt;p&gt;Even so, Excel remains a playground where we can do surprising things. For instance, check out our &lt;a href="http://www.juiceanalytics.com/writing/lightboxing-images-in-excel/"&gt;Excel lightbox&lt;/a&gt; and an &lt;a href="http://chandoo.org/wp/2008/04/22/create-cool-tag-clouds-in-excel-using-vba/"&gt;Excel tagcloud&lt;/a&gt;. We could appropriate everything that you find on the webbiest of Web 2.0 websites and build our &lt;a href="http://en.wikipedia.org/wiki/Uruk-hai"&gt;Uruk-hai&lt;/a&gt; equivalents.&lt;/p&gt;

&lt;p&gt;The key to staying on the rails when building Excel tools--either dynamic dashboards or simply to explore data--is discipline. At Juice, we use a methodology that we call "DTP" (&lt;strong&gt;D&lt;/strong&gt;ata &lt;strong&gt;T&lt;/strong&gt;ansform &lt;strong&gt;P&lt;/strong&gt;resent). The foundation of DTP is the rigorous separation of data from presentation. This is similar to a well-known approach when building computer user interfaces called &lt;a href="http://en.wikipedia.org/wiki/Model-view-controller"&gt;Model-View-Controller&lt;/a&gt;.
I'm going to cover some of the key principles and we'll follow up with an example later on the blog.&lt;/p&gt;

&lt;h4&gt;Data&lt;/h4&gt;

&lt;p&gt;Data is the raw material of any visualization or report. It needs to be easy to add data or change data without having to change anything else about your dashboard.&lt;/p&gt;

&lt;p&gt;We store raw data with dimensions preceding metrics in blocks in separate worksheets. If you want to sound pretentious, you can call this "first PivotTable normal form". Key points:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Have one worksheet for each data source. &lt;/li&gt;
&lt;li&gt;Call these sheets "Data", or "{Title} Data". &lt;/li&gt;
&lt;li&gt;Place them at the end of your workbook.&lt;/li&gt;
&lt;li&gt;Data is snug to the top left of the spreadsheet. This allows us to use &lt;a href="http://www.ozgrid.com/Excel/DynamicRanges.htm"&gt;dynamic ranges&lt;/a&gt;. Dynamic ranges let you add data and have it automatically incorporated in all PivotTables.&lt;/li&gt;
&lt;li&gt;Ensure that column names are in the first row.&lt;/li&gt;
&lt;li&gt;Place your dimensions before metrics.
&lt;img src="http://media.juiceanalytics.com/images/dtp_dimensions_metrics.png" alt="Dimensions before metrics" /&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;Transform&lt;/h4&gt;

&lt;p&gt;We use PivotTables to transform the data into the structure we need. &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Call these sheets "Transform" or "XXXXXXX Transform".&lt;/li&gt;
&lt;li&gt;Create one sheet for each &lt;em&gt;issue&lt;/em&gt; that you are exploring. This doesn't mean that you will only create one PivotTable. You may have multiple PivotTables to support different views or perspectives on an issue.&lt;/li&gt;
&lt;li&gt;Turn on "show items with no data" for row and column dimensions.  &lt;img src="http://media.juiceanalytics.com/images/dtp_show_items_with_no_data.png" alt="Show all items" /&gt;&lt;/li&gt;
&lt;li&gt;We are seeking &lt;em&gt;predictability&lt;/em&gt;, we want to the PivotTable to always be the same size regardless of what the PageField filters are.&lt;/li&gt;
&lt;li&gt;Place all the dimensions that aren't used as rows or columns in the PivotTable as page fields. &lt;strong&gt;Every&lt;/strong&gt; dimension should have a home.
&lt;img src="http://media.juiceanalytics.com/images/dtp_dimensions.png" alt="All dimensions must have a home" /&gt;
&lt;ul&gt;
&lt;li&gt;Set all PivotTables to not store data and refresh on open.
&lt;img src="http://media.juiceanalytics.com/images/dtp_pivottable_options.png" alt="PivotTable settings" /&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;Present&lt;/h4&gt;

&lt;p&gt;The Presentation page copies data from the Transform page(s) and formats it for display. It also allows users to control what data is being displayed.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Build a user interface to interact with your data. There are &lt;a href="http://www.juiceanalytics.com/writing/why-make-100-charts-when-one-will-do/"&gt;many ways&lt;/a&gt; to let people interact with your data, but one of the easiest is to use a PivotTable &lt;em&gt;as your interface&lt;/em&gt;. This is described below.&lt;/li&gt;
&lt;li&gt;We use an in-house style guide for graphs that you can see in &lt;a href="http://chartchooser.juiceanalytics.com"&gt;our Chart Chooser&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;If the Presentation page is likely to be printed, preset the print range.&lt;/li&gt;
&lt;li&gt;When copying data from the transformation page to the presentation page, blank values will come out as zeros. We use a simple formula, &lt;code&gt;=if('Transform!A2'&amp;lt;&amp;gt;"",'Transform!A2', "")&lt;/code&gt;, to ensure that blanks remain blanks.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;Using a PivotTable as your interface&lt;/h4&gt;

&lt;p&gt;A simple way to let people manipulate your data is place a PivotTable containing only PageFields &lt;strong&gt;but no data&lt;/strong&gt; on the presentation sheet. A Visual Basic macro triggered to run whenever the PivotTable changes then pushes out any changes to the master PivotTable to all the PivotTables on your Transform sheet.&lt;/p&gt;

&lt;p&gt;Here is the code to make this happen.&lt;/p&gt;

&lt;script src="http://gist.github.com/52843.js"&gt;&lt;/script&gt;

&lt;p&gt;This drives our PivotTables in concert and ensures they stay in sync.&lt;/p&gt;

&lt;hr/&gt;

&lt;p&gt;That's a basic overview of our DTP technique. You can try a simplified version of DTP here.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://media.juiceanalytics.com/downloads/DTP%20Example.xls"&gt;DTP Example.xls&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;We'll be back soon to talk through this example.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/OpenJuiceBlog/~4/hePcX7GyHXw" height="1" width="1"/&gt;</summary><category term="excel" /><category term="dtp" /><category term="framework" /><category term="dashboard" /><feedburner:origLink>http://www.juiceanalytics.com/writing/delivering-data-excel-dtp-framework/</feedburner:origLink></entry><entry><title>Bubble, bubble toil and trouble</title><link href="http://feedproxy.google.com/~r/OpenJuiceBlog/~3/-cVzQvSPXRA/" rel="alternate" /><updated>2009-01-15T12:22:53Z</updated><id>http://www.juiceanalytics.com/writing/bubble-trouble/</id><summary type="html">&lt;p&gt;Recently we wanted to show how &lt;a href="https://www.concentrateme.com"&gt;Concentrate&lt;/a&gt;, our new long-tail search analytics tool, could give you a view of search patterns across travel websites. 
As political junkies, we were inspired by this chart from our friends at the NY Times.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.nytimes.com/interactive/2008/09/04/us/politics/20080905_WORDS_GRAPHIC.html"&gt;
&lt;img src="http://media.juiceanalytics.com/images/nytimes_bubble.png" alt="NY Times candidate word bubble chart" title="NY Times candidate word bubble chart" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The first tool we tried, simply on principle, was Excel 2003. As expected, making a NY Times quality bubble chart in Excel 2003 is a &lt;strong&gt;hard problem&lt;/strong&gt;. Here's a draft of how far I got before giving in to label fatigue.&lt;/p&gt;

&lt;p&gt;&lt;img src="http://media.juiceanalytics.com/images/excel_bubbles.png" alt="Excel NY Times bubble" title="NY Times candidate word bubble chart" /&gt;&lt;/p&gt;

&lt;p&gt;The bubbles themselves aren't tough, but getting the labels right is &lt;strong&gt;hard&lt;/strong&gt;. I'd love to see a solution, so if any reader wants to tackle it eternal fame can be yours. Here is a CSV if you want to try.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://media.juiceanalytics.com/downloads/travelpatterns.csv"&gt;travelpatterns.csv&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Another of the tools we use at Juice is &lt;a href="http://nodebox.net/code/index.php/Home"&gt;NodeBox&lt;/a&gt;, which we used to make this:&lt;/p&gt;

&lt;p&gt;&lt;img src="http://media.juiceanalytics.com/images/pattern_comparison.png" alt="Concentrate pattern comparison" /&gt;&lt;/p&gt;

&lt;p&gt;Here's the code that made the graph. &lt;/p&gt;

&lt;script src="http://gist.github.com/47013.js"&gt;&lt;/script&gt;

&lt;p&gt;The power of a programmatic approach like this is that by changing a line or two, you can get the following. &lt;em&gt;Click for a larger version. Click the text for the code.&lt;/em&gt;.&lt;/p&gt;

&lt;div&gt;
    &lt;div style="max-width: 190px; float: left;"&gt;
&lt;a href="http://media.juiceanalytics.com/images/concentrate_pattern_comparison_greens.png" title="Vary formatting by value" rel="shadowbox[Gallery1]"&gt;
    &lt;img src="http://media.juiceanalytics.com/images/concentrate_pattern_comparison_greens_small.png" /&gt;
&lt;/a&gt;
&lt;p&gt;&lt;a href="http://gist.github.com/47037"&gt;Vary formatting by value&lt;/a&gt;&lt;/p&gt;
    &lt;/div&gt;

    &lt;div style="max-width: 190px; float: left;"&gt;
&lt;a href="http://media.juiceanalytics.com/images/concentrate_pattern_comparison_nolabel.png" title="Drop the labels, tighten the spacing" rel="shadowbox[Gallery1]"&gt;
    &lt;img src="http://media.juiceanalytics.com/images/concentrate_pattern_comparison_nolabel_small.png" /&gt;
&lt;/a&gt;
&lt;p&gt;&lt;a href="http://gist.github.com/47043"&gt;Drop the labels, tighten the spacing&lt;/a&gt;&lt;/p&gt;
    &lt;/div&gt;

    &lt;div style="max-width: 190px; float: left;"&gt;
&lt;a href="http://media.juiceanalytics.com/images/concentrate_pattern_comparison_squares.png" title="Drop the labels, tighten the spacing" rel="shadowbox[Gallery1]"&gt;
    &lt;img src="http://media.juiceanalytics.com/images/concentrate_pattern_comparison_squares_small.png" /&gt;
&lt;/a&gt;
&lt;p&gt;&lt;a href="http://gist.github.com/47051"&gt;Display the largest item in each row as a red square&lt;/a&gt;&lt;/p&gt;
    &lt;/div&gt;

&lt;/div&gt;

&lt;div style="clear: both; height: 1px"&gt;&lt;/div&gt;

&lt;p&gt;With great power comes a great need to exercise restraint. Otherwise you end up like &lt;a href="http://www.sap.com/solutions/sapbusinessobjects/sme/xcelsius/demos/index.epx"&gt;these poor chaps&lt;/a&gt;. Must... flex... restraint... muscles...&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/OpenJuiceBlog/~4/-cVzQvSPXRA" height="1" width="1"/&gt;</summary><category term="visualization" /><category term="nodebox" /><category term="bubblechart" /><category term="concentrate" /><category term="excel" /><feedburner:origLink>http://www.juiceanalytics.com/writing/bubble-trouble/</feedburner:origLink></entry><entry><title>Introducing Concentrate for Long Tail Search Analytics</title><link href="http://feedproxy.google.com/~r/OpenJuiceBlog/~3/C3iuahI_hSo/" rel="alternate" /><updated>2009-01-09T13:01:17Z</updated><id>http://www.juiceanalytics.com/writing/introducing-concentrate-long-tail-search-analytics/</id><summary type="html">&lt;p&gt;&lt;a href="http://www.concentrateme.com"&gt;&lt;img src="http://media.juiceanalytics.com/images/concentrate_logo8.png" alt="" title=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;We are &lt;strike&gt;pleased&lt;/strike&gt; thrilled to introduce &lt;a href="http://www.concentrateme.com/features"&gt;Concentrate&amp;trade;&lt;/a&gt;, an innovative long-tail search analytics tool. Concentrate is for SEO and paid search professionals who want to make sense of search keyword data and make the most of search investments.&lt;/p&gt;

&lt;p&gt;Check out the demo &lt;a href="https://www.concentrateme.com/app/accounts/login/?username=demo&amp;password=demo"&gt;here&lt;/a&gt;. Or try out the free version &lt;a href="https://www.concentrateme.com/pricing/"&gt;here&lt;/a&gt; (you&amp;#8217;ll need admin access to a Google Analytics account).&lt;/p&gt;

&lt;p&gt;We built Concentrate because we saw a fundamental conflict in the world of search analysis:
On the one hand, search keyword data is terrifically interesting and valuable. It can tell you what your visitors and customers want and how they think about you and your products.&lt;/p&gt;

&lt;p&gt;&lt;img src="http://media.juiceanalytics.com/images/juice_keywords.png" alt="Juice Analytics keywords" title=""&gt;&lt;/p&gt;

&lt;p&gt;Unfortunately, search query data is also big, messy, and hard to get your hands around. In a typical month, the Juice site gets over 10,000 visits from over 7,000 unique keywords.&lt;/p&gt;

&lt;p&gt;Even if I could somehow wrap my head around our top 100 keywords, I&amp;#8217;d only understand 25% of the visits. For people spending money on search engine optimization or paid search campaigns, that&amp;#8217;s a big blind-spot to accept.&lt;/p&gt;

&lt;p&gt;We want you to understand and act on &lt;strong&gt;all&lt;/strong&gt; your search data. Concentrate ingests data from sources that most sites already have available (e.g Google Analytics, Omniture, Coremetrics, Hitwise, Compete, etc.), enhances this data by finding common patterns and query types, and visualizes search phrases for exploration and analysis.&lt;/p&gt;

&lt;p&gt;Over the next couple of weeks, we will share examples of some of the interesting things you can do with Concentrate, including: &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pattern identification&lt;/strong&gt; to condense the long tail into keyword phrases with similar structures. For example, here are some common search patterns from a cooking web site (the &amp;#8220;[x]&amp;#8221; represents a wildcard).&lt;/p&gt;

&lt;p&gt;&lt;img src="http://media.juiceanalytics.com/images/concentrate_patterns.png" alt="Patterns" title=""&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Keyword visualization&lt;/strong&gt; to show the connections between keywords and the relative performance of phrases. This wordtree shows the frequency of words within phrases (size) and average time spent on site (color). &lt;/p&gt;

&lt;p&gt;&lt;img src="http://media.juiceanalytics.com/images/concentrate_wordtree.png" alt="Wordtree" title=""&gt;&lt;/p&gt;

&lt;p&gt;Congratulations to Chris, Pete, and Sal for all their hard work, diligence, and creative problem solving to launch this solution.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/OpenJuiceBlog/~4/C3iuahI_hSo" height="1" width="1"/&gt;</summary><category term="concentrate" /><category term="seo" /><category term="search" /><category term="analytics" /><feedburner:origLink>http://www.juiceanalytics.com/writing/introducing-concentrate-long-tail-search-analytics/</feedburner:origLink></entry><entry><title>Jquery History Plugin With Regular Expressions</title><link href="http://feedproxy.google.com/~r/OpenJuiceBlog/~3/5uz8MPD_15E/" rel="alternate" /><updated>2008-11-04T15:45:40Z</updated><id>http://www.juiceanalytics.com/openjuice/jquery-history-plugin-regular-expressions/</id><summary type="html">&lt;p&gt;Over the past couple months, I have delved into the world of &lt;a href="http://jquery.com/"&gt;jquery&lt;/a&gt;, which, for the uninitiated, is &lt;em&gt;the&lt;/em&gt; framework for developing javascript in today's world of web development.  Jquery shortens or eliminates many of the more tedious aspects of HTML's dom framework, while allowing elegant access to the fancier effects of javascript.  One of the other coolest parts of this framework is the growing number of plugins built by the community.&lt;/p&gt;

&lt;p&gt;The plugin that I want to bring up is the history plugin by Klaus Hartl, the original of which can be found &lt;a href="http://stilbuero.de/jquery/history"&gt;here&lt;/a&gt;. 
Javascript usually has problems with the back button, but here it is integrated smoothly, and without forcing the page to do an ugly reload.  As an added bonus, the plugin also allows the creation of links that are tied to an internal javascript state.  Basically, javascript would now have the abilities of a full-blown 90s style html-only webpage, with the smoothness and efficiency of not requiring any page reloads.  A good example of a similar javascript history module in action is Gmail, where the back button works smoothly, and you are able to copy and paste the url to a different window.  &lt;/p&gt;

&lt;p&gt;My slightly modified version of the script can be found &lt;a href="http://media.juiceanalytics.com/downloads/ui.history.js"&gt;here&lt;/a&gt;. This potentially interesting enhancement allows the use of a regular expression when defining the javascript internals for the history plugin.  It is useful when the site has additional user-specific variables, such as an id or an object name or number, and the programmer has no desire to explicitly code every possibly imaginable scenario.  Regular expressions are very powerful tools.&lt;/p&gt;

&lt;p&gt;To use the modified version of the module, use a snippet like this one, substituting a regex for where the history module would normally require a string:&lt;/p&gt;

&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;code&gt;    &lt;span class="nx"&gt;$&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;ui&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;history&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;add&amp;#39;&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;(\\d+)/analyze/queries&amp;#39;&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="k"&gt;function&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;url&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;pg&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="nx"&gt;set_phrasegroup&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;pg&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
        &lt;span class="c"&gt;//do something something&lt;/span&gt;
    &lt;span class="p"&gt;});&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Note the slight irregularity where you need to escape each slash with another slash.  &lt;/p&gt;

&lt;p&gt;The first parameter, &lt;em&gt;url&lt;/em&gt; as passed into the function is the entire string that the user inputed.  It would look something like &lt;em&gt;3/analyze/queries&lt;/em&gt;, while &lt;em&gt;pg&lt;/em&gt;, any other further passed parameters refer to any of the matched groups within the regex.  In this case, we only have one, (\d+), a number.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/OpenJuiceBlog/~4/5uz8MPD_15E" height="1" width="1"/&gt;</summary><category term="" /><feedburner:origLink>http://www.juiceanalytics.com/openjuice/jquery-history-plugin-regular-expressions/</feedburner:origLink></entry><entry><title>Programmatic Google Trends API</title><link href="http://feedproxy.google.com/~r/OpenJuiceBlog/~3/LbE_Sh8p3vw/" rel="alternate" /><updated>2008-06-11T17:43:44Z</updated><id>http://www.juiceanalytics.com/openjuice/programmatic-google-trends-api/</id><summary type="html">&lt;p&gt;&lt;em&gt;Updated October 21, 2009&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Yesterday, Google released an update to their popular &lt;a href="http://googleblog.blogspot.com/2008/06/new-flavor-of-google-trends.html"&gt;Google Trends&lt;/a&gt; tool.  There are improvements over the previous version, but the biggest new feature is a new shiny button that lets you download all your data in the format of a CSV.  This is a very cool enhancement.  Where Google Trends was a geeky toy, it now takes the leap to integrate into analysts' reports and with that, edge its way onto managerial desks.&lt;/p&gt;

&lt;p&gt;This python module is a quasi-API to make it easier to authenticate into Google Trends for those who want to squeeze the extra level of functionality out of their data.  The advantage of programmatic access is that the data can be automatically trended and merged.  It can be snuck into a 9:00 AM daily email to the VP of Marketing so that she knows to ramp up Google Adwords campaigns for some specific keyword.  Also, by programatically pulling multiple reports, it is possible to create a wealth of data not visible in a single report.  Using one keyword as a benchmark to merge multiple reports, we can do a meaningful comparison on tens or hundreds of relevant keywords.  &lt;/p&gt;

&lt;p&gt;To use the pyGTrends, the quasi-Google-Trends-API, you can &lt;a href="http://github.com/suryasev/unofficial-google-trends-api/tree/master"&gt;download the latest version from github&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Here is an example of the most basic basic report that you can pull down from Google Trends.  The connector function needs authentication info, and download_report needs to be passed a list of keywords.&lt;/p&gt;

&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;code&gt;&lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;pyGTrends&lt;/span&gt; &lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="n"&gt;pyGTrends&lt;/span&gt;

&lt;span class="n"&gt;connector&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;pyGTrends&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;#39;google username&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s"&gt;&amp;#39;google password&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;connector&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;download_report&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="s"&gt;&amp;#39;keyword1&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;&amp;#39;keyword2&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;span class="k"&gt;print&lt;/span&gt; &lt;span class="n"&gt;connector&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;csv&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;You can, however, use pyGTrends to get any slice of data that you can pull down from Google Trends.  To see the exact parameters that you should use, go to &lt;a href="http://google.com/trends"&gt;Google Trends&lt;/a&gt;, and navigate to the specific sufficiently-narrow report that you are interested in.  Then, right-click on the CSV download, and save the link location.  The different parameters should be discernible from the link.  The following code downloads a report for &lt;em&gt;banana&lt;/em&gt;, &lt;em&gt;bread&lt;/em&gt;, and &lt;em&gt;bakery&lt;/em&gt; keywords from April 2008, originating from the magnificent nation of Austria, and scaled using fixed scaling (aka the second download link).  &lt;/p&gt;

&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;code&gt;&lt;span class="n"&gt;connector&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;download_report&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="s"&gt;&amp;#39;banana&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;&amp;#39;bread&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;&amp;#39;bakery&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; 
                          &lt;span class="n"&gt;date&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;#39;2008-4&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; 
                          &lt;span class="n"&gt;geo&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;#39;AT&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; 
                          &lt;span class="n"&gt;scale&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;By default, the csv() function downloads the main part of the report, but there are a few additional parts stuck to the bottom of the CSV file.  If you are interested in those, pass the section parameter to the csv() function.   The following will return the Language section.&lt;/p&gt;

&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;code&gt;&lt;span class="k"&gt;print&lt;/span&gt; &lt;span class="n"&gt;connector&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;csv&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;section&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;#39;Language&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Full recommended usage includes using either the csv.reader or csv.DictReader module.&lt;/p&gt;

&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;code&gt;&lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;csv&lt;/span&gt; &lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="n"&gt;DictReader&lt;/span&gt;
&lt;span class="k"&gt;print&lt;/span&gt; &lt;span class="n"&gt;DictReader&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;connector&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;csv&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;split&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;#39;&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s"&gt;&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Here is a snapshot from the new Google Trends to add some eye-candy to the post:
&lt;img src="http://media.juiceanalytics.com/images/gtrendsdemo.png" alt="Google Trends Eye-Candy" /&gt;&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/OpenJuiceBlog/~4/LbE_Sh8p3vw" height="1" width="1"/&gt;</summary><category term="google" /><category term="trends" /><category term="api" /><category term="programmatic" /><feedburner:origLink>http://www.juiceanalytics.com/openjuice/programmatic-google-trends-api/</feedburner:origLink></entry></feed>

