How to deep dive in your product funnel performance with GA and Data Studio [Step by step guide]

Jason Spanomanolis
8 min readMay 21, 2018

--

Disclaimer: All data shown here are made up. In case of GA screens I just used a very specific set of filters and changed names to essentially remove business context.

As a Google Analytics 360 user, I enjoyed using the beta funnel functionality in the custom reports section. It was great that I was able to utilise any dimension I wanted to create rules for the user interaction steps:

Closed Funnel Example in GA… Great
Multi dimensional rules

Analysing my product this way was really helpful, since I could define a certain user interaction sequence through page/screen views, events and different variables, and get a snapshot of how each step performs in terms of getting users to the next one. However, there were certain shortcomings that where nagging me in this approach:

  1. Only works with Google Analytics 360 accounts. Currently the funnel feature is not available with non-premium GA accounts. 👎.
  2. Evolution Analysis. As a product manager I want to be able to easily see how each step of the funnel is performing across time. Has the “Delivery Detail” step dropped last week vs previous period? How is the new PSP we integrated changing that step conversion rate? Checking that through custom reports is annoying since its a snapshot only.
  3. Segmentation Analysis. As any aspiring Analytics ninja knows, all data in aggregate is crap. I want to be able to see how each step of my funnel is performing against my important dimensions. Are there any browsers that block a specific step? How are CRM sessions performing comparing to SEO sessions? New vs Returning users? Cities? Technically I can do this in GA by creating advanced segments or a custom report for each, but…no.

In case I wanted to extend my analysis to cover my needs, the solutions I know of are:

  • Export hit level data from BigQuery, and write SQL queries to construct each metric. However this requires again a bigquery account with GA 360, and a data engineer to accommodate the needs. I want to be able to think of a micro funnel after a release and set up my reports and breakdowns independently, without coding needed.
  • Google Analytics goal funnels. Unfortunately only supports page rules, so doesn’t work with all dimensions & variables I want to use.
  • Create a google analytics goal for each funnel step, and then create a GA custom metric for the ratio between them. E.g. Goal 1: Add to cart, Goal 2: Signup popup, Custom Metric: Signup popup / Add to cart. Problems here: 1) Goals can’t be defined as sequences of rules within a session, 2) 15 goal limit per view, 3) 5 calculated metrics limit per view
  • Use an external analytics tool. I’m pretty sure that Heap Analytics offers each funnel step as a metric, maybe Mixpanel does as well. However, extra tools = extra cost + implementation time.
  • Implement enhanced ecommerce. With enhanced ecommerce, google analytics creates metrics for each of the standardised funnel steps, which can be used then to create ratios, and breakdown as needed. This works, but needs EE implementation to be done, and well, its a bit standardised to an ecommerce flow.

After researching and experimenting I came up with a flow that allows me to analyse my product on the level that I want, without external help or coding. The main steps are:

  1. Document the user flow diagram
  2. Identify tracking definitions for each interaction I want to track on the funnel
  3. Create GA advanced segments with sequence rules for each funnel step
  4. Use Supermetrics or another tool to export the data to google sheets
  5. Build metrics & reports to Data Studio

Let’s explore each step independently:

1. Document the user flow diagram

As a product manager or analyst, you should probably have a flow chart documenting all the potential user interactions across your product. In case you don’t, I suggest you do it asap. It can be very insightful for you to understand all the potential outcomes and edge cases, and potential wormholes that users might get into.

Basically this diagram should document all the screens, decision points, and user interactions (clicks, taps, inputs) that users take during their product journey. I’m usually using LucidChart for my flows, draw.io is also really good.

Snapshot of example user flow diagram

As you go through, it’s helpful to also document & colour code which pages & interactions are tracked in your data layer and google analytics account. For web, a useful extension to use for that is Data Slayer, that allows you to see the GTM/GA events being sent as you go through the flow. For apps, you will have to use a tool like Charles to proxy the calls being made from your app.

Example of GTM & GA events sent by booking.com

2. Tracking Definitions

Once you have finished documenting the flowchart of your product interactions, you will have also identified the main and secondary funnels that are mandatory steps of a specific outcome. The main outcome for an ecommerce site or a marketplace is obviously the transaction, but you might also have identified other micro-outcomes, for example:

Outcome: Log-in

Step 1 — Log in CTA click

Step 2— Phone number input

Step 3 — Pin input

Step 4 — Pin confirmation

Step 3 — Log in confirmation

Outcome: Social Share

Step 1 — Share CTA click

Step 2 — SM platform selection

Step 3 — Share completion

For the outcomes and steps you define, its helpful to create a tracker documenting the google analytics definitions of your interactions. It will look something like this:

Tracker for user interactions in GA

3. GA Advanced Segments

As seen on the above screenshot on the last column, for each interaction I create an advanced segment in GA, where I define each based on conditions and sequence from the previous ones steps, so this represents an actual funnel. Don’t forget to add a prefix with an increment at the beginning that follows the flow, this makes things easier later on.

For example, the interaction 6. Cart — Contact would be created as:

One thing you have to consider, is where you initialise the sequence, because the decision you make will affect what exactly you measure for users that enter the funnel from different entry points, for non-mandatory parts of the funnel.

For example, if you have a lot of users landing on your product details page, if on your sequence you start from the homepage, you will exclude those users from the analysis. I would suggest:

  • For mandatory parts of the funnel (=all users that complete the outcome have to go through), always include it on the sequence
  • For optional parts of the funnel (=users can complete without going through), don’t include, and just later on export your data along with a landing content group dimension, so you can see how that step completion rate compares between users that start there vs entered before

4. Supermetrics data export

So, we have defined the specific outcomes and steps we want to track as funnels. We now have to export the data from Google Analytics in a format that can be consumed by Data Studio (or some other reporting tool) in an automated fashion.

What we essentially need, is to export data so that each of the funnel steps is a separate metric counting interactions. This way we can create ratios between them, and break them down in further dimensions (time, platform, user type channel,etc).

Unfortunately, the official google analytics spreadsheet add-on has a limit of 4 segments per export, and the direct data studio integration from Google Analytics doesn’t allow you to export the data with the format needed, since segments are just a filter configuration.

Luckily, Supermetrics allows us to export the data exactly as we need them, and Google Sheets has a handy integration with Data Studio.

After you enable the Supermetrics add-on for google sheets, you will be able to create a new query from the sidebar. You select GA as the the source, and select property and views to use (you can select multiple views if you want to expand to multiple platforms).

In metrics, you should select just sessions, which basically exports for each segment the number or sessions that contain the specific interaction defined.

In rows you should add the session level default and custom dimensions that are important for you to break down the funnel steps in. In columns, just add the Segment Name dimension and choose to sort Alphabetically. For example:

Example Super metrics export config

In the segments section, you should select the segments that you have defined above:

Additionally, on the options, select to try to avoid sampling, filter out spam referrals, format results for data studio, and uncheck the note regarding sampling.

The export you get will be something like this:

5. Data Studio report

Create a new report, and select to add Google Sheets as a new data source:

Data Studio data source selection

After selecting the spreadsheet and tab where you have the data, select to connect the source. After you connect, you will see a screen similar to this one:

Now we have to calculate our ratios. Click on “add field”, and divide the relevant fields. For example:

Custom field

After you calculate all the required custom fields, go back to the fields screen and mark them as numeric →percentage:

Select to add the fields to the report. Finally, we are ready to create our reports. We can go ahead and create reports like the following:

Evolution analysis of micro conversion rates for desktop & mobile

I can now audit exactly what is happening for each step of my funnel across time, and filter as I chose by channel, user type, landing page group, or any other dimension I have included on the report. Or, I can do a segmentation analysis for a certain dimension, for example browsers:

mCVR segmentation by device and browser

The data above are as mentioned randomized, but being able to break down your funnel steps in your important dimensions (device, user type, channel, landing page group, browsers etc) can help uncover insights into which areas of your product you can look into to increase performance.

--

--