Cómo extraer la cookie de Google Analytics en PHP

Google Analytics ofrece una sección de e-commerce para rastrear transacciones y sus detalles (producto, precio, IVA, etc.) No es una buena opción, ya que Google Analytics no recupera información logística y no rastrea pedidos devueltos, cancelados, compras de pruebas, y no funciona si las cookies o el Javacript están desactivados. Además no es una base de datos nativa y no permite realizar backups.

Google Analytics no es una fuente fiable para información comercial, pero podemos utilizar su cookie para añadir los datos que necesitamos a nuestra propia base de datos. source, medium, campaign, content y keyword son dimensiones que podemos recuperar desde la cookie de GA e insertarlas en la base de datos de MySQL de cualquier plataforma de comercio electrónico. En reportes de la empresa, mediante un comando LEFTJOIN, podemos ver la información de Google Analytics, e incluso combinarla con datos como edad y género del cliente, o su fecha de registro, sólo disponibles en la BBDD de la tienda online.

Esta metodología permite ver exactamente las mismas transacciones que verá el departamento contable, e incluso compararlas con métricas web en una tabla / gráfico combinado, mediante la API de GA (ver Cómo crear gráficos con Google Analytics API) o la API de Adwords.

El código PHP que hay que colocar en la página de confirmación de compra ("Thank you" page) es el siguiente:

$pattern = "/^(\d*\.*)*(utm.*)$/";
 preg_match($pattern, $_COOKIE['__utmz'], $matches);
 $utm_str_vars = explode("|",$matches[2]);
 $utm_vars = array();
 foreach ($utm_str_vars AS $utm_var) {
 list ($utm_key, $utm_val) = explode ("=", $utm_var);
 $utm_vars[$utm_key] = str_replace("'", "\'", $utm_val);
 }

$utm_vars es un array con las siguientes keys: utmcsr (source), utmccn (campaign), utcmd (medium), utmcct (content), utmctr (term). Luego, es necesario otro código para insertar cada valor en nuestra tabla MySQL, con la respectiva order_id de la compra como valor clave:

INSERT INTO ga_orders (order_id, source, medium, campaign, content, term)
VALUES($order_id, $utm_vars['utmcsr'], $utm_vars['utmccn'], $utm_vars['utmcmd'],
$utm_vars['utmcct'], $utm_vars['utmctr']);

IMPORTANTE: recuerda etiquetar los enlaces de tus campañas online con utm_nooverride = 1, para no perder de vista la primera fuente de tráfico. Esto es especialmente importante en tiendas donde la compra no es impulsiva, y el cliente suele regresar una segunda vez (o más veces) mediante tráfico directo.

Escribe tu comentario comment0 Comentarios
mode_editEscribe tu comentario

menu
menu