2015-03-23 7 views
7

ho utilizzato Google Analytics per l'analisi di base per la mia web app - proprio monitoraggio impressioni di pagina usando JavaScript chiama in questo modo:La condivisione di Google Analytics ClientID tra il javascript client e Java Server

ga('create', 'UA-XXXXXXXXX-1', 'mydomain.com');ga('send', 'pageview') 

Questo approccio mi ha sempre frustrato perché non sono riuscito a catturare in modo affidabile alcuni eventi sul lato server. Ho appena scoperto che posso usare Measurement Protocol per registrare eventi lato server. Registrare gli eventi sul mio server sembra facile, tranne per quanto riguarda il parametro cid (clientid) ...

Quello che ho capito è che sul browser, con il javascript attualmente il cid viene creato casualmente e quindi memorizzato nella _ga biscotto. Capisco anche che dovrei condividere quel valore clientid/cid tra chiamate client ('page view') e server (altri eventi) per lo stesso client in modo che siano correlate tra loro.

This StackOverflow link è stato un riferimento utile per me.

domanda è: dovrei

  1. Creare un clientid sul server e quindi condividerlo con il cliente; oppure
  2. Devo lasciare che il javascript sul client crei il clientid e quindi provare a condividerlo con il mio server? (Ho il sospetto che questa è la risposta migliore)

per (1), quello che stavo pensando che potrei fare è:

  • Conservare un UUID nella sessione sul server (che è Google App Engine)
  • utilizzare direttamente che UUID quando uso protocollo di misura per creare eventi direttamente lato server
  • usare lo stesso UUID quando creo un oggetto ga in una pagina utilizzando jsp:

    ga('create', 'UA-XXXXXXXXX-1', 'mydomain.com', 
    {'clientId': '<%=[value from the session]%>'}); 
    

La cosa che mi preoccupa di questo approccio è che l'ID persisterà solo attraverso la sessione sul server. Penso che l'intento del clientId (cid) sia che persiste per il cliente per un lungo periodo ... Quindi penso che perderò la cognizione di chi è nuovo rispetto all'utente che ritorna?

Per (2), francamente non so come farlo ... So dal link StackOverflow sopra che posso ottenere il cid dai parametri clientId nell'oggetto ga. Non so come potrei quindi rispedirlo al mio server (questa è probabilmente una semplice domanda javascript).

Apprezzeremmo sicuramente i consigli su quale approccio usare .... grazie!

risposta

3

Vorrei anche raccomandare di andare con l'opzione 2: Lascia che Google gestisca l'impostazione del parametro cid.

Poiché il parametro è già impostato nel cookie _ga nel dominio, viene passato al server dell'app con ogni richiesta HTTP.

Tutto quello che devi fare è sul lato server:

  1. Estrarre il CID dal cookie _ga
  2. link all'utente corrente (la vostra applicazione probabilmente utilizza i propri cookies di sessione a identificare l'utente)

Ad esempio, this answer provides the Rails code:

def save_google_analytics_client_id 
    if current_user && cookies["_ga"] 
     client_id = cookies["_ga"].split(".").last(2).join(".") 
     if current_user.google_analytics_client_id != client_id 
     current_user.google_analytics_client_id = client_id 
     current_user.save 
     end 
    end 
    end 
.210
Problemi correlati