Piwik marca un gol con una jugada de Drupal Rules

  • 21 Mar 2015
  • Drupal 7, Piwik, Analytics

Un goal en Piwik podemos entenderlo como una meta. Objetivos. O simplemente, una herramienta para medir esas acciones que consideramos importantes dentro de nuestro sitio. Desde la interfaz de Piwik podemos crear un goal con un par de clicks. Indicando como se dispara.. o que acción dispara la conversión de un goal. Cuando las opciones que nos da Piwik no nos alcanzan para nuestra meta, la opción manually nos dará toda la libertad que necesitamos.

Piwik Tracking API

Para obtener la información de las visitas, el cliente Javascript es el método predeterminado y recomendado. Pero Javascript no está siempre donde y cuando uno lo necesita. En estos casos, existen otros métodos para seguir el rastro de las visitas. El que vamos a utilizar desde el módulo Rules de Drupal será HTTP Request

Crear el Goal en Piwik

Lo primero que tenemos que hacer, es crear el Goal en Piwik. Elegimos un nombre, seleccionamos la opción manually en el campo goal is triggered y listo. Nada más. Una vez que lo guardamos, vamos a manage -> goals dentro la sección admin y tomamos nota del ID del goal recién creado.

Otra información que vamos a necesitar de Piwik es el token_auth del superusuario. Esto lo podemos encontrar en administration -> users

Crear la regla en Drupal

Bien. Ahora será necesario crear la regla que buscamos identificar con Piwik. Por ejemplo: After saving a new user account. En la sección actions vamos a decirle a rules de queremos ejecutar un código en PHP (execute custom PHP code).

El siguiente es un código de ejemplo que marca una conversión al goal ID 7. En la primera linea se incluye el archivo PiwikTracker.php cuya ruta dependerá de cada instalación. Por último, en la variable idSite se indica el ID del sitio en la instalación de Piwik.

require_once "/home/piwik/libs/PiwikTracker/PiwikTracker.php";
PiwikTracker::$URL = 'http://my-piwik-domain.com/';
$piwikTracker = new PiwikTracker( $idSite = 1 );
$piwikTracker->setTokenAuth("********************************");
$piwikTracker->setIp($_SERVER['REMOTE_ADDR']);

$piwikUserId = $piwikTracker->getVisitorId();
$piwikTracker->setVisitorId($piwikUserId);
$piwikTracker->doTrackPageView("new user");
$piwikTracker->doTrackGoal(7);

En Drupal pero fuera de las reglas

El mismo código de ejemplo puede incluirse en templates de vistas o dentro un módulo personalizado. De este modo es posible incluso registrar las veces que se descarga un archivo utilizando por ejemplo wget.