David Vallejo - Web Analyst

SEO meets GA: Tracking search bots visits within measurement protocol

I've been attending lately (and having) to some talks about the logs parsing from the SEO perspective, (from @David Sottimano on Untagged Conference and Lino Uruñuela during some dinner time), and I've decided to publish a WordPress plugin that I started to work on some years ago, and that for work reasons I had it left on my "I'll do it" drawer and it never came back to my mind. First thing I need to the point to, is that this is…


Cross-Domain tracking with clean urls

I've been told by a lot of clients that the way that Google Analytics cross-domain tracking works is "ugly", referring to having the linker param attached to the URL. I must admit is not elegant having all that long hash on the url, thougt it won't affect the page functionality. In the other side there isn't any other to pass the current client Id from the Universal Analytics cookie to the destination domain without dealing with server-side hacks…


Bringing back utm_nooverride functionality to Universal Analytics

Universal Analytics removed the utm_nooverride=1 functionality, still we can define a list domain referrals to be treated as direct visits within our properties configuration section, but what about when we can't control the source domains?, for example for emailings, or some display campaign that we don't want to override our users original attribution?. We're going to use Google Tag Manager, so bring back this functionality to our implementations.…


#Tip - Finding out if a key-value has been already pushed into the dataLayer

Sometimes we may be in the situation that we need to know if some info had been already pushed into Google Tag Manager's dataLayer in order to take some action. For example we may need to know if some custom event it's already in the dataLayer in order to prevent something to be fired twice, or we may need to check if some value is already in place. The following snippet, will help us to know that info, looping thru all the dataLayer pushes and returning…


How to keep your returning user's legacy data when switching domain name

When we're switching a site domain name we always have in mind some basic steps to take in mind so the migration doesn't end being a mess. One of those steps is usually 301-ing our old domain content to the new one, but we never think on how will this affect our current Google Analytics data. Universal Analytics cookie is based on the domain hostname, so if we switch the current domain a new cookie set will be created along with a new client…


Google Tag Manager event tracking using data attribute elements

On the last #tip we talked about how to debug/qa our data attributes , and now we're going to learn about how to natively track events/social interactions within Google Tag Manager . We're going to learn it, basing our tracking on Google Analytics Events and Social Interactions. Of course this can be expanded to any other tool just changing the data attributes, but hey, this is about to learning not about give me a copy and paste solution.…


GAUPET Release: Google Analytics User Permissions Explorer Tool

Some months ago I asked some friends to test a new tool I was working on and past week I released something close to an open alpha, today after pulling some details, a new UI redesign 100% mobile compatible. I'm announcing the GAUPET release. At first I named it as GA Governance Tool, but after some interesting chat with the "osom" Yehoshua Coren . I(we)'ve decided to change the tool's name to something that it's closer to what it…


#Tip - How to quickly debug/qa data attributes

With the years I learned that using CSS selectors to track user actions is really great but sadly I learned too that it's really dangerous too. It's true that we won't need to ask the IT team to add some dataLayer or ga pushes into the page, and therefore saving a lot of precious time, but in the other side, any single page update or testing will break our tracking. Now I try to use data attributes whereas is possible, since those are more likely…


Universal Analytics Plugin Online Hackathon - Dual tracking

I've been thinking about doing a Google Analytics related hackaton for a long time. Some months ago, I started to take a look about how Universal Analytics Plugins work and I decided that coding a plugin to all the data to a secondary property using just a plugin would be a real nice example. For years now, I've sharing a lot of code that I've worked on, some tracking ideas too, but still I don't consider myself a developer, if i must say it, I really…


Keep your dataLayer integrity safe using Custom JavaScripts in Google Tag Manager

In JavaScript when you want to copy an object into another variable is not an easy as doing var myVar = myObjectVar; and you should be really careful when working with your dataLayer info in your customHtml Tags and your Custom Javascript Variables. Let's try to explain this is the best way I can. When  you're doing that you're not copying the current object data to a new variable but instead you're pointing your new variable…