Accessibility

Adobe AIR article

 

Building the Analytics Reporting Suite for Google Analytics


Table of Contents

From concept to product

Like most cool ideas, the Analytics Reporting Suite was never really intended to be a go-to-market product at first. In fact, Adobe AIR didn't even exist back then, so I never expected the Analytics Reporting Suite to evolve into the product it has become. At that time I was working at an interactive agency. They had a fairly large portfolio of clients using Google Analytics as their measurement platform and somehow I got involved in the whole analytics process. Managing a lot of profiles with the Google Analytics web interface felt quite cumbersome and I wanted to see if there was anything I could do to boost the productivity of the analytics department.

After doing some research, I immediately learned that this wasn't going to be very easy as Google Analytics is one of the few Google services that doesn't offer a public data API. Not willing to give up, I started developing my own ActionScript data API for Google Analytics by manually documenting the web interface and examining each and every HTTP request. Over time, I learned more and more on how Google Analytics worked and soon I had a fully featured ActionScript data API.

After I completed the data API, I started looking on how I was going to present that data to the user. Was this going to be a web or a desktop client? Which technologies would I use to visualize and manage all that data?

This proofed to be a very though challenge. Adobe Flex was an obvious choice for the user interface, and the charting components provided a strong base to do the data visualization, but it soon became clear that a browser based web application wasn't powerful enough for all the things I wanted to do.

For the first alpha version I used a Flash/Flex wrapper, using MDM Zinc, to add desktop capabilities and break out of the browser. Although this approach got the job done, I encountered a number of problems that prevented me from pursuing this project any further:

  • When using a Flash wrapper you end up with an EXE/DMG file which is a serious setback when you intent to distribute a desktop application compared to a web application.
  • There was no true cross-platform support. Although you can publish cross-platform apps, there’s a huge difference in the code base between Windows and Mac.
  • It was very hard to create a good development workflow, you had to recompile the Flex application each time and debugging was a pain.
  • PDF and HTML support were poor, and creating an advanced component like the Site Overlay (explained below, in the section "Some of the technical challenges") was just not possible.

Just when I thought I had hit a roadblock, Adobe announced AIR, a cross-operating system runtime that would bridge the gap between the web and the desktop. I was very excited about the news; more importantly, AIR bridged the gaps of traditional desktop wrappers:

  • Easy distribution: Even now, when people ask me what the I believe to be the coolest feature of AIR, my answer is: "Its distribution model." The seamless installation with the install badge is just great and really enhances the user experience.
  • Cross-platform support: Adobe AIR is truly cross-platform both from a runtime and a development perspective. For me it's not enough to be able to run an application on different systems. What I love about Adobe AIR is that any team member can use the tools they like on the operating system they prefer.
  • Flex Builder support: I've been doing Flash development for years and after moving to Flex it really hurts to go back doing Flash once in while. Flex Builder is built on the highly customizable Eclipse editor. It has code completion, code refactoring, an integrated debugger, and a memory profiler.
  • Supports multiple technologies: Some things work better in HTML and some things will never even be possible with Flex. If you're building truly engaging application relying on just one technology can be a serious handicap. The way Adobe AIR integrates HTML and Flash content is just awesome. Adobe AIR seamlessly integrates JavaScript and ActionScript which let’s you mix up Flex and HTML content really easy.

Adobe AIR really revived the project and proved to be the perfect tool for the job.