Tracciare i video flash tramite gli eventi

Sempre più siti web ricorrono ai video per catturare l’attenzione degli utenti; Il sistema che propongo è in grado di tenere traccia di alcuni eventi che l’utente scatena durante la visione dei filmati, sia che siano ospitati su Youtube sia che siano caricati sul nostro server (purché in formato .flv o .f4v), e di fare dei report nella sezione “eventi” di Google Analytics, senza quindi andare ad intaccare il totale delle pagine viste.

Il sistema si basa sulla libreria TubeLoc e sul chromeless player di Youtube, e sovrappone ai video una interfaccia ricostruita a mano e unificata, simile a quella del popolare portale di video. Tubeloc è necessaria perché le API del chromeless player funzionano tramite ActionScript2, mentre le API per Flash di Google Analytics sono scritte in ActionScript3; TubeLoc si occupa di fare da interfaccia e permette di legare insieme il tutto. Quando e se aggiorneranno le API del chromeless player se ne potrà fare a meno.

Gli eventi che vengono monitorati sono:

  • Il Play/Pause
  • La disattivazione e la riattivazione dell’audio
  • La modifica del volume e il valore relativo tra 0 e 100
  • Il “salto” ad un punto specifico del video e il relativo valore

Non essendoci un tasto “STOP”, la relazione tra il numero di PLAY e il numero di PAUSE può essere un indicatore importante di quanto gli utenti non arrivino in fondo al video. Certo, restano quelli che abbandonano la visione mentre il video scorre e quelli che cambiano pagina a metà, ma quei comportamenti non sono monitorabili. La quantità di utenti che disabilitano l’audio può darvi indicazione dell’apprezzamento dei contenuto sonoro, mentre il volume medio può indicarvi se l’audio del video è troppo alto o troppo basso. Infine il valore medio dell’evento JUMP può essere indicazione di un punto particolarmente d’impatto nel video, un punto che gli utenti rivedono volentieri trascinando il controller del video.

Istruzioni per l’installazione:

  1. Scarica il file videotracker.zip in fondo a questo post, estrai il contenuto (3 file e un readme.txt) e caricalo sul tuo sito. Per comodità di descrizione porremo che i file siano caricati nella cartella principale del sito, cosiddetta root.
  2. Il sistema riconosce automaticamente se si tratta di un filmato youtube o di un .flv. tutto quello che devi fare è incollare il codice seguente nelle tue pagine e modificarlo in due punti, che ti segnalo direttamente nel codice e ti spiego dopo
    <object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0" width="400" height="400" id="FlvGAPlayer" align="middle">
      <param name="allowScriptAccess" value="sameDomain" />
      <param name="allowFullScreen" value="false" />
      <param name="movie" value="FlvGAPlayer.swf" />
      <param name="quality" value="high" />
      <param name="bgcolor" value="#ffffff" />
      <param name="FlashVars" value="urlvideo=[INDIRIZZO VIDEO]&GAAccount=[ACCOUNT GOOGLE ANALYTICS]" />
      <embed src="FlvGAPlayer.swf" quality="high" bgcolor="#ffffff" width="400" height="400" name="FlvGAPlayer" align="middle" allowScriptAccess="sameDomain" allowFullScreen="false" type="application/x-shockwave-flash" pluginspage="http://www.adobe.com/go/getflashplayer" FlashVars="urlvideo=[INDIRIZZO VIDEO]&GAAccount=[ACCOUNT GOOGLE ANALYTICS]" />
      </object>

    Devi modificare [INDIRIZZO VIDEO] con l’url completo del filmato youtube o il percorso del tuo file sul server. Alcuni esempi funzionanti sono:
    http://www.youtube.com/watch?v=qkIA4xbbsKQ
    Darth.flv
    /mieivideo/vacanze/tenda.flv

    Devi modificare [ACCOUNT GOOGLE ANALYTICS] con il numero dell’account che raccoglierà i dati, che tipicamente è lo stesso che monitora il sito, ma puoi anche scegliere di spedire i dati dei video ad un account differente.
    Un esempio reale è:
    UA-53707-19

    Le modifiche da fare sono due per parametro, poiché è necessario specificare le variabili Flash sia come param name dell’oggetto Flash sia dentro all’embed; questioni di compatibilità dei browser. Esistono svariati metodi per evitare questo, ma ogni sviluppatore può ovviare come preferisce al problema 🙂

  3. basta! 🙂

Per testare il sistema ho effettuato una serie sempre uguale di azioni su due video, fino a quando i dati non sono stati coerenti con i miei comportamenti. In particolare:
– su un video che proveniva da Youtube ho premuto Play, Pause al secondo 5, audio disattivato, Play, Pause al secondo 10, riavvolto fino al secondo 4 e lasciato finire. Ripremuto Play (il video riparte daccapo), audio abilitato, volume circa a metà, volume circa a un quarto.
– su un video caricato sul server ho premuto Play, Pause al secondo 12, audio disattivato, Play, audio attivato, volume circa al 70%.
Ho effettuato quindi un totale di 16 eventi, 10 sul video YT e 6 sul video flv.

Nel report Monitoraggio Eventi le azioni effettuate sui video vengono attribuite alla categoria “VIDEO”, perché così restano separate da altre categorie che possono coesistere nella stessa sessione, ad esempio download, o altri vostri eventi che avete impostato. Ecco come si presenta il report CATEGORIE:

flashvideo-categorie

In questo caso, ovviamente, sia la colonna “valore evento” sia la colonna “valore medio” non hanno senso, poiché sono la somma tra secondi dei JUMP e valori dei VOLUMI impostati.
Il report AZIONI invece ci mostra il dettaglio di ogni singola azione effettuata dagli utenti, ma sempre considerando la somma di tutti i video. Questo report ci può dare un’idea generale sugli andamenti delle azioni sul sito.

flashvideo-azioni

Come potete vedere il numero di eventi per singola azione è esattamente quello che ci si aspetta: 5 volte Play, 2 audio disabled, eccetera. Anche qui, per lo stesso motivo di cui sopra, le colonne valore evento e valore medio non hanno senso, ma lo acquistano andando a dettagliare le singole voci. Ad esempio cliccando su “volume“:
flashvideo-volume

abbiamo il dettaglio per singolo video: Darth.flv è il nome del video caricato sul server, in cui una sola volta è stato variato il volume ed è stato impostato a 59 (avevo detto “circa 70%” ma in effetti non si può essere precisissimi); l’altra stringa è l’identificativo youtube del video, in cui il volume è stato variato due volte per un totale di 78 (“circa metà” (50) e “circa un quarto” (25)) e una media di 39.

Il report ETICHETTE rappresenta il numero di totale di eventi per singolo video, e infatti riporta correttamente 10 per il video di youtube e 6 per il .flv.
flashvideo-etichette

Supportaci!
Considera per un momento l’ipotesi di donare qualcosa per supportare questo progetto. Per realizzarlo ho pesantemente stressato un mio amico/collega, e gli ho rubato del tempo prezioso. La donazione è libera e, come puoi vedere tu stesso cliccando il pulsante di Paypal qui sotto, va interamente a lui per ringraziarlo del lavoro svolto a vantaggio di tutti noi!








download