Skip to main content
  1. Blog Post/

Cómo medir las ventas en nuestro e-commerce a través de Google Shopping

3 min · 561 words

En esta ocasión vamos a ver cómo medir las compras que nos vienen desde Google Shopping a nuestro e-commerce.

Por defecto estas visitas llegan a nuestra web desde http://base.google.com cómo si se tratase de una visita desde el propio buscador de Google, por lo cual se nos mezclan con el resto de datos de búsquedas orgánicas.

Por suerte para nosotros hay una funcionalidad no documentada en Google Analytics, que nos permite, entre otras opciones, sobreescribir los parámetros de campaña antes de que se fijen con los valores calculados por defecto.

Se trata del método _set  . El cual mediante el parámetro campaignParams , nos permitirá cambiar los valores de la campaña antes de enviar los datos a los servidores de Google Analytics.


Entonces, mirando los logs del servidor, y los referrers de que llegan desde Google Shopping, podemos ver que siempre empiezan por /products/catalog , teniendo en cuenta ese valor podemos sobreescribir los parámetros de campaña para poder separar las visitas desde los motores de búsqueda usuales como: Google  Search, Google Images, etc, de los que vienen desde Google Shooping, y en base a ello, sobreescribir el parámetro de campaña para decirle a Google Analytics que es "shopping". Lo que nos permitirá poder calcular las compras que llegan desde Google Shopping y del resto de fuentes y medios.

He creado un pequeño snippet en javascript que automatiza esta terea, extrayendo incluso la palabra clave de la búsqueda:

var ref = document.referrer;
if (ref.indexOf("/products/catalog") > 0 && ref.indexOf("google.")> 0)
{
   var matches = ref.match("[\\?&]q=([^&#]*)");
   if(matches==null)
   {
      var campaignParams = 'utm_campaign=shooping&utm_source=google&utm_medium=(organic)&utm_term=(not%20provided)';
   }else{
      var campaignParams = 'utm_campaign=shooping&utm_source=google&utm_medium=(organic)&utm_term='+matches[1];
   }
_gaq.push( ['_set', 'campaignParams', campaignParams]);
}

Este código debe ponerse SIEMPRE ANTES de la llamada al _trackPageview  si no, se enviarán los datos a Google antes de haber sobreescrito los parámetros de campaña.

El código completo sobre una implementación standard, quedaría de la siguiente manera:

<script type="text/javascript">
var _gaq = _gaq || [];

_gaq.push(['_setAccount', 'UA-1231231234-1']);
var ref = document.referrer;
if (ref.indexOf("/products/catalog") > 0 && ref.indexOf("google.")> 0)
{
var matches = ref.match("[\\?&]q=([^&#]*)");
if(matches==null)
{
var campaignParams = 'utm_campaign=shooping&utm_source=google&utm_medium=(organic)&utm_term=(not%20provided)';
}else{
var campaignParams = 'utm_campaign=shooping&utm_source=google&utm_medium=(organic)&utm_term='+matches[1];
}
_gaq.push( ['_set', 'campaignParams', campaignParams]);
}
_gaq.push(['_trackPageview']);
(function() {
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/u/ga_debug.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
</script>

Personalmente no dispongo de ninguna tienda bajo la que hacer las pruebas, si tienes tu una y lo pruebas, me gustaría oir tu feedback para poder mejorar el código y el artículo.