Google Analytics PHP cookie parser

Google Analytics, Marketing digital

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
}
?>

Posts relacionados

speak up

Add your comment below, or trackback from your own site.

Subscribe to these comments.

Be nice. Keep it clean. Stay on topic. No spam.

You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

*Required Fields