Google Analytics PHP cookie parser

O Google Analytics reune estatísticas sobre o tráfego web através de first-party cookies (cookies válidas apenas para o domínio onde foram definidas) que ficam guardadas nos nossos browsers.

Construí uma classe em PHP com a qual podemos ler as cookies do Google Analytics __utma e __utmz. Esta classe pode ser usada para facilmente integrar dados contidos nessas cookies com sistemas proprietários como CRMs, Helpdesks, etc.

  • __utma (expira 2 anos após ser definida) – visitor data
    Esta cookie é escrita na primeira visita ao website. Caso seja apagada é novamente criada.  É usada para o cálculo de visitantes únicos e é actualizada a cada página vista.
  • __utmz (expira 6 meses após ser definida) – campaign data
    Esta cookie guarda informações sobre como o utilizador chegou ao website: referer, directo, pesquisa ou uma campanha como um anúncio ou newsletter (desde que tagged com o URL builder). É usada para calcular tráfego dos motores de pesquisa e campanhas. Esta cookie é actualizada cada vez que visitamos o website.

Este parser permite obter alguns dados contidos nestas cookies do Google Analytics de uma forma legível.
Veja como funciona na página http://joaocorreia.pt/example.php.

  • Campaign source
  • Campaign name
  • Campaign medium
  • Campaign content
  • Campaign term
  • Date of first visit
  • Date of previous visit
  • Date of current visit
  • Times visited

Para fazer o parse destas cookies disponibilizo um classe em PHP .
Quando fizer uso desta classe não se esqueça de respeitar os termos de serviço do Google Analytics!

:

GAParse is a PHP parser for Google Analytics cookies __utma and __utmz. Check example.php below to see wich variables are available or http://joaocorreia.pt/example.php if you want to see it working.
You can use this class to provide some degree of integration between GA and your application. A CRM or Helpdesk for example. Its up to your imagination, just don’t forget to comply with TOS of GA.

Download  versão 1.0 class.GAParse.zip (class.gaparser.php e example.php)

example.php

<?php

require("class.gaparse.php");
$aux = new GA_Parse($_COOKIE);

echo "Campaign source: ".$aux->campaign_source."<br />";
echo "Campaign name: ".$aux->campaign_name."<br />";
echo "Campaign medium: ".$aux->campaign_medium."<br />";
echo "Campaign content: ".$aux->campaign_content."<br />";
echo "Campaign term: ".$aux->campaign_term."<br />";

echo "Date of first visit: ".$aux->first_visit."<br />";
echo "Date of previous visit: ".$aux->previous_visit."<br />";
echo "Date of current visit: ".$aux->current_visit_started."<br />";
echo "Times visited: ".$aux->times_visited."<br />";

?>

class.gaparse.php

<?php
////////////////////////////////////////////////////
// GA_Parse - PHP Google Analytics Parser Class
//
// Version 1.0
// Date: 17 September 2009
//
// Defines a PHP class to parse Google Analytics
// cookies, currently with support for __utmz
// (campaign data) and __utma (visitor data)
//
// Author: Joao Correia (GAQI) - http://joaocorreia.pt
//
// License: LGPL
//
////////////////////////////////////////////////////

class GA_Parse
{

  var $campaign_source;    	// Campaign Source
  var $campaign_name;  		// Campaign Name
  var $campaign_medium;    	// Campaign Medium
  var $campaign_content;   	// Campaign Content
  var $campaign_term;      	// Campaign Term

  var $first_visit;      	// Date of first visit
  var $previous_visit;		// Date of previous visit
  var $current_visit_started;	// Current visit started at
  var $times_visited;		// Times visited

  function __construct($_COOKIE) {
       $this->utmz = $_COOKIE["__utmz"];
       $this->utma = $_COOKIE["__utma"];
       $this->ParseCookies();
  }

  function ParseCookies(){
  // Parse __utmz cookie
  list($domain_hash,$timestamp, $session_number, $campaign_numer, $campaign_data) = split('[\.]', $this->utmz);

  // Parse the campaign data
  $campaign_data = parse_str(strtr($campaign_data, "|", "&amp;"));

  $this->campaign_source = $utmcsr;
  $this->campaign_name = $utmccn;
  $this->campaign_medium = $utmcmd;
  $this->campaign_term = $utmctr;
  $this->campaign_content = $utmcct;

  // You should tag you campaigns manually to have a full view
  // of your adwords campaigns data.
  // The same happens with Urchin, tag manually to have your campaign data parsed properly.

  if($utmgclid) {
    $this->campaign_source = "google";
    $this->campaign_name = "";
    $this->campaign_medium = "cpc";
    $this->campaign_content = "";
    $this->campaign_term = $utmctr;
  }

  // Parse the __utma Cookie
  list($domain_hash,
       $random_id,
       $time_initial_visit,
       $time_beginning_previous_visit,
       $time_beginning_current_visit,
       $session_counter) = split('[\.]', $this->utma);

  $this->first_visit = date("d M Y - H:i",$time_initial_visit);
  $this->previous_visit = date("d M Y - H:i",$time_beginning_previous_visit);
  $this->current_visit_started = date("d M Y - H:i",$time_beginning_current_visit);
  $this->times_visited = $session_counter;

 // End ParseCookies
 }

// End GA_Parse
}
?>
  • http://joaocorreia.pt/google-analytics/medir-roi-campanhas-marketing-online/ Avaliar o sucesso da minha campanha de marketing online – Google Analytics | João Correia

    [...] Desenvolvi o Google Analytics Cookie parser em PHP que permite a leitura de várias variáveis presentes nas cookies do Google Analytics para [...]

  • http://marketingonline.pt/web-analytics/avaliar-o-sucesso-das-campanhas-marketing-online/ Avaliar o sucesso das campanhas marketing online | Marketing Online Portugal

    [...] Desenvolvi o Google Analytics Cookie parser em PHP que permite a leitura de várias variáveis presentes nas cookies do Google Analytics para [...]

blog comments powered by Disqus