Las páginas más visitadas usando Google Analytics Api

June 18, 2021

Share

Table of contents

Quick Access

**¿Cuántos hemos visto el famoso bloque llamado "Lo más visto", casi todos cierto?** En este pequeño post, hablaremos justamente de como obtener las direcciones más vistas de nuestro sitio, basándonos en los reportes generados por [Google Analytics]((http://www.google.com/analytics/)). Lo primero es tener instalado el [módulo de Google Analytics](https://www.drupal.org/project/google_analytics) y haber colocado nuestro ID en: http://nuestraweb.com/admin/config/system/googleanalytics Una vez listos, procedemos a descargar la [api de google analytics php](http://code.google.com/p/gapi-google-analytics-php-interface/downloads/list), lo recomendable es crearnos un nuevo módulo y colocar el archivo gapi.class dentro del mismo. Ahora procedemos a modificar nuestro archivo .module, en el siguiente caso, damos por entendido que nuestras URL, siguen este formato: (http://nuestraweb.com/noticia/titulo_de_noticia ; http://nuestraweb.com/video/titulo_de_video), donde noticia y vídeo son tipos de contenido.
 
/**
* Helper function to get the most views from google analytics.
*/
function the_links_most_viewed($content_type){
  // Incluimos el api.
  module_load_include('inc', 'nuestro_modulo', 'gapi.class');
  // Colocamos nuestras credenciales.
  $googleanalytics_token = 'token_id';
  $report_id = 'report_id';
  $ga = new gapi(null,null,$googleanalytics_token);

  // Si nuestro objetivo es ver los resultados filtrados por el tipo de nodo (sea noticia o sea vídeo) agregamos el siguiente filtro, sino definirla como null.
  $filter = 'pagePath=~/\b' . $content_type . '\b/';
  // Definimos las métricas y dimensiones a buscar.
  $metrics = array('uniquePageviews');
  $dimensions = array('pagePath');
  // Definimos la manera en que se ordenarán.
  $sort_metric = '-uniquePageviews';
  // Definimos una fecha inicial y final.
  $start_date = date('Y-m-d', strtotime('-5 days'));
  $end_date = date('Y-m-d');
  // Definimos el índice inicial.
  $start_index = 1;
  // Cantidad máxima de resultados a obtener.
  $max_results = 5;
  // Obtenemos el resultado
  $the_most_popular = $ga->requestReportData($report_id, $dimensions, $metrics, $sort_metric, $filter, $start_date, $end_date, $start_index, $max_results);

  foreach($the_most_popular as $item){
    $dimensions = $item->getDimesions();
    // Convertimos la URL a la dirección normal, esto es node/$nid
    $node_patch = drupal_get_normal_path(substr($dimensions['pagePath'], 1));
    // Obtenemos el nid.
    $nid = explode("/", $node_patch);
    if(is_numeric($nid[1])){
      $nodes[] = $nid[1];
    }
  }
  return ($nodes)? $nodes : "";
}
**Conclusión** Y de esta manera obtenemos las paginas más visitadas, filtrando por el tipo de contenido deseado.