Persona card on Google Analytics

Jacques Giraudel
Bootcamp
Published in
9 min readSep 9, 2022

So, you made your qualitative and first quantitative researches to determine your personas : user interview, customer journey map and some surveys to have first confirmations.

Now, you want to

  • test them at scale by a clear identification on Google Analytics,
  • refine your assumptions with quantitative data,
  • discover new attributes and behaviours from your target customer

The persona card to digitize

Let’s illustrate this for a persona based on the following attributes and behaviours:

  • personality
  • domain expertise
  • demographics
  • need or goal
  • habit with features
  • choice criterias
  • contextual data
  • way to use the app
  • emotions
Stella persona card

The data you can collect

Let’s cover some common sources of data you can use to feed Google Analytics:

  • subscription form
  • actions made in the app
  • way to use the app
  • detected automatically by google analytics
  • in-app micro-survey
  • detected by the app
  • emotion SDK (video, image, text)
  • third-party data

The mechanic to match data with attributes and behaviours

Now, how to constitute your persona ?

Google Analytics offers a feature: Custom Audience, which permits to define a filter on your users based on events they triggered. On your reports, you can then filter by the selected population to check if your persona assumptions are validated by numbers or explore further behaviours.

Google Play provides metrics but does not permit to calculate proportions between multiple events, eg you want to determine what feature your users use the most to check your persona. For that, a simple counter is not enough, you have to compare it with other features usages. You can make your own calculation on Google Analytics events with Google Cloud. Google Cloud permits to export automatically each day the events base to BigQuery, you can then make any requests and calculations you want.

The problem here is that you are not on GA anymore, and then, can’t use directly these calculations to constitute your GA audience.
To do that,
* you need to reintegrate them on your customer record
(eg with a batch job which will calculate and fill the database of your customers with the calculated user attributes and behaviours)
* download them to your app
* then send them again to GA using user properties
(which express a lasting attribute or behaviour of your users)
Once you have expressed every attribute and behaviour of your persona, you can use your Google Analytics audience to regroup them in a filter.

Let’s add an example of the different ways we can use these data to determine the attributes and behaviours of our persona:

Directly as User Property

This typically concerns data get from the subscription form (eg for demographic attributes).

Stella is a female, 35-y old, married and live in city.

Attributes are simple to collect and do not require multiple events like behaviours. You just have to set each of them as User Property in the code of your app when the form is submitted.

eg: user property “gender” = f, user property “age” = 35, etc.

With a proportion on a set of events

An example can be with the data given automatically by google analytics (eg for contextual data within a behaviour).

Stella uses the app from her smartphone (not with her desktop computer).

These GA parameters are sent within each events and need to be processed afterward to be used as User Property to say “Stella uses the app most of the time with her smartphone”.

As explained before, once BigQuery Export enabled on Google Analytics, your events will be automatically sent on BigQuery which will allow you to access the data to make additional processing (eg with a batch program). The calculation here is simple, we just have to determine the % of the events which have the “device category” parameter set to “mobile” to say “Stella uses the app never/sometimes/often/most of the time/ with her smartphone”. Once calculated by the batch program, the info can be saved on the customer database then retrieved back by the app to be send to Google Analytics as User Property.ass

With a formula based on different factors

For the attributes and behaviours not directly observable (eg for personality attributes), it is a bit more difficult, you have to make assumptions based on other events.

Stella is that kind of person which is attentive to details.

How to detect this attribute based on an app usage?
You think it’s not really possible to determine it with exactitude based on a sequence of touch on a mobile phone.

That’s true but, if you are familiar with agility, you have probably already heard of the Gilb Principle:

Anything you need to quantify can be measured in some way that is superior to not measuring it at all.

You will have to walk with this in mind if you really want to test further your persona cards.

Let’s come back to the attentive attribute. In your first observations, what lead you to determine this trait of personality? Did you made user tests? All these first observations are a good base to determine how to measure this attribute with the related behaviours.

Your test user checked his bank statement reading carefully each line and scrolling the whole page. You can use the scroll speed and the fact he scrolls all the page as indicators. Once you have identified the indicators you can use, the hard part is to determine the mathematic formula which permit to tag the user as “attentive”.

A simple way to do that is to select the most convincing ones, assign them a reliability ratio, combine them, check on all of the sessions, to determine a minimum score which trigger the attribution of the attribute.

Example of formula

