Dec 14 2008

HelpSemaforoQuesto semaforo indica il livello difficoltà del post
semaforo verde - articolo per tutti semaforo giallo - articolo avanzato semaforo rosso - articolo per esperti

funzioni: _trackEvent()

autore: categoria: funzioni

La funzione di tracciamento degli eventi è una conseguenza della riscrittura a oggetti del codice di tracciamento di Analytics, come dicevo nel post precedente. Javascript infatti è un linguaggio orientato agli oggetti, e senza entrare in dettagli troppo tecnici diremo che questo tipo di paradigma della programmazione comporta alcuni indubbi vantaggi che gli ingegneri di Google hanno ritenuto utile implementare nel GATC.

Un evento, secondo la definizione (bozza del 22/9/2008) della Web Analytics Association, è una qualsiasi azione registrata che ha un timestamp attribuito dal browser o dal server; sono esempi di azioni il display di un banner o l’invio di una richiesta asincrona tramite AJAX in una porzione di pagina web.
La funzione che Google Analytics usa per tenere traccia degli eventi è _trackEvent(categoria, azione, descrizione, valore).
I valori passati come parametro a questa funzione sono:

  • categoria [obbligatorio]: è una stringa che identifica il “gruppo” di eventi cui l’azione appartiene. Poiché possono coesistere più eventi nella stessa pagina è un parametro che non può essere omesso.
  • azione [obbligatorio]: è una stringa che identifica l’azione svolta dall’utente e strettamente correlata alla categoria. Anche in questo caso è un parametro che non può mancare.
  • descrizione [facoltativa]: è una stringa che si può usare per aggiungere ulteriori informazioni all’evento. Nel caso di eventi complessi o presenza di molti eventi contemporanei può essere utile per districarsi nella lettura dei report.
  • valore [facoltativo]: è un numero intero che si può indicare per associare un valore all’evento.

Un esempio tipico di tracciamento degli eventi è un video comandato via javascript da pulsanti personalizzati. Il pulsante play potrebbe avere questo codice assegnato:
<a href="#" onClick="pageTracker._trackEvent("Video", "Play", "video-compleanno-2008", 0);">Play</a>

Analogamente si potrebbero passare a Google Analytics anche i valori di pause e stop, magari dopo aver scritto un paio di funzioni javascript per razionalizzare e ottimizzare il codice, e poi leggere nella sezione eventi dei report i risultati. La sezione eventi non è ancora stata ufficializzata, ma in un profilo in cui ho fatto alcune prove essa è comparsa da sola. Probabilmente viene attivata quando iniziano ad arrivare i primi dati sotto forma di eventi.

Il vantaggio del tracciamento eventi è che non si ricorre al metodo delle pagine virtuali di _trackPageview(), e che quindi non si inflaziona il relativo conteggio. Tramite gli eventi, con un po’ di lavoro, è anche possibile monitorare in forma più estesa i donwload di materiali e documenti dal sito.

Condividi l'articolo:

19 Commenti

  1. Ho inserito il tracking per gli eventi in alcuni link nella pagina: http://www.lerbavoglio.org/index.html
    Ma dopo tre giorni non vedo ancora nulla nel mio account analytics.
    Qualche idea?

  2. può essere che non sia come ho detto, e che l’attivazione sia solo graduale e non dettata dal fatto che si inizi ad usare la funzione. Sono tuttavia convinto che sia solo questione di (poco) tempo…

  3. Ok, grazie.
    Posterò poi il numero di giorni che ho dovuto aspettare per l’abilitazione del servizio

  4. GA restiruisce anche le conversioni legate ad un evento?

    (inutile dire GA in 30 secondi mi sta enormemente semplificando al vita — di programmatore è ovvio –)

  5. non si può definire un evento come GOAL, quindi non si possono avere conversioni legate agli eventi.

  6. Adesso ho le conversioni sui referal, sulle KW e sulle campagne ADW e personalizzate ecc. senza aver configurato gli obiettivi (GOAL) ma inserendo il codice di GA per le conversioni nelle pagine del sito di finalizzazione degli acquisti

  7. GLi eventi sono attivi e ho la possibilità di vedere le conversioni per ogni evento o gruppo di eventi.

    Il tutto è supportato dal modulo di e-commerce

  8. @Marco Cilia: come posso associare un evento a un obiettivo?
    Dovrei monitorare un obiettivo su compilazione di un form.. solo che questo form è essendo un submit della stessa pagina (non ha url dedicati) non riesco a fare un tracciamento dell’obiettivo, perchè se metto url mi traccia l’obiettivo anche quando la pagina del form è visitata e non compilata.

  9. non si può usare gli eventi come obiettivi. Però puoi mettere una pagina virtuale sull’onsubmit della form, così la pagina esiste solo quando la form è inviata

  10. in che modo metto una “Pagina virtuale”?

    nel codice ho messo:

    function trackGA() {
    _gaq.push([‘_trackPageview’, ‘/contatti.asp/sended’]);
    }
    trackGA();

    dove sta pagina “/contatti.asp/sended” non esiste fisicamente ma l’ho messa solo in questo codice di tracciamento. E come obiettivo ho messo questo URL (preciso). Corretto?

  11. devi mettere la funzione trackGA() sull’onsubmit della form

  12. ok e il tracciamento dell’obiettivo è corretto? cioè funzionano cosi queste “pagine virtuali”? basta inventarsi un URL fantasma e poi metterlo come indirizzo preciso nell’obbiettivo?

  13. lo puoi fare tranquillamente senza bisogno di pagine virtuali o quant’altro, basta richiamare la funzione tackEvent nell’onSubmit.
    In questo modo sei sicuro che l’evento viene generato alla compilazione della FORM.
    Naturalmente se all’onsubmit fai dei controlli richiami l’evento solo se i controlli sono positivi e restituisci true

  14. l’evento non è un problema generarlo; il problema è legarlo agli obiettivi. Non ho trovato indicazioni su come mettere come obbiettivo un evento (trackEvent)

  15. ti ho detto nel commento #9 che *NON E’ POSSIBILE* – allo stato attuale delle cose – impostare come obiettivo un evento. Serve una pagina virtuale, come ti ho spiegato poco più sotto.

  16. ma il trackEvent() funziona anche se il codice di GA è messo in footer?

  17. purché venga inviato dopo che il browser arriva a leggere e caricare il sorgente di ga.js, si…

  18. Ciao Marco,
    come letto tempo fa in un articolo sul sito (che purtroppo non ritrovo), ciascun evento è associato alla pagina che l’ha chiamato, cosicchè se creo un profilo che include una determinata pagina, la pagina si porta dietro nel profilo tutti i propri eventi.
    Purtroppo ho sperimentato che se per una pagina viene creata una url fittizia, l’evento in quella pagina non si associa alla pagina fittizia, ma sempre all’url reale presente nella barra degli indirizzi.
    Questo è naturalmente un problema in quanto tali eventi non entrano più nei profili desiderati.
    C’è un modo per risolvere? Per forzare cioè l’url a cui un evento è associato?
    Grazie!

  19. al momento temo di no. Si può forzare il TITLE, cambiandolo dinamicamente con javascript, ma non l’url…

Scrivi un Commento