<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">
<channel>
<title>clicky.com/blog</title>
<language>en-us</language>
<docs>http://blogs.law.harvard.edu/tech/rss</docs>
<category domain="">Web</category>
<category domain="">Technology</category>
<category domain="">Statistics</category>
<generator>Papa v0.3b</generator>
<lastBuildDate>Thu, 23 May 2013 09:11:41 +0000</lastBuildDate>
<link>http://clicky.com/blog</link>
<description>Fun</description>
<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/getclicky" /><feedburner:info uri="getclicky" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
<title>Local search now supports 'pretty' searches and multiple parameters</title>
<link>http://feedproxy.google.com/~r/getclicky/~3/47FuHCb7s_c/local-search-now-supports-pretty-searches-and-multiple-parameters</link>
<comments>http://clicky.com/blog/316/local-search-now-supports-pretty-searches-and-multiple-parameters</comments>
<guid isPermaLink="false">http://clicky.com/blog/316/local-search-now-supports-pretty-searches-and-multiple-parameters</guid>
<description>By popular demand, &lt;a href='http://clicky.com/blog/314/local-internal-search-support'&gt;local searches&lt;/a&gt; now support multiple parameters, as well as path based pretty searches. You can mix the two types as well. To use multiple of either one, just separate with commas.&lt;br /&gt;
&lt;br /&gt;
For path based searches, what you want to enter is everything that goes &lt;i&gt;between&lt;/i&gt; the domain name and the search term. For example, if someone searches for apples on your web site and they end up here:&lt;br /&gt;
&lt;br /&gt;
http://yourwebsite.com/search/apples&lt;br /&gt;
&lt;br /&gt;
Then you would enter in /search/ into the box. Without quotes of course.&lt;br /&gt;
&lt;br /&gt;
For good measure, here is an example of a comma separated list of both types, pretending your site has both q and s as search parameters, and also does path based search with the search term appearing after /search/, as shown above:&lt;br /&gt;
&lt;br /&gt;
/search/,q,s&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/getclicky?a=47FuHCb7s_c:zdbrwc3BPg8:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/getclicky?i=47FuHCb7s_c:zdbrwc3BPg8:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/getclicky?a=47FuHCb7s_c:zdbrwc3BPg8:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/getclicky?i=47FuHCb7s_c:zdbrwc3BPg8:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/getclicky?a=47FuHCb7s_c:zdbrwc3BPg8:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/getclicky?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/getclicky/~4/47FuHCb7s_c" height="1" width="1"/&gt;</description>
<pubDate>Wed, 15 May 2013 16:04:56 -0800</pubDate>
<bonus>1368659096</bonus>
<feedburner:origLink>http://clicky.com/blog/316/local-search-now-supports-pretty-searches-and-multiple-parameters</feedburner:origLink></item>
<item>
<title>Tracking tel: URLs, custom heatmap objects, and other tracking code updates</title>
<link>http://feedproxy.google.com/~r/getclicky/~3/LZmZnu17hXM/tracking-tel-urls-custom-heatmap-objects-and-other-tracking-code-updates</link>
<comments>http://clicky.com/blog/315/tracking-tel-urls-custom-heatmap-objects-and-other-tracking-code-updates</comments>
<guid isPermaLink="false">http://clicky.com/blog/315/tracking-tel-urls-custom-heatmap-objects-and-other-tracking-code-updates</guid>
<description>Note 1: DO NOT PANIC. You don't need to change anything with the code installed on your site. We've simply made some changes to the way the code &lt;i&gt;works&lt;/i&gt;, adding a couple of features and fixing a few bugs.&lt;br /&gt;
&lt;br /&gt;
Note 2: Other than the tel: tracking, most of this only applies to advanced users.&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;New features&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;Tracking tel: URLs&lt;/b&gt; - This has been requested here and there over the years, but as Skype et al become more ubiquitous, these URLs are on more and more pages. So we just added  support for automatically tracking them. Like mailto: links, these will show up in your outbound link report. You don't need to do jack diddly, it should just work.&lt;br /&gt;
&lt;br /&gt;
&lt;li&gt;&lt;b&gt;Custom heatmap object tracking&lt;/b&gt; - Our heatmap code by default listens for clicks that &lt;a href='http://www.quirksmode.org/js/events_order.html'&gt;bubble up&lt;/a&gt; to the document.body element. The default for all events is to bubble up, but there are plenty of events that don't do this, which means those clicks weren't being captured. We ourselves have been affected by this too, mainly by our Javascript menus.&lt;br /&gt;
&lt;br /&gt;
So now there is a new clicky_custom property, &lt;a href='https://clicky.com/help/custom#heatmap_objects'&gt;heatmap_objects&lt;/a&gt;. With this you can specify custom elements, by tag name, ID, or class. It can be a string if you just need to specify one thing (most likely), or it can be an array of strings if you need to specify more than one. Using this we can track clicks on these elements. Which reminds me, I forgot to update our own Javascript code to track our menus! Mental note.&lt;br /&gt;
&lt;br /&gt;
You should ONLY use this for events that don't bubble up, or you will experience oddness.&lt;br /&gt;
&lt;br /&gt;
&lt;li&gt;&lt;b&gt;&lt;a href='https://clicky.com/help/custom/manual#goal'&gt;clicky.goal()&lt;/a&gt; changes&lt;/b&gt; - This likely does not affect you but if you use the clicky.goal() javascript method at all, you may want to read on.&lt;br /&gt;
&lt;br /&gt;
When we released heatmaps, we added a new event queue system for logging some items in batches: heatmap data, javascript events, and javascript goals. The reasoning behind this change was to reduce bandwidth for heatmaps, and increase accuracy for events and goals. The accuracy part being that if you sent a hit to clicky.log() or clicky.goal() when someone clicked on a link that would result in a new page being loaded, chances were good that it would not be logged because the page would be unloaded from the browser before the logging request went through.&lt;br /&gt;
&lt;br /&gt;
So the queue system was made to store events and goals in a cookie, which is then processed every 5 seconds. So if the person is just sitting on the same page still, the queue will be processed shortly and send that event/goal to us. But if instead a new page is loaded, the cookie is still there holding the event/goal that wasn't logged on the last page, and can be processed immediately on the new page view (which we do before processing the new page view itself, to ensure things are in the correct chronological order).&lt;br /&gt;
&lt;br /&gt;
ANYWAYS... there were some customers who were using clicky.goal to log goals when visitors were &lt;i&gt;leaving their site&lt;/i&gt;. The queue would intercept these goals though, resulting in a snowball's chance in hell of the goal ever being logged.&lt;br /&gt;
&lt;br /&gt;
SO... we added a new parameter to clicky.goal() called no_queue, which will tell our code to skip the queue and just log the goal immediately. &lt;a href='https://clicky.com/help/custom/manual#goal'&gt;Check the docs&lt;/a&gt; for more.&lt;br /&gt;
&lt;br /&gt;
This doesn't affect many of you, but if it does, the back story I've written above is probably worth a read.&lt;br /&gt;
&lt;br /&gt;
&lt;li&gt;&lt;b&gt;New method to check if a site ID has been init()'d&lt;/b&gt; - for customers using multiple tracking codes on a single site/page. This was a specific request from one customer, but we realized our code itself wasn't even doing this sanity check, so if you had the SAME code on your site multiple times, there were some minor bugs that resulted from this.&lt;br /&gt;
&lt;br /&gt;
If for some reason you think this applies to you, the new method is clicky.site_id_exists(123), which returns true or false indicating whether this site ID has been passed through the clicky.init() function yet. Note: 123 is an example site ID. Use a real one.&lt;/ul&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;Bug fixes for sites using multiple tracking codes&lt;/h3&gt;In addition to the last item above about loading the same site ID multiple times resulting in oddities (and which is now fixed), we've made another change to the way the init process works.&lt;br /&gt;
&lt;br /&gt;
There are a number of things that happen when a site ID is init()'d, but it turns out most of those things only needed to happen &lt;i&gt;once&lt;/i&gt;, even if you had multiple site IDs on a aingle page. However, our code was executing this entire init process for every site ID on a page, which resulted in bugs such as:&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;clicky_custom.goals and clicky_custom.split only working with the first site ID that was init()'d.&lt;br /&gt;
&lt;li&gt;The automatic pause that we inject for tracking downloads and outbound links was being called once for every site ID, rather than once per click (which is all that's needed)&lt;br /&gt;
&lt;li&gt;When loading heatmaps by clicking the heatmap link &lt;i&gt;from&lt;/i&gt; clicky.com, the heatmap would sometimes load twice (making it extra dark).&lt;/ul&gt;&lt;br /&gt;
&lt;br /&gt;
There were a few other much more minor bugs, but those were the ones that were really irritating. So now what happens is we split the setup procedure into a different method, and wait 100 milliseconds before calling it (just once), giving a chance for all site IDs to be passed into the init process first. And the actual init() method now just puts each site ID into an array which we loop through when any request to log data is called.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;Coming soon&lt;/h3&gt;Been requested a number of times and something we will definitely add in the coming months. That being when you set custom visitor data with clicky_custom.session (or utm_custom), we will store this data in a cookie so the data will be applied to all future visits by this person, so even if they're not logged in, they'll still be tagged as they were last logged in / tagged visit.&lt;br /&gt;
&lt;br /&gt;
We'll probably only do this with a few specific keys though, since people use clicky_custom.session for all kinds of crazy purposes, many of which can be session specific. But we'll probably do something like, only do it for keys like username, name, email, and a few others.&lt;br /&gt;
&lt;br /&gt;
Just something to watch out for. We think this will be a nice addition when we add it.&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/getclicky?a=LZmZnu17hXM:gfEnWWcpP1c:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/getclicky?i=LZmZnu17hXM:gfEnWWcpP1c:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/getclicky?a=LZmZnu17hXM:gfEnWWcpP1c:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/getclicky?i=LZmZnu17hXM:gfEnWWcpP1c:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/getclicky?a=LZmZnu17hXM:gfEnWWcpP1c:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/getclicky?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/getclicky/~4/LZmZnu17hXM" height="1" width="1"/&gt;</description>
<pubDate>Wed, 17 Apr 2013 22:34:47 -0800</pubDate>
<bonus>1366263287</bonus>
<feedburner:origLink>http://clicky.com/blog/315/tracking-tel-urls-custom-heatmap-objects-and-other-tracking-code-updates</feedburner:origLink></item>
<item>
<title>Local / internal search support!</title>
<link>http://feedproxy.google.com/~r/getclicky/~3/3XkiFeGCJ1A/local-internal-search-support</link>
<comments>http://clicky.com/blog/314/local-internal-search-support</comments>
<guid isPermaLink="false">http://clicky.com/blog/314/local-internal-search-support</guid>
<description>Local searches (searches performed with your site's own search engine) has been one of the biggest feature requests we've had over the years, so we're happy to finally support it!&lt;br /&gt;
&lt;br /&gt;
First, you need to tell us what the search parameter is that your site uses. Common ones would be q or search. Examples:&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;http://yoursite.com/search?&lt;b class=red&gt;q&lt;/b&gt;=lollipops&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;http://yoursite.com/search?&lt;b class=red&gt;search&lt;/b&gt;=care+bear+stare&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
You can set this in your site preferences:&lt;br /&gt;
&lt;br /&gt;
&lt;img src='http://static.getclicky.com/media/screenshots/201304-local-search/setup.png'&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You will then start seeing data in the new local searches report:&lt;br /&gt;
&lt;br /&gt;
&lt;img src='http://static.getclicky.com/media/screenshots/201304-local-search/report.png'&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can click on any of the searches to filter down to the visitors who performed said searches:&lt;br /&gt;
&lt;br /&gt;
&lt;img src='http://static.getclicky.com/media/screenshots/201304-local-search/visitors.png'&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
They will also show up in Spy:&lt;br /&gt;
&lt;br /&gt;
&lt;img src='http://static.getclicky.com/media/screenshots/201304-local-search/spy.png'&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
As well as the actions log (both globally, and when viewing a session):&lt;br /&gt;
&lt;br /&gt;
&lt;img src='http://static.getclicky.com/media/screenshots/201304-local-search/actions.png'&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The action log can also be filtered down to just show local searches:&lt;br /&gt;
&lt;br /&gt;
&lt;img src='http://static.getclicky.com/media/screenshots/201304-local-search/actions-filter.png'&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
And that about covers everything!&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/getclicky?a=3XkiFeGCJ1A:VNykIIqtq2w:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/getclicky?i=3XkiFeGCJ1A:VNykIIqtq2w:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/getclicky?a=3XkiFeGCJ1A:VNykIIqtq2w:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/getclicky?i=3XkiFeGCJ1A:VNykIIqtq2w:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/getclicky?a=3XkiFeGCJ1A:VNykIIqtq2w:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/getclicky?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/getclicky/~4/3XkiFeGCJ1A" height="1" width="1"/&gt;</description>
<pubDate>Tue, 16 Apr 2013 16:00:06 -0800</pubDate>
<bonus>1366153206</bonus>
<feedburner:origLink>http://clicky.com/blog/314/local-internal-search-support</feedburner:origLink></item>
<item>
<title>Tracking Youtube videos no longer requires PhD</title>
<link>http://feedproxy.google.com/~r/getclicky/~3/qVXDBMCX_d0/tracking-youtube-videos-no-longer-requires-phd</link>
<comments>http://clicky.com/blog/313/tracking-youtube-videos-no-longer-requires-phd</comments>
<guid isPermaLink="false">http://clicky.com/blog/313/tracking-youtube-videos-no-longer-requires-phd</guid>
<description>Recently we were inspired by &lt;a href='http://www.lunametrics.com/blog/2012/10/22/automatically-track-youtube-videos-events-google-analytics/'&gt;this post&lt;/a&gt; detailing how to automatically track (with Google Analytics) all Youtube videos embedded on a page, with zero work required other than including a single Javascript file (or two if you don't have jQuery). &lt;br /&gt;
&lt;br /&gt;
Our old method for tracking Youtube was really ugly, requiring a good bit of custom code for every single video you wanted to track. We wanted it to work more like what we read above.&lt;br /&gt;
&lt;br /&gt;
So, now it does! The old method still works for those of you who already have it deployed, but the new method is great because it works with the default iframe embed code that Youtube gives you, and it requires pretty much no work on your end.&lt;br /&gt;
&lt;br /&gt;
Head on over to the &lt;a href='http://clicky.com/help/video'&gt;video analytics&lt;/a&gt; docs to see what you need to do to get it working (scroll down, click 'youtube').&lt;br /&gt;
&lt;br /&gt;
&lt;h4&gt;Coming soon&lt;/h4&gt;We've got a couple new features we hope to release this week. One is local search support, probably our biggest feature request of all time. Another is tracking clicks on tel: URLs. Another is the ability to click on any graph to view/segment visitors based on what you clicked. Last, &lt;a href='http://clicky.com/blog/310/monitage-uptime-monitoring-beta'&gt;Monitage (uptime monitoring)&lt;/a&gt; is being finalized, which also means we'll have up to 1 minute monitoring available and the ability to setup more than 3 checks. Monitage won't launch this week, but soon thereafter.&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/getclicky?a=qVXDBMCX_d0:wJ_vutSegy8:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/getclicky?i=qVXDBMCX_d0:wJ_vutSegy8:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/getclicky?a=qVXDBMCX_d0:wJ_vutSegy8:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/getclicky?i=qVXDBMCX_d0:wJ_vutSegy8:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/getclicky?a=qVXDBMCX_d0:wJ_vutSegy8:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/getclicky?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/getclicky/~4/qVXDBMCX_d0" height="1" width="1"/&gt;</description>
<pubDate>Tue, 09 Apr 2013 16:06:04 -0800</pubDate>
<bonus>1365548764</bonus>
<feedburner:origLink>http://clicky.com/blog/313/tracking-youtube-videos-no-longer-requires-phd</feedburner:origLink></item>
<item>
<title>API throttling</title>
<link>http://feedproxy.google.com/~r/getclicky/~3/SOwiF_X5qKA/api-throttling</link>
<comments>http://clicky.com/blog/311/api-throttling</comments>
<guid isPermaLink="false">http://clicky.com/blog/311/api-throttling</guid>
<description>&lt;a href='http://clicky.com/help/api'&gt;The analytics API&lt;/a&gt; has been a complete free for all in almost 6 years of existence. This has rarely been an issue, save for once or twice a year maybe, we'd have to ask someone to please relax themselves.&lt;br /&gt;
&lt;br /&gt;
But recently it's become a serious ongoing problem. We've had at least 3 different people in the last few weeks all doing utterly &lt;i&gt;massive&lt;/i&gt; exports of data, causing some of the database servers to lag quite badly (up to almost 2 hours in the most severe case). &lt;br /&gt;
&lt;br /&gt;
When a server is lagging it affects thousands of customers. We can't have this anymore, so today we have implemented some API throttling functionality and it is live now.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Throttling will only apply for visitors-list, actions-list, and segmentation requests&lt;/b&gt;, as those are &lt;i&gt;by far&lt;/i&gt; the biggest drain on resources. All other requests are unaffected.&lt;br /&gt;
&lt;br /&gt;
Here is how it works:&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;Maximum of 1 simultaneous request per IP address per site ID at any point in time&lt;/b&gt;. Part of the issue recently has been people doing automated simultaneous requests for exporting data, in one case over 20 requests at the same time for the same site ID, from the same IP. This will no longer work. You will receive an API error.&lt;/li&gt;&lt;br /&gt;
&lt;li&gt;&lt;b&gt;Maximum of 500 results per request (down from 5,000), maximum date range of 3 days&lt;/b&gt;. This one is pretty strict and we will likely raise these limits, but we have to get API usage under control &lt;i&gt;immediately&lt;/i&gt;. We will be monitoring things and plan to raise the limits as things calm down. &lt;b class=red&gt;UPDATE:&lt;/b&gt; things have been stable so we've raised the limits to 1000 results and 7 days.&lt;/ul&gt;&lt;br /&gt;
&lt;br /&gt;
To repeat, &lt;b&gt;these changes only apply for visitors-list, actions-list, and segmentation requests&lt;/b&gt;. No other types of requests are affected by anything mentioned here.&lt;br /&gt;
&lt;br /&gt;
We know this is pretty lame, but it's in the interest of keeping the service as close to real time as possible for all customers and that's important. Hope you understand.&lt;br /&gt;
&lt;br /&gt;
-------&lt;br /&gt;
&lt;b&gt;Update, Monday Feb 11:&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Since we made this change on a Friday, and Friday-Sunday is a complete trickle compared to the rest of the week, it wasn't until today (Monday) that we could really see the effect of this change.&lt;br /&gt;
&lt;br /&gt;
Good news: All servers are keeping up with real time no problem now. A few are 1 minute behind right now, which sometimes happens when caches expire on the servers and have to regenerate, and usually they're back up to normal shortly thereafter.&lt;br /&gt;
&lt;br /&gt;
We'll likely raise the single day restriction soon, first to 3 days, and if things keep up, then probably 7 days. I don't know if we'll ever let it go beyond 7 days again though. As well, the limit of 500 per request will probably be raised to 1000, but again I'm not sure if we'll ever let it go beyond that.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;b&gt;Update, Tuesday Feb 12:&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Things have been stable so we've raised the date range limit to 3 days now. We'll see how things go from here.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;b&gt;Update, Friday Feb 15:&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Things continue to be stable so we've raise the date range limit to 7 days, and the result set limit to 1,000 items. We've also changed the one request per IP address limit, so that it's one request per IP address, per site ID.&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/getclicky?a=SOwiF_X5qKA:mhZLs21OGaM:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/getclicky?i=SOwiF_X5qKA:mhZLs21OGaM:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/getclicky?a=SOwiF_X5qKA:mhZLs21OGaM:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/getclicky?i=SOwiF_X5qKA:mhZLs21OGaM:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/getclicky?a=SOwiF_X5qKA:mhZLs21OGaM:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/getclicky?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/getclicky/~4/SOwiF_X5qKA" height="1" width="1"/&gt;</description>
<pubDate>Fri, 08 Feb 2013 16:11:42 -0800</pubDate>
<bonus>1360368702</bonus>
<feedburner:origLink>http://clicky.com/blog/311/api-throttling</feedburner:origLink></item>
<item>
<title>Monitage: Uptime monitoring beta</title>
<link>http://feedproxy.google.com/~r/getclicky/~3/9WM5Z0zaFfw/monitage-uptime-monitoring-beta</link>
<comments>http://clicky.com/blog/310/monitage-uptime-monitoring-beta</comments>
<guid isPermaLink="false">http://clicky.com/blog/310/monitage-uptime-monitoring-beta</guid>
<description>Many Clicky users have asked us about site monitoring.  We are happy that this is top-of-mind for some of you because its importance should not be understated.  Often we will receive emails from Clicky users asking why there was a dramatic lag in visitors tracked or a complete drop-off altogether.  While there can be many explanations, it is not uncommon that the site itself went down unbeknownst to the site owner.  Standard web analytics will not be able to tell you this, but site uptime monitoring and alerts will.&lt;br /&gt;
&lt;br /&gt;
With this in mind, we are excited to announce a closed beta in partnership with Monitage, a newly-developed site uptime monitoring service by &lt;a href='http://roxr.net'&gt;Roxr Software&lt;/a&gt; (that's us).  We have integrated Monitage into Clicky to give you a bigger picture of the health and activity of your web sites. &lt;br /&gt;
&lt;br /&gt;
&lt;img src='http://static.getclicky.com/media/screenshots/201301-monitage/monitage.png'&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Monitage monitors web sites from five locations around the world (three in the US, one in Paris, one in Japan) and only declares a downtime event if a majority of its servers agree on it. This prevents network hiccups on the monitoring end from sending false alarms.&lt;br /&gt;
&lt;br /&gt;
Pro Plus users and above receive access to the Monitage closed beta. When we officially launch, you will have the ability to create up to 30 checks per site with intervals as fast as 1 minute, but during testing we want to keep resource usage within a reasonable range. So for the time being, we are limiting to 3 checks per site with a max interval of 5 minutes. We expect to officially launch within 4 weeks, at which point Monitage will also be available as a standalone service.&lt;br /&gt;
&lt;br /&gt;
To access Monitage, go to your site dashboard and click the Uptime tab. You can create checks for HTTP, HTTPS, SSH, FTP, IMAP, IMAPS, and ICMP (ping). We've also created a dashboard module.&lt;br /&gt;
&lt;br /&gt;
&lt;img src='http://static.getclicky.com/media/screenshots/201301-monitage/monitage-dashboard.png'&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can also access uptime stats from the API. Check the &lt;a href='http://clicky.com/help/api'&gt;API docs&lt;/a&gt; and search for uptime. type=uptime will give you the current status of all of your checks for a site. type=uptime-list will give you a chronological list of all downtime events for your site for the date range requested.&lt;br /&gt;
&lt;br /&gt;
Last, we added uptime stats as an option in email reports as well.&lt;br /&gt;
&lt;br /&gt;
When Monitage officially launches, we will determine what intervals and types of tests will be included with Clicky Pro Plus plans and above.&lt;br /&gt;
&lt;br /&gt;
We are asking that you test Monitage, and let us know your thoughts, what you like, don't like, and want to see.  As Monitage is in its infancy, we want your feedback to help mature it into a stalwart companion to Clicky.&lt;br /&gt;
&lt;br /&gt;
Note to &lt;a href='http://clicky.com/whitelabel/'&gt;white label&lt;/a&gt; customers: Monitage will be added as an option to white label service when it officially launches, but for now it is only available to Clicky users.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;b&gt;Update, Feb 4:&lt;/b&gt; Just pushed an update that integrates uptime monitoring into the Big Screen report. Also added web hooks to the setup page. Enter a URL and we will POST a JSON object (documented in the setup page) to that URL for events.&lt;br /&gt;
&lt;br /&gt;
Also we've been getting reports of false positives since launch, we are pushing some updates later today that should fix it entirely, or at least close to.&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/getclicky?a=9WM5Z0zaFfw:y2WQKoMQQKo:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/getclicky?i=9WM5Z0zaFfw:y2WQKoMQQKo:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/getclicky?a=9WM5Z0zaFfw:y2WQKoMQQKo:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/getclicky?i=9WM5Z0zaFfw:y2WQKoMQQKo:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/getclicky?a=9WM5Z0zaFfw:y2WQKoMQQKo:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/getclicky?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/getclicky/~4/9WM5Z0zaFfw" height="1" width="1"/&gt;</description>
<pubDate>Tue, 22 Jan 2013 18:23:16 -0800</pubDate>
<bonus>1358907796</bonus>
<feedburner:origLink>http://clicky.com/blog/310/monitage-uptime-monitoring-beta</feedburner:origLink></item>
<item>
<title>'GetClicky' no more!</title>
<link>http://feedproxy.google.com/~r/getclicky/~3/ZC0JeQFTdQ4/getclicky-no-more</link>
<comments>http://clicky.com/blog/309/getclicky-no-more</comments>
<guid isPermaLink="false">http://clicky.com/blog/309/getclicky-no-more</guid>
<description>You may have noticed that we're now live on &lt;a href='http://clicky.com'&gt;clicky.com&lt;/a&gt;! Yay!&lt;br /&gt;
&lt;br /&gt;
For 6 years, our brand has always been Clicky. Excluding our domain name, nowhere on our site has the brand GetClicky ever been mentioned, other than some &lt;a href='https://clicky.com/testimonials'&gt;testimonials&lt;/a&gt; that we didn't edit. However, because of the old domain name, the majority people have always referred to us as GetClicky. It didn't help that our Twitter handle was also @getclicky, but we wanted it to match our domain name (bad idea). It's always kind of driven us insane, but it's been an interesting lesson. If you can afford the right domain name, do yourself a favor and buy it as soon as possible. We paid a pretty freaking penny for clicky.com, but the second it was in our possession was just pure unadulterated joy.&lt;br /&gt;
&lt;br /&gt;
We've had the &lt;a href='http://twitter.com/clicky'&gt;@clicky&lt;/a&gt; Twitter handle from the beginning, but it was just a placeholder. We've now swapped @getclicky with @clicky so all of our followers and tweet history remains in place. Fun fact, Twitter does not offer an official method to do this - you have to actually relinquish your brand for a brief few seconds while you swap things around, which is extremely nerve racking to say the least. So @clicky became @clickyx, @getclicky became @clicky, and last @clickyx became @getclicky. Scary 20 seconds or so. Anyways, please note: If you tweet at us in the future, use @clicky, not @getclicky! But if you were already following us you will keep getting our tweets without having to do anything.&lt;br /&gt;
&lt;br /&gt;
Any page viewed on getclicky.com is now redirected to clicky.com, with a little note at the top about updating your bookmarks. That note will go away in a few weeks, but for now we want as many people to notice the change as possible.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;You do NOT need to update your tracking code, because getclicky.com isn't going anywhere. Your existing tracking code, along with any integrations you have with the API, widgets, or whatever via getclicky.com, all will continue to work.&lt;/b&gt; Going forward, getclicky.com will only be seen in the tracking code (we are using it indefinitely for tracking). And we'll continue to use it for email, for now at least, since that's a nightmare to change. So... clicky.com = web site domain, getclicky.com = tracking domain, email, and indefinite backwards compatibility.&lt;br /&gt;
&lt;br /&gt;
This was not as easy as just acquiring clicky.com and pointing it to a new IP address. A service of our size and complexity, there's a LOT of things to deal with when changing your domain name. My checklist is ridiculous in length and I hope to go into it more in a later blog post.&lt;br /&gt;
&lt;br /&gt;
There may be a few bugs lying around... we'll squash them tomorrow as they come to our attention.&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/getclicky?a=ZC0JeQFTdQ4:sRWwW4Pw6do:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/getclicky?i=ZC0JeQFTdQ4:sRWwW4Pw6do:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/getclicky?a=ZC0JeQFTdQ4:sRWwW4Pw6do:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/getclicky?i=ZC0JeQFTdQ4:sRWwW4Pw6do:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/getclicky?a=ZC0JeQFTdQ4:sRWwW4Pw6do:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/getclicky?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/getclicky/~4/ZC0JeQFTdQ4" height="1" width="1"/&gt;</description>
<pubDate>Wed, 19 Dec 2012 00:34:27 -0800</pubDate>
<bonus>1355906067</bonus>
<feedburner:origLink>http://clicky.com/blog/309/getclicky-no-more</feedburner:origLink></item>
<item>
<title>On-site analytics update</title>
<link>http://feedproxy.google.com/~r/getclicky/~3/Bwy9-g3NOEY/on-site-analytics-update</link>
<comments>http://clicky.com/blog/307/on-site-analytics-update</comments>
<guid isPermaLink="false">http://clicky.com/blog/307/on-site-analytics-update</guid>
<description>Just pushed a much needed tracking update for sub-user accounts, so now they can use &lt;a href=http://getclicky.com/blog/303/on-site-analytics&gt;on-site analytics&lt;/a&gt;, and their traffic will now also be automatically ignored.&lt;br /&gt;
&lt;br /&gt;
Previously this was not possible because of the way our tracking servers were caching information about each site in memcached. After banging heads on keyboards for a while, we finally figured out a way to do it (it's more complicated than it sounds). So, now sub-users will have their traffic ignored automatically, and they will see the on-site analytics widget.&lt;br /&gt;
&lt;br /&gt;
One caveat - the master account's preference for disabling on-site analytics on an account wide basis will override a sub-user's preference.&lt;br /&gt;
&lt;br /&gt;
Making this change also addresses a bug that popped up after the &lt;a href=http://getclicky.com/blog/306/update-on-heatmaps&gt;four-week heatmap trial ended&lt;/a&gt; a few days ago. All sub-user accounts are created as Pro, since Pro has always had access to every feature, and a Pro account was required to have sub-user accounts. But now that heatmaps require Pro Plus or higher, heatmap tracking broke for some of you if you had created another sub-user account and assigned them admin access to a site in your account. Their account features were overriding yours on the tracking servers for the sites they had admin access to. So this update fixes that. But we went ahead anyways and made sub-users account types mirror the master accounts - any time the master account type changes, the sub-users are updated accordingly, to address any future updates that might cause this scenario to come up again.&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/getclicky?a=Bwy9-g3NOEY:WGEIAeVVhAg:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/getclicky?i=Bwy9-g3NOEY:WGEIAeVVhAg:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/getclicky?a=Bwy9-g3NOEY:WGEIAeVVhAg:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/getclicky?i=Bwy9-g3NOEY:WGEIAeVVhAg:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/getclicky?a=Bwy9-g3NOEY:WGEIAeVVhAg:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/getclicky?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/getclicky/~4/Bwy9-g3NOEY" height="1" width="1"/&gt;</description>
<pubDate>Fri, 16 Nov 2012 14:00:46 -0800</pubDate>
<bonus>1353103246</bonus>
<feedburner:origLink>http://clicky.com/blog/307/on-site-analytics-update</feedburner:origLink></item>
<item>
<title>Update on heatmaps</title>
<link>http://feedproxy.google.com/~r/getclicky/~3/_pH0LOHUxS0/update-on-heatmaps</link>
<comments>http://clicky.com/blog/306/update-on-heatmaps</comments>
<guid isPermaLink="false">http://clicky.com/blog/306/update-on-heatmaps</guid>
<description>&lt;a href=http://getclicky.com/blog/304/heatmaps&gt;Heatmaps&lt;/a&gt; launched four weeks ago. As we said in that post, everyone would have it for four weeks, but then we would be requiring a Pro Platinum account to continue usage after that point. The reason for this is because the extra bandwidth and storage requirements for this data are significant, which has proven to be the case as we've monitored resource consumption since launch.&lt;br /&gt;
&lt;br /&gt;
After listening to your feedback, we've decided to add a new plan (Pro Plus) with pricing in between Pro and Pro Platinum. It is the exact same as standard Pro, except that it includes heatmaps.&lt;br /&gt;
&lt;br /&gt;
As of now, these changes are live. So if you are the standard Pro plan, you will need to &lt;a href=http://getclicky.com/user/upgrade&gt;upgrade&lt;/a&gt; to at least Pro Plus in order to keep heatmap tracking going forward.&lt;br /&gt;
&lt;br /&gt;
Note to &lt;a href=http://getclicky.com/whitelabel/&gt;white label&lt;/a&gt; account holders: We've had a few of you ask about heatmaps for white label, we are including this feature with all account levels.&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/getclicky?a=_pH0LOHUxS0:_Mm_Z66CUP8:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/getclicky?i=_pH0LOHUxS0:_Mm_Z66CUP8:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/getclicky?a=_pH0LOHUxS0:_Mm_Z66CUP8:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/getclicky?i=_pH0LOHUxS0:_Mm_Z66CUP8:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/getclicky?a=_pH0LOHUxS0:_Mm_Z66CUP8:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/getclicky?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/getclicky/~4/_pH0LOHUxS0" height="1" width="1"/&gt;</description>
<pubDate>Mon, 12 Nov 2012 14:28:37 -0800</pubDate>
<bonus>1352759317</bonus>
<feedburner:origLink>http://clicky.com/blog/306/update-on-heatmaps</feedburner:origLink></item>
<item>
<title>Please do not place third party javascript in your HTML head.</title>
<link>http://feedproxy.google.com/~r/getclicky/~3/VaU2-Rvd43w/please-do-not-place-third-party-javascript-in-your-html-head</link>
<comments>http://clicky.com/blog/305/please-do-not-place-third-party-javascript-in-your-html-head</comments>
<guid isPermaLink="false">http://clicky.com/blog/305/please-do-not-place-third-party-javascript-in-your-html-head</guid>
<description>There were a few bugs with our new &lt;a href='http://getclicky.com/blog/304/heatmaps'&gt;heatmaps&lt;/a&gt; for people who were putting our tracking code in their HTML head tag, and there were an alarmingly large number of you doing so. Those bugs are fixed now, but that's beside the point of this little post.&lt;br /&gt;
&lt;br /&gt;
Web browsers download page elements in the order that they are listed in your HTML - CSS, javascript, and images (mostly). If the domain that any of those are hosted on is offline or going slow, a web browser will hang for up to 60 seconds while it waits for the item to load, before moving on to the next item. (Asynchronous javascript is an exception but that's still not very common - although we do offer it an option - but again, that's not the point. And besides, if you're loading it asynchronously, you're not depending on it being available for immediate execution, so what would be the point of putting it in your HTML head?).&lt;br /&gt;
&lt;br /&gt;
If you have third party javascript in your HTML head and that third party server goes offline, your web site is effectively dead because nothing else is going to load for up to 60 seconds. When I visit sites that hang like that, I immediately close them as I'm sure 99% of people do.&lt;br /&gt;
&lt;br /&gt;
If the javascript was instead in the footer of your web site, the web browser would still hang trying to download the item, but most of your site would already be loaded in the visitor's web browser. In other words, your site would still be (mostly) usable while the engineers for the third party service go into panic mode.&lt;br /&gt;
&lt;br /&gt;
Our CDN never really goes offline but there are obviously thousands of services out there that ask you to put their javascript on your web site. Any third party javascript code that's not &lt;i&gt;critical&lt;/i&gt; to your web site working properly should never go in the HTML head. Tracking code, ad code, widgets, social plugins, etc - these are all non-critical and have no business up there. Help make the internet a better place and always put that code at the bottom of your web site, k?&lt;br /&gt;
&lt;br /&gt;
The only valid exception here is if it's hosted by a major provider such as Google, and you rely on the functionality of that code as the page loads (which we do for Google's map API, but that's it). That is the only exception.&lt;br /&gt;
&lt;br /&gt;
So... if you've got our code in your HTML head, please move it instead to the bottom of your HTML, right before the closing /body tag, as has always been recommended on the page where you grab your tracking code from.&lt;br /&gt;
&lt;br /&gt;
Bonus pro-tip: For &lt;i&gt;first party&lt;/i&gt; elements, your CSS file should always be the very first item in your HTML head. That way your site will always look proper as soon as possible, beacuse this will be the very first thing the browser downloads after the HTML itself.&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/getclicky?a=VaU2-Rvd43w:EEhiqyjTZzo:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/getclicky?i=VaU2-Rvd43w:EEhiqyjTZzo:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/getclicky?a=VaU2-Rvd43w:EEhiqyjTZzo:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/getclicky?i=VaU2-Rvd43w:EEhiqyjTZzo:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/getclicky?a=VaU2-Rvd43w:EEhiqyjTZzo:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/getclicky?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/getclicky/~4/VaU2-Rvd43w" height="1" width="1"/&gt;</description>
<pubDate>Wed, 17 Oct 2012 16:25:24 -0800</pubDate>
<bonus>1350516324</bonus>
<feedburner:origLink>http://clicky.com/blog/305/please-do-not-place-third-party-javascript-in-your-html-head</feedburner:origLink></item>
<item>
<title>Heatmaps!</title>
<link>http://feedproxy.google.com/~r/getclicky/~3/b1b7przNipI/heatmaps</link>
<comments>http://clicky.com/blog/304/heatmaps</comments>
<guid isPermaLink="false">http://clicky.com/blog/304/heatmaps</guid>
<description>We've got two great new features launching today, after nearly 4 months of development: heatmaps, and &lt;a href='http://getclicky.com/blog/303/on-site-analytics'&gt;on-site analytics&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
Here's an example of a heatmap report, after the new tracking code has been live on our site for a couple of hours:&lt;br /&gt;
&lt;br /&gt;
&lt;img src=http://static.getclicky.com/media/screenshots/201210-onsitestats/heatmaps.png&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
(Note: Everyone's user homepage is unique so some of the hot spots look weird here when conglomerated on a global scale. That's the nature of dynamic pages).&lt;br /&gt;
&lt;br /&gt;
&lt;b class=red&gt;IMPORTANT!&lt;/b&gt; Heatmaps won't start logging anything until you specify your site's width and layout in your site preferences. You can see where to do that in &lt;a href='http://static.getclicky.com/media/screenshots/201210-onsitestats/site-prefs.png'&gt;this screenshot&lt;/a&gt;. And as with on-site analytics, you must have the newest tracking code in your browser, so clear your cache!&lt;br /&gt;
&lt;br /&gt;
Over the years we've had a lot of requests for this feature and we're psyched to finally offer it to you. But once we started on it, the idea for &lt;a href='http://getclicky.com/blog/303/on-site-analytics'&gt;on-site analytics&lt;/a&gt; was born soon thereafter, making this otherwise fairly-simple feature spiral out of control (in a good way). Hence nearly 4 months of development and testing!&lt;br /&gt;
&lt;br /&gt;
Most services, to view heatmaps, you go to their site (e.g. getclicky.com) and go to your heatmap report, click a button for the page you want to view heatmaps for, and then your site is opened in an iframe, and then a heatmap overlay is loaded on top. That's unideal for a lot of reasons, but particularly the iframe (ugh). Loading a site in an iframe introduces a lot of potential problems, and a lot of sites have frame busters that would totally break this feature. So we took a different approach.&lt;br /&gt;
&lt;br /&gt;
Ok, we won't deny you the boring way, going to your reports and clicking the appropriate link in the Content report:&lt;br /&gt;
&lt;br /&gt;
&lt;img src='http://static.getclicky.com/media/screenshots/201210-onsitestats/content.png'&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
What we do differently is that your page loads directly in a new window with a special parameter in the URL fragment, that our tracking code recognizes and automatically loads a heatmap dynamically on your site - without a frame, and without requiring being logged in to Clicky (i.e. you can share the URL). So that's good.&lt;br /&gt;
&lt;br /&gt;
&lt;img class='fr ml10 mb10' src='http://static.getclicky.com/media/screenshots/201210-onsitestats/oss.png'&gt;But we thought it would be so terrific if you could just be on your web site and say I want a heatmap of this page, now and just click a button on that page and see it immediately. So that's what we did, and hence made it part of the &lt;a href='http://getclicky.com/blog/303/on-site-analytics'&gt;on-site analytics&lt;/a&gt; experience, as you can see to the right.&lt;br /&gt;
&lt;br /&gt;
This was still not enough for us. Even though very few of our real-time competitors offer heatmaps, we didn't want to just make a me too feature. We believe most of the features we are releasing with our heatmaps are unlike anything that any other service offers.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;First of all, beyond per page heatmaps, we also do per session.&lt;/b&gt; &lt;i&gt;For every single page view of every session we log for your site&lt;/i&gt;, we log a unique heatmap for that visitor. You can view session heatmaps by viewing a session, and next to each action, on the right-hand side, will be a heatmap icon to click if we have any heatmap data for that page/session combo. Click the icon to view all of their clicks on any given page:&lt;br /&gt;
&lt;br /&gt;
&lt;img src='http://static.getclicky.com/media/screenshots/201210-onsitestats/session.png'&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Second, what would be analytics without segmentation?&lt;/b&gt; You can view global heatmaps (all clicks) for any page, or you segment them by a number of criteria. For example, only view clicks on a page for people who completed a specific goal, or only people who arrived via a specific search or campaign or referring domain or type of referrer (e.g. advertising), or any/every version of every split test you're running.&lt;br /&gt;
&lt;br /&gt;
Here's an example of our homepage for users completing the new user goal. Unsurprising, the majority of the clicks are on the register now button:&lt;br /&gt;
&lt;br /&gt;
&lt;img src='http://static.getclicky.com/media/screenshots/201210-onsitestats/heatmaps-goals.png'&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The order of items in these reports is a bit different than what you see on our web site. We take the top 24 items ordered by popularity, e.g. the top 24 goals completed today, then re-order them alphabetically. This is because we think you'll generally want to see the most popular segments but you'll also want to find them quickly - so instead of showing them in order of popularity, we grab the top ones and re-order them alphabetically so you can quickly narrow down what you're looking for in the interface.&lt;br /&gt;
&lt;br /&gt;
To generate segmented heatmaps, we needed to add a new filter type to quickly find visitors with heatmap data attached. So we made this a general filter as well. In the main visitors report on Clicky, when you click add a filter, you will see a new option callled heatmaps. Click that to filter down your visitors to just people with heatmap data attached. This also works with the &lt;a href='http://getclicky.com/help/api'&gt;analytics API&lt;/a&gt;, by specifying heatmap=1 in combination with type=visitors or type=segmentation requests. (We also added a filter for online now, since we needed to be able to internally filter visitors who were online now in order to display in the widget. Via the API, use online=1).&lt;br /&gt;
&lt;br /&gt;
When viewing your visitors report, anyone with heatmap data attached will have a new icon next to them: &lt;br /&gt;
&lt;br /&gt;
&lt;img src='http://static.getclicky.com/media/screenshots/201210-onsitestats/visitors-list.png'&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Not every visitor will have heatmap data though... We anticipate this type of data to take up a lot of space, so for now we only do it for a random 50% of your visitors. We will likely adjust this in the future as we see what kind of impact it has on our resources. For example, it is quite likely we'll increase the sampling rate for low traffic sites, maybe even do all visitors, and for higher traffic sites, do less than 50%. But for now, just doing 50% was an easy safety measure and we'll analyze resource impact as time goes on.&lt;br /&gt;
&lt;br /&gt;
Most heatmaps use server-side image generation to overlay on your site, which takes up a lot of resources on the service providing the heatmap - and is also quite slow. Earlier this year we discovered the excellent open-source &lt;a href='http://www.patrick-wied.at/static/heatmapjs/'&gt;heatmaps.js&lt;/a&gt; by Patrick Wied, and we knew that was just what we needed. This is a javascript library that generates the heatmap on the fly, using your web browser's resources, so it's fast and efficient. There are lots of features this library has that aren't yet documented, some of which we wanted to use (animated heatmaps for example) - but we didn't want to take the time to figure them out ourselves. We hope this library matures in the future and we'll take advantage of it when it does. But for now, for what we need, it does the job extremely well.&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;A difficult decision&lt;/h3&gt;This will be the first feature we offer that is not included in the standard Pro plan. The Pro plan has always had every feature we offer, so this was hard to do. But, the resources needed for this feature are quite significant, both in terms of bandwidth and storage, so we can't justify the standard Pro pricing for this feature.&lt;br /&gt;
&lt;br /&gt;
We do want all of you to experience it first hand though, so for the first 4 weeks, all Pro or higher accounts will have this feature. After 4 weeks, a Pro Platinum or Custom plan will be required to keep the heatmap feature. &lt;a href='http://getclicky.com/blog/303/on-site-analytics'&gt;On-site analytics&lt;/a&gt; will be standard with any Pro or higher account, though.&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;Data retention&lt;/h3&gt;As we said above, we anticipate this taking up a lot of storage space, so we built the database structure around monthly chunks that are auto-purged every 30 days. Initially, daily/session data will only be guaranteed for 30 days, but be available up to 60 days, and monthly data will only be guaranteed for 2 months, but available up to 3 months. It's hard to anticipate the exact impact this will have on our resources so we may (and hope to) expand this limit in the future, but for now, this is all we can guarantee.&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;Internet Explorer, may I count the ways in which I love thee?&lt;/h3&gt;Prior to IE8, IE does not have native JSON support, and even then, only when your site runs in standards mode. IE causing developers headaches is as sure as the sun rising in the east, regardless, the point is that IE users will not have heatmap data logged unless they are on at least version 8 &lt;i&gt;and&lt;/i&gt; your site renders in standards mode. Good luck!&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/getclicky?a=b1b7przNipI:YnmiaRLifuo:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/getclicky?i=b1b7przNipI:YnmiaRLifuo:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/getclicky?a=b1b7przNipI:YnmiaRLifuo:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/getclicky?i=b1b7przNipI:YnmiaRLifuo:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/getclicky?a=b1b7przNipI:YnmiaRLifuo:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/getclicky?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/getclicky/~4/b1b7przNipI" height="1" width="1"/&gt;</description>
<pubDate>Sun, 14 Oct 2012 20:51:46 -0800</pubDate>
<bonus>1350273106</bonus>
<feedburner:origLink>http://clicky.com/blog/304/heatmaps</feedburner:origLink></item>
<item>
<title>On-site analytics!</title>
<link>http://feedproxy.google.com/~r/getclicky/~3/tWaO2r3uDMQ/on-site-analytics</link>
<comments>http://clicky.com/blog/303/on-site-analytics</comments>
<guid isPermaLink="false">http://clicky.com/blog/303/on-site-analytics</guid>
<description>We've got two great new features launching today, after nearly 4 months of development: &lt;a href='http://getclicky.com/blog/304/heatmaps'&gt;heatmaps&lt;/a&gt;, and on-site analytics.&lt;br /&gt;
&lt;br /&gt;
&lt;img class='fr ml10 mb10' src='http://static.getclicky.com/media/screenshots/201210-onsitestats/oss.png'&gt;On-site analytics is a new feature that embeds a widget on the bottom right corner of your web site automatically to view information about your visitors who are on your web site &lt;i&gt;right now&lt;/i&gt;. Don't worry, only you (the site owner) can see it - but if you want to disable it, you can do so on &lt;a href='http://getclicky.com/user/edit'&gt;your user preferences page&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
This feature is available to all Pro or higher customers. &lt;a href='http://getclicky.com/user/upgrade'&gt;Need to upgrade?&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Before we get into the details, a few important notes for this to work properly:&lt;br /&gt;
- This requires the latest version of our tracking code, so clear your cache!&lt;br /&gt;
- Third party cookies must be enabled (or at least, have Clicky white listed)&lt;br /&gt;
- You need to check the remember me box when you login to Clicky, so that a cookie is set to remember who you are.&lt;br /&gt;
&lt;br /&gt;
There are three components to on-site analytics:&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;Visitors online&lt;/h3&gt;The on site number shows you how many visitors are currently on your web site. Click on it to view a list of said visitors! Up to 8 visitors are shown at a time, and you can page through them with the next page link in the top right corner. Click on the username (if you're using &lt;a href='http://getclicky.com/help/customization'&gt;custom data tracking&lt;/a&gt;) or IP address to view their session on Clicky:&lt;br /&gt;
&lt;br /&gt;
&lt;img src='http://static.getclicky.com/media/screenshots/201210-onsitestats/visitors.png'&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can also view several summary reports about the visitors onine, such as top searches, referrering domains, traffic sources, goals, and more.&lt;br /&gt;
&lt;br /&gt;
&lt;img title='fucking secure searches' src='http://static.getclicky.com/media/screenshots/201210-onsitestats/searches.png'&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;Visitors on this page&lt;/h3&gt;The on page number represents how many visitors are currently viewing the page that you are currently viewing. Clicking on it shows the exact same type of reports as the global on site report, except it's limited to visitors currently viewing the same page that you are.&lt;br /&gt;
&lt;br /&gt;
The on site and on page numbers will automatically update once per minute for 5 minutes, then once every 5 minutes for an hour, while you are idle on a single page on your web site. But after an hour, the updating will stop.&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;Heatmaps&lt;/h3&gt;If you have enabled &lt;a href='http://getclicky.com/blog/304/heatmaps'&gt;heatmap tracking&lt;/a&gt; in your site preferences, and there is heatmap data in the last 7 days for the page you are currently viewing, you will see the heatmap icon on the right hand side (large colorful pixels). Click that to view a heatmap report for the page you're viewing for the current date, along with segmentation options for the heatmaps.&lt;br /&gt;
&lt;br /&gt;
There's a lot to talk about with heatmaps, so we wrote a separate post for that. Read about &lt;a href='http://getclicky.com/blog/304/heatmaps'&gt;heatmaps here&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;Other notes/features&lt;/h3&gt;&lt;br /&gt;
&lt;li&gt;Clicking on the Clicky Web Analytics link will open a new tab/window on getclicky.com with your site's dashboard.&lt;br /&gt;
&lt;br /&gt;
&lt;li&gt;&lt;b&gt;On-site analytics requires &lt;a href='http://jquery.com'&gt;jQuery&lt;/a&gt;&lt;/b&gt;. We automatically check if your site already has it, and if not, we side-load it from our CDN - after which we call &lt;a href='http://docs.jquery.com/Core/jQuery.noConflict'&gt;jQuery.noConflict()&lt;/a&gt; to ensure we don't interfere with any other libraries you may have on your site that use the $() shortcut. In order for all features to work, we do require at least version 1.6, which is almost 30 months old - if you're on a version older than that, please upgrade ;)&lt;br /&gt;
&lt;br /&gt;
&lt;li&gt;To authenticate your access to on-site analytics, we had to cache your user cookie on the tracking servers. While we were at it, we went ahead and enabled ignoring your traffic to your own web site automatically, without having to set a IP filter / filter cookie. If you need to test something on your own web site and see it in Clicky, simply logout of Clicky or use a different web browser. We know this will be a PITA for some of you, but the majority of users want to ignore their own traffic so this makes sense for us to implement as a convenience feature.&lt;br /&gt;
&lt;br /&gt;
&lt;li&gt;Calls to clicky.log() are now stored in a cookie queue (unless you have disabled cookies), to help ensure these calls aren't missed. Previously we recommended calling clicky.pause() manually after any clicky.log() or clicky.goal() event that resulted in a new page view, as otherwise the call would almost never be logged. This new queue system is designed to fix this issue. As long as the visitor's next page view is still on your own web site, the cookie will be seen by our tracking code and processed as an event and sent to our tracking servers upon the next page loading on your web site. The queue is processed every 5 seconds when idle on a page, and immediately upon a fresh page view.&lt;br /&gt;
&lt;br /&gt;
Hope you enjoy!&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/getclicky?a=tWaO2r3uDMQ:F4N2s40So-8:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/getclicky?i=tWaO2r3uDMQ:F4N2s40So-8:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/getclicky?a=tWaO2r3uDMQ:F4N2s40So-8:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/getclicky?i=tWaO2r3uDMQ:F4N2s40So-8:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/getclicky?a=tWaO2r3uDMQ:F4N2s40So-8:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/getclicky?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/getclicky/~4/tWaO2r3uDMQ" height="1" width="1"/&gt;</description>
<pubDate>Sun, 14 Oct 2012 20:47:08 -0800</pubDate>
<bonus>1350272828</bonus>
<feedburner:origLink>http://clicky.com/blog/303/on-site-analytics</feedburner:origLink></item>
<item>
<title>History of Spy (also, ZeroMQ rocks)</title>
<link>http://feedproxy.google.com/~r/getclicky/~3/MCm4XSt-HoI/history-of-spy-also-zeromq-rocks</link>
<comments>http://clicky.com/blog/302/history-of-spy-also-zeromq-rocks</comments>
<guid isPermaLink="false">http://clicky.com/blog/302/history-of-spy-also-zeromq-rocks</guid>
<description>&lt;i&gt;This post is written by Alexander, hacker extraordinaire, who rewrote the Spy backend from scratch. Next time you're in Portland, kindly buy him a beer.&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
Clicky is almost 6 years old and hence was one of the first real-time web &lt;i&gt;analytics&lt;/i&gt; platforms. Spy is an important part of that offering. Spy allows you to glimpse important information about active visitors on your website, as that information flows out of your visitors' browsers and into our system.&lt;br /&gt;
&lt;br /&gt;
Spy has been a part of Clicky since the very beginning and has always been one of the most popular features. The name and functionality were both heavily influenced by Digg Spy. Sean, our lead developer, says that when he saw Digg Spy circa 2005, he thought to himself how sweet would it be if you had that kind of real time data stream, but for your own web site? That was in fact one of his motivations to create Clicky in the first place.&lt;br /&gt;
&lt;br /&gt;
Since 2006, we've grown by leaps and bounds, and many parts of our service have had to absorb the shocks of scale. Recent tweets about our major data center move and infrastructure changes confirm this, but much is afoot at a deeper level than that meeting the eye. &lt;br /&gt;
&lt;br /&gt;
Spy has gone through multiple complete rewrites to get to where it is today. We thought some of you might find it interesting.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;h4&gt;Initial implementation&lt;/h4&gt;The first version of Spy was drafted in a few days. Back then, all infrastructure components for Clicky were located on a single machine (yikes).&lt;br /&gt;
&lt;br /&gt;
Incoming tracking data was simply copied to local storage in a special format, and retrieved anew when users viewed their Spy page. It was extremely simple, as most things are at small scale, but it worked.&lt;br /&gt;
&lt;br /&gt;
&lt;img src='http://static.getclicky.com/media/screenshots/201209-spyy/spyy1.png'&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;h4&gt;Spy, evolved&lt;/h4&gt;By mid-2008, we had moved to a multi-server model: one web server, one tracking server, and multiple database servers. But the one tracking server was no longer cutting it. We needed to load balance the tracking, which meant Spy needed to change to support that.&lt;br /&gt;
&lt;br /&gt;
When load balancing was completed, any incoming tracking hit was sent to a random tracking server. This meant that each dedicated tracking server came to store a subset of Spy data. Spy, in turn, had to open multiple sockets per request to extract and aggregate viewing data. Given X tracking servers, Spy had to open X sockets, and perform X^2 joins and sorts before emitting the usage data to the user's web browser.&lt;br /&gt;
&lt;br /&gt;
Initially the Spy data files were served via Apache from all of the tracking servers, but that tied up resources that were needed for tracking. Soon after this setup, our first employee (no longer with us) (Hi Andy!) wrote a tiny python script that ran as a daemon on each tracking server. It took over serving the Spy files for the PHP process on the web server that was requesting them. This helped free up precious HTTP processes for tracking, but there was still a lot of resources being wasted because of the storage method we were using.&lt;br /&gt;
&lt;br /&gt;
Tracking servers had no mechanism for granularly controlling the memory consumed by its Spy data. Therefore, each tracking server had a cron job that would indiscriminately trim its respective Spy data. Sometimes, however, this mechanism would grow out of control, so trims happened randomly when users viewed their Spy page. These competing mechanisms and their implementations presented an opportunity for datum linearity issues to arise occasionally.&lt;br /&gt;
&lt;br /&gt;
The number of websites we tracked continued rising, and we made several changes to this implementation to keep resource usage in check. Among them was the move to writing Spy data to shared memory (/dev/shm) instead of the hard drive. This helped a great deal initially, but as time wore on, it became clear that this was just not going to scale much further without a complete rethinking of Spy.&lt;br /&gt;
&lt;br /&gt;
&lt;img src='http://static.getclicky.com/media/screenshots/201209-spyy/spyy2.png'&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;h4&gt;Trimming the fat&lt;/h4&gt;In the end, we decided to reimplement Spy's backend from the ground up. We devised a list of gripes that we had with Spy, and it looked like this:&lt;br /&gt;
&lt;br /&gt;
*N tracking servers meant N sockets opened/closed on every request for data&lt;br /&gt;
*Data had to be further aggregated and then sorted on every request&lt;br /&gt;
*Full list of Spy data for a site was transmitted on every request, which consumed massive bandwidth (over 5MB/sec &lt;i&gt;per tracking server&lt;/i&gt; on internal network) and required lots of post-processing by PHP&lt;br /&gt;
&lt;br /&gt;
Our goals looked like this:&lt;br /&gt;
&lt;br /&gt;
*Improve throughput&lt;br /&gt;
*Improve efficiency&lt;br /&gt;
*Reduce network traffic&lt;br /&gt;
*Reduce per-request and overall resource usage&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;h4&gt;Enter Spyy&lt;/h4&gt;The modern version of Spy, called Spyy to fit in with our internal naming conventions, is implemented in two custom daemons written in C. The first runs on each tracking server and dumbly forwards incoming Spy data to the second daemon, the Spy master. Data travels over a persistent socket established by &lt;a href='http://www.zeromq.org/'&gt;ZeroMQ&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
The Spy master daemon stores the information efficiently for each site, using a circular buffer whose size is determined and periodically reevaluated by a site's traffic rate. This removes the need to manually trim any data from a site as we've been doing for years. Once the buffer is filled for a site, old data is automatically purged as new data arrives. When we read data from the new daemon, it gives us only the data we need (basically, since timestamp X) instead of all data for site X, drastically reducing network bandwidth and post-processing needed to be done by PHP.&lt;br /&gt;
&lt;br /&gt;
Like the previous version of Spy, all data is stored in RAM to ensure peak performance. Because of this, however, the data is still volatile. We have other mechanisms for permanently storing tracking data, and Spy data excludes much information from what is permanently stored. This means that when we implement new features or apply bugfixes to Spyy, it must be killed and started anew.&lt;br /&gt;
&lt;br /&gt;
To mitigate this blip in the availability of data, we have implemented a rudimentary transfer mechanism between the existing Spy program and a new one coming online to take its place. This mechanism also uses ZeroMQ and, basically, drains datums from the existing process to the new process. At completion, the old process shuts itself down and the new process claims its occupied network interfaces.&lt;br /&gt;
&lt;br /&gt;
&lt;img src='http://static.getclicky.com/media/screenshots/201209-spyy/spyy3.png'&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;h4&gt;Conspycuous benefits&lt;/h4&gt;We met our goals, and then some. The overall project took about 8 weeks.&lt;br /&gt;
&lt;br /&gt;
Benchmarks at the start of the project demonstrated the old Spy implementation barely able to keep up at peak load, tapping out at about 5,000 reqs/sec. In comparison, the new implementation can handle upwards of 50,000 reqs/sec on the same hardware.&lt;br /&gt;
&lt;br /&gt;
In the old architecture, read performance decreased as the number of tracking servers increased. In the new architecture, read performance is unaffected by the number of tracking servers, and is roughly 2N times better than the old architecture, assuming at least 1 tracking server N. Write performance in both cases is constant.&lt;br /&gt;
&lt;br /&gt;
RAM usage for storing Spy data was approximately 4GB per tracking server under the old architecture. At the time we had 5 tracking servers which meant 20GB total (we have 7 tracking servers now). New Spy, on the other hand, only uses up 6GB total RAM on a single virtual machine, and it takes up so little CPU power that the same server hardware also hosts one tracking server and four database servers without issue.&lt;br /&gt;
&lt;br /&gt;
Bandwidth wise, the old Spy used over 20MB/sec of combined bandwidth for read requests from the tracking servers. New Spy? About 500KB/sec on average, reducing network footprint to barely 1% of what it was before.&lt;br /&gt;
&lt;br /&gt;
In the event of a Spy master server outage, our tracking servers simply drop Spyy-bound packets automatically and continue persisting other data to disk, with absolutely no performance impact.&lt;br /&gt;
&lt;br /&gt;
Because of the way that ZeroMQ is implemented, we can scale this architecture very readily and rapidly. It removed a lot of application complexity and let us focus on the implementation. With ZeroMQ, business logic itself drives the network topology.&lt;br /&gt;
&lt;br /&gt;
Additionally, because of ZeroMQ, we can easily segment sites out onto different Spy masters with little change to the rest of Clicky, should the need or desire arise. In fact, we already do this because of some legacy white label customers (which we, of course, thank for the challenge provided by their existence in this implementation).&lt;br /&gt;
&lt;br /&gt;
As stated above, redundancy is not a goal of ours for Spy, because of the volatile and transient nature of its data. But if we ever change our mind, we can simply set up a ZeroMQ device between the tracking servers and Spy master, and have each datum be split off to N master servers.&lt;br /&gt;
&lt;br /&gt;
Overall, we are extremely happy with the improvements made. We are also very impressed with ZeroMQ. It has been getting quite a bit of hype recently, and in our opinion it lives up to it.&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/getclicky?a=MCm4XSt-HoI:39N56HlUzA0:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/getclicky?i=MCm4XSt-HoI:39N56HlUzA0:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/getclicky?a=MCm4XSt-HoI:39N56HlUzA0:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/getclicky?i=MCm4XSt-HoI:39N56HlUzA0:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/getclicky?a=MCm4XSt-HoI:39N56HlUzA0:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/getclicky?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/getclicky/~4/MCm4XSt-HoI" height="1" width="1"/&gt;</description>
<pubDate>Thu, 20 Sep 2012 14:13:18 -0800</pubDate>
<bonus>1348175598</bonus>
<feedburner:origLink>http://clicky.com/blog/302/history-of-spy-also-zeromq-rocks</feedburner:origLink></item>
<item>
<title>Jigsaw company API integration is dead and we're looking for alternatives</title>
<link>http://feedproxy.google.com/~r/getclicky/~3/8P6XqK2U7n4/jigsaw-company-api-integration-is-dead-and-were-looking-for-alternatives</link>
<comments>http://clicky.com/blog/301/jigsaw-company-api-integration-is-dead-and-were-looking-for-alternatives</comments>
<guid isPermaLink="false">http://clicky.com/blog/301/jigsaw-company-api-integration-is-dead-and-were-looking-for-alternatives</guid>
<description>About two weeks ago, our integration with &lt;a rel=nofollow href='http://www.jigsaw.com/'&gt;Jigsaw&lt;/a&gt; broke. Jigsaw is (was) a crowdsourced database of information on businesses, mainly US ones but some in Europe and other places too. It let us provide you with information like &lt;a href='http://cdn.staticstuff.net/media/screenshots/201002-jigsaw-display.gif'&gt;this&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
We looked into it and discovered that our API key got revoked. We did some digging and realized that Jigsaw had been bought out by SalesForce last year, and Salesforce has decided to kill free access to this API, which apparently became effective around September 1.&lt;br /&gt;
&lt;br /&gt;
The API is still available, if you're willing to pay. We are &lt;i&gt;definitely&lt;/i&gt; willing to pay for this kind of data, but the price is $25,000/year. That works out to just over $2,000/month, which would make it our biggest monthly expense, other than payroll. Sorry, can't justify that.&lt;br /&gt;
&lt;br /&gt;
For now, we have modified the links that pulled in this data to instead just open up a Google search page with the organization name pre-filled. In some ways this is actually better because Google will almost always find the company in question, regardless of physical location, whereas with Jigsaw, when I wanted to look up info on a company it was only maybe 50% success rate. With Google you'll have to do a bit of work on your end to find the details that we were previously providing, but at least it's something.&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;Alternatives?&lt;/h3&gt;If you know of an alternative service that is reasonably priced and includes an API, please let us know. We haven't found anything worthwhile as of yet. A lot of these services seem more geared towards providing you with leads at these companies, rather than just information about the companies themselves, which is not what we're really interested in at the moment.&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/getclicky?a=8P6XqK2U7n4:4uhLfmXgfxM:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/getclicky?i=8P6XqK2U7n4:4uhLfmXgfxM:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/getclicky?a=8P6XqK2U7n4:4uhLfmXgfxM:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/getclicky?i=8P6XqK2U7n4:4uhLfmXgfxM:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/getclicky?a=8P6XqK2U7n4:4uhLfmXgfxM:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/getclicky?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/getclicky/~4/8P6XqK2U7n4" height="1" width="1"/&gt;</description>
<pubDate>Mon, 17 Sep 2012 14:27:27 -0800</pubDate>
<bonus>1347917247</bonus>
<feedburner:origLink>http://clicky.com/blog/301/jigsaw-company-api-integration-is-dead-and-were-looking-for-alternatives</feedburner:origLink></item>
<item>
<title>We're moving!</title>
<link>http://feedproxy.google.com/~r/getclicky/~3/JO9F1gaN3LI/were-moving</link>
<comments>http://clicky.com/blog/299/were-moving</comments>
<guid isPermaLink="false">http://clicky.com/blog/299/were-moving</guid>
<description>This Saturday, August 4, from approximately 2pm to 5pm PST (GMT -0700), our web site will be offline while we move our servers to a new data center in downtown Portland.&lt;br /&gt;
&lt;br /&gt;
We have carefully planned this over the last 3 weeks to ensure that tracking will still be online during this time (no data will be lost and there will be no impact on your site's performance), and that the move itself will be as fast as humanly possible. The new data center is already pre-railed and pre-wired with power and ethernet, so de-racking and re-racking will be extremely fast. So why will it take ~3 hours? Well, the old data center is about 90 miles away... :(&lt;br /&gt;
&lt;br /&gt;
New machines are already setup at the new data center to support tracking during the move. When the database servers get plugged in here, they will automatically start parsing the ~3 hour back log of traffic they will each have waiting for them on the tracking servers. It will take a good 3-6 hours from that point for all servers to catch back up with real time again.&lt;br /&gt;
&lt;br /&gt;
This is something we've wanted to do for a while but as we grew to over 50 physical servers, it became unfeasible. However, thanks to our full virtualization that was completed in June after many months of work, we are down to just 11 physicals! Suddenly this dream became a real possibility so we jumped at the opportunity to make it happen before we needed to add any more hardware to the rack.&lt;br /&gt;
&lt;br /&gt;
To say we're excited would be the understatement of the year. We've been with the same host as we've grown to enormous bandwidth over 6 years, so they've had to grow with us, which has been the cause of most of our major outages. The new data center is enterprise class with internet connectivity across 8 unique providers, so problems with internet connectivity should be near zero. Portland is much more major hub than where we were before, so connectivity should also be significantly faster, especially for those of you outside the US. Last, being 15 minutes away from our data center instead of 90 will be a very welcome change when we need to take a trip there.&lt;br /&gt;
&lt;br /&gt;
A lot of time has been spent over the last 4 months on backend/sysadmin work like this, which has interrupted our regular flow of feature releases. We'll be back to that very soon, don't worry.&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/getclicky?a=JO9F1gaN3LI:0c0kC6oPbhY:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/getclicky?i=JO9F1gaN3LI:0c0kC6oPbhY:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/getclicky?a=JO9F1gaN3LI:0c0kC6oPbhY:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/getclicky?i=JO9F1gaN3LI:0c0kC6oPbhY:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/getclicky?a=JO9F1gaN3LI:0c0kC6oPbhY:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/getclicky?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/getclicky/~4/JO9F1gaN3LI" height="1" width="1"/&gt;</description>
<pubDate>Mon, 30 Jul 2012 12:44:48 -0800</pubDate>
<bonus>1343677488</bonus>
<feedburner:origLink>http://clicky.com/blog/299/were-moving</feedburner:origLink></item>
<item>
<title>New custom data report</title>
<link>http://feedproxy.google.com/~r/getclicky/~3/yXIm2Tm-I4Y/new-custom-data-report</link>
<comments>http://clicky.com/blog/297/new-custom-data-report</comments>
<guid isPermaLink="false">http://clicky.com/blog/297/new-custom-data-report</guid>
<description>If you log &lt;a target=_blank href='https://secure.getclicky.com/help/customization#session'&gt;custom data&lt;/a&gt; with Clicky, you're probably going to like this new set of features. If you're &lt;i&gt;not&lt;/i&gt; logging custom data, you should - it's one of our best features. &lt;br /&gt;
&lt;br /&gt;
Up until yesterday, for our own reports on getclicky.com we have only been logging usernames of those of you logged in to our site. This adds a lot of personality to the visitor reports. But a lot of you log a lot more types of data such as shopping cart information, account status, things like that. I've been wanting to add summary reports for this custom data for quite a while, not only for you, but also because there were other types of data we were interested in seeing about who is using our service on a day to day basis. There wasn't much point though since there was no way to see a summary of it. But now there is!&lt;br /&gt;
&lt;br /&gt;
If you log custom data, you will see a new item in the main tabs when viewing your site. And if you don't log custom data, this item doesn't show up. Here's what the main report looks like: &lt;br /&gt;
&lt;br /&gt;
&lt;img src=http://static.getclicky.com/media/screenshots/201206-custom/custom-report.png&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
As you can see, when someone is logged in to Clicky, we're now also tracking what type of account they have and how long they've been a member. And we added support for attaching goals to this data, so we can see what goals the different types of accounts are completing, as well as their revenue (hidden here).&lt;br /&gt;
&lt;br /&gt;
What I really love is that the sub-tabs for this Custom report are dynamically generated based on the different types of custom data you've been logging to your site. So you can click on any of those sub-tabs to see a report for just that family of data, or, you can just click the 'more...' link at the bottom of any family, just like other family style reports (browsers etc - speaking of which, some of those were broken because of horrible code, and have now been fixed as well as optimized to generate faster). (Note: Internally, data types that have parents and chidlren are called families, in case you are confused).&lt;br /&gt;
&lt;br /&gt;
You can click any of the items in this report to immediately see all visitors with that custom data attached to them, and you can also click any parent, for example account type, to see all visitors who have any account type data attached to them, no matter what its value is.&lt;br /&gt;
&lt;br /&gt;
Not done yet!&lt;br /&gt;
&lt;br /&gt;
&lt;a href='http://getclicky.com/blog/286/long-term-metrics-and-other-goodies'&gt;The new goal report&lt;/a&gt; we released about 4 months ago has been a big hit. We thought it would be pretty great to see custom data in this report too, so we added it: (Screenshot has been slightly modified to make it smaller)&lt;br /&gt;
&lt;br /&gt;
&lt;img src='http://static.getclicky.com/media/screenshots/201206-custom/custom-goals.png'&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
We also created a dashboard module for custom data, and the sub-tabs are dynamically generated just like they are for the main custom report:&lt;br /&gt;
&lt;br /&gt;
&lt;img src='http://static.getclicky.com/media/screenshots/201206-custom/custom-dashboard.png'&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Last but not least, all of these items are graphable too. Just click the trend percentage next to any custom data in any report (main report, dashboard, goal report) to see its history over time. Of course, we've only been logging this data for our stats for about 24 hours so it's not terribly exciting yet:&lt;br /&gt;
&lt;br /&gt;
&lt;img src='http://static.getclicky.com/media/screenshots/201206-custom/custom-graph.png'&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you use custom data with Clicky, we think this will be a nice addition. And if you're not using it yet, you really ought to look into it. Full documentation is &lt;a target=_blank href='https://secure.getclicky.com/help/customization#session'&gt;here&lt;/a&gt;.&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/getclicky?a=yXIm2Tm-I4Y:jDUlpnAzXmw:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/getclicky?i=yXIm2Tm-I4Y:jDUlpnAzXmw:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/getclicky?a=yXIm2Tm-I4Y:jDUlpnAzXmw:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/getclicky?i=yXIm2Tm-I4Y:jDUlpnAzXmw:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/getclicky?a=yXIm2Tm-I4Y:jDUlpnAzXmw:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/getclicky?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/getclicky/~4/yXIm2Tm-I4Y" height="1" width="1"/&gt;</description>
<pubDate>Thu, 21 Jun 2012 13:35:33 -0800</pubDate>
<bonus>1340310933</bonus>
<feedburner:origLink>http://clicky.com/blog/297/new-custom-data-report</feedburner:origLink></item>
<item>
<title>Cookies and you: An update</title>
<link>http://feedproxy.google.com/~r/getclicky/~3/3KWmMPFK4Uc/cookies-and-you-an-update</link>
<comments>http://clicky.com/blog/296/cookies-and-you-an-update</comments>
<guid isPermaLink="false">http://clicky.com/blog/296/cookies-and-you-an-update</guid>
<description>The &lt;a href=http://google.com/search?q=eu+cookie+law&gt;EU cookie law&lt;/a&gt; goes into effect May 26. This is a great law because &lt;i&gt;finally&lt;/i&gt;, all privacy issues will be permanently eradicated from the internet.&lt;br /&gt;
&lt;br /&gt;
If there was ever an example of politicians really getting the internet, it would be this. The law requires that you list on your web site all of the cookies that get set by your web site, and the purpose of each cookie. Not even session cookies, or Javascript cookies that are never sent anywhere but simply used as boolean flags, are exempt; and this makes sense, because cookies of this nature are infamous in hacker circles for their unparalleled ability to steal your credit card, read your email, and sleep with your wife. The law also requires you to get opt in permission from a visitor before any cookies can be set. Redirecting every visitor to a page with this information and the ability to opt in to cookies is a great solution, because every additional step between a visitor and a conversion increases revenue by 10x, according to a study from AreYouFreakingKiddingMe, LLC.&lt;br /&gt;
&lt;br /&gt;
We just updated our &lt;a href=http://getclicky.com/terms#privacy&gt;privacy policy&lt;/a&gt; to list all of the cookies that may get set by your site if you have Clicky installed on it, in case you need it. If this law applies to your web site, we're sorry, but you can either explain all of this to your visitors and let them opt in, or follow the instructions &lt;a href=http://getclicky.com/help/customization#cookies_disable&gt;here&lt;/a&gt; to disable cookies.&lt;br /&gt;
&lt;br /&gt;
We've had the option to disable cookies in tracking for a while, however that was created back when we only had one cookie (the tracking cookie). Since then we have added several more, whose purpose is to make the code more efficient and save resources on our end from deactivated/non-paying site (these being the session/boolean cookies mentioned above). Up until now, disabling cookies had no effect on these extra cookies. Because they were never sent to us, we didn't think it would matter. And it shouldn't. But now it does. Our tracking code has been updated so all cookies will be disabled now when this option is set (except one, but that will only be set for sites that are no longer using Clicky but still have the code installed, which is against our terms of service).&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;UPDATE&lt;/b&gt;: A user pointed out that Cloudflare still sets a cookie. We use them for our CDN (static.getclicky.com). Their wiki &lt;a href=http://support.cloudflare.com/kb/troubleshooting/can-i-disable-cloudflare-cookies&gt;says&lt;/a&gt; that cookies cannot be disabled. We have reached out to them for their plans regarding this law and will update you when we know more.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;UPDATE&lt;/b&gt;: Interestingly, the BBC, one of the biggest UK web sites, &lt;a href=http://www.bbc.co.uk/privacy/cookies/managing/cookie-settings.html&gt;specifically states&lt;/a&gt; on their new cookie settings page that they embed third party items such as Youtube and Flickr that set cookies and that these are beyond their control so those cookies will still be set no matter how they decide about cookies served directly by BBC. Does this mean that sites embedding third party content or services, such as Clicky, are exempt from having to worry about these kinds of cookies? Who knows, but it's interesting.&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/getclicky?a=3KWmMPFK4Uc:tuFzTBf1yXc:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/getclicky?i=3KWmMPFK4Uc:tuFzTBf1yXc:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/getclicky?a=3KWmMPFK4Uc:tuFzTBf1yXc:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/getclicky?i=3KWmMPFK4Uc:tuFzTBf1yXc:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/getclicky?a=3KWmMPFK4Uc:tuFzTBf1yXc:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/getclicky?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/getclicky/~4/3KWmMPFK4Uc" height="1" width="1"/&gt;</description>
<pubDate>Tue, 22 May 2012 15:47:51 -0800</pubDate>
<bonus>1337726871</bonus>
<feedburner:origLink>http://clicky.com/blog/296/cookies-and-you-an-update</feedburner:origLink></item>
<item>
<title>Database server migrations over the next couple of weeks</title>
<link>http://feedproxy.google.com/~r/getclicky/~3/CjrQD08Cd3E/database-server-migrations-over-the-next-couple-of-weeks</link>
<comments>http://clicky.com/blog/295/database-server-migrations-over-the-next-couple-of-weeks</comments>
<guid isPermaLink="false">http://clicky.com/blog/295/database-server-migrations-over-the-next-couple-of-weeks</guid>
<description>We're migrating to a new server infrastructure over the next couple of weeks, which means all of our database servers will be finding new homes. While any given database server is being migrated, traffic processing will be halted, but the server will still be online so you can view existing data. Once the files have been copied, it will need to be taken offline for 10-20 minutes while some rsync'ing magic finishes everything up, then it will be brought back online with its new hardware. At this point it will be anywhere from 30 - 120 minutes behind real time, and traffic processing will then resume.&lt;br /&gt;
&lt;br /&gt;
Anything that interrupts traffic processing is something we'd always prefer to do on the weekend. However, we can only do 2-4 servers per day and we have almost 50 database servers, so that would severely slow down the process. So, we are going to be doing it on weekdays too, and expect it to take 2-3 weeks total. But it will be worth it!&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/getclicky?a=CjrQD08Cd3E:-1Ga6ge5-Jc:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/getclicky?i=CjrQD08Cd3E:-1Ga6ge5-Jc:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/getclicky?a=CjrQD08Cd3E:-1Ga6ge5-Jc:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/getclicky?i=CjrQD08Cd3E:-1Ga6ge5-Jc:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/getclicky?a=CjrQD08Cd3E:-1Ga6ge5-Jc:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/getclicky?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/getclicky/~4/CjrQD08Cd3E" height="1" width="1"/&gt;</description>
<pubDate>Mon, 26 Mar 2012 17:09:14 -0800</pubDate>
<bonus>1332806954</bonus>
<feedburner:origLink>http://clicky.com/blog/295/database-server-migrations-over-the-next-couple-of-weeks</feedburner:origLink></item>
<item>
<title>Android Widget (beta)</title>
<link>http://feedproxy.google.com/~r/getclicky/~3/iJv1K6CHO5w/android-widget-beta</link>
<comments>http://clicky.com/blog/294/android-widget-beta</comments>
<guid isPermaLink="false">http://clicky.com/blog/294/android-widget-beta</guid>
<description>&lt;img class='fr ml10 mb10' src=http://static.getclicky.com/media/screenshots/201203-android-widget/desktop-small.png&gt;We're releasing a beta of our Android widget today. It should work on any phone running Android 2.0 or higher. &lt;br /&gt;
&lt;br /&gt;
There are three widgets to choose from, depending on your needs. You can setup one or more widgets for every site in your account. The widgets are very battery friendly, even when set to pull every 5 minutes. I've been testing it for several months now with very aggressive settings and it's had zero impact on my battery life.&lt;br /&gt;
&lt;br /&gt;
Why a widget and not a full blown app? We don't believe our resources are best spent maintaining an app that tries to do (almost) everything our web site does. Apps are much costlier to write and keep up to date. We are constantly adding new features and reports and tracking new types of data, etc. A simple widget living on your desktop (still one of my favorite Android features) that lets you keep up with your basic stats with a quick glance, with a few more details available when you click the widget (as shown &lt;a href=http://static.getclicky.com/media/screenshots/201203-android-widget/click.png&gt;here&lt;/a&gt;), fits the bill perfectly for us.&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;Handy dandy installation guide&lt;/h3&gt;&lt;ol&gt;&lt;li&gt;Since this is a beta, we're not releasing it through the official marketplace just yet. So you'll need to enable the option to install apps from unknown sources in order to install this on your phone.&lt;br /&gt;
&lt;br /&gt;
- Android 4.0+, go to &lt;i&gt;Settings -&gt; Security -&gt; Unknown sources&lt;/i&gt; (checkbox). &lt;br /&gt;
- Android 2.0+, go to &lt;i&gt;Settings -&gt; Applications -&gt; Unknown sources&lt;/i&gt; (see a small guide &lt;a href=http://www.androidcentral.com/allow-app-installs-unknown-sources&gt;here&lt;/a&gt;)&lt;br /&gt;
&lt;br /&gt;
&lt;li&gt;&lt;a class=clicky_log_download href=http://static.getclicky.com/apps/android/ClickyWidgetBeta.apk&gt;Download this file&lt;/a&gt; onto your phone!&lt;br /&gt;
&lt;br /&gt;
&lt;li&gt;Once completed, click the item in your notification bar (&lt;a href=http://static.getclicky.com/media/screenshots/201203-android-widget/download-complete.png&gt;screenshot&lt;/a&gt;) and install.&lt;br /&gt;
&lt;br /&gt;
&lt;li&gt;Setup a widget! The first time you do this, it will prompt for your username and password but you'll only have to do that once.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Important note:&lt;/b&gt; Widgets don't have icons you click to open them up like standard apps do. Instead, you must install the widget onto your Android desktop before it can be used.&lt;br /&gt;
&lt;br /&gt;
In Android 4.0+, there is a new &lt;a href=http://static.getclicky.com/media/screenshots/201203-android-widget/choose-widget.png&gt;dedicated widgets area&lt;/a&gt; in your app drawer, so go into there and long-press on the widget you want, then place it on the desktop. Older versions of Android, you'll need to long-press on your desktop until a menu pops up, then select widgets then find Clicky. There are three widgets to choose from.&lt;br /&gt;
&lt;br /&gt;
&lt;li&gt;&lt;b&gt;Android 4.0 potential installation bug&lt;/b&gt; - sometimes, on Android 4.0, you have to install the downloaded file &lt;i&gt;twice&lt;/i&gt; before it will show up in your widget drawer. This only happens on 4.0 and only sometimes, we're not sure what causes it yet, but if you don't see the widget after installing it, install it again and it will show up.&lt;/ol&gt;&lt;br /&gt;
&lt;br /&gt;
That's all there is to it. As mentioned above, you can add one or more widgets to your desktop for every site in your account, and data is pulled in a very battery friendly manner.&lt;br /&gt;
&lt;br /&gt;
This is a beta so we want your feedback and bug reports. We hope to have an official release on the marketplace within 1 month!&lt;br /&gt;
&lt;br /&gt;
&lt;img src='http://static.getclicky.com/media/screenshots/201203-android-widget/desktop.png'&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/getclicky?a=iJv1K6CHO5w:RNfRaGiuQ2U:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/getclicky?i=iJv1K6CHO5w:RNfRaGiuQ2U:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/getclicky?a=iJv1K6CHO5w:RNfRaGiuQ2U:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/getclicky?i=iJv1K6CHO5w:RNfRaGiuQ2U:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/getclicky?a=iJv1K6CHO5w:RNfRaGiuQ2U:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/getclicky?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/getclicky/~4/iJv1K6CHO5w" height="1" width="1"/&gt;</description>
<pubDate>Tue, 20 Mar 2012 11:50:58 -0800</pubDate>
<bonus>1332269458</bonus>
<feedburner:origLink>http://clicky.com/blog/294/android-widget-beta</feedburner:origLink></item>
<item>
<title>blogspot tracking issue</title>
<link>http://feedproxy.google.com/~r/getclicky/~3/MpIDVaDuNHQ/blogspot-tracking-issue</link>
<comments>http://clicky.com/blog/293/blogspot-tracking-issue</comments>
<guid isPermaLink="false">http://clicky.com/blog/293/blogspot-tracking-issue</guid>
<description>[Update: This has been fixed!]&lt;br /&gt;
&lt;br /&gt;
On Friday, Google appears to have made a change that's affecting tracking for blogspot.com hosted sites. A significant portion of our userbase is tracking blogspot.com sites so we want to get this figured out as fast as possible.&lt;br /&gt;
&lt;br /&gt;
The issue is strange. The majority of people saying tracking broke, it's only affecting visitors from Germany. This raises a red flag to me, as I know Germany has strict privacy laws. Google may have agreed to block third party scripts from loading for people who visit blogspot.com sites and live in Germany. That's a stretch but... who knows.&lt;br /&gt;
&lt;br /&gt;
Another possibility is that Google is forcing their dynamic view templates on visitors in certain countries now, either as a test or that's just the way it is. I know that it is not possible to track blogspot sites that use this new format, so that would explain it. However it seems strange Google would do such a thing, especially without publicly announcing it first. The last post on their &lt;a href=http://buzz.blogger.com/&gt;blog&lt;/a&gt; was 3 weeks ago.&lt;br /&gt;
&lt;br /&gt;
The frustrating thing is that everyone who has contacted us, I've gone to their site and verified the code is still installed. I click around on multiple pages, then view their visitor report on Clicky and verify every page I viewed was logged correctly. So everything seems fine. The code is there. I get tracked. But the stats for all of these sites are definitely way off compared to last week, so yes, something is wrong - but it's not on our end.&lt;br /&gt;
&lt;br /&gt;
And of course, there's no way to contact Google about this, other than praying they see this post.&lt;br /&gt;
&lt;br /&gt;
Does anyone know what is going on or have any ideas?&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/getclicky?a=MpIDVaDuNHQ:vIclsIVE-MA:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/getclicky?i=MpIDVaDuNHQ:vIclsIVE-MA:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/getclicky?a=MpIDVaDuNHQ:vIclsIVE-MA:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/getclicky?i=MpIDVaDuNHQ:vIclsIVE-MA:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/getclicky?a=MpIDVaDuNHQ:vIclsIVE-MA:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/getclicky?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/getclicky/~4/MpIDVaDuNHQ" height="1" width="1"/&gt;</description>
<pubDate>Mon, 19 Mar 2012 12:40:30 -0800</pubDate>
<bonus>1332186030</bonus>
<feedburner:origLink>http://clicky.com/blog/293/blogspot-tracking-issue</feedburner:origLink></item>
<item>
<title>Filter visitors by time spent online</title>
<link>http://feedproxy.google.com/~r/getclicky/~3/7LpX7l82fCQ/filter-visitors-by-time-spent-online</link>
<comments>http://clicky.com/blog/292/filter-visitors-by-time-spent-online</comments>
<guid isPermaLink="false">http://clicky.com/blog/292/filter-visitors-by-time-spent-online</guid>
<description>We've had the ability to filter by actions, e.g. exactly 10, or greater than 10, or less than 10, for quite a while now, but we didn't have the same things for time spent online. Also, we didn't have double boundary support, e.g. more than 10 AND less than 20, which means we couldn't link to these filters directly from our &lt;a href=http://getclicky.com/blog/215/new-engagement-reports&gt;engagement reports&lt;/a&gt;, something that has always driven me crazy (and you too, based on the emails we've received).&lt;br /&gt;
&lt;br /&gt;
All of this is now fixed. It also works with the API, and the docs have been updated.&lt;br /&gt;
&lt;br /&gt;
Time online is specified in seconds. Formats for both parameters are specified as shown below, if you are manually typing one in to filter by, or using the API:&lt;br /&gt;
&lt;br /&gt;
10 = exactly 10&lt;br /&gt;
&gt;10 = more than 10&lt;br /&gt;
&lt;10 = less than 10&lt;br /&gt;
10,20 = range of 10 through 20 (including 10 and 20)&lt;br /&gt;
&lt;br /&gt;
&lt;img src=http://static.getclicky.com/media/screenshots/201203-time-filter.png&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/getclicky?a=7LpX7l82fCQ:wbxcO22z37g:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/getclicky?i=7LpX7l82fCQ:wbxcO22z37g:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/getclicky?a=7LpX7l82fCQ:wbxcO22z37g:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/getclicky?i=7LpX7l82fCQ:wbxcO22z37g:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/getclicky?a=7LpX7l82fCQ:wbxcO22z37g:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/getclicky?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/getclicky/~4/7LpX7l82fCQ" height="1" width="1"/&gt;</description>
<pubDate>Fri, 16 Mar 2012 16:00:04 -0800</pubDate>
<bonus>1331938804</bonus>
<feedburner:origLink>http://clicky.com/blog/292/filter-visitors-by-time-spent-online</feedburner:origLink></item>
<item>
<title>Unique ID tags and filters (yes, finally)</title>
<link>http://feedproxy.google.com/~r/getclicky/~3/tTxVmksSOL8/unique-id-tags-and-filters-yes-finally</link>
<comments>http://clicky.com/blog/291/unique-id-tags-and-filters-yes-finally</comments>
<guid isPermaLink="false">http://clicky.com/blog/291/unique-id-tags-and-filters-yes-finally</guid>
<description>The ability to tag visitors based on IP address is a very popular feature and something we've had for 5 years now, well before we ever started using cookies to better track unique visitors. &lt;a href=http://getclicky.com/blog/211/heres-what-new&gt;When we added tracking cookies&lt;/a&gt; to the mix, we never updated the tagging system to support them. That was almost 2 years ago but as of today, we now finally support these cookies too.&lt;br /&gt;
&lt;br /&gt;
When viewing the details of a visitor session, there used to be a name this visitor link next to their IP address. We've reworded this to just say tag, but there's now two of these links: one for the IP and one for the UID so you can click either one.&lt;br /&gt;
&lt;br /&gt;
In site preferences, the sub-menu has been renamed from IP tags  filters to Visitor tags  filters, and in here you can manage all of them. When creating one from scratch, we determine if it's an IP or a UID based on the pattern of the string you enter. UID's are just numbers like 123456 so if that's what you enter, we'll use it for UID tagging or filtering. If however it's standard IP format (1.2.3.4) then it will be a normal IP tag/filter as has always been. &lt;br /&gt;
&lt;br /&gt;
That may sound confusing but the good news is that the vast vast majority of you create tags and filters directly from the session details page, so you don't have to worry about the number you're actually entering, it's done for you automatically. It still works that way, so just keep doing what you're doing and all shall be good.&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/getclicky?a=tTxVmksSOL8:iDdaoi34SGg:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/getclicky?i=tTxVmksSOL8:iDdaoi34SGg:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/getclicky?a=tTxVmksSOL8:iDdaoi34SGg:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/getclicky?i=tTxVmksSOL8:iDdaoi34SGg:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/getclicky?a=tTxVmksSOL8:iDdaoi34SGg:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/getclicky?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/getclicky/~4/tTxVmksSOL8" height="1" width="1"/&gt;</description>
<pubDate>Thu, 15 Mar 2012 14:36:39 -0800</pubDate>
<bonus>1331847399</bonus>
<feedburner:origLink>http://clicky.com/blog/291/unique-id-tags-and-filters-yes-finally</feedburner:origLink></item>
<item>
<title>Track your Facebook storefront with Clicky and Zibaba</title>
<link>http://feedproxy.google.com/~r/getclicky/~3/7BQKCq45B6Y/track-your-facebook-storefront-with-clicky-and-zibaba</link>
<comments>http://clicky.com/blog/290/track-your-facebook-storefront-with-clicky-and-zibaba</comments>
<guid isPermaLink="false">http://clicky.com/blog/290/track-your-facebook-storefront-with-clicky-and-zibaba</guid>
<description>We have partnered with &lt;a href=http://getclicky.com/go/zibaba&gt;Zibaba&lt;/a&gt; to offer real time analytics to anyone who sells, or wants to sell, products or services through Facebook.&lt;br /&gt;
&lt;br /&gt;
Zibaba lets you create an online store directly on your Facebook fan page. Visitors can buy, share, recommend, and like products, ask advice, and share discounts, generating buzz among their growing networks of Facebook friends. And now, thanks to Clicky, you can track it all in real time.&lt;br /&gt;
&lt;br /&gt;
There numerous advantages to selling through Facebook. Facebook users &lt;a href=http://www.zdnet.com/blog/facebook/facebook-is-destroying-google-in-time-spent-online-chart/4183&gt;spend&lt;/a&gt; a ridiculous amount of time online, and are &lt;a href=http://www.allfacebook.com/facebook-ecommerce-sites-2012-02&gt;9x more likely&lt;/a&gt; to engage with online retailers, to name a few.&lt;br /&gt;
&lt;br /&gt;
If you're interested, but not sure about selling on Facebook, Zibaba offers new users a 14 day trial period to test out the software for free. &lt;a href=http://getclicky.com/go/zibaba&gt;Sign up here!&lt;/a&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/getclicky?a=7BQKCq45B6Y:21-VdmAa7xo:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/getclicky?i=7BQKCq45B6Y:21-VdmAa7xo:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/getclicky?a=7BQKCq45B6Y:21-VdmAa7xo:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/getclicky?i=7BQKCq45B6Y:21-VdmAa7xo:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/getclicky?a=7BQKCq45B6Y:21-VdmAa7xo:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/getclicky?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/getclicky/~4/7BQKCq45B6Y" height="1" width="1"/&gt;</description>
<pubDate>Wed, 07 Mar 2012 17:08:37 -0800</pubDate>
<bonus>1331168917</bonus>
<feedburner:origLink>http://clicky.com/blog/290/track-your-facebook-storefront-with-clicky-and-zibaba</feedburner:origLink></item>
<item>
<title>Path analysis (beta release)</title>
<link>http://feedproxy.google.com/~r/getclicky/~3/QrG0PjjgjL0/path-analysis-beta-release</link>
<comments>http://clicky.com/blog/289/path-analysis-beta-release</comments>
<guid isPermaLink="false">http://clicky.com/blog/289/path-analysis-beta-release</guid>
<description>Almost 3 months in the oven, we are finally ready to release a BETA of our path analysis feature. We're releasing as beta because there are still a few quirks and we want your bugs reports and feedback on the interface and what you think it could do better. This is a Pro or higher feature, of course.&lt;br /&gt;
&lt;br /&gt;
Part of what took so long was making it fast, because we know our visitor filtering isn't exactly the fastest thing in the world, especially for high traffic sites over large date ranges. But we are limiting this to a maximum range of 31 days at once for the time being, to make sure resource usage doesn't get too ridiculous, until we know how you are using it.&lt;br /&gt;
&lt;br /&gt;
There are two different features in this release.&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;Simple path analysis&lt;/h3&gt;I like this one because it's quick and dirty and requires zero forethought. When viewing your Content or Events reports (planning to add downloads and outbounds later), you'll see an icon next to each item:&lt;br /&gt;
&lt;br /&gt;
&lt;img src=http://static.getclicky.com/media/screenshots/201203-path-analysis/pa-segment-icon.png&gt;&lt;br /&gt;
&lt;br /&gt;
Click this icon (not the star, the other one!) to see an inline popup of the top 30 next and previous pages, for whatever date range you are viewing. If you're interested in seeing top next/previous pages for a page listed in &lt;i&gt;there&lt;/i&gt;, click it and it will keep on going. Here's a good example for our upgrade page:&lt;br /&gt;
&lt;br /&gt;
&lt;img src=http://static.getclicky.com/media/screenshots/201203-path-analysis/pa-segment-1.png&gt;&lt;br /&gt;
&lt;br /&gt;
The top previous page is /user/. Makes sense as that's the starting point for most registered visitors, and there are links to upgrade right from that page.&lt;br /&gt;
&lt;br /&gt;
Second previous page is /user/sites - this is where people register new sites on Clicky. If they're at or over their limits for how many sites they can track or how much traffic they're allowed, we prompt them to upgrade first.&lt;br /&gt;
&lt;br /&gt;
Third previous page is &lt;a href=http://getclicky.com/compare/&gt;/compare/&lt;/a&gt;, which is our competitor comparison matrix. From our upgrade page, we have a link to this comparison matrix, so people can compare our pricing and feature set, which we think will help win over more customers since most of our competitors are 400+% more expensive than us (ouch!). So how would this be a &lt;i&gt;previous&lt;/i&gt; page? Well, after people look at it, they go back to the upgrade page! Well, some of them anyways :|&lt;br /&gt;
&lt;br /&gt;
The next two aren't horribly relevant but the sixth one, /user/users is. That's where you add additional user accounts. If you're at your user limit or your account doesn't have access to that feature, then we say, hey, you gotta upgrade!&lt;br /&gt;
&lt;br /&gt;
I could go on all day but the point is simply that seeing what pages are actually pushing people towards paying us for our service is extremely interesting. I of course had a hunch about these most popular paths since I designed the entire flow of our web site, but I didn't actually &lt;i&gt;know&lt;/i&gt;. Now I do and it's great!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;Real path analysis&lt;/h3&gt;This other aspect is much more powerful but takes longer to setup. That's to be expected of course, and if you take the time to do so it is pretty fantastic. In the future, we plan to group this together with goals for multi-step funnels. That's not making the initial cut though.&lt;br /&gt;
&lt;br /&gt;
To reach this report, go to Content, then the Path Analysis sub-tab. It gives a brief overview of how to use it. Click the link at the top to start analyzing. Once you enter in some paths and click run analysis on the bottom right, it will analyze your input and return a report like the one below. This example is fairly simplistic but I don't want to showcase too many private details of our business here.&lt;br /&gt;
&lt;br /&gt;
&lt;img src=http://static.getclicky.com/media/screenshots/201203-path-analysis/pa-infinity.png&gt;&lt;br /&gt;
&lt;br /&gt;
Until we integrate this into goals, you can use this as a kind of faux multi-funnel goal system, because you can save paths to quickly access them later.&lt;br /&gt;
&lt;br /&gt;
Important note: In the screenshot above, see how the green arrow on the right has a little break in it? This represents infinite steps in between each path. In other words, it means the visitor didn't necessary go directly from the first page to the next, but after viewing the first they &lt;i&gt;eventually&lt;/i&gt; viewed the second one. This is always the default when adding new paths in this interface. But if you only want to analyze &lt;i&gt;direct&lt;/i&gt; path 1 -&gt; path 2 flow, just click that arrow and it will become closed, representing a direct step:&lt;br /&gt;
&lt;br /&gt;
&lt;img src=http://static.getclicky.com/media/screenshots/201203-path-analysis/pa-infinity-not.png&gt;&lt;br /&gt;
&lt;br /&gt;
After you make that change, you will have to click the Run Analysis button again. In fact, any change you make in this interface you will have to do that. The reason for this is if we were auto refreshing it with every change you made, it would take a lot longer to create exactly the report you want. So instead, we let you do all the steps you want first, and only process it when you tell us too. This is an important note because it works differently than all other reports on Clicky, which all react instantly to anything you click.&lt;br /&gt;
&lt;br /&gt;
So, play around with it and let us know of any bugs you find or additional features you'd like. Barring any serious bugs, we're going to take at least a few weeks break from this because we could really use it. So we'd expect that the official release with some of your suggestions and hopefully all bug fixes would be out in about 1 month.&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/getclicky?a=QrG0PjjgjL0:BrkAVlDeffY:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/getclicky?i=QrG0PjjgjL0:BrkAVlDeffY:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/getclicky?a=QrG0PjjgjL0:BrkAVlDeffY:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/getclicky?i=QrG0PjjgjL0:BrkAVlDeffY:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/getclicky?a=QrG0PjjgjL0:BrkAVlDeffY:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/getclicky?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/getclicky/~4/QrG0PjjgjL0" height="1" width="1"/&gt;</description>
<pubDate>Tue, 06 Mar 2012 16:49:57 -0800</pubDate>
<bonus>1331081397</bonus>
<feedburner:origLink>http://clicky.com/blog/289/path-analysis-beta-release</feedburner:origLink></item>
<item>
<title>Database maintenance this weekend</title>
<link>http://feedproxy.google.com/~r/getclicky/~3/ghLfjEFlVTI/database-maintenance-this-weekend</link>
<comments>http://clicky.com/blog/288/database-maintenance-this-weekend</comments>
<guid isPermaLink="false">http://clicky.com/blog/288/database-maintenance-this-weekend</guid>
<description>Database servers 1-3, 6-10, and 14-33 will halt traffic processing for up to 10 hours this weekend while we perform some necessary maintenance. The servers will remain online so you will still have access to all of your data, there just won't be any new data processed for up to 10 hours. Most servers will be done much sooner than that, 10 hours is just the absolute max that any of them should take.&lt;br /&gt;
&lt;br /&gt;
This process will start at about 10pm on Friday (USA PST), which is the same time that our normal database backups occur.&lt;br /&gt;
&lt;br /&gt;
When each server finishes, it will begin processing its backlog of traffic that hasn't been processed yet. This means there will be an additional couple of hours for each server before it is caught up with real time again.&lt;br /&gt;
&lt;br /&gt;
The purpose of this is in preparation for transitioning to our new infrastructure. We have invested heavily in new hardware over the last 6 months and we are finally (almost) ready to make it live. This is one of the last steps before we start.&lt;br /&gt;
&lt;br /&gt;
To determine which database server a site is hosted on, take a look at the preferences page for that site.&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/getclicky?a=ghLfjEFlVTI:ofg0SnKrLfU:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/getclicky?i=ghLfjEFlVTI:ofg0SnKrLfU:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/getclicky?a=ghLfjEFlVTI:ofg0SnKrLfU:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/getclicky?i=ghLfjEFlVTI:ofg0SnKrLfU:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/getclicky?a=ghLfjEFlVTI:ofg0SnKrLfU:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/getclicky?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/getclicky/~4/ghLfjEFlVTI" height="1" width="1"/&gt;</description>
<pubDate>Thu, 01 Mar 2012 13:33:23 -0800</pubDate>
<bonus>1330637603</bonus>
<feedburner:origLink>http://clicky.com/blog/288/database-maintenance-this-weekend</feedburner:origLink></item>
<item>
<title>Custom outbound link pattern matching, and iframe tracking</title>
<link>http://feedproxy.google.com/~r/getclicky/~3/5ItS4O_aiEg/custom-outbound-link-pattern-matching-and-iframe-tracking</link>
<comments>http://clicky.com/blog/287/custom-outbound-link-pattern-matching-and-iframe-tracking</comments>
<guid isPermaLink="false">http://clicky.com/blog/287/custom-outbound-link-pattern-matching-and-iframe-tracking</guid>
<description>A lot of people seem to run plugins or custom code on their site that automatically convert links to internal redirects, so that you can count them internally. For example, instead of linking to http://getclicky.com/123 (affiliate link), you might link to http://yoursite.com/go/clicky instead. This page then redirects the person on to the real link.&lt;br /&gt;
&lt;br /&gt;
The problem with this has been that our tracking code has no idea what's actually going to happen once someone clicks that link. Without actually following the link, it simply appears to be an internal link, so we ignore it by default. There have always been several ways to track these links (&lt;a href=http://getclicky.com/help/customization#csstags&gt;CSS tagging&lt;/a&gt; and &lt;a href=http://getclicky.com/help/customization/manual#internal&gt;manual data logging&lt;/a&gt;), however these methods required way too much pain on your end. We don't like pain.&lt;br /&gt;
&lt;br /&gt;
So, we added a new customizable tracking variable today, called &lt;a href=http://getclicky.com/help/customization#outbound_pattern&gt;outbound_pattern&lt;/a&gt;. This allows you tell our tracking code, with just a few lines of code in one place, what your redirect URLs look like so that we can track clicks on them automatically. You can define it as a string, if there's only one pattern we should be looking for (should apply to most of you), or if you have multiple patterns, you can define more than one in an array.&lt;br /&gt;
&lt;br /&gt;
The most common redirect URLs that I've seen are one of these three:&lt;br /&gt;
&lt;br /&gt;
http://yoursite.com/go/clicky&lt;br /&gt;
http://yoursite.com/outbound/clicky&lt;br /&gt;
http://yoursite.com/aff/clicky&lt;br /&gt;
&lt;br /&gt;
What you'll want to use as your custom outbound pattern is the the base part of these URLs, e.g. '/go/' or '/outbound/' or '/aff/'. You'll want to make sure whatever it is you use though is unique to your redirects, otherwise other links may start getting logged as well.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Single pattern example:&lt;/b&gt;&lt;br /&gt;
var clicky_custom = {};&lt;br /&gt;
clicky_custom.outbound_pattern = '/go/';&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Multiple pattern example:&lt;/b&gt;&lt;br /&gt;
var clicky_custom = {};&lt;br /&gt;
clicky_custom.outbound_pattern = ['/go/', '/aff/'];&lt;br /&gt;
&lt;br /&gt;
This code would go directly &lt;i&gt;above&lt;/i&gt; your existing tracking code. And wrapped in HTML script tags of course.&lt;br /&gt;
&lt;br /&gt;
If you're running WordPress, our plugin has been updated to support this new functionality as well.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;iframe tracking&lt;/h3&gt;A while back, we &lt;a href=http://getclicky.com/blog/281/iframe-tracking-copying-dashboards-google-search-encoding-etc&gt;tried&lt;/a&gt; to make tracking iframes better, in an automated way. This ended up causing some problems though so we killed it fast. Now we're bringing it back, but it's disabled by default so it will only process if that's what you want it to do.&lt;br /&gt;
&lt;br /&gt;
Here's the problem. If the tracking code is installed in an iframe, we track the iframe, but in most cases your goal is to track the parent document instead. Otherwise the page URLs and page titles you see in our reports will be for the iframe itself, and we won't be able to log referrers.&lt;br /&gt;
&lt;br /&gt;
So, if your goal is to track the parent document but can only put the code in an iframe or widget (e.g. with Apple's iWeb), set &lt;a href=http://getclicky.com/help/customization#iframe&gt;clicky_custom.iframe=1&lt;/a&gt;, so that our code will grab the parent's URL, title, and referrer.&lt;br /&gt;
&lt;br /&gt;
99% of you that have the code in an iframe, your goal is to actually track the parent document. If this applies to you, set this variable, and you should be good to go.&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/getclicky?a=5ItS4O_aiEg:TIzYaaISkec:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/getclicky?i=5ItS4O_aiEg:TIzYaaISkec:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/getclicky?a=5ItS4O_aiEg:TIzYaaISkec:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/getclicky?i=5ItS4O_aiEg:TIzYaaISkec:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/getclicky?a=5ItS4O_aiEg:TIzYaaISkec:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/getclicky?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/getclicky/~4/5ItS4O_aiEg" height="1" width="1"/&gt;</description>
<pubDate>Wed, 15 Feb 2012 12:03:01 -0800</pubDate>
<bonus>1329336181</bonus>
<feedburner:origLink>http://clicky.com/blog/287/custom-outbound-link-pattern-matching-and-iframe-tracking</feedburner:origLink></item>
<item>
<title>Long term metrics, and other goodies</title>
<link>http://feedproxy.google.com/~r/getclicky/~3/gnUmyrSWVGQ/long-term-metrics-and-other-goodies</link>
<comments>http://clicky.com/blog/286/long-term-metrics-and-other-goodies</comments>
<guid isPermaLink="false">http://clicky.com/blog/286/long-term-metrics-and-other-goodies</guid>
<description>Our newest update is all about the long term, and it's one of the best things we've ever done. I'd recommend grabbing a fresh pair of pants before reading on because you're going to need them before you're done reading this.&lt;br /&gt;
&lt;br /&gt;
It all started out innocently enough: A fairly simple update to goals that before I knew it had morphed into something else entirely. 80% of the stuff in this update was never planned, all of these ideas just starting coming to me as I kept working on it. Hmmm this would be sweet, oh this too, oh and this... Within days my bullet point todo list for this update was ridiculously long and ended up taking almost 3 weeks to complete. But that's the way it usually goes when I feel I'm on to something good.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;New goal report&lt;/h3&gt;The main goal report still looks the same - until you click on a goal, that is. This new single goal report is awesome. Here's an example of one goal we track for new users registering with Clicky:&lt;br /&gt;
&lt;br /&gt;
&lt;img src='http://static.getclicky.com/media/screenshots/201202-long-term-metrics/goals.png'&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Talking points:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;You can now graph all goal metrics&lt;/b&gt; (conversions, conversion rate, revenue [not shown], visits to goal, and time to goal), simply by clicking on any of those large-sized metrics at the top of the report. Previously you could only graph conversions. We've had a million requests to graph this other data - now you finally can. We considered graphing all of them at once but they all have vastly different scales and it simply did not work well.&lt;br /&gt;
&lt;br /&gt;
&lt;li&gt;&lt;b&gt;This visit and first visit&lt;/b&gt; - Like most non-enterprise level services, Clicky &lt;i&gt;used&lt;/i&gt; to only give you this visit data, e.g. data from the current session where the visitor converted. While interesting, most visitors do not convert on their first visit to your web site, so this data doesn't show the long term effects of your marketing efforts - example, which campaign they originally came in from when they bought something two weeks later, or what site they originally were referred by, if any.&lt;br /&gt;
&lt;br /&gt;
And that's exactly what first visit is all about. When a visitor converts, we now look up both their current session &lt;i&gt;and&lt;/i&gt; their very first session on your site (that we know about it) immediately and summarize it in a table that lets us generate this report really fast, even over large date ranges. I can pull up this new report for a 30 day date range for any of the goals we track in less than 1 second. Not bad!&lt;br /&gt;
&lt;br /&gt;
Going down these two new columns are five categories (only two are shown here to keep the size reasonable). These categories are campaigns, referring domains, searches, split tests, and goals, which we feel are the most relevant metrics to track in relation to tracking conversions. Previously you could see this data if you filtered your visitors by a goal then chose the appropriate segment, but we wanted to bring these important metrics front and center and make it load super fast.&lt;br /&gt;
&lt;br /&gt;
Trends are also shown for all data types in this/first visit columns, and you can of course click the red/green percentage next to any of them to graph historical data just like you can with any other report. Of note however is that we've only been tracking this data for 3 days, so there isn't much history yet.&lt;br /&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;New visitor details page&lt;/h3&gt;The old visitor details page did the job, but I used to refer to it as Old Betty if that tells you anything about my feelings towards it. I wanted to make it look nice, and add way more details to it. So... I did!&lt;br /&gt;
&lt;br /&gt;
&lt;img src='http://static.getclicky.com/media/screenshots/201202-long-term-metrics/visitor-details.png'&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;Jam packed with details&lt;/b&gt; - &lt;a href='http://static.getclicky.com/media/screenshots/201202-long-term-metrics/visitor-details-old.png'&gt;Click here&lt;/a&gt; to see what this report used to look like, for the same visitor. There used to be a lot of wasted white space, with things like one line for browser, one for OS, and one for screen resolution. These are all related, so why not group together? Same with hostname/org, IP + ARIN/RIPE lookups, etc.&lt;br /&gt;
&lt;br /&gt;
&lt;li&gt;&lt;b&gt;All time goals&lt;/b&gt; - Everytime a unique visitor completes a goal for the very first time, we've logged it to a table for over a year now I think. This was originally so we could calculate the time to goal and visits to goal metrics, making sure we were only counting each person once per goal. While making this new update, I realized how interesting this data could be. I can't believe we've had it for as long as we have and never shown it to you like this. So, that's what this is. Every unique goal that this unique and beautiful snowflake has ever completed is shown here, in chronological order, with the date shown next to each one. Clicking on that date will take you to the session where they completed this goal!&lt;br /&gt;
&lt;br /&gt;
&lt;li&gt;&lt;b&gt;This visit / first visit&lt;/b&gt; - Just like the new goal report, we also show this kind of information in the visitor details pain now. So now whenever you're viewing the details for any of your visitors, you can immediately see interesting details from their first visit as well - including how long ago it was (in this example, 288 days and 15 hours ago). Want to see that first visit? Click on the date. Bam.&lt;br /&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;br /&gt;
Oh, you thought we were done?&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;New visitors report&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;Reorganization&lt;/b&gt; - If you use goals or campaigns, icons for those were shown near the left for visitors who had either one attached to them. The problem with this is that most visitors &lt;i&gt;don't&lt;/i&gt; have goals or campaigns attached, so this added a lot of empty white space in the middle of the report which always bothered me. So, we moved these icons to the very right hand side of the report. (This example is a bit cluttered because I filtered by visitors who had completed &lt;i&gt;any&lt;/i&gt; goal, just to make sure there was lots of things to see).&lt;br /&gt;
&lt;br /&gt;
&lt;img src='http://static.getclicky.com/media/screenshots/201202-long-term-metrics/visitors.png'&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;li&gt;&lt;b&gt;Direct Spy access&lt;/b&gt; - In the screenshot above, you'll see a third icon as well next to some visitors. What is this? Oh, it's only &lt;i&gt;the best thing ever!&lt;/i&gt; If you're old school, you'll recognize this used to be the icon we had for the Spy report, before we removed the icons because we ran out of space. If you see this eye, that means that the visitor is online now, and you can click the icon to go straight to Spy with this visitor already pre-filtered! (If you don't have a premium account, you don't have Spy, so instead we just show a green dot icon indicating their online status).&lt;br /&gt;
&lt;br /&gt;
(My only problem here is that the eye icon is available as a choice to you when setting up goals and campaigns. So you might want to change that if you're using it for anything, to prevent confusion. But there is no better icon to represent what this new function does, so I had to use it. Had to.)&lt;br /&gt;
&lt;br /&gt;
&lt;li&gt;&lt;b&gt;Quick access to visitor details&lt;/b&gt; - So those visitor details I was just telling you about before? Well, there's no need to actually &lt;i&gt;go&lt;/i&gt; to the visitor details page anymore, because they're now available directly on the main visitors report. Next to the actions link (e.g. 3 actions), is a grey arrow pointing top right. Click this icon and you'll immediately see the full visitor/session details page in a lightbox without having to go to a new page.&lt;br /&gt;
&lt;br /&gt;
&lt;img src='http://static.getclicky.com/media/screenshots/201202-long-term-metrics/visitor-popup.png'&gt;&lt;br /&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;Bonus&lt;/h3&gt;The code that generates graphs when you click on a trend (those red/green percentages) was a mess and had been rewritten multiple times in several places for specific functionality. This is called horrible design. I took the time to rewrite it from scratch and it's way smarter and centralized in one place now, as it should be. Previously this code was unable to graph anything that had a parent/child relationship - for example, the this/first visit columns in the new goal report, that data is stored as children of the parent goal. I wouldn't have been able to let you graph this without rewriting this awful code. I really had no choice here.&lt;br /&gt;
&lt;br /&gt;
So what's the bonus? Well, if you use our Twitter keyword monitoring, of course we keep history for all of that data - but we never showed you the trend percentage because we didn't want you to try to click it and have nothing happen (this data is stored with same parent/child relationship in the database). But since that mess is fixed, I have enabled the trends on the Twitter report, including the ability to graph any of them by clicking it. I use our Twitter monitoring a bit obsessively so, considering we released this feature almost 3 years ago, it's about damn time is all I have to say.&lt;br /&gt;
&lt;br /&gt;
&lt;img src='http://static.getclicky.com/media/screenshots/201202-long-term-metrics/twitter.png'&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;One more thing&lt;/h3&gt;From a UX perspective, the fact that we graph both hourly and daily data using the same colors is confusing, because we only log some data as hourly, and we show hourly by default if we have it. The only solution I can think of is to have the two types be different colors, but I can't find anything that works with our overall color scheme. We have a heavy emphasis on blue and orange. So I tried changing one of them to orange, and it looked horrible (&lt;a href='http://static.getclicky.com/media/screenshots/201202-long-term-metrics/my-eyes-they-bleed.png'&gt;screenshot&lt;/a&gt;). I'm just wondering if anyone has any ideas in this department, because I'm at a loss.&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;Ok, one more&lt;/h3&gt;In development for 2 months now is our path analysis feature. We're still working out the wiggles but expect it to be out within a few weeks and it will make an excellent partner to goals (although of course you will be able to use it without goals).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
HAPPY GROUNDHOG DAY!!!&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/getclicky?a=gnUmyrSWVGQ:SfLUTYWdkEk:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/getclicky?i=gnUmyrSWVGQ:SfLUTYWdkEk:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/getclicky?a=gnUmyrSWVGQ:SfLUTYWdkEk:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/getclicky?i=gnUmyrSWVGQ:SfLUTYWdkEk:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/getclicky?a=gnUmyrSWVGQ:SfLUTYWdkEk:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/getclicky?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/getclicky/~4/gnUmyrSWVGQ" height="1" width="1"/&gt;</description>
<pubDate>Wed, 01 Feb 2012 21:46:44 -0800</pubDate>
<bonus>1328161604</bonus>
<feedburner:origLink>http://clicky.com/blog/286/long-term-metrics-and-other-goodies</feedburner:origLink></item>
<item>
<title>Count your chickens while they're still hatching</title>
<link>http://feedproxy.google.com/~r/getclicky/~3/M13GkCqNwLo/count-your-chickens-while-theyre-still-hatching</link>
<comments>http://clicky.com/blog/285/count-your-chickens-while-theyre-still-hatching</comments>
<guid isPermaLink="false">http://clicky.com/blog/285/count-your-chickens-while-theyre-still-hatching</guid>
<description>About 3 months ago, Google &lt;a href=http://analytics.blogspot.com/2011/10/making-search-more-secure-accessing.html&gt;announced&lt;/a&gt; that all users logged in to their Google account, their search terms would be hidden from the referrer string when they clicked through. Net result is no trackers can see these search terms (surprisingly, this includes Google Analytics). Google says this is for privacy reasons. That's great, but I've said a thousand times, search analytics is one of the best reasons to run analytics in the first place so it sucks for site owners.&lt;br /&gt;
&lt;br /&gt;
Anyways, the way our code processed blank search terms, they would show up like this:&lt;br /&gt;
&lt;br /&gt;
&lt;img src=http://static.getclicky.com/media/screenshots/201201-unknown-old.png&gt;&lt;br /&gt;
&lt;br /&gt;
This has led to a lot of confusion and many people thinking Clicky is broken, because they weren't aware of this change on Google's end (understandable).&lt;br /&gt;
&lt;br /&gt;
Google updated their Analytics product to show the search as (Not provided) if it was blank. We've decided to do the same thing, although we are labeling it as [unknown] instead:&lt;br /&gt;
&lt;br /&gt;
&lt;img src=http://static.getclicky.com/media/screenshots/201201-unknown.png&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;(Update: Per request, we changed this to &lt;i&gt;[secure search]&lt;/i&gt; instead)&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
The main difference though is that this will now show up in your main searches report too. Previously blank searches just weren't logged in there. Now you will see an item for [unknown], and unfortunately it's probably pretty high on the list. For our own stats on getclicky.com, it's the #3 search term, representing about 1 out of every 6 searches.&lt;br /&gt;
&lt;br /&gt;
I wouldn't be surprised if Google made this the default for &lt;i&gt;all&lt;/i&gt; searches on Google sites within the next year or two. Hence I say to you, count your chickens etc, because that will be a horrible day for site owners the world round.&lt;br /&gt;
&lt;br /&gt;
At the very least however, I am happy to know that Google is not providing a back door to their own analytics product that allows them to log the searches but not anyone else. That would just be evil, not to mention anti-competitive.&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/getclicky?a=M13GkCqNwLo:CCC3nOSzWCY:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/getclicky?i=M13GkCqNwLo:CCC3nOSzWCY:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/getclicky?a=M13GkCqNwLo:CCC3nOSzWCY:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/getclicky?i=M13GkCqNwLo:CCC3nOSzWCY:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/getclicky?a=M13GkCqNwLo:CCC3nOSzWCY:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/getclicky?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/getclicky/~4/M13GkCqNwLo" height="1" width="1"/&gt;</description>
<pubDate>Wed, 04 Jan 2012 22:40:02 -0800</pubDate>
<bonus>1325745602</bonus>
<feedburner:origLink>http://clicky.com/blog/285/count-your-chickens-while-theyre-still-hatching</feedburner:origLink></item>
<item>
<title>Load balancing the load balancers</title>
<link>http://feedproxy.google.com/~r/getclicky/~3/vy7FptlHU74/load-balancing-the-load-balancers</link>
<comments>http://clicky.com/blog/284/load-balancing-the-load-balancers</comments>
<guid isPermaLink="false">http://clicky.com/blog/284/load-balancing-the-load-balancers</guid>
<description>Load balancing your load balancers sounds a bit ridiculous but yes, that's what we have to do to scale.&lt;br /&gt;
&lt;br /&gt;
For about three and a half years, we've had a single pair of load balancers. One active, one in hot standby mode to take over if the active one goes offline. It's worked really well, but they were reaching capacity. I've pulled all sorts of tricks out of my hat to reduce excess load, but the time finally arrived where new hardware was the only option left.&lt;br /&gt;
&lt;br /&gt;
So, we just added two more load balancers to the equation. But these new ones are twice as powerful as the old ones, and instead of active/passive pairing, they're both active. This means we have a total of three active load balancers, and these are load balanced with DNS round robin, with DNS monitoring/failover on top of that to quickly and automatically remove one from the pool in case it has a problem. The old ones act as a front for our entire service with a bunch of virtual services running on them, and hence remain paired (keeping them in sync would otherwise be a nightmare). The new ones are just for additional tracking capacity and nothing else though, so this setup is great for us.&lt;br /&gt;
&lt;br /&gt;
Speaking of tracking capacity, this just quintupled it to ~25,000 pageviews/second. Just in time too, because last year, online activity on Black Friday and &lt;i&gt;(cringe)&lt;/i&gt; Cyber Monday sent a ton of extra traffic our way and knocked us offline for a bit. This year, we're ready, so bring it!&lt;br /&gt;
&lt;br /&gt;
Something else we just changed today is that the static resources for our web site are no longer hosted on static.getclicky.com. A problem common with many trackers is that their domains are on blacklists of ad-blockers and other privacy software. These days, almost weekly we get an email from someone saying our site looks funny. This is because their browser, or their OS, or their ISP, or who knows, is blocking static.getclicky.com from loading anything, so the stylesheet doesn't get loaded (nor any of the images, javascript, etc).&lt;br /&gt;
&lt;br /&gt;
But we've had a secondary domain, staticstuff.net, that we've used as a generic CDN domain for our &lt;a href=http://getclicky.com/whitelabel/&gt;white label&lt;/a&gt; service for a while now. I had to change a few things around and get SSL running on it, but now that that's done, all assets for our web site (except the tracking code itself) will load from this domain instead. It points to the same servers, but it should bypass 99% of these blacklists because they are almost always based on domain name.&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/getclicky?a=vy7FptlHU74:0Fv8qhTj1mM:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/getclicky?i=vy7FptlHU74:0Fv8qhTj1mM:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/getclicky?a=vy7FptlHU74:0Fv8qhTj1mM:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/getclicky?i=vy7FptlHU74:0Fv8qhTj1mM:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/getclicky?a=vy7FptlHU74:0Fv8qhTj1mM:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/getclicky?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/getclicky/~4/vy7FptlHU74" height="1" width="1"/&gt;</description>
<pubDate>Tue, 15 Nov 2011 01:28:14 -0800</pubDate>
<bonus>1321349294</bonus>
<feedburner:origLink>http://clicky.com/blog/284/load-balancing-the-load-balancers</feedburner:origLink></item>
<item>
<title>Google search rankings :D</title>
<link>http://feedproxy.google.com/~r/getclicky/~3/2IoOGW9I64Y/google-search-rankings-d</link>
<comments>http://clicky.com/blog/283/google-search-rankings-d</comments>
<guid isPermaLink="false">http://clicky.com/blog/283/google-search-rankings-d</guid>
<description>Considering how much Google has been playing the privacy card recently, I'm surprised they do this, but it turns out the referrer string for Google searches typically includes a variable in the URL, cd, which signifies the approximate ranking of the link someone clicked on to get to your site for a search term. e.g. 1 would mean your page was the top result.&lt;br /&gt;
&lt;br /&gt;
We've had requests to parse this data. As of about 20 minutes ago, we are now doing just that! (&lt;a href=http://getclicky.com/user/upgrade&gt;Pro+ account required&lt;/a&gt;).&lt;br /&gt;
&lt;br /&gt;
Note that this is &lt;i&gt;passive&lt;/i&gt;, in other words, we only have the data that Google gives us as people click through on search results. We're not scraping SERPs, and we only have this data from Google because they're the only ones who do this. (If any other major engines do it too, let us know and we'll try to add it). If you want scraped results, you should use our &lt;a href=http://getclicky.com/blog/196/search-keyword-rankings&gt;SheerSEO integration&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
The screenshots below show how we report this data (5 different places - Spy is my favorite). Keep in mind the data shown in these screens is from our own stats and it's only been live for a short time so there's only a few results logged so far. But I took a peak at some super high traffic sites to see what the reports looked like there, and it's awesome.&lt;br /&gt;
&lt;br /&gt;
Also, the ranking numbers you see for any given search are the average of all searches for that term. Not all visitors see the exact same search results! So if you had two people with a search and one saw it at position 4 and the other at position 5, the number reported would be 4.5.&lt;br /&gt;
&lt;br /&gt;
First, rankings integrated right into the main search report:&lt;br /&gt;
&lt;br /&gt;
&lt;img src=http://static.getclicky.com/media/screenshots/201111-rankings-searches.png&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
But of course there's also a report dedicated to just rankings, and in this case, they are sorted from best to worst rank (menu included in the screen so you can see where to go to get this):&lt;br /&gt;
&lt;br /&gt;
&lt;img src=http://static.getclicky.com/media/screenshots/201111-rankings.png&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
We integrated it into the keywords report too, so you can see your &lt;i&gt;average&lt;/i&gt; ranking for any given single word. Note that the ranking numbers in this shot aren't accurate, since we're dividing the sum of all rankings for any word by the total number of searches for that word on that day, and since we only have ranking data for 20 minutes so far today, the divisor is out of proportion. Come tomorrow, it will be correct.&lt;br /&gt;
&lt;br /&gt;
&lt;img src=http://static.getclicky.com/media/screenshots/201111-rankings-keywords.png&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
We also added it to the dashboard search module:&lt;br /&gt;
&lt;br /&gt;
&lt;img src=http://static.getclicky.com/media/screenshots/201111-rankings-dashboard.png&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
And last but certainly not least, we put it in Spy, which is my absolute favorite. As live searches from Google stream in, we'll show you the ranking right there (if it's included in the referrer string). You might also notice we're now showing the search in the same way we used to with the old version of spy, where it's a separate string instead of just the full referrer string which is harder to read searches from:&lt;br /&gt;
&lt;br /&gt;
&lt;img src=http://static.getclicky.com/media/screenshots/201111-rankings-spy.png&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I freaking love this and hope you do too!!&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/getclicky?a=2IoOGW9I64Y:H8NqT6nL9KE:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/getclicky?i=2IoOGW9I64Y:H8NqT6nL9KE:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/getclicky?a=2IoOGW9I64Y:H8NqT6nL9KE:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/getclicky?i=2IoOGW9I64Y:H8NqT6nL9KE:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/getclicky?a=2IoOGW9I64Y:H8NqT6nL9KE:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/getclicky?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/getclicky/~4/2IoOGW9I64Y" height="1" width="1"/&gt;</description>
<pubDate>Thu, 10 Nov 2011 22:22:56 -0800</pubDate>
<bonus>1320992576</bonus>
<feedburner:origLink>http://clicky.com/blog/283/google-search-rankings-d</feedburner:origLink></item>
<item>
<title>Here's what's been happening</title>
<link>http://feedproxy.google.com/~r/getclicky/~3/27i6m0XzD1c/heres-whats-been-happening</link>
<comments>http://clicky.com/blog/282/heres-whats-been-happening</comments>
<guid isPermaLink="false">http://clicky.com/blog/282/heres-whats-been-happening</guid>
<description>It's been a rough week. I wanted to explain what has been happening recently with our CDN, and talk about all of the problems we've had with CDNs in general. If you can stomach a novel, you'll discover the good news that it's been resolved to the point where we don't foresee any further issues.&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;The quest&lt;/h3&gt;In June, we decided to move away from our &lt;a href=http://getclicky.com/blog/203/content-distribution-network-map&gt;home brew CDN&lt;/a&gt; and get a real one, because we were outgrowing it and it was becoming a real pain to manage amongst other things.&lt;br /&gt;
&lt;br /&gt;
The main requirement was that we needed support for HTTPS with our own domain name (static.getclicky.com). There are surprisingly few CDN's out there that offer this service without selling your soul and first born child. Most CDN's only let you use a generic sub-domain of their CDN's domain to get HTTPS, such as omg-secure.somecdn.net. This is fine the assets on the CDN are only for your web site, but that obviously is not the case with us.&lt;br /&gt;
&lt;br /&gt;
Literally the only two we could find that offered this feature at a reasonable price were &lt;a href=http://cloudflare.com&gt;CloudFlare&lt;/a&gt; and &lt;a href=http://maxcdn.com&gt;MaxCDN&lt;/a&gt;, so we decided to test these out. We also wanted to try one of the enterprise level ones, just to see the difference in performance. For this we chose the 800lb gorilla that is &lt;a href=http://akamai.com&gt;Akamai&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
MaxCDN offers HTTPS for $99 setup + $99/month, on top of the normal bandwidth costs. Very reasonable. The service was perfectly fine, but they only have locations in the US and Europe. This is definitely a majority of our market but we wanted Asia too. Well, they do offer Asia, but you have to upgrade to their enterprise service, &lt;a href=http://netdna.com&gt;NetDNA&lt;/a&gt;, for considerably more money. It was still less than what we were paying for our home brew CDN though, so I decided to try it.&lt;br /&gt;
&lt;br /&gt;
This was one of the worst days I've ever had. I didn't know when the transition was occurring, because I had to submit a ticket for it and then just wait. When they finished it, they let me know, but they messed up the configuration so the HTTPS didn't work. (They forgot the chain file. If you know how certificates work, that's kind of important). It was several hours before I realized this however, because DNS hadn't propagated yet - I was still hitting their old servers for a while, which were still working fine. Once I realized there was a problem, the damage had already been done to anyone who was tracking a secure site. Not to mention it completely broke our web site for our Pro+ members, since they get HTTPS interface by default and none of the assets were loading for them. I immediately emailed them to get it fixed, meanwhile I pointed the domain back to our old CDN so HTTPS would work in the meantime. But they never actually got it fixed. I don't know what the problem was, we had a lot of back and forth, but it was clear this was not going to work.&lt;br /&gt;
&lt;br /&gt;
Next was Cloudflare. I'd met the founders at TechCrunch Disrupt the previous September, they're great. Thing is, they're not technically a pure CDN. You point your DNS to them, and then all of your site's traffic passes through their network. They automatically cache all of your static resources on their servers, and then accelerate your HTML / dynamic content. Accelerating means requests to your server pass through their network directly to speed them up, but they don't cache the actual HTML - it just gets to you faster because the route is optimized.&lt;br /&gt;
&lt;br /&gt;
All in all it's a fantastic service, and I'd be all for it, but they didn't (and still don't) support wildcard DNS - which is another do-or-die feature for us because of our &lt;a href=http://getclicky.com/whitelabel/&gt;white label analytics&lt;/a&gt; service. But their rock star support guy, John, told me they could setup a special integration with us where we could just point a sub-domain to them to act as a traditional CDN. Well, it was worth trying because there weren't any other options at this price level, especially since HTTPS only costs &lt;i&gt;$1/month&lt;/i&gt; on top of their normal pricing, and &lt;a href=https://www.cloudflare.com/network-map&gt;they have servers in Asia too&lt;/a&gt;. It seemed too good to be true really. How could they be doing this for such a great price and have such good support? I'm pretty sure John doesn't sleep, no matter what time I email him I have a reply in minutes it seems.&lt;br /&gt;
&lt;br /&gt;
Anyways, the service worked great. We had it live for a week or two. At some point there was a problem that caused us to move back to our home brew CDN, although I don't recall what it was exactly. But overall I was happy and planned to test it again in the future, but I still had Akamai to test.&lt;br /&gt;
&lt;br /&gt;
Akamai is what the big boys use. Facebook, etc. I knew it was good, but also expensive. However, I figured it was worth it if the service was as good as I expected it to be. They literally have thousands of data centers, including South America and Africa which very very few CDN's have, and my speed tests on their edge servers were off the charts. Using &lt;a href=http://just-ping.com&gt;just-ping.com&lt;/a&gt;, which tests response time from over 50 locations worldwide, I could barely find a single location that had higher than 10ms response time. Ridiculous to say the least.&lt;br /&gt;
&lt;br /&gt;
They gave us a 90 day no commitment trial to test their service, which was appreciated. Their sales and engineer team were great. Very professional, timely, and helpful. But man did I hate their control panel. It was nothing short of the most confusing interface I have ever laid eyes on. I had no idea how to do anything, and I'm usually the guy who figures that kind of thing out.&lt;br /&gt;
&lt;br /&gt;
They walked me through a basic setup, but then the next thing I didn't like was discovered - any changes you want to make take 4 hours to deploy. What if you screw something up? That's gonna be a nail biting 4 hour ball of stress waiting for it to get fixed.&lt;br /&gt;
&lt;br /&gt;
I never actually got to really &lt;i&gt;test&lt;/i&gt; their service because I was just too scared of screwing it up. A few weeks had passed and I had forgotten how to configure anything. My patience was wearing thin, as our custom CDN continued to deteriorate and I was dealing with other junk too. There's always a thousand things going on around here.&lt;br /&gt;
&lt;br /&gt;
John from Cloudflare continued to email me to ask how our testing was going with these other services. He was confident Cloudflare would meet our needs. I was pretty sure too, just hadn't made up my mind yet. But I decided to go back to them because I didn't have much other choice.&lt;br /&gt;
&lt;br /&gt;
That was early August and, well, we've been with them ever since. No problems at all. Great service. Overall I have nothing but good things to say.&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;But then...&lt;/h3&gt;Well, it turns out there was a problem. A few weeks ago, our pull server (that they pull static files from) crashed, and at the same time our tracking code stopped being served. It was fixed quickly but... How could this be? They should be caching &lt;i&gt;everything&lt;/i&gt; from this server, right?&lt;br /&gt;
&lt;br /&gt;
I emailed them about it and they weren't sure how the server crashing would affect cached files being served. But unless the cache expired at the exact same time as the crash, something was definitely up.&lt;br /&gt;
&lt;br /&gt;
I did some digging and finally ended up watching the ifconfig output on the pull server, which shows bandwidth usage amongst other things. We were pushing almost 3MB per second of data out of that thing. Hmm, that doesn't seem right.&lt;br /&gt;
&lt;br /&gt;
I renamed the tracking code file as a quick test, and sure enough, suddenly Cloudflare wouldn't serve it. Put it back, bam, it worked.&lt;br /&gt;
&lt;br /&gt;
Clearly this file was not being cached. But why? Well, it wasn't their fault. The problem was the rather strange URL for our tracking code. Instead of e.g. static.getclicky.com/track.js, the URL is just &lt;a href=http://static.getclicky.com/js&gt;static.getclicky.com/js&lt;/a&gt;. This is one of those Why the hell did I ever do that type things, but is too late to change now with almost 400,000 sites already pointing to it.&lt;br /&gt;
&lt;br /&gt;
I emailed them about this and only then discovered that they cache based on file extension, not mime type or cache headers, which we of course properly serve. I wish I knew this beforehand, but wish in one hand shit in the other, see which one fills up first. &lt;br /&gt;
&lt;br /&gt;
At this point I knew I needed to do something, since this single file was not being cached properly, it relied 100% on the single pull server being online at all times. I should have made it my #1 priority but with only a single 5 minute outage in 2 months, I somehow convinced myself I could think about it for a while. This was a big mistake on my part and I apologize profusely for it - it won't happen again. I could have spent a few grand with Dyn to get failover immediately to give us a safeguard until I found the right (affordable) solution, but I didn't (more on this in a second). I'm really sorry and I won't compromise our reliability like that again. Clearly it was not worth it.&lt;br /&gt;
&lt;br /&gt;
So anyways, the same day I discover this caching issue, the server crashed... again. I got it fixed quickly, and as a quick precaution I setup another server and setup round robin DNS to serve both IPs so in case one crashed, there'd be backup. However there was not monitoring/failover on this config, but if DNS serves multiple IPs for a domain, theoretically the requester is supposed to fall back on the second one if the first one fails. I had never actually tested this scenario, but it was just an intermittent fingers-crossed fix until I got a real solution in place.&lt;br /&gt;
&lt;br /&gt;
And then the server crashed again... and I discovered this did not work as I hoped (surprise).&lt;br /&gt;
&lt;br /&gt;
Ok, so we need failover on this, like yesterday. This is now my #1 priority. Our DNS provider, &lt;a href=http://dyn.com/&gt;Dyn&lt;/a&gt;, offers this feature, but what I hate about their implementation is the restrictions they place on the TTL (time to live), which is how long DNS will cache a query for. Obviously the TTL should be fairly short for maximum uptime, but the max they allow you to set with failover is 7.5 minutes. And with our level of traffic, this increases our bill several thousand dollars a month which is a bit steep for my liking. Not to mention the expensive monthly base fee just to have this feature enabled in the first place.&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;The plan&lt;/h3&gt;I finally came up with a plan though. I found another DNS provider, &lt;a href=http://dnsmadeeasy.com&gt;DNSMadeEasy.com&lt;/a&gt;, that offers monitoring/failover for very reasonable pricing and no restrictions on TTL. I specifically emailed them about this like 4 times to confirm it would work exactly as I expected. However I can't just transfer getclicky.com to be hosted there, because we're in a contract with Dyn (sigh). So I was going to setup a different domain on their servers, and then using CNAME's, point Cloudflare to pull files from &lt;i&gt;that&lt;/i&gt; domain, instead of the sub-domain we were using for getclicky.com.&lt;br /&gt;
&lt;br /&gt;
That was yesterday. Great!, I said to myself. I'll set it up first thing tomorrow because it's almost midnight!&lt;br /&gt;
&lt;br /&gt;
And then this morning.......... that's right, the freaking server crashed again. My phone was on silent by accident and I slept in, so for almost 2 hours our tracking code was only being served for about 75% of requests (because DNS IP fallback does work some of the time, it seems). Hence, more problems this morning.&lt;br /&gt;
&lt;br /&gt;
ARGH. I screamed at my computer and just about burned down my house I was so mad. I had come up with a plan that I knew would work and was going to implement it first thing the next day, but the server crashes in the meantime and here I am in bed, blissfully dreaming of puppies and unicorns, unaware of any problems because my &lt;i&gt;STUPID PHONE IS ON SILENT. WHY. ME.&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;The fix&lt;/h3&gt;But the good news is, today, I got this all setup. Monitoring/failover is now live on our pull servers, and they are checked every 2 minutes - so if there is a problem with any of them, DNS will stop serving that IP to Cloudflare within 2 minutes at the most, and I verified it works properly by intentionally killing a server. And the TTL is only 5 minutes, so the &lt;i&gt;absolute maximum&lt;/i&gt; amount of time there could potentially be a problem for any individual person is 7 minutes. And we added a &lt;i&gt;third&lt;/i&gt; pull server, so at the most this would only affect 1/3 of anyone, and even then, for a maximum of 7 minutes.&lt;br /&gt;
&lt;br /&gt;
(Note: Above I was complaining about Dyn's 7.5 minute max TTL, and here I am with a 5 minute one. Well, this one's a bit different because only Cloudflare's servers talk to it, so the total queries generated are quite small. The real issue is we're also going to be doing this same thing in order to load balance the load balancers (really?), because we're adding two more of them this week. Using failover on &lt;i&gt;this&lt;/i&gt; is what would be really expensive, so we're avoiding that by using another DNS provider for it, and we figure we might as well do all of that monitoring and failover in one place. Load balancers are stable and reliable, so the TTL will be a bit higher - and even if not, their pricing is considerably cheaper than Dyn's, so it's all good).&lt;br /&gt;
&lt;br /&gt;
On top of all that, Cloudflare desperately wants to fix this caching problem on their end too. (I say problem in quotes because their service is working exactly as they designed it to work, I just didn't know ahead of time that caching was based on file extension only). They are working on a solution that will allow us to rewrite URLs on their end so that their servers will see the tracking code file as something that ends with a .js file extension and hence cache it properly, without us having to make any changes on our end. Once that's live, even if all 3 of our pull servers were offline (knock on wood), it should have zero impact because that stupid legacy URL file will be actually be cached!&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;In conclusion&lt;/h3&gt;So that, my friends, is as short a summary as I can write about everything we've been through with CDNs.&lt;br /&gt;
&lt;br /&gt;
And on top of all this, we also &lt;a href=http://getclicky.com/blog/281/iframe-tracking-copying-dashboards-google-search-encoding-etc&gt;made an update&lt;/a&gt; to the tracking code on Nov 1 that caused issues for some of you. This update has been reverted but that was the last thing we needed with the CDN also causing issues at the same time. [Update: And there was a small network hiccup at our data center on Nov 9 that caused a short outage. Worst week &lt;i&gt;ever&lt;/i&gt;.]&lt;br /&gt;
&lt;br /&gt;
So I don't really feel like we have earned your money this month (and to think, it's only the 8th...) If anyone wants a refund, send us an email we'll happily refund you a full month of service.&lt;br /&gt;
&lt;br /&gt;
No matter what, know that I value the quality of our service above anything else and will always do everything in my power to make sure it works flawlessly. This has been a horrible week, but as of now the CDN should not impact anyone.&lt;br /&gt;
&lt;br /&gt;
Thanks for reading and (hopefully) understanding.&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/getclicky?a=27i6m0XzD1c:WnDPonxDr4g:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/getclicky?i=27i6m0XzD1c:WnDPonxDr4g:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/getclicky?a=27i6m0XzD1c:WnDPonxDr4g:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/getclicky?i=27i6m0XzD1c:WnDPonxDr4g:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/getclicky?a=27i6m0XzD1c:WnDPonxDr4g:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/getclicky?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/getclicky/~4/27i6m0XzD1c" height="1" width="1"/&gt;</description>
<pubDate>Wed, 09 Nov 2011 01:48:57 -0800</pubDate>
<bonus>1320832137</bonus>
<feedburner:origLink>http://clicky.com/blog/282/heres-whats-been-happening</feedburner:origLink></item>
<item>
<title>iframe tracking, copying dashboards, Google search encoding, etc</title>
<link>http://feedproxy.google.com/~r/getclicky/~3/_8o6Adird7o/iframe-tracking-copying-dashboards-google-search-encoding-etc</link>
<comments>http://clicky.com/blog/281/iframe-tracking-copying-dashboards-google-search-encoding-etc</comments>
<guid isPermaLink="false">http://clicky.com/blog/281/iframe-tracking-copying-dashboards-google-search-encoding-etc</guid>
<description>It's new feature Tuesday!&lt;br /&gt;
&lt;br /&gt;
&lt;h4&gt;Better iframe support&lt;/h4&gt;A common problem we have is that people can only install the tracking code inside an iframe, but they want to track the parent document, not the iframe. But unfortunately this only tracks the iframe itself. Now I know there are plenty of people who want to track the iframe specifically, but there are &lt;i&gt;way&lt;/i&gt; more people in the other camp. So now, by default, our tracking code will detect if it's in an iframe and use the parent documents URL and title instead of the iframe's. This is already what most other services do by default.&lt;br /&gt;
&lt;br /&gt;
There is a way to override it though if you are actually wanting to track the iframe on purpose, via the new &lt;a href=http://getclicky.com/help/customization#iframe&gt;clicky_custom.iframe&lt;/a&gt; property.&lt;br /&gt;
&lt;br /&gt;
[&lt;b&gt;Nov 3 update:&lt;/b&gt; This change may have caused general tracking problems for some sites. We tested it, as we always do, against all major browsers before deployment and it worked fine, but something with it is causing problems for some of you, so the change has been reverted. We will look to add it back in the future.]&lt;br /&gt;
&lt;br /&gt;
&lt;h4&gt;Copying dashboards between sites&lt;/h4&gt;If you have a bunch of sites, you may have created the most awesome amazing &lt;a href=http://getclicky.com/blog/276/multiple-dashboards-and-custom-dashboard-modules&gt;customized dashboard&lt;/a&gt; ever. And then you have to recreate it for every site in your account. So fun!&lt;br /&gt;
&lt;br /&gt;
Well, now when you go to your customize dashboard page, there will also be a list of all the dashboards you've created for your other sites. One click and bam, that dashboard is now copied into the new site. After it's copied you can edit it if you want, or just leave as is.&lt;br /&gt;
&lt;br /&gt;
&lt;h4&gt;Google search encoding&lt;/h4&gt;Some change Google made to their URL structure is resulting in double URL encoding, and you might be seeing &lt;i&gt;searches+like+this&lt;/i&gt; instead of &lt;i&gt;searches like this&lt;/i&gt;. It's not just affecting us either, I checked my Google Analytics account (gasp!) and was seeing the same thing. As of today, we now just double URL &lt;i&gt;de&lt;/i&gt;code all searches before storing them, so this problem is history. I imagine Google will fix it on their end eventually but patience is not one of my virtues.&lt;br /&gt;
&lt;br /&gt;
&lt;h4&gt;Black nav bar&lt;/h4&gt;We know some of you don't like this but we feel it's important to have these links highly visible and easy to find. If you stick something in a footer, no one clicks the links because no one sees them. Two designs ago, when we actually had a footer, as soon as we moved a bunch of those links into the sidebar we added, the number of clicks each one was getting skyrocketed. I'm talking 10-20x as much activity. That's a good thing.&lt;br /&gt;
&lt;br /&gt;
But anyways, today, I reduced the padding so it takes up a bit less space, and also removed the position:fixed style rule so it's not &lt;i&gt;always&lt;/i&gt; on the screen, instead it's only visible when the page is scrolled up all the way. I hope that appeases some of you to a small degree at the very least.&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/getclicky?a=_8o6Adird7o:a2NIRYihKtE:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/getclicky?i=_8o6Adird7o:a2NIRYihKtE:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/getclicky?a=_8o6Adird7o:a2NIRYihKtE:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/getclicky?i=_8o6Adird7o:a2NIRYihKtE:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/getclicky?a=_8o6Adird7o:a2NIRYihKtE:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/getclicky?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/getclicky/~4/_8o6Adird7o" height="1" width="1"/&gt;</description>
<pubDate>Tue, 01 Nov 2011 13:05:31 -0800</pubDate>
<bonus>1320177931</bonus>
<feedburner:origLink>http://clicky.com/blog/281/iframe-tracking-copying-dashboards-google-search-encoding-etc</feedburner:origLink></item>
<item>
<title>More ways to view hourly data... and more!</title>
<link>http://feedproxy.google.com/~r/getclicky/~3/MN6CDCkpwts/more-ways-to-view-hourly-data-and-more</link>
<comments>http://clicky.com/blog/280/more-ways-to-view-hourly-data-and-more</comments>
<guid isPermaLink="false">http://clicky.com/blog/280/more-ways-to-view-hourly-data-and-more</guid>
<description>We just deployed a bunch of changes to hourly data, amongst other things:&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;Goals and Revenue now support hourly data&lt;/b&gt;, so you can more easily see your best converting and most profitable times of day. However, we just started doing this today, so earlier dates will not have hourly data. &lt;br /&gt;
&lt;br /&gt;
Anytime we add hourly support for something, it essentially require 24x as much storage space, which is why we only do it for a few types of data (currently: visitors, actions, tweets, clicky.me short URLs, goals, and revenue). If you saw how big our databases were already, you'd cry and then realize why this is necessary.&lt;br /&gt;
&lt;br /&gt;
&lt;li&gt;&lt;img class=fr ml20 src=http://static.getclicky.com/media/screenshots/201110-hourly-menu.png&gt;&lt;b&gt;Hourly averages&lt;/b&gt; - there are three new options in the drop down menu for hourly graphs:&lt;ul&gt;&lt;li&gt;&lt;b&gt;Same day of week average&lt;/b&gt; - example, this Monday vs the average of the last 4 Mondays&lt;br /&gt;
&lt;li&gt;&lt;b&gt;Weekday average&lt;/b&gt; - Today vs the average of all weekdays (Monday-Friday) from the last 4 weeks&lt;br /&gt;
&lt;li&gt;&lt;b&gt;Weekend average&lt;/b&gt; - Same as Weekday average but for Saturday/Sunday only&lt;/ul&gt;&lt;br /&gt;
These are all insanely useful, particularly the first one!&lt;br /&gt;
&lt;br /&gt;
&lt;li&gt;&lt;b&gt;You can set same day of week average as your default trend comparison&lt;/b&gt; in your dashboard preferences, in which case your hourly graphs will also default to displaying this mode. We initially coded in support for weekday/weekend stuff too, but they generated WAY too many queries; there were up to 20 extra pieces of data that needed to be pulled from the database &lt;i&gt;for each item&lt;/i&gt; in any given report, and it couldn't be &lt;a href=http://getclicky.com/blog/167/large-date-range-queries-now-400-900-faster-for-the-average-site&gt;optimized&lt;/a&gt; since there are holes in the date ranges.&lt;br /&gt;
&lt;br /&gt;
&lt;li&gt;&lt;img class=fr ml20 src=http://static.getclicky.com/media/screenshots/201110-28-dayz.png&gt;&lt;b&gt;Daily graphs default to 28 days&lt;/b&gt; instead of 30 days, to more cleanly fit week boundaries. We think you will find this especially useful when comparing vs previous period. An example is shown on the right.&lt;br /&gt;
&lt;br /&gt;
&lt;li&gt;&lt;b&gt;Compare menu fixes/additions&lt;/b&gt; - When viewing daily graphs, the Compare... menu has been broken for a while now. Not sure when it happened but we finally got it fixed. We also added some more options to it that were much needed (revenue, goals, campaigns, pages, and &lt;a href=http://getclicky.com/blog/162/twitter-mania-the-best-update-weve-ever-released&gt;tweets&lt;/a&gt;, to name a few).&lt;br /&gt;
&lt;br /&gt;
&lt;/ul&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/getclicky?a=MN6CDCkpwts:e2PbReiW69Y:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/getclicky?i=MN6CDCkpwts:e2PbReiW69Y:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/getclicky?a=MN6CDCkpwts:e2PbReiW69Y:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/getclicky?i=MN6CDCkpwts:e2PbReiW69Y:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/getclicky?a=MN6CDCkpwts:e2PbReiW69Y:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/getclicky?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/getclicky/~4/MN6CDCkpwts" height="1" width="1"/&gt;</description>
<pubDate>Thu, 27 Oct 2011 16:46:52 -0800</pubDate>
<bonus>1319759212</bonus>
<feedburner:origLink>http://clicky.com/blog/280/more-ways-to-view-hourly-data-and-more</feedburner:origLink></item>
<item>
<title>24-hour time formatting and smarter defaults for new sites</title>
<link>http://feedproxy.google.com/~r/getclicky/~3/da3r-UrhxgM/24-hour-time-formatting-and-smarter-defaults-for-new-sites</link>
<comments>http://clicky.com/blog/279/24-hour-time-formatting-and-smarter-defaults-for-new-sites</comments>
<guid isPermaLink="false">http://clicky.com/blog/279/24-hour-time-formatting-and-smarter-defaults-for-new-sites</guid>
<description>We have finally added a 24 hour time formatting option, so you'll see e.g. 15:30 instead of 3:30pm. This change should affect everywhere you see time within a site's reports, but if we missed something, let us know. You can change this setting in your site preferences.&lt;br /&gt;
&lt;br /&gt;
The defaults when registering a new site also just got a lot smarter. Those of you with lots of sites probably get annoyed with how many preferences you have to change every time you register a new site - particularly if you are not on the west coast of the US. Now, any time you register a new site, we'll grab the following preferences from the last site you registered and make them the default for the new one (which you can of course change if desired):&lt;br /&gt;
&lt;br /&gt;
&lt;li&gt;Time format (12/24 hour)&lt;br /&gt;
&lt;li&gt;Time zone&lt;br /&gt;
&lt;li&gt;Daylight savings&lt;br /&gt;
&lt;li&gt;Anonymous IP logging&lt;br /&gt;
&lt;li&gt;Hide hostnames in visitors list&lt;br /&gt;
&lt;li&gt;Hide ISPs&lt;br /&gt;
&lt;br /&gt;
:D&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/getclicky?a=da3r-UrhxgM:snEJeKl-Z9U:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/getclicky?i=da3r-UrhxgM:snEJeKl-Z9U:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/getclicky?a=da3r-UrhxgM:snEJeKl-Z9U:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/getclicky?i=da3r-UrhxgM:snEJeKl-Z9U:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/getclicky?a=da3r-UrhxgM:snEJeKl-Z9U:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/getclicky?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/getclicky/~4/da3r-UrhxgM" height="1" width="1"/&gt;</description>
<pubDate>Fri, 21 Oct 2011 14:42:47 -0800</pubDate>
<bonus>1319233367</bonus>
<feedburner:origLink>http://clicky.com/blog/279/24-hour-time-formatting-and-smarter-defaults-for-new-sites</feedburner:origLink></item>
<item>
<title>utm_custom: a new URL parameter to attach custom data to visitors</title>
<link>http://feedproxy.google.com/~r/getclicky/~3/4RQeSuXKP2w/utmcustom-a-new-url-parameter-to-attach-custom-data-to-visitors</link>
<comments>http://clicky.com/blog/278/utmcustom-a-new-url-parameter-to-attach-custom-data-to-visitors</comments>
<guid isPermaLink="false">http://clicky.com/blog/278/utmcustom-a-new-url-parameter-to-attach-custom-data-to-visitors</guid>
<description>One feature that gets requested a lot is to be able to set a variable in the URL that could then be attached to the visitor as &lt;a href=http://getclicky.com/help/customization#session&gt;custom data&lt;/a&gt;. This would be particularly useful for things like email newsletters, so when someone clicks through, they can be identified automatically.&lt;br /&gt;
&lt;br /&gt;
The variable name needed to be generic because of our &lt;a href=http://getclicky.com/whitelabel/&gt;white label program&lt;/a&gt;, and since we pictured this being used with campaign activity more than anything else, we decided to call the variable &lt;i&gt;&lt;b&gt;utm_custom&lt;/b&gt;&lt;/i&gt; (related to Google/Urchin's utm_campaign etc variables).&lt;br /&gt;
&lt;br /&gt;
You can see full documentation &lt;a href=http://getclicky.com/help/customization#utm_custom&gt;here&lt;/a&gt;. Because custom data requires a Pro or higher account (&lt;a href=http://getclicky.com/user/upgrade&gt;upgrade&lt;/a&gt;), this variable will also only be processed if you have a Pro or higher account.&lt;br /&gt;
&lt;br /&gt;
utm_custom is an associative array so you can set multiple key/value pairs on a single page. (It must be an array with at least one key/value pair, or it will be ignored). For example, if you sent a visitor to this page:&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;http://yoursite.com/landing/page?&lt;b class=red&gt;utm_custom[username]=Bob+Jonesutm_custom[email]=bob@jones.com&lt;/b&gt;&lt;br /&gt;
utm_campaign=Email+blastutm_content=Oct+20+2011&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
You would see this in your visitor's list:&lt;br /&gt;
&lt;br /&gt;
&lt;img src=http://static.getclicky.com/media/screenshots/201110-utm-custom-list.png&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
And this when viewing visitor/session details:&lt;br /&gt;
&lt;br /&gt;
&lt;img src=http://static.getclicky.com/media/screenshots/201110-utm-custom-detail.png width=650&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
We've had requests for this countless times over the years so we know many of you will find it quite useful :D&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/getclicky?a=4RQeSuXKP2w:nn8aeKijSf4:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/getclicky?i=4RQeSuXKP2w:nn8aeKijSf4:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/getclicky?a=4RQeSuXKP2w:nn8aeKijSf4:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/getclicky?i=4RQeSuXKP2w:nn8aeKijSf4:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/getclicky?a=4RQeSuXKP2w:nn8aeKijSf4:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/getclicky?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/getclicky/~4/4RQeSuXKP2w" height="1" width="1"/&gt;</description>
<pubDate>Thu, 20 Oct 2011 19:41:41 -0800</pubDate>
<bonus>1319164901</bonus>
<feedburner:origLink>http://clicky.com/blog/278/utmcustom-a-new-url-parameter-to-attach-custom-data-to-visitors</feedburner:origLink></item>
<item>
<title>SHUT. DOWN. EVERYTHING.</title>
<link>http://feedproxy.google.com/~r/getclicky/~3/HtqFH1uLL4c/shut-down-everything</link>
<comments>http://clicky.com/blog/277/shut-down-everything</comments>
<guid isPermaLink="false">http://clicky.com/blog/277/shut-down-everything</guid>
<description>&lt;ul&gt;&lt;li&gt;&lt;a href=https://twitter.com/#!/dohertyjf/status/119473314036072449&gt;Sites like Clicky will soon be out of business&lt;/a&gt;&lt;br /&gt;
&lt;li&gt;&lt;a href=https://twitter.com/#!/ericfat/status/119480933714886656&gt;Is it time to bid farewell to Clicky?&lt;/a&gt;&lt;br /&gt;
&lt;li&gt;&lt;a href=https://twitter.com/#!/potatomaster/status/119510056243957760&gt;With Google Analytics now offering real-time, are startups like Chartbeat and Clicky dead in the water?&lt;/a&gt;&lt;br /&gt;
&lt;li&gt;&lt;a href=https://twitter.com/#!/chinaschau/status/119540288762019841&gt;getclicky and chartbeat ought to run for the hills&lt;/a&gt;&lt;br /&gt;
&lt;li&gt;&lt;a href=https://twitter.com/#!/vibhu/status/119493045291986944&gt;Google killing off Chartbeat&lt;/a&gt;&lt;br /&gt;
&lt;li&gt;&lt;a href=https://twitter.com/#!/KelseyProud/status/119491583769980928&gt;Does anyone think the real-time Google Analytics will ... destroy Chartbeat?&lt;/a&gt;&lt;br /&gt;
&lt;li&gt;&lt;a href=https://twitter.com/#!/Mark_McGee/status/119480752764235776&gt;Is this the beginning of the end of Woopra?&lt;/a&gt;&lt;br /&gt;
&lt;li&gt;&lt;a href=https://twitter.com/#!/robertovalerio/status/119510836392902656&gt;Google attacking realtime analytics services like @chartbeat  @woopra with a new free offer&lt;/a&gt;&lt;/ul&gt;&lt;br /&gt;
Hmm... did anyone actually &lt;i&gt;read&lt;/i&gt; the &lt;a href=http://analytics.blogspot.com/2011/09/whats-happening-on-your-site-right-now.html&gt;announcement&lt;/a&gt; that Google made today? This isn't real time Google Analytics, this is a single report in GA that is real time. The rest of GA remains the same. This is more akin to Chartbeat, to be used as a real time compliment to a standard analytics package, rather than a full standalone real time service like Clicky is. But I guarantee you Chartbeat will be just fine, as will everyone else. We've all had, and continue to have, plenty of advantages over GA other than real time data.&lt;br /&gt;
&lt;br /&gt;
If anything, I'm glad Google has done this, as it will bring more awareness to the concept of real time web analytics in general. This will inevitably lead to more people searching about it, and we just so happen to have the #1 organic result for this search on both &lt;a href=http://www.google.com/search?q=real+time+web+analytics&gt;Google&lt;/a&gt; and &lt;a href=http://www.bing.com/search?q=real+time+web+analytics&gt;Bing&lt;/a&gt; (and hence &lt;a href=http://search.yahoo.com/search?p=real+time+web+analytics&gt;Yahoo&lt;/a&gt;). Everything is going to be just fine!&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/getclicky?a=HtqFH1uLL4c:OBOkV3z5XGU:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/getclicky?i=HtqFH1uLL4c:OBOkV3z5XGU:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/getclicky?a=HtqFH1uLL4c:OBOkV3z5XGU:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/getclicky?i=HtqFH1uLL4c:OBOkV3z5XGU:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/getclicky?a=HtqFH1uLL4c:OBOkV3z5XGU:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/getclicky?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/getclicky/~4/HtqFH1uLL4c" height="1" width="1"/&gt;</description>
<pubDate>Thu, 29 Sep 2011 13:59:18 -0800</pubDate>
<bonus>1317329958</bonus>
<feedburner:origLink>http://clicky.com/blog/277/shut-down-everything</feedburner:origLink></item>
<item>
<title>Multiple dashboards and custom dashboard modules</title>
<link>http://feedproxy.google.com/~r/getclicky/~3/Q58utL9REdc/multiple-dashboards-and-custom-dashboard-modules</link>
<comments>http://clicky.com/blog/276/multiple-dashboards-and-custom-dashboard-modules</comments>
<guid isPermaLink="false">http://clicky.com/blog/276/multiple-dashboards-and-custom-dashboard-modules</guid>
<description>&lt;img class=fl mr10 mb10 src=http://static.getclicky.com/media/screenshots/201109-dashboard-menu.png&gt;Paying members can now create up to 5 unique dashboards for each site, allowing you to have multiple birds-eye views of your analytics - all a click a way in the sidebar (as seen to the left). &lt;br /&gt;
&lt;br /&gt;
This is especially handy because you now have the ability to create your own dashboard modules. For example, if you want to see both top countries and top cities at the same time, you could create two new boxes, each one having one of these pieces of data. Previously, dashboard modules were categorized, so you could only view countries OR cities, but not both at once. You can add more than one data type to each module too:&lt;br /&gt;
&lt;br /&gt;
&lt;img src=http://static.getclicky.com/media/screenshots/201109-dashboard-custom.png&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
And a much requested feature is the ability to assign a default dashboard to each of your sub-users. This allows you to create things like boss mode, where he will see only the things he cares about, but you, the analytics junkie, can see everything you want.&lt;br /&gt;
&lt;br /&gt;
&lt;img src=http://static.getclicky.com/media/screenshots/201109-dashboard-user.png&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/getclicky?a=Q58utL9REdc:ybzbGb0Yv4I:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/getclicky?i=Q58utL9REdc:ybzbGb0Yv4I:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/getclicky?a=Q58utL9REdc:ybzbGb0Yv4I:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/getclicky?i=Q58utL9REdc:ybzbGb0Yv4I:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/getclicky?a=Q58utL9REdc:ybzbGb0Yv4I:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/getclicky?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/getclicky/~4/Q58utL9REdc" height="1" width="1"/&gt;</description>
<pubDate>Wed, 21 Sep 2011 15:10:39 -0800</pubDate>
<bonus>1316643039</bonus>
<feedburner:origLink>http://clicky.com/blog/276/multiple-dashboards-and-custom-dashboard-modules</feedburner:origLink></item>
<item>
<title>New option to anonymize IP addresses</title>
<link>http://feedproxy.google.com/~r/getclicky/~3/6By4eKE3oIQ/new-option-to-anonymize-ip-addresses</link>
<comments>http://clicky.com/blog/275/new-option-to-anonymize-ip-addresses</comments>
<guid isPermaLink="false">http://clicky.com/blog/275/new-option-to-anonymize-ip-addresses</guid>
<description>We just added a new site preference to log IP addresses anonymously, which takes the last octet and changes it to 0. For example, 123.123.123.123 would become 123.123.123.0. And we're not just &lt;i&gt;hiding&lt;/i&gt; the last octet from you - we remove it before storing it, so it should comply with laws in places like Germany where it's technically illegal to log the full IP address of a visitor.&lt;br /&gt;
&lt;br /&gt;
This preference is available to all users. You can find it in your site preferences, under advanced.&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/getclicky?a=6By4eKE3oIQ:9SB5-P8aNL4:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/getclicky?i=6By4eKE3oIQ:9SB5-P8aNL4:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/getclicky?a=6By4eKE3oIQ:9SB5-P8aNL4:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/getclicky?i=6By4eKE3oIQ:9SB5-P8aNL4:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/getclicky?a=6By4eKE3oIQ:9SB5-P8aNL4:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/getclicky?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/getclicky/~4/6By4eKE3oIQ" height="1" width="1"/&gt;</description>
<pubDate>Fri, 26 Aug 2011 12:28:23 -0800</pubDate>
<bonus>1314386903</bonus>
<feedburner:origLink>http://clicky.com/blog/275/new-option-to-anonymize-ip-addresses</feedburner:origLink></item>
<item>
<title>BREAKING: TWITTER'S INFLUENCE IS NOW ZERO. FACEBOOK WINS. ALL HAIL THE ZUCK.</title>
<link>http://feedproxy.google.com/~r/getclicky/~3/qpG57DF-YM0/breaking-twitters-influence-is-now-zero-facebook-wins-all-hail-the-zuck</link>
<comments>http://clicky.com/blog/274/breaking-twitters-influence-is-now-zero-facebook-wins-all-hail-the-zuck</comments>
<guid isPermaLink="false">http://clicky.com/blog/274/breaking-twitters-influence-is-now-zero-facebook-wins-all-hail-the-zuck</guid>
<description>The media loves to hate Twitter when it comes to measuring their influence, or how many people click links shared on Twitter. Even when they &lt;a href=http://techcrunch.com/2011/06/30/linkedin-traffic-twitter/&gt;state the obvious reasons&lt;/a&gt; (HTTPS sends no referrer, 99% of people use Twitter apps which also send no referrer, etc), they brush them off and pretend no one uses Twitter.&lt;br /&gt;
&lt;br /&gt;
I'm not here to defend Twitter, but they just made a big change that almost 100% guarantees headlines like the one we're using here.&lt;br /&gt;
&lt;br /&gt;
What am I blathering on about? I can't exactly tell &lt;i&gt;what&lt;/i&gt; Twitter changed, as I never paid attention to t.co really, but either they finally started actually routing &lt;i&gt;every&lt;/i&gt; link through their shortener, t.co, or they changed the way t.co redirects. The bottom line is this: you will pretty much never see a single referrer from twitter.com again. Instead you will be seeing t.co. (At least from non-Clicky analytics services - more on that in minute).&lt;br /&gt;
&lt;br /&gt;
The reason is because of the way t.co redirects. Instead of using a 301 redirect, which every shortener &lt;i&gt;should&lt;/i&gt; do, they are using a combination of a META redirect and Javascript to send you on your merry way. If you click a t.co link and hit escape really fast, your browser will pause on that page, allowing you to see the source:&lt;br /&gt;
&lt;br /&gt;
noscriptMETA http-equiv=refresh content=0;URL=http://www.addedbytes.com/blog/if-php-were-british//noscriptscriptlocation.replace(http://www.addedbytes.com/blog/if-php-were-british/)/script&lt;br /&gt;
&lt;br /&gt;
The problem is that both META redirects and Javascript redirects overwrite the original referrer. The referrer becomes the page with that code on it. Hence, no more twitter.com referrals, because every single link passes through t.co now.&lt;br /&gt;
&lt;br /&gt;
Here are screenshots of our 30 day history of referral traffic for twitter.com vs t.co. Notice the last 3 days, twitter.com is zero, and t.co has come out of essentially nowhere:&lt;br /&gt;
&lt;br /&gt;
&lt;img src=http://static.getclicky.com/media/screenshots/201108-twitter-tco.png&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;What to do?&lt;/h3&gt;We just updated Clicky to convert t.co referrers into twitter.com automatically. Knowing the specific t.co link someone came from has no value, but knowing someone came from Twitter does. No other analytics service has done this yet that we know of, so as usual our tiny size lets us move lightning fast to address issues like this.&lt;br /&gt;
&lt;br /&gt;
[Update: ok, we changed it back. See comments.]&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;But wait there's more!&lt;/i&gt; There's a damn nice silver lining here. The main reason twitter.com doesn't show up as a referral much, even before this change, is because so many people use apps instead of the actual twitter web site. When you click a link in an app, that app passes the URL to your browser, which then opens it - but that means no referrer.&lt;br /&gt;
&lt;br /&gt;
However, now that all links are being passed through t.co, and this happens via the API as well (I confirmed via our own Twitter keyword monitoring feature), this means that even people who click links from apps will be passing through t.co first. If we automatically convert t.co links into twitter.com in the backend, this means we will be able to give you a MUCH more accurate picture of Twitter's traffic to your web site. (We just pushed this change so we can't guarantee this will be the case, but based on what we've analyzed, if you use Clicky you should start seeing a huge influx of twitter.com referrals).&lt;br /&gt;
&lt;br /&gt;
This may even be the reason that they're doing redirect this way, because they're sick of the uninformed media saying they have no influence. By having a ton of t.co hits suddenly showing up in referrer logs, maybe the media will consider what that means. Doubtful, but one can always hope.&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/getclicky?a=qpG57DF-YM0:XTQ0SX_8QUg:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/getclicky?i=qpG57DF-YM0:XTQ0SX_8QUg:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/getclicky?a=qpG57DF-YM0:XTQ0SX_8QUg:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/getclicky?i=qpG57DF-YM0:XTQ0SX_8QUg:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/getclicky?a=qpG57DF-YM0:XTQ0SX_8QUg:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/getclicky?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/getclicky/~4/qpG57DF-YM0" height="1" width="1"/&gt;</description>
<pubDate>Sat, 20 Aug 2011 10:49:05 -0800</pubDate>
<bonus>1313862545</bonus>
<feedburner:origLink>http://clicky.com/blog/274/breaking-twitters-influence-is-now-zero-facebook-wins-all-hail-the-zuck</feedburner:origLink></item>
<item>
<title>JW Player tracking, and other recent changes</title>
<link>http://feedproxy.google.com/~r/getclicky/~3/fOkkLBL6oeU/jw-player-tracking-and-other-recent-changes</link>
<comments>http://clicky.com/blog/272/jw-player-tracking-and-other-recent-changes</comments>
<guid isPermaLink="false">http://clicky.com/blog/272/jw-player-tracking-and-other-recent-changes</guid>
<description>Since we released video analytics last year, the number 1 request has been to add a library for tracking JW Player. Well, we just did that. You can find it on our &lt;a href=http://getclicky.com/help/video&gt;video help page&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
We've also been fixing a bunch of bugs recently, and adding a few minor new features. We don't normally make a blog post just for this type of junk, instead preferring to piggyback on top of another post, so here we go:&lt;br /&gt;
&lt;br /&gt;
- NEW: Checkbox on the tracking code page to disable affiliate badge (for paying members)&lt;br /&gt;
- NEW: Email reports are now in your selected language, instead of English for everyone.&lt;br /&gt;
- NEW: go.mail.ru is a search engine, not a web mail domain - yes, we hear you :)&lt;br /&gt;
- FIXED: Tracking code pings now end at 10 minutes as stated in the docs, rather than 8 minutes and 40 seconds (this was a math fail on our end)&lt;br /&gt;
- FIXED: The Flashy widget was broken.&lt;br /&gt;
- FIXED: After editing site prefs, you may have seen a message about your site being disabled.&lt;br /&gt;
- FIXED: Y-axis text in charts was getting truncated for values over 6 digits.&lt;br /&gt;
- FIXED: Loading a site, changing to a different site, then choosing Bigscreen would load that for the FIRST site.&lt;br /&gt;
- FIXED: Non-paying users who use our Wordpress plugin, viewing stats within the WP admin area didn't count as a login so they were getting disabled after 60 days of no logins. Now we count that as a login, even though technically it is not, to avert this problem.&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/getclicky?a=fOkkLBL6oeU:RdRgBZ739i8:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/getclicky?i=fOkkLBL6oeU:RdRgBZ739i8:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/getclicky?a=fOkkLBL6oeU:RdRgBZ739i8:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/getclicky?i=fOkkLBL6oeU:RdRgBZ739i8:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/getclicky?a=fOkkLBL6oeU:RdRgBZ739i8:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/getclicky?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/getclicky/~4/fOkkLBL6oeU" height="1" width="1"/&gt;</description>
<pubDate>Tue, 16 Aug 2011 11:26:15 -0800</pubDate>
<bonus>1313519175</bonus>
<feedburner:origLink>http://clicky.com/blog/272/jw-player-tracking-and-other-recent-changes</feedburner:origLink></item>
</channel>
</rss>
