Sep 28 2011

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

Integrazione Analytics – Custom Search Engine

autore: categoria: javascript

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.

Condividi l'articolo:

6 Commenti

  1. Salve Marco,
    scusa il commento in un post così datato, ma torna di grande attualità col passaggio ad Universal Analytics. Nella pagina inglese: https://support.google.com/customsearch/answer/2715510?hl=en compare un bell’avviso in cui si dice che non è supportato il CSE con Universal Analytics. Effettivamente non stiamo vedendo alcun dato dalle ricerche sul sito.
    Hai soluzioni o chiarimenti da poter dare?

    Grazie e complimenti

  2. secondo me l’avviso è relativo al fatto che i dati inviati dalla configurazione originale del CSE non vanno bene per Universal. Credo che al momento si debba lavorare sui template e “forzare” i codici necessari

  3. Mi perdoni Marco ma non ho ben capito quali siano i codici necessari da forzare

  4. nei template delle pagine servite dal GSE si deve andare a scrivere a mano il codice di universal analytics, invece di affidarsi alla funzionalità integrata nelle opzioni

  5. Ho provato ad inserire il codice nella pagina come suggerito, sicuramente comincia a raccogliere informazioni in questo modo (Grazie!) però non restituisce il “termine di ricerca” su Analytics. In quella sezione mi dà risultati del tipo:

    cache:7V839sEFs3EJ+nomesito/pagina

    dato brutto da vedere e che mi aspetterei di trovare nella sezione “pagine” di “Ricerca sul sito”.

    In “Ricerca sul sito” -> “Pagine” l’unico dato presente cumulativo è segnato come (entrance) sul tab “Pagine di entrata”.
    Nel tab “Pagine destinazione” mi dà risultati di questo tipo:

    /search?hl=it&q=cache:pQSATvbk2fcJ:http://nomedelsito/pagina con parametri

Scrivi un Commento