* scrolling the full bank statement page (event a) means “attentive”:
reliable? almost sure (75%), a score of 0.75 is attributed to the event

* scrolling a page of data on the bank statement with a speed superior to 5s (event b) means “attentive”:
reliable? very probable (50%), a score of 0.5 is attributed to the event

As the observed behaviours could not occur on every reading of the bank statement, we also have to define a total score to reach, say here an average score of 0.5 to give the “attentive” trait

Final formula

(event a occured * 0.75+ event b occured * 0.5) / total of reading > 0.5 to give the “attentive” attribute

You will probably have to test your formula and iterate.

Refine with in-app micro-surveys

Everything is not easy to infer from in-app behaviours, for those cases you have the possibility to directly ask the user in the app with a micro-survey. These micro-surveys can be integrated with a marketing SDK (eg Survicate which offer a free formula) and answers can trigger the set of a specific User Property within the app or a specific event in Google Analytics that can be later studied on the whole sessions (see previous paragraphs).
Be careful, if the survey is not mandatory, you will not be able to determine exclusively if yes or not the user has the property. In this case, you can combine the answer event with other events to not exclude entirely users who have not answered (see formula paragraph).

Detection of the kinds of data not already covered

  • “actions made in the app”: with a specific GA event sent during the action
  • “emotions SDK”:
    * with a specific GA event for emotions that can be detected on the fly,
    * directly within the batch for emotions that can’t be detected on the fly (eg the analysis of a video which can take some seconds)
  • “detected by the app” (eg geolocation): specific parameter to send with other events when detected

Integrate data from other sources

The processing of the GA events outside the app gives you the opportunity to integrate additional data to your formulas, for example using insights collected by your data scientist or using third party data (like an excel file containing customer data).

Finalize the Stella card

Let’s sum up the different attributes and behaviours and how to check them in the app:

Personality

  • Attentive : with a formula
  • Always in a rush:
    with a formula using for example the navigation quickness or an emotion analysis of her chat messages with her counselor

Domain expertise

  • basic usage:
    with a proportion of basic feature events (eg banking statement reading) over the whole feature events (eg stock portfolio)

Demographics

  • F, 35 y-o, live in city, married: directly as user property, 3p data integrated by batch

Need / Goals

  • watch her expenses:
    with a proportion of the banking statement reading event over the other feature events, with a formula integrating a micro-survey
  • stick to her budget: same with budget feature events

Habits / choice criterias

  • check often her banking statement to watch her expense:
    with a proportion of the banking statement reading event over the other feature events
  • talk from times to times with her counselor to check her expenses:
    with a proportion of the contact counselor feature event over the other feature events
  • choice criterias for choosing chat over phone call:
    with a formula integrating a micro-survey following a communication

Contextual data

  • Use the app with her smartphone:
    with a strong proportion of the device category parameter set to mobile over the whole events
  • Use the app on the move:
    with a strong proportion of events sent with the “on the move” parameter, this parameter can be detected by the app using the geolocation (if not at the home location means “on the move”)

Way to use the app

  • Jump quickly from a screen to another:
    with a formula based on the average interval between the different events occuring over every app session

Emotions

  • Stressed:
    with a formula based on emotion analysis (chat messages or phone calls)

Configure the Custom Audience

Now that we have set User Properties for every attribute and behaviour of our persona, we are ready to configure Google Analytics with the “Audience” feature (configure > audience > new audience > custom audience).

You just have to set a condition for every user property set and link them with AND conditions on a “whole session” scope.
To measure your audience, you also need to set a period of validity. This can be set to a value of 1 day (as the user properties conditions apply to the whole events, it is equivalent to longer periods). Don’t forget, in your batch job, to reset the user properties for behaviours that require frequency.

To get the more accurate audience, I recommend to start with only the attributes and behaviours that you are sure to collect easily. You can then add other behaviours one by one, by creating first the user property mechanic without adding it to the audience, then test if it matches with your current audience. This can be done using the audience report or the Demographics report of GA with a comparison of your audience to your audience + the behaviour to test.
You can also test here different combinations of user properties to detect new personas.

Your digitized persona card

You have here a full method, accessible to everyone (easy to setup, free, with or without data expert), to create a Google Analytics audience matching your persona card.
To fully digitize your persona card, you can even go further by creating your persona card directly with Google Data Studio to add dynamic stats from your customer records (or any other tool that can request a database like Miro or Notion).

Stella persona card with stats

--

--