2014-09-17 8 views
12

Sto sviluppando un'applicazione in cui ogni 'business' ha il proprio pagina (o meglio molte pagine):Utilizzo di Google Analytics per mostrare sottoinsieme di dati per i clienti di applicazioni web che utilizzano embed api

Per esempio esempio. it/business/abc/

Quindi, per i proprietari di attività commerciali registrati nel sistema, desidero fornire una funzionalità "Visualizza analisi della pagina". Mostrerebbe quante visite (e forse un paio di altre cose) che quella particolare pagina ha avuto.

Esiste un modo per farlo utilizzando l'API di Google Analytics con i miei vincoli:

  • Non voglio clienti per fornire il proprio codice UA
  • Io non voglio che richiedono di avere un account GA
  • I clienti non hanno bisogno di avere un account di posta elettronica di Google
  • Non voglio costruire interi frontend e backend me stesso. Preferirei usare qualcosa di esistente

Sto studiando questo argomento per ore cercando di trovare una soluzione e non riesco a capire niente.

Ecco quello che ho provato e quali problemi è capitato a me:

  • http://ga-dev-tools.appspot.com/demos/embed-api/
    • Questo è fondamentalmente esattamente quello che voglio per i miei clienti da visualizzare sul mio sito (come negli esempi), tranne che Incorpora Api tenta di autorizzare gli utenti alla propria (di proprietà) Google Analytics. Voglio invece usare i miei dati di Google Analytics (o piuttosto parte di esso)
    • In questo modo ho pensato di limitare l'accesso ai dati sarebbe stato per ogni mio cliente creare una visualizzazione in GA, aggiungere un filtro a quella vista in modo tale solo le pagine dei clienti sono elencate qui, assegnano Utente alla vista e utilizzano l'API di incorporamento per visualizzare solo i dati da quella vista. Ci sono un paio di problemi con questo:
      • Per assegnare Utente a Vista abbiamo bisogno di un indirizzo email. E questo deve essere l'indirizzo email dell'account google o l'account di un progetto creato con Google Developers Console (applicazione).
      • In altre parole, non posso creare (in alcun modo che io sappia) e conto che sarebbe un account di protezione per i miei clienti a sottoinsieme dei miei dati GA a cui sarebbero interessati. Deve essere un utente reale o vero indirizzo email dell'applicazione.
      • Quindi, quello che ho cercato di fare è ... Ho creato un'app in Google Developers Console, creato un nuovo account di servizio OAuth. Usando il codice Ruby (che nell'app di produzione sarebbe in esecuzione sul backend) ho ottenuto il token OAuth. Ho aggiunto questa email del mio account di servizio OAuth come utente alla vista
      • Volevo che questo token oauth lato server fosse utilizzato da Incorpora Api. Ciò avrebbe l'effetto di generare il token sul mio back-end e l'utente può utilizzarlo senza avere un utente GA nella mia proprietà GA.Così ho cambiato in base alla documentazione esempio di base Embed API da utilizzare
gapi.analytics.auth.authorize({ 
    container: 'auth', 
    clientid: 'xxx.apps.googleusercontent.com', 
    serverAuth: { 
     access_token: 'Server side generated token' 
    } 
}); 

invece di

gapi.analytics.auth.authorize({ 
    container: 'auth', 
    clientid: 'xxx.apps.googleusercontent.com', 
}); 

Gli effetti non sono abbastanza quello che mi aspettavo. L'esempio non viene più mostrato (non riesco a vedere i miei dati) ma nella sezione Netowrking di Chrome è possibile vedere che in realtà sta ricevendo dati reali da GA. Ma per ragioni sconosciute non appare nulla.

Quello che cerco di evitare è la creazione di una soluzione in cui ho bisogno di compilare il codice lato server che sta interrogando GA per i dati, fornendoli al frontend e quindi JS è responsbile per visualizzarlo. Preferirei usare l'API di incorporamento, ma sembra non essere adatto al caso in cui non voglio che gli utenti giochino con i loro dati UA, ma piuttosto con i miei dati UA limitati a un certo scopo. Mi piacerebbe avere almeno la parte di frontend o backend della soluzione risolta. La soluzione non deve necessariamente essere basata su Google Analytics. Sarebbe interessante anche qualsiasi altra cosa che mi consenta di ottenere facilmente l'usecase e che permetta agli imprenditori di vedere gli effetti del loro marketing (traffico, vendite).

correlati:

  • StackOverflow .com/domande/13.514.775/usando-google-analytics-api-to-show-sottoinsieme-di-dati-per-clienti-di-web-appli
  • StackOverflow .com/domande/3994708/dati google-analytics-cliente-
  • StackOverflow .com/domande/4245132/google-analytics-api-filter-by-uri
  • embeddedanalytics .com sembra come qualcosa che potrebbe essere utile , ma la loro pagina e i loro grafici sono di qualche anno fa. Vorrei qualcosa di più carino.
  • oocharts .com sembra essere interessante a causa di ciò che il loro docs.oocharts .com dice sulle query. Ma non fanno pagare nulla per il loro prodotto, quindi sono scettico sul loro modello di business e se sia una buona soluzione a lungo termine.
  • io non ho abbastanza karma di postare link;)

TLDR: Visualizzazione sottoinsieme dei miei dati GA ai miei clienti senza costringerli a diventare utenti GA e aggiungerli al mio conto GA.

Qualsiasi aiuto apprezzato!

+0

Questa domanda è davvero troppo grande ma. Se registri tutti i dati su un solo account Google Analytics, c'è un limite di 10.000 richieste che puoi fare contro l'API GA al giorno per visualizzazione che non puoi estendere. API incorporata utilizza Javascript non è possibile utilizzare un account di servizio con Javascript. – DaImTo

+0

L'uso dell'API Embed con il parametro 'serverAuth' è il modo consigliato per fare esattamente quello che vuoi. Non so perché non funzioni per te. Puoi approfondire i problemi che stai riscontrando o [presentare un problema] (https://code.google.com/p/analytics-issues/issues/entry?template=Embed%20API%20-%20Defect) per questo ? –

+0

@PhilipWalton Grazie per avermi rassicurato sul fatto che è davvero un modo giusto per affrontare questo tipo di problemi. Ho inviato un bug https://code.google.com/p/analytics-issues/issues/detail?id=496 come richiesto. –

risposta

3

Senza visualizzare il codice, è difficile sapere dove si trova il problema, ma l'utilizzo dell'opzione serverAuth funziona sicuramente. E quando si utilizza l'opzione serverAuth, non è necessario specificare un ID cliente o contenitore, tutto ciò che serve per entrare è il seguente:

gapi.analytics.auth.authorize({ 
    serverAuth: { 
    access_token: 'Server side generated token' 
    } 
}); 

Ecco un esempio che funzionerà se si entra in un token di accesso valido e la ids per una vista a cui si ha accesso:

http://jsbin.com/vukezoheyeco/3/edit

Nota: quando si fa auth come questo, succede sincronizzazione.Questo può essere un trucco se sei abituato a un flusso di autenticazione asincrono (come normale) e aggiungi un gestore di eventi che ascolta l'evento "successo" dopo aver chiamato .authorize perché il tuo gestore non verrà mai eseguito.

+0

Funziona, grazie! – emaxi

0

Penso che è necessario il Google Analytics Super Proxy

È scaricare il pacchetto github e caricare il proprio progetto di App Engine, fare un po 'la configurazione minima e poi si dispone di un interfaccia in cui è possibile impostare le chiamate alle API di Google Analytics che non richiedono all'utente accesso.

Fornisce gli URL degli utenti finali che è possibile utilizzare per creare tabelle di dati nel front-end, ma fornisce anche il formato tabella dati in modo che si inserisca direttamente in Google Charts.

Così, per esempio, è un utente che ha bisogno di accedere alle visite, entrate per sezione del sito/sezionali/

Si imposta il super delega GA di servire loro un URL che include solo i dati per quella sezione - si puoi provare le query qui nello GA query explorer. In questo caso metriche = ga: visite, ga: productRevenue e filtro ~ = ga: page =/sectionA/

Questo produce un URL finale con dati JSON, che si aggiorna ogni giorno/ogni ora: a tua scelta. Importi questo URL nella tua app.

L'utente finale accede alla tua app e vede i dati del grafico generati dall'URL finale per il loro accesso. Non hanno bisogno di sapere del super proxy di GA, vedono solo il grafico finale.

È possibile ottenere risultati più sofisticati fornendo elenchi a discesa per selezionare il grafico di dati che visualizzano, il che modifica l'URL di super proxy GA richiesto.

+0

Non penso che risolverebbe il mio problema. Non vedo alcuna autenticazione/autorizzazione integrata e nessun filtro che potrebbe essere impostato. Ciò significa che i miei clienti possono modificare il front-end JS (o inviare query HTTP direttamente a GASP) e ottenere dati di analisi sulle pagine gestite da altri clienti. –

+0

È possibile eseguire la pre-autenticazione prima dell'ora per l'account GA amministratore, quindi creare gli URL con i filtri necessari. Quindi la tua app pubblica solo gli URL JSON corretti con i dati necessari, come richiesto dall'utente finale, eventualmente richiesto da un menu a discesa o simile. – MarkeD