2014-04-29 10 views
5

Devo tenere traccia di quante volte l'elemento è presente nei risultati di ricerca (nell'applicazione Web). Cioè l'utente cerca qualcosa e ottiene i primi 20 articoli - 1 visita per ognuno dei 20 articoli è tracciata. Su un'altra pagina l'utente può vedere le statistiche per l'articolo - quante volte è stato mostrato nei risultati di ricerca.Google Analytics: traccia di più eventi in una singola richiesta HTTP

Considero l'utilizzo di Google Analytics Event Tracking per tale attività. Per esempio. da Javascript:

ga('send', 'event', { 
    eventCategory: 'item-category', 
    eventAction: 'search', 
    eventLabel: 'item-id', 
}); 

Ma sfortunatamente l'API di Google Analytics consente di registrare solo 1 evento per 1 richiesta HTTP. Significa che per ogni ricerca verranno inviate più di 20 richieste HTTP. Questo è abbastanza inefficace per le nostre esigenze.

ho cercato soluzioni alternative:

  1. Measurement protocol permette di inviare richieste HTTP dirette, ma entrambi GET e POST versioni di http://www.google-analytics.com/collect registri unico evento unico per ogni richiesta.
  2. Batch Processing in Google Data potrebbe essere di aiuto, ma GData looks obsolete e non sono sicuro che supporti i dati degli eventi di Google Analytics. Sembra abbastanza pesante per gli esperimenti.
  3. Management API e Reporting API non supporta il caricamento di dati sugli eventi.
  4. Non è possibile con ga.js (versione precedente di monitoraggio di Google Analytics): Post Multiple Events within One HttpRequest to Google Analytics

E 'possibile registrare più eventi di Google Analytics per ogni richiesta HTTP 1?

+0

'Ma sfortunatamente l'API di Google Analytics consente di registrare solo 1 evento per 1 richiesta HTTP. Dove si trova questo nella documentazione di Analytics? –

+0

L'ho appena testato: ogni chiamata "invia" genera una nuova richiesta HTTP al server di Google Analytics. –

risposta

0

Non è possibile tenere traccia di più eventi GA con una singola richiesta HTTP.

Infine, implemento la registrazione degli eventi lato server tramite Measurement Protocol. Esiste ancora 1 richiesta HTTP ai server GA per evento, ma non influisce sugli utenti finali.

+0

Puoi fornire maggiori dettagli su ciò che hai fatto esattamente? Devo utilizzare il Measurement Protocol per la mia app Web ma non voglio inviare una richiesta per ciascun evento. – reubano

+0

I visitatori del nostro sito effettuano ricerche. Monitoriamo l'evento "L'articolo è stato visualizzato nei risultati di ricerca" per raccogliere le statistiche sulla frequenza con cui ogni articolo è elencato nei risultati di ricerca. Ogni volta che il visitatore esegue la ricerca, devono essere registrati 10 o 20 eventi. Per evitare il monitoraggio degli eventi lato client, li registriamo sul server. Da Javascript inviamo una singola richiesta HTTP per ricerca al nostro back-end. Quindi, sul server gestiamo tale richiesta, inseriamo tutti gli eventi nella registrazione e nella coda. Filettatura separata per guardare la coda e tenere traccia di nuovi eventi tramite Measurement Protocol. –

+0

Vedo ... molto simile al metodo 2 [della mia risposta] (http://stackoverflow.com/a/26409560/408556) solo invece di utilizzare richieste batch in cui una richiesta è un evento, si inviano richieste al proxy come vengono generati e ogni richiesta viene analizzata nei singoli eventi della ricerca. – reubano

0

'stato possibile con la versione precedente di GA (ga.js): Can I track multiple Google Analytics events at once?

E, è possibile con la versione universale: Setting Parameters Across Multiple Send Commands

In alcuni casi si potrebbe desiderare di imposta un parametro e mantiene il valore su più comandi di invio. Ad esempio, se hai una pagina web in cui desideri tenere traccia di una visualizzazione di pagina e di due eventi.

Nell'esempio precedente, Google sta illustrando l'impostazione di un parametro di pagina specifica ma mostra anche l'invio di più eventi.

+0

Non sto parlando di registrare più eventi per una pagina - è assolutamente possibile. Questo è un problema di prestazioni: ogni chiamata "invia" o ogni evento push (nella versione precedente di GA) produce un nuovo roundtrip ai server GA. È possibile visualizzare questo comportamento se si esegue il test del codice dai collegamenti con un profiler della rete abilitato (ad esempio con gli strumenti di sviluppo del browser). –