Profile

Cover photo
Simo Ahava
Works at Reaktor
Attended University of Helsinki
3,050 followers|1,023,112 views
AboutPostsPhotosVideos

Stream

Simo Ahava
owner

Guides & References  - 
 
Here's my latest #GTMTips post. This time we're looking at some useful CSS selectors you can use in your Click and Form Triggers (for example).
 
#GTMTips: 10 Useful CSS Selectors

Here's 10 CSS selectors that I find myself using in almost every Google Tag Manager project I undertake.

CSS selectors are useful little things, which let you determine the distribution of style directives on your site, but they also let you select elements with DOM methods, letting you combine them with, for example, Google Tag Manager's trigger conditions. This way you can ensure that your Click and Form Triggers are recorded always on the correct elements.

#gde #blogpost #googletagmanager
Without a doubt, the possibility to leverage CSS selectors in Google Tag Manager’s trigger conditions is one of the most useful features of the platform. It gives you an amazing amount of flexibility, especially when combined with GTM’s click and form triggers. Essentially, CSS selectors let you test an HTML Element against a selector string. …
View original post
14
Add a comment...

Simo Ahava

Shared publicly  - 
 
New version of GTM Tools in the works, looking for ideas

I wrote GTM Tools as a free service for working with the Google Tag Manager API. Currently, it provides the following services:

- Clone a container from account to account
- Compile a new container from parts of different containers, and copy this to an account
- Save the newly compiled container in to a library, where it will be stored for you
- Visualize containers

I have some time on my hands, so I've been rewriting a lot of the code to add a lot of stability and better error handling. On top of that, I'm introducing some small feature updates to make the toolset more useful.

Please, if you have ANY feature requests or change requests, let me know in this thread!

I would love to get feedback, and I really want to add new features to the tools, but I'm running out of imagination :) Since it's just me developing and managing GTM Tools, there will be limitations as to what type updates I have the resources to commit to, but all feedback is taken into consideration.
GTM Tools v2.0 are utility tools for Google Tag Manager. They make use of the API to help you manage your assets in GTM.
11
1
Michael Ulrich's profile photoMatt Gaskey's profile photoSimo Ahava's profile photo
12 comments
 
+Matt Gaskey thanks, interesting idea! It would require some revamping of the UI (a multi-select list), and I'm personally slightly concerned about stalling the app for so long (for minutes at a time, even), but I'll definitely put this on the backlog for my team (i.e. me) to evaluate when the time comes
Add a comment...

Simo Ahava
owner

Sharing  - 
 
Excellent stuff from +Zorin Radovancevic. When using Measurement Protocol outside the regular libraries (analytics.js, gtm.js), it's important to understand what parameters are utilized by Google Analytics to attribute the incoming hits to sessions and users (and sometimes Ecommerce transactions).

Client ID is the most obvious one, but Zorin nicely highlights other parameters that might be easily forgotten or ignored when building the HTTP requests.
 
Using #googleanalytics Measurement protocol? Here are some helpful tips on adjusting / preserving attribution
Why widening the Gogole Analytics Measurement protocol hit is essential and which parameters should be included when sending payloads to Google Analytics.
View original post
14
2
phuong may dam's profile photo
 
hahihi
Add a comment...

Simo Ahava
owner

Guides & References  - 
 
Howdy! Here's a walkthrough for setting up a Google Analytics request debugger, which logs invalid GA requests (i.e. invalid fields, invalid values) in whatever endpoint / repository you want. We'll log the errors in Google Analytics in this walkthrough, but nothing's stopping you from sending them to your logging endpoint of choice.
 
Log failed Google Analytics requests

It's difficult to keep tabs on failed Google Analytics requests. I'm not talking about obvious things like JavaScript errors or blocked requests, but actual calls to the endpoint /collect which are invalid. GA doesn't tell you if they were invalid - there's no HTTP response or any error message if the call was incomplete.

GA has a wonderful endpoint debugger, where you can send Measurement Protocol payloads to see if they're valid. In this article, we'll use this tool to duplicate every request to the regular GA endpoint, and send them to the debugger. If the request is invalid, we'll log this in Google Analytics as a new "Validation Error" event.

This tool uses the GA Spy solution written by +Stephen Harris in an earlier guest post on my blog (https://www.simoahava.com/analytics/introducing-ga-spy-for-google-analytics/).

#gde   #blogpost   #googletagmanager   #googleanalytics  
Debug and log your Google Analytics requests automatically as new GA events. This solution validates all requests to GA, logging any errors therein.
View original post
2
1
Zorin Radovancevic's profile photoPhil Pearce's profile photoSimo Ahava's profile photo
3 comments
 
Thanks Phil

This solution wouldn't catch oversized payloads, since analytics.js prevents the request from ever being made in case the payload size is over 8K.

But yeah, it's definitely a problem. +Eivind Savio has this great auto-chopper for large Enhanced Ecommerce payloads: https://www.savio.no/analytics/easier-enhanced-ecommerce-product-promo-tracking
Add a comment...

Simo Ahava

Shared publicly  - 
 
Log failed Google Analytics requests

It's difficult to keep tabs on failed Google Analytics requests. I'm not talking about obvious things like JavaScript errors or blocked requests, but actual calls to the endpoint /collect which are invalid. GA doesn't tell you if they were invalid - there's no HTTP response or any error message if the call was incomplete.

GA has a wonderful endpoint debugger, where you can send Measurement Protocol payloads to see if they're valid. In this article, we'll use this tool to duplicate every request to the regular GA endpoint, and send them to the debugger. If the request is invalid, we'll log this in Google Analytics as a new "Validation Error" event.

This tool uses the GA Spy solution written by +Stephen Harris in an earlier guest post on my blog (https://www.simoahava.com/analytics/introducing-ga-spy-for-google-analytics/).

#gde   #blogpost   #googletagmanager   #googleanalytics  
Debug and log your Google Analytics requests automatically as new GA events. This solution validates all requests to GA, logging any errors therein.
3
4
Add a comment...

Simo Ahava
owner

Guides & References  - 
 
Here we go! Hacking around Accelerated Mobile Pages' limitations when it comes to Google Analytics and the _ga cookie.

With these tips and solutions, you can set up an endpoint on your web server to make sure that all AMP content always uses the _ga cookie, so that in GA you can identify the user even if they move from regular content to AMP content.
 
Google Analytics Client ID in AMP analytics

If your content is being served via Accelerated Mobile Pages using the amp-analytics module, you might have noticed a troublesome thing: the Client ID, used to identify Google Analytics users, used by AMP is completely different from the one typically stored on your domain in the _ga cookie!

It only gets worse if your content is served through Google search or Google's AMP cache. They use localStorage instead, which means that the same user browsing the same AMP page can have THREE different Client IDs (_ga, AMP_ECID_GOOGLE and localStorage). Whaaat?

In this article, +Dan Wilkerson and myself show you a method of making sure that your AMP pages always use the _ga cookie for the client ID. The same cookie is served regardless of where the content is actually served from. We do this by creating a simple API/endpoint in your web server, and some setting and getting of the cookie in the HTTP request and response, respectively.

We'll also show you how to create a proxy for the Google Tag Manager container in the same way!

#gde   #blogpost   #googleanalytics   #googletagmanager  
This article is a guide for leveraging Google Analytics' Client ID regardless of where your AMP content is served (Google's AMP Cache, for example).
View original post
5
1
Add a comment...

Simo Ahava

Shared publicly  - 
 
#GTMTips: 10 Useful CSS Selectors

Here's 10 CSS selectors that I find myself using in almost every Google Tag Manager project I undertake.

CSS selectors are useful little things, which let you determine the distribution of style directives on your site, but they also let you select elements with DOM methods, letting you combine them with, for example, Google Tag Manager's trigger conditions. This way you can ensure that your Click and Form Triggers are recorded always on the correct elements.

#gde #blogpost #googletagmanager
Without a doubt, the possibility to leverage CSS selectors in Google Tag Manager’s trigger conditions is one of the most useful features of the platform. It gives you an amazing amount of flexibility, especially when combined with GTM’s click and form triggers. Essentially, CSS selectors let you test an HTML Element against a selector string. …
8
3
Add a comment...

Simo Ahava
owner

Guides & References  - 
 
Here are some tips for efficiently running workspaces in your Google Tag Manager container. You can either ignore workspaces completely, working in a single container draft as you used to (no harm in that), or you can leverage the new feature to introduce a lot of agility to your GTM process.
 
#GTMTips: Change Management With Workspaces

Here's a quick #GTMTips  post about Google Tag Manager's Workspaces feature, and how to efficiently use them to improve your organization's GTM process.

The most important thing, I've found, is to develop Google Tag Manager in small, incremental changes. For this purpose, workspaces does the job beautifully, and it also allows you to get by with the limitation of only three concurrently running workspaces available in the free version of Google Tag Manager.

#gde   #blogpost   #googletagmanager  
Short #GTMTips article about Google Tag Manager workspaces, and some tips for leveraging them efficiently in your organization's GTM process.
View original post
3
Add a comment...

Simo Ahava

Shared publicly  - 
 
#GTMTips: Change Management With Workspaces

Here's a quick #GTMTips  post about Google Tag Manager's Workspaces feature, and how to efficiently use them to improve your organization's GTM process.

The most important thing, I've found, is to develop Google Tag Manager in small, incremental changes. For this purpose, workspaces does the job beautifully, and it also allows you to get by with the limitation of only three concurrently running workspaces available in the free version of Google Tag Manager.

#gde   #blogpost   #googletagmanager  
Short #GTMTips article about Google Tag Manager workspaces, and some tips for leveraging them efficiently in your organization's GTM process.
2
1
Add a comment...

Simo Ahava
owner

Guides & References  - 
 
Sharing this latest article here, as it walks you through how to process invalid Google Analytics requests and log them. In the example, we'll use Google Tag Manager to get things done, but it should be quite trivial to implement this with on-page GA as well.
 
Log failed Google Analytics requests

It's difficult to keep tabs on failed Google Analytics requests. I'm not talking about obvious things like JavaScript errors or blocked requests, but actual calls to the endpoint /collect which are invalid. GA doesn't tell you if they were invalid - there's no HTTP response or any error message if the call was incomplete.

GA has a wonderful endpoint debugger, where you can send Measurement Protocol payloads to see if they're valid. In this article, we'll use this tool to duplicate every request to the regular GA endpoint, and send them to the debugger. If the request is invalid, we'll log this in Google Analytics as a new "Validation Error" event.

This tool uses the GA Spy solution written by +Stephen Harris in an earlier guest post on my blog (https://www.simoahava.com/analytics/introducing-ga-spy-for-google-analytics/).

#gde   #blogpost   #googletagmanager   #googleanalytics  
Debug and log your Google Analytics requests automatically as new GA events. This solution validates all requests to GA, logging any errors therein.
View original post
10
1
Fabien BOURGOIS's profile photoemma lucrecia nuñez furlan's profile photo
3 comments
 
Excelente 
 ·  Translate
Add a comment...

Simo Ahava
owner

Guides & References  - 
 
Here's a guide for Google Tag Manager, too! Part of this solution is to create a proxy which grabs the Google Tag Manager container, substitutes its GA requests with the correct Client ID from the _ga cookie, and then returns the container JSON to the website which made the request.

This way you can be guaranteed that the user stays the same even if they navigate between regular and AMP content.
 
Google Analytics Client ID in AMP analytics

If your content is being served via Accelerated Mobile Pages using the amp-analytics module, you might have noticed a troublesome thing: the Client ID, used to identify Google Analytics users, used by AMP is completely different from the one typically stored on your domain in the _ga cookie!

It only gets worse if your content is served through Google search or Google's AMP cache. They use localStorage instead, which means that the same user browsing the same AMP page can have THREE different Client IDs (_ga, AMP_ECID_GOOGLE and localStorage). Whaaat?

In this article, +Dan Wilkerson and myself show you a method of making sure that your AMP pages always use the _ga cookie for the client ID. The same cookie is served regardless of where the content is actually served from. We do this by creating a simple API/endpoint in your web server, and some setting and getting of the cookie in the HTTP request and response, respectively.

We'll also show you how to create a proxy for the Google Tag Manager container in the same way!

#gde   #blogpost   #googleanalytics   #googletagmanager  
This article is a guide for leveraging Google Analytics' Client ID regardless of where your AMP content is served (Google's AMP Cache, for example).
View original post
3
Add a comment...

Simo Ahava

Shared publicly  - 
 
Google Analytics Client ID in AMP analytics

If your content is being served via Accelerated Mobile Pages using the amp-analytics module, you might have noticed a troublesome thing: the Client ID, used to identify Google Analytics users, used by AMP is completely different from the one typically stored on your domain in the _ga cookie!

It only gets worse if your content is served through Google search or Google's AMP cache. They use localStorage instead, which means that the same user browsing the same AMP page can have THREE different Client IDs (_ga, AMP_ECID_GOOGLE and localStorage). Whaaat?

In this article, +Dan Wilkerson and myself show you a method of making sure that your AMP pages always use the _ga cookie for the client ID. The same cookie is served regardless of where the content is actually served from. We do this by creating a simple API/endpoint in your web server, and some setting and getting of the cookie in the HTTP request and response, respectively.

We'll also show you how to create a proxy for the Google Tag Manager container in the same way!

#gde   #blogpost   #googleanalytics   #googletagmanager  
This article is a guide for leveraging Google Analytics' Client ID regardless of where your AMP content is served (Google's AMP Cache, for example).
8
2
Add a comment...
Work
Occupation
Senior Data Advocate at Reaktor
Skills
Professionally it all boils down to web analytics
Employment
  • Reaktor
    Senior Data Advocate, 2015 - present
  • Netbooster
    Head of Analytics, Nordic, 2015 - 2015
  • NetBooster Finland
    Production Director, 2013 - 2015
  • Innofactor Oyj
    Product Manager, 2012 - 2013
  • Innofactor Oyj
    Sales and Project Manager, 2010 - 2012
  • VARIENG
    Research assistant, 2008 - 2010
  • K-Market Kotikontu
    Myyjä, 2003 - 2008
Basic Information
Gender
Male
Story
Tagline
Senior Data Advocate
Introduction
I observe the following chain of actions in all my professional work:

I analyze the data at hand before I do anything -> I plan ahead on the basis of my analysis -> I act on my plan as soon as it clears -> I communicate my actions to all stakeholders -> I identify any best practices that can help in future work.

My clients inspire me, staying on top of latest trends and technologies motivates me, and data drives me.

I'm a moderator in the wonderful Google Tag Manager and Google Analytics Google+ communities, and I'm also a Google Developer Expert for 2014-2015 and 2015-2016 (Google Analytics).
Bragging rights
Bragging is lame
Education
  • University of Helsinki
    MA: English Philology, General Linguistics, North American Studies, 2003 - 2010
Links
YouTube
Other profiles
Contributor to