Full Stack Python

# Web analytics

Web analytics involves collecting, processing, visualizing web data to enable critical thinking about how users interact with a web application.

## Why is web analytics important?

User clients, especially web browsers, generate significant data while users read and interact with webpages. The data provides insight into how visitors use the site and why they stay or leave. The key concept to analytics is learning about your users so you can improve your web application to better suit their needs.

## Web analytics concepts

It's easy to get overwhelmed at both the number of analytics services and the numerous types of data points collected. Focus on just a handful of metrics when you're just starting out. As your application scales and you understand more about your users add additional analytics services to gain further insight into their behavior with advanced visualizations such as heatmaps and action funnels. The seven stages of startup analytics grief post is an amusing read and provides context for how to begin and then grow tracked metrics over time.

### User funnels

If your application is selling a product or service you can ultimately build a user funnel (often called "sales funnel" prior to a user becoming a customer) to better understand why people buy or don't buy what you're selling. With a funnel you can visualize drop-off points where visitors leave your application before taking some action, such as purchasing your service.

## Open source web analytics projects

- Piwik is a web analytics platform you can host yourself. Piwik is a solid choice if you cannot use Google Analytics or want to customize your own web analytics platform.

- Open Web Analytics is another self-hosted platform that integrates through a JavaScript snippet that tracks users' interactions with the webpage.

## Hosted web analytics services

- Google Analytics is a widely used free analytics tool for website traffic.

- Clicky provides real-time analytics comparable to Google Analytics' real-time dashboard.

- MixPanel's analytics platform focuses on mobile and sales funnel metrics. A developer builds what data points need to be collected into the server side or client side code. MixPanel captures that data and provides metrics and visualizations based on the data.

- KISSmetrics' analytics provides context for who is visiting a website and what actions they are taking while on the site.

- Heap is a recently founded analytics service with a free introductory tier to get started.

- CrazyEgg is tool for understanding a user's focus while using a website based on heatmaps generated from mouse movements.

## Web analytics resources

- Google Analytics for Developers

- Pandas and Google Analytics shows how to use pandas for data analysis with Google Analytics' API to perform calculations not available in the tool itself.

- Build your own Google Analytics Dashboard in Excel show how to extract your Google Analytics data via their web API and Python helper library so it can be used in other tools such as Excel.

- This beginner's guide to math and stats behind web analytics provides some context for understanding and reasoning about web traffic.

- This post provides context for determining if a given metric is "vanity" or actionable.

- Read this post on how your analytics software actually works to get a better understanding of what's going on behind the scenes from a technical perspective.

- Heap vs MixPanel compares the two analytics services.

## Web analytics learning checklist

Add Google Analytics or Piwik to your application. Both are free and while Piwik is not as powerful as Google Analytics you can self-host the application which is the only option in many environments.

Think critically about the factors that will make your application successful. These factors will vary based on whether it's an internal enterprise app, an e-commerce site or an information-based application.

Add metrics generated from your web traffic based on the factors that drive your application's success. You can add these metrics with either some custom code or with a hosted web analytics service.

Continuously reevaluate whether the metrics you've chosen are still the appropriate ones defining your application's success. Improve and refine the metrics generated by the web analytics as necessary.

### What's the next topic you want to learn about?

What should I know about web application security?

How do I integrate external APIs into my web application?

I want to learn how to automate setting up my app.

How do I run code outside the HTTP request-response cycle?

#### Interested in major updates to this site or an alert when a complete Full Stack Python book with detailed example code is released? Sign up here and you'll an occasional email only when there's big news to report.