Track Brand and Non-Brand Traffic in Google Data Studio
Few weeks ago, buzzing around on Twitter, I stumbled upon this thread by Adam Volk talking about brand search terms and traffic, and how to understand if the arrow up and green percentage in reports is because of you (aka SEO team) or brand dept.
I really enjoyed his thread, and I think the solution Adam purposed is definitely useful.
Anyway, if you are collaborating with people not expert using Search Console, it could add some friction point; so I prefer keep track of the evolution and the segmentation between brand and non brand traffic and terms using Google Data Studio both for reporting and monitoring purposes. I’m really in love with GDS reporting because:
- It uses GSC data, so you’re sure your data source is legit.
- It’s set and forget: you set up the slide one time only, and then it’s indipendent and doesn’t require any other extraction or action from you, like going directly to GSC.
- It comes to you every monday morning, if you set e-mail delivery. Or whenever you want.
So I decided to pack a little guide with examples and template on how to measure brand and non-brand traffic in Google Data Studio.
Setting up the dashboard
First of all, collect all the varieties of your brand name you can find using Google Search Console, Google Ads Search Terms, or a tool like SEMRush, Ahrefs or Sistrix, and pack together in a regex.
Let’s say you’re doing this for Apple. It may turn in something like:
Then, import in GDS a Site Impression Table of the GSC property you want to put under the lens. Import the Web Property Parameter.
Then, it’s sufficient create a very simple calculated field . Here’s the code:
CASE WHEN REGEXP_MATCH(Query,".*(brand_name_1|brand_name_2|brand_name_3).*") THEN "Brand" ELSE "Non Brand" END
Pay attention here: you should use .* and () both to be sure you can get not only KWs that are exact match of the brand name, but queries that contain brand terms as well. I usually like to group them in “Brand” anyway, because those queries are related to the brand.
In Regex, .* means everything; so in this case means: “everything that’s before or after the capture group”.
() is a capture group. It makes Regex match the group of characters in the given order; so it’s necessary to exactly match the string “apple”.
The pipe |, in the end, means OR in Regex.
Insight: Regex lessons
A useful template in GDS
It’s time to share the template I set up every single time to keep track of the changings.
- A date picker, to set the timeframe you will.
- A Time Series chart to monitor the evolution of our previously created calculated field: Brand and Non Brand.
- A Pie Chart to have a quick snapshot of the composition of the traffic in the chosen timeframe.
- A table with two dimensions: Query and Brand vs Non Brand, and all 4 GSC metrics. I like to use the table for two different checks:
- Understanding the evolution of a specific term, using a comparison date frame.
- Uncovering the distribution of brand and non brand queries on pages, to understand how much brand traffic impact different pages and stages of funnel. Pay attention here: in order to achieve this, you need to set up a Brand vs Non Brand dimension in a URL Impression table, so you should create another table, and set another calculated field there.
And that’s it! You can push the integration between Google Data Studio and Google Search Console even further, like: