Google Analytics Downtime Solutions

Google Analytics was down for a few hours today. While it is not unusual for an ASP service to have downtime, Google Analytics works by you including a link to their Javascript file on your website and while the website was down today that file was also unavailable. Anyone who linked to the file in the page header will have found that their websites were not loading. This is because no page content is displayed until all header files have been downloaded. This is a big deal if your business is based around the internet. Some website owners have decided to remove the service entirely because of todays incident.

The simple fix to this is to include the script tag with the link to http://www.google-analytics.com/urchin.js at the bottom of webpage, which Google now recommends doing. If the Google Analytics website goes down, and the file is unavailable, the page will continue to display normally.

Although this solves the big problem of no content being display, there are still two issues.

Analytics Functions

The first is that any calls to the Google Analytics functions such as urchinTracker to track downloads or outbound links in click events will break. The script containing the function hasn't been loaded, either because Google is down or the user simply clicked the link before the page reached loading the script tag linking to Google. The solution to this is test whether the function exists before it is called.

<a href="webdialog/webdialog.msi" class="imagelink" onclick="if (typeof(urchinTracker) != 'undefined') urchinTracker('/downloads/webdialog');">

The other problem is that any of your own Javascript in the page onload event will never be called. The onload event only runs once all content for the page, including Javascript, has been loaded by the browser. If Google Analytics is down and the browser is hung waiting on loading the Analytics script, the onload event on the page will never be raised and Javascript functions attached to the event will never be called. There are two way to deal with this issue: Either place any critical Javascript calls in an Init function, which is then called at the bottom of the page, or use Dean Edward's onload work around.

Google Analytics is a powerful service, at the right price (free!). Hopefully by taking these precautions you should be able to continue tracking visiters with Google Analytics without it interfering with the rest of your website.

Update:

What NOT to do!

Don't host a local copy of urchin.js yourself and link to that.

The reason Google is giving out a link to a file, rather than the file itself, is so that they can easily update it when fixing bugs or adding functionality. Updates will trickle down to all websites automatically.

If you are hosting urchin.js yourself then one day stats for your website may stop working without warning because your version of the file has become out of date.

Update 2:

Google has added a page about to their website about hosting the urchin.js file locally. For the same reasons I wrote above they don't recommend it.

WebDialog 1.0 released!

Newtonsoft WebDialog 1.0 has been released and is available to download and to buy.

Whew! It is a nice feeling to be able to say that :)

I'd like to thank those that tried out the beta and provided feedback. You helped me fix a number of bugs and cater to some scenarios that I wouldn't have otherwise thought of, and WebDialog is a better product for it.

You can download WebDialog here:

http://www.newtonsoft.com/downloads/

And you can now purchase WebDialog here at the new store:

http://www.newtonsoft.com/store/

If you have any questions or queries, don't hesitate to ask.

This is what is new since the last update a week ago:

  • Bug fix in IE where the page would flicker after dragging the dropdown and then changing a dropdown. You've gotta love IE.
  • Added the name of the WebDialog browser object to the IFRAME. This allows it to more easily be referenced from nested dialog pages.
  • Added documentation. Included is a class reference of WebDialog and other objects, and some task based guides to help new users getting started. They are: Display Content; Hiding, Showing and Positioning; Customizing Appearance; and Creating Modal Dialogs.
  • Packaged everything together in an MSI installer.

WebDialog beta available for download

Newtonsoft WebDialog has gotten to the point where I feel it is ready to begin beta testing.

Documentation is still largely work in progress but there are installation instructions and intellisense for all new objects, as well as a quickstart guide on this website. The WebDialog beta is fully functional when developing on your own computer.

WebDialog beta download

WebDialog quickstart guide

If you encounter any bugs or have any comments I'd love to hear them. You can either use the support request form or leave a comment here.