Sep 04 2013

HelpSemaforoQuesto semaforo indica il livello difficoltà del post
semaforo verde - articolo per tutti

Tracciare le ricerche interne che non hanno parametri

autore: Marco Cilia categoria: filtri tag: ,

Chi ha configurato la ricerca interna sul proprio profilo (anzi, sulla propria VISTA, che è il nuovo nome dei profili) sa che Google Analytics chiede una e una sola cosa per capire se si tratta di una ricerca interna: il parametro dell’URL che contiene il termine ricercato.
Se ad esempio la vostra ricerca interna produce pagine di risultato come questa

/search/search.asp?txtsearch=genova

basta impostare “txtsearch” nella casella apposita e il report della ricerca interna inizierà a popolarsi. Ma cosa succede se il vostro CMS produce url più “SEO friendly” e quindi scrive cose tipo

/search/search/genova ?

Non c’è nessun parametro da indicare. In passato eravamo costretti a produrre un’altra pagina – virtuale – oppure a riscrivere completamente la pagina corrente per venire incontro alle ridotte capacità di questa parte dello strumento; questo perché, incredibile ma vero, NON SI PUO‘ fare un filtro search&replace sull’url, perché il sitesearch interviene PRIMA dell’applicazione dei filtri.

Però qualche tempo fa c’è stato un corposo aggiornamento dei campi filtro disponibili, e tra questi c’era anche il Site Search, che fino ad allora non era invece presente. Alcuni volenterosi, tra cui Lunametrics, si sono messi a fare prove e sono giunti alla conclusione che adesso le cose si possono risolvere più elegantemente di prima.

Sarà sufficiente fare un filtro personalizzato avanzato del tipo

Campo A -> Estrai A | URI della richiesta | /search/seach/(.*)
Campo B -> Estrai B VUOTO
Output in -> Constructor | Termine di ricerca | $A$1

Campo A obbligatorio SI
Campo B obbligatorio NO
Sovrascrivi campo output SI
Maiuscole/minuscole NO

Ovviamente la vostra espressione regolare per il Campo A dipende strettamente dalla vostra struttura degli URL, il mio è solo un esempio. Ma una volta fatto questo, il vostro report delle ricerche interne verrà popolato. Se il vostro sito usa anche le categorie di ricerca, potete fare la stessa cosa, con un altro filtro, per popolare la “Categoria di ricerca su sito”.


Sep 28 2011

HelpSemaforoQuesto semaforo indica il livello difficoltà del post
semaforo verde - articolo per tutti

Integrazione Analytics – Custom Search Engine

autore: Marco Cilia categoria: javascript tag:

Nel corso degli anni mi sono trovato molte volte di fronte alla domanda “come faccio a tracciare la ricerca interna se uso un Custom Search Engine di Google (sia con AdSense sia senza)?” Non è che non si potesse fare in termini assoluti, ma la risposta non era sempre scontata. Soprattutto qualche tempo fa, esisteva una versione del CSE con iframe, e come sapete Analytics con gli iframe ci va d’accordo solo prendendo le opportune precauzioni. Le cose erano migliorate quando Google aggiunse la possibilità di specificare un account ID nel Custom Search Engine, ma bisognava comunque specificare a mano il parametro che conteneva il termine ricercato, oltre che l’ID del profilo.

Ma chi meglio di Google, che controlla entrambi gli strumenti, potrebbe facilitarci la vita? detto fatto, oggi il blog ufficiale ci informa che l’integrazione è ancora più semplice: una volta creato un motore di ricerca personalizzato, sarà sufficiente entrare nel pannello di controllo, cliccare la voce “Google Analytics” e il sistema ci proporrà una lista di profili cui abbiamo accesso in GA. Una volta scelto il profilo corretto (sono selezionabili solo i profili in cui è stata attivata la tracciatura delle ricerche interne) sarà sufficiente recarsi nella scheda “Get code” e copiaincollare lo snippet di codice proposto, che somiglierà a questo (NON COPIATELO, è solo un esempio preso dal mio pannello di controllo!):


<div id="cse" style="width: 100%;">Loading</div>
<script src="http://www.google.com/jsapi" type="text/javascript"></script>
<script type="text/javascript"> 
  var _gaq = _gaq || [];
  _gaq.push(["_setAccount", "UA-XXXXXX-1"]);
  function _trackQuery(control, searcher, query) {
    var loc = document.location;
    var url = [
      loc.pathname,
      loc.search,
      loc.search ? '&' : '?',
      encodeURIComponent('s'),
      '=',
      encodeURIComponent(query)
    ];
    _gaq.push(["_trackPageview", url.join('')]);
  }
  google.load('search', '1', {language : 'it'});
  google.setOnLoadCallback(function() {
    var customSearchControl = new google.search.CustomSearchControl('012856240197711512811:voll0qwtfsi');
    customSearchControl.setResultSetSize(google.search.Search.FILTERED_CSE_RESULTSET);
    customSearchControl.setSearchStartingCallback(null, _trackQuery);
    customSearchControl.draw('cse');
  }, true);
</script>
<link rel="stylesheet" href="http://www.google.com/cse/style/look/default.css" type="text/css" />

ATTENZIONE: questo NON sostituisce il codice di Analytics, ma è soltanto la parte che va inserita dove si vuole fare comparire il Custom Search Engine. Come vedete c’è l’oggetto _gaq.push, a noi tanto familiare, e ci sono le funzioni tipiche di GA. Fatta questa operazione il nostro profilo Analytics traccerà le ricerche fatte tramite il motore di ricerca personalizzato.