Need "Custom" Analytics? Not so Fast!

Everyone's first month with Google Analytics is a wonderland. Graphs are coming out of your ears, and there's so much visibility into what your users are doing! But soon the weekly patterns become old news.

So you start asking more detailed questions. You learn about segmentation, you measure your conversion rates, and you dive deep into Mixpanel, KISSmetrics, and all the other tools.

But as you dig deeper and deeper into your data, you start asking really hard questions like, "Do churned users re-activate when they get a drip email campaign?" A totally fair question! But you dug too deep. None of these out-of-the-box solutions can help you any more.

So where do you go? Is all hope lost? Do you have to build your own internal analytics system?

Most people throw up their arms in frustration and decide to build an internal system. They promptly invest an enormous amount of resources in an internal analytics team.

Before you do that, let's look at some some powerful new tools for "custom analytics".

When we talk to our customers at Segment, the same three "custom analytics" stories come up again and again: (1) you need to show customer analytics data inside your product, (2) you've dug so deep that you need to run crazy custom queries on your data, or (3) you need to visualize data that's already in your database.

There are cloud solutions for all three of these cases! Don't build your own bangin-badass-hadoop-cluster-managed-by-ten-analytics-wizards unless you really have to.

In-app Analytics from the Cloud

B2B products become gold mines when you can prove their return on investment. One compelling way to show your product's ROI is to build analytics reports into the product itself, showing each customer the results they achieve by using it.

Here's an example. Wistia automatically collects statistics about how people view your videos. They show you how many people viewed the video, how long they viewed it for, and where they viewed it from:


All these stats help a marketer justify the video production (and Wistia's hosting) to their boss. They can prove how their company benefitted. They'd be nuts not to keep paying for Wistia!

Wistia's not the only one. Salesforce includes dashboards and dials to track sales team performance, and you know the VP of Sales kills for those stats. Another example: HelpScout has built-in reports showing support request volume and response time. If you've ever run a support team, those reports drive your business decisions.

So if you're building a B2B product, include an analytics report that proves your product's business value to each customer.

But how do you actually build an in-app analytics report like that?

Some people have successfully used Mixpanel's export API, or Google Analytics' Query API to build these reports, but frequently you can't get exactly the stat you need, and the system is always clunky. Most companies end up building a hugely expensive internal analytics infrastructure.

Keen IO is a new analytics service built precisely to power your in-app analytics. You send them pure event data via their javascript API, and they provide the infrastructure to ingest, store and query that data. Their javascript library even helps you build beautiful graphs, right out of the box. Here's an example of it in use.


Case Study: Kickfolio

Kickfolio lets developers upload and run their iPhone apps in the cloud to collect feedback on it. They wanted to show their customers a graph of how many feedback sessions they'd gotten over time.

Instead of building an in-house solution, they simply send an event to Keen IO whenever a user loads the developer's app. And then they pop in an embeddable graph with 30 lines of javascript. In-app analytics feature finished:


The detailed code samples are available here.

Custom Queries without Custom Infrastructure

When you dig deep enough, you simply won't be able to answer your question with out-of-the-box analytics services. This happened to two of our customers in the last week!

One is a large education company, with a disarmingly simple question: "How often do people refresh this page?" It sounds so simple! But if you find a simple way to measure that consistently in Google Analytics I'll give you a bear hug.

The second is a small tech company. Their question was: "How many people sign up but don't immediately activate, then later activate after getting a drip email campaign?" In other words, "is my drip campaign working?" That's such a simple question to want to ask, but without a custom query you're stuck!

It's only a matter of time and digging before you too need to run a custom query. Luckily, there are a couple slick new ways to tackle this.

Amiato is making it easy to take your log files and run SQL queries against them. You have complete freedom to write arbitrarily complicated custom queries. It's a great way to answer detailed questions like the ones above. This is also the reason we rolled out Segment Warehouses.

For another option Kiruba, the co-founder of Zaask, told us about his crazy hack to use Google BigQuery to answer detailed analytics questions:


Case Study: Zaask

Zaask lets busy people delegate work to on-demand remote helpers. For their daily analytics reports they use Google Analytics and Piwik.

Recently though they needed to improve their purchase conversion rate, which led them to ask "When people abandon their task checkout, where do they go next?" Neither Piwik nor Google Analytics could answer the question.

So their co-founder Kiruba set up PHP middleware to log every action to a CSV file, and he dumped that file into Google BigQuery. BigQuery let him answer the task abandonment question with a (complicated) SQL query.

Since then they've used the same system to answer other burning questions about the balance of buyers and sellers in their task marketplace, questions that could never be answered with Google Analytics or Piwik.

Business Insights from your Own Database

The other day, my co-founder Ilya turned around and asked "What's our most popular integration?" Good question, but that would be awful to reconstruct from analytics events:

How many people toggled on Google Analytics, minus how many people toggled it off later on? And then repeat that for every integration.

Would you trust that number? No way.

Instead we just wrote quick database query and ran it in the Mongo shell. It only took a minute. And the best part: our database represents 100% truth, no room for analytics data recording errors.

And it turns out you can learn a lot just by visualizing what's already in your database.

Dave from Chartio pointed out to me that every database needs two interfaces. One to the application and one for people to visualize what's inside it.

I don't have enough fingers and toes to count the number of home-built, janky dashboards I've seen cobbled together from Twitter Bootstrap and Highcharts. They always grow into monsters, with complicated database queries that show some business-critical metric like "activation rate". I bet you have one.

Chartio connects to your database directly and then gives you the charting tools to build beautiful, non-janky dashboards.

Mozilla recently starting using Chartio to visualize nightly speed benchmarks for Gecko's networking layer Necko. Each day they plop a new row in their database for each network type, and Chartio visualizes it for them in real-time.

If you have a MySQL or Postgres database, stop building custom dashboards, connect it to Chartio and revel in your new, beautiful dashboard!

So before you run off to build your own analytics system, see if these custom analytics in the cloud solutions can help you out. Building your own analytics infrastructure is surprisingly complicated and time-consuming. Let someone else do it for you.

And if you have custom analytics needs that still aren't solved, email us! We'd love to hear what you're looking for, and odds are we can point you in the right direction.