by Doug


Google Tag Manager, Internet Marketing

Measure Users – not numbers #SPWK

We were treated to an excellent talk by Caleb Whitmore of Analytics Pros at SuperWeek last week on the “Tyranny of data”.

One thing that Caleb said that really resonated was:

You may ask the question, how do you get to know the customer? What does “knowing the customer” mean?

I suggest you need to start by making sure your measurement implementation understands that the user is an individual. Don’t see them as a session on a device – connect the dots and understand that users are non-linear. They operate across multiple sessions and multiple platforms.

Your business knows this, right? So your measurement, marketing and CRO/personalisation systems need to know this too.

That in itself can pose considerable technical challenges. My talk on Friday presented a solution to the “extension lead” that can connect user data sources to present a unified view of user data across systems and GA properties.

The Tyranny of the hybrid app
Here’s a very quick intro into hybrid apps and how they differ from other types of apps:

See how the hybrid app is perceived to be a more straightforward mix of the minimum of native app with the meat of the mobile web app? It seems to be a simple business choice. You get an installable app in the App Store or Google Play with a minimum of fuss and expense. Hurrah!

“It’s a lazy hack. They never work. Hybrid apps are a sloppy compromise that stem from cowardice, a lack of commitment, no technical chops and an absence of moral fiber”

Ever heard anything like that before? That’s an unqualified but sincerely held technical belief. I’m not saying it’s not true. I suggest that without data, it can’t be proven or disproven. The business case seems sound but dissenters want to be heard. Who’s call is it?

The issue with the hybrid app is that it’s really hard to tell with an out of the box solution.

The native app part probably sends menu click event data to an App GA property. The mobile web part of the app will send pageview, event and transaction data to a Web GA property. There’s no transactional (ROI) data in the App property and the Web property contains data from the hybrid app and the pure mobile web data. You just can’t tell how well the hybrid app is performing. Lost. Dead in the water. Going nowhere fast.

But wait dear reader, you’re not here for a tail of woe. We gotta fix this and we can.

They key (quite literally) is to leverage a primary key to join sets of user data together.

We’ll keep the app and web properties as they are but make the linking from the native app to the mobile web a bit smarter.
We’ll ask GA on the app to pass the “clientID” to the mobile web when the user clicks a menu item. You may know about “User ID” in GA but there’s also an identifier unique to the browser (client) that is also sent with each GA hit. This is true of both logged in and logged out users, hence we’ll use client ID to get greater user coverage.

From the GA developers blog:

In order for Google Analytics to determine that two distinct hits belong to the same user, a unique identifier, associated with that particular user, must be sent with each hit.

We might use a code snippet something like the one shown below to grab the clientID from the app:

analytics = GoogleAnalytics.getInstance(context).newTracker(“UA-XXX-XX”);

We can then tack it on the end of the URL on the menu:

GTM on the mobile web app will then extract the cid querystring parameter into a variable and force the clientID value in the fields to set on all hits:

Now we’ll still have two GA properties and some data in each property will contain the same clientID value. Those are the hybrid app users. We’ve got the primary key we need but how do we go about stitching these data sets together?

There are a few options. The obvious ones are using Big Query or a roll up property. If your SQL skillz are up to scratch, you can stitch the hybrid app rows with the mobile web rows where the clientID values match and hit timestamps add up to show session data for hybrid app users. The data left over is mobile web only.
In the @SuperWeek talk I elected to demonstrate the roll up solution with a LIVE demo.

The roll up property solution obviously requires A360. The config is quite simple and results in GA magically (it’s not magic, just very clever) joining the sessions for us:

Then we have real time data that shows hybrid app menu clicks that lead to mobile web interactions. We can segment the processed data to tease apart the pure mobile web from the hybrid app/mobile web users. The hybrid app user hits could be decorated with a custom dimension but I chose to demonstrate a simple segment based on the first interaction being a menu click on the hybrid app:

The Mobile Web segment is just the inverse of this one using an exclude rather than include clause. The net result is revenue data for both segments that shows, actually, our hybrid app ain’t doing so bad!

In summary

So, we can see that what might initially have seemed like witchcraft, when broken down into smaller bite sized solutions, is actually a pretty approachable solution with the key premise of leveraging a primary key.

Take this further:

App installs – add the client ID to smart links to measure mobile web to native app installs.

AMP – make sure your AMP pages use the right client ID

Loyalty cards – preload a loyalty card with a primary key to join offline to online behaviour

Beacons & RFID – make ’em smarter – load them with a primary key

You can see where this is going – measure users as your business sees users. You can do this by joining your data sets together using the ID values you assign to users. Don’t just treat the users as numbers – use the IDs to join the behavioural dots. Understand how the humans behave to market and personalise better.

Why not take a look through the slides from the talk?


Leave a comment

Your email address will not be published.

ConversionWorks is now Media.MonksVisit us at