Luglio 2015
Volume 30 numero 7
Google Analitica - analizzare il comportamento degli utenti nella tua App di Windows/Windows Phone con Google Analitica
Lo sviluppo di app è per definizione un processo iterativo, quindi ti consigliamo di capire, nel più breve tempo possibile, come viene utilizzato l'app e modo una nuova versione o la funzionalità possono influenzare il comportamento degli utenti. Quanto è una caratteristica davvero usata? Qual è il comportamento dell'utente su una pagina specifica? Quanto tempo richiede un utente spendere per realizzare un'attività specifica? Quali sono le più comuni configurazioni di hardware? Cosa sta succedendo quando accade un incidente? Quanto successo sono versioni di prova e acquisti in-app? Gli utenti eseguire l'app offline? Queste sono solo alcune delle domande che può rispondere a un sistema di telemetria.
Ci sono una serie di fornitori di telemetria che supporta ufficialmente Windows development (bit.ly/1KGgAdQ), e Microsoft Azure include Visual Studio applicazione Insight, che è anche integrato in Visual Studio 2015 (bit.ly/1EeM8Ui).
Analitica di Google, grazie al Google Analitica SDK per Windows (disponibile su Codeplex a bit.ly/1zXfvxJ), è anche facile da integrare in un Windows o Windows Phone app (Silverlight e Universal).
In questo articolo, mi concentrerò su Google Analitica, perché è uno dei più ampiamente usato provider su altre piattaforme, compreso il Web, ed è un'ottima scelta se hai già fornito un sito Web con Google e desidera utilizzare lo stesso account per le applicazioni. Descriverò come raccogliere informazioni di telemetria con Google Analitica e analizzare i dati raccolti, ad esempio le versioni app installata, distribuzione geografica e i comportamenti degli utenti e come eseguire un A / B Testing.
Comprensione di concetti di telemetria è utile indipendentemente dal provider che si utilizza. Un ottimo punto di partenza su questo argomento è il ponte di Kraig Brockschmidt da costruzione 2014 (bit.ly/1QGIsSO).
Che cosa è Google Analitica?
Google Analitica è stato originariamente costruito per monitorare e analizzare i comportamenti degli utenti sui siti Web. Nel corso del tempo, Google esteso relativo supporto e strumenti per applicazioni, e ora un SDK è disponibile per iOS e Android, pure. Google fornisce anche un protocollo di misurazione che consente di effettuare chiamate HTTP per inviare dati di interazione tra utente crudo direttamente ai server di Google Analitica (bit.ly/1kHgDYz). Ciò consente di determinare come gli utenti interagiscono con le loro imprese da quasi tutti gli ambienti. il SDK di Analitica di Google utilizza questo protocollo per Windows 8 e Windows Phone. il SDK è un set di strumenti indipendenti e open source che mira ad avere parità di funzionalità e API somiglianza con il funzionario SDK di Analitica di Google per Android.
Integrare l'applicazione con Google Analitica
Per integrare un'applicazione, in primo luogo è necessario accedere al dashboard di Google Analitica con un account Google valido, quindi creare account almeno un'applicazione che può accedere all'area amministrativa (bit.ly/1kPLnqG). È anche una buona idea per creare account di applicazione separata per lo sviluppo, la fase di beta testing e produzione. In questo modo, potete mantenere i dati di ogni set separato ed evitare di inquinare i dati di produzione importanti con dati non validi da altri sviluppatori e beta tester.
Un account di applicazione identifica in modo univoco un'applicazione (Contoso, ai fini di questo articolo). In questo contesto, un "applicazione" realmente si riferisce a un insieme di applicazioni disponibili per diverse piattaforme e/o siti Web (Contoso per Windows, Contoso per Android, pannello di controllo Web di Contoso), che invia loro telemetria informazioni allo stesso account. Ogni applicazione potrebbe anche essere disponibile in più versioni (Contoso per Windows 1.0, Contoso per Windows 1.1, Contoso per Android 2.0.1).
Quando si crea l'account in Google Analitica, è inoltre necessario definire una o più proprietà. Qui, una proprietà è un'app o un sito Web per il tuo account. Una proprietà di app può avere più versioni, ed è logico avere una proprietà per ogni piattaforma supportata (ad esempio, ContosoW8, ContosoWP8, ContosoDroid). Dopo aver scelto i nomi per la tua app e risposto ad alcune domande per classificare la portata di affari dell'app, Google Analitica genera un ID numerico account e un ID di rilevamento con il formato UA-xxxxxxxx-x, che rappresenta l'app specifica per la piattaforma in Google Analitica e verrà utilizzato in tutte le comunicazioni di telemetria inviate dall'app.
Nel mio scenario di esempio, ho un'applicazione universale (AntiLogger e WP), così ho creato due proprietà ID in un Google Analitica conto. Per attivare la mia app parlare con Google Analitica, io uso un pacchetto NuGet. Per fare questo, per Windows e Windows Phone apps, tasto destro del mouse su riferimenti, selezionare Gestisci pacchetti NuGet, e aggiungere il pacchetto "GoogleAnalyticsSDK." Questo pacchetto aggiunge un paio di riferimenti e il file analytics.xml, mostrato nella Figura 1, alla soluzione Visual Studio . Sarà necessario modificare questo file in modo che l'applicazione può utilizzare l'ID di rilevamento corretto creato in precedenza.
Figura 1 Analytics.xml per Windows e Windows Phone App
<?xml version="1.0" encoding="utf-8" ?>
<analytics xmlns="http://googleanalyticssdk.codeplex.com/ns/easytracker">
<trackingId>UA-60759067-2</trackingId>
<appName>ContosoWindows</appName>
<appVersion>1.0.0.0</appVersion>
</analytics>
<?xml version="1.0" encoding="utf-8" ?>
<analytics xmlns="http://googleanalyticssdk.codeplex.com/ns/easytracker">
<trackingId>UA-60759067-1</trackingId>
<appName>ContosoWinPhone</appName>
<appVersion>1.0.0.0</appVersion>
</analytics>
Infine, è necessario assicurarsi che l'app è autorizzato a utilizzare la rete. Per le app di Windows Phone, è necessario selezionare la capacità ID_CAP_NETWORKING nel file WMAppManifest. XML; per Windows 8, selezionare la funzionalità Internet (client) del file appxmanifest.
Strumentazione dell'App
La prima categoria della maggior parte degli sviluppatori desidera tenere traccia di informazioni è la navigazione dell'utente. Utilizzando questo SDK, è necessario inviare l'evento corretto ogni volta che un utente accede a una pagina. il SDK di Google Analitica espone il comando SendView per questo, e il luogo naturale per chiamare questo metodo è l'evento Loaded di ogni pagina:
void MainPage_Loaded(object sender, RoutedEventArgs e)
{
GoogleAnalytics.EasyTracker.GetTracker().SendView("Main");
}
void Page1_Loaded(object sender, RoutedEventArgs e)
{
GoogleAnalytics.EasyTracker.GetTracker().SendView("Page1");
}
void Page2_Loaded(object sender, RoutedEventArgs e)
{
GoogleAnalytics.EasyTracker.GetTracker().SendView("Page2");
}
Tenete a mente che una "vista" non è solo una pagina dell'app; è inoltre necessario considerare altri aspetti dell'interfaccia utente che focalizzare l'attenzione dell'utente (ad esempio le finestre di dialogo e pannello di impostazioni) che si desidera monitorare e analizzare.
SendView richiede un parametro di stringa che identifica in modo univoco la pagina o l'aspetto dell'interfaccia utente che stai monitorando. Questo nome verrà visualizzato sul cruscotto Google Analitica e sulle relazioni come il riferimento per la tua pagina. Dovrebbe essere generico e significative e facilmente associabili con la pagina di origine. Non deve essere tradotto anche se l'app supporta più lingue perché essa verrebbe interpretato dal sistema di analisi come una pagina diversa. In altre parole, a meno che specificamente si desidera differenziare i dati di telemetria per le versioni localizzate dell'applicazione, assicurarsi che gli identificatori che si invia a Google Analitica non sono essi stessi localizzato.
Ora l'app è pronta a inviare le informazioni di telemetria pagina-navigazione prime. Per vederlo, aprire l'app e navigare tra le pagine per un po'.
Navigazione degli utenti e la versione dell'applicazione
In pochi secondi, i dati di navigazione sono pronto e disponibile per la tua analisi. Vai alla google.com/analytics e accesso per visualizzare la tua Home page. Quindi cliccate su tutto il mobile App dati sotto la proprietà che si desidera analizzare (nel mio esempio, la proprietà è ContosoW8 o Contoso WP8).
Il dashboard di benvenuto Mostra i dati storici per ultimi 30 giorni, escluso il giorno corrente. Se l'account è nuovo, molto probabilmente tutti i grafici saranno vuoti. C'è anche una area di dashboard dedicato ai dati più recenti, che è possibile accedere facendo clic sul pulsante di tempo reale sul lato sinistro del cruscotto.
La pagina Panoramica indica il numero di utenti attivi e viene illustrata la visualizzazione dello schermo in tempo reale con un grafico dettagliato per l'ultimo minuto e l'ultima ora (vedere Figura 2). Barre verticali su questi grafici mostrano la pagina utente accede.
Figura 2 dati in tempo reale Dashboard
Inoltre potrai vedere un elenco delle schermate più attivi nell'ultima ora, con il numero di utenti attivi. Il nome che verrà visualizzato sul cruscotto è quello utilizzato come parametro di SendView nel codice dell'applicazione. Figura 2 Mostra i dati di esempio in tempo reale in "Caledos Runner," un'app che ho sviluppato che utilizza Google Analitica per raccogliere dati di utilizzo. Ho voluto mostrare dati reali nell'app, così si potevano vedere quante informazioni si possono ottenere da questo strumento — e il corrispondente potenziale.
Ogni nome di schermo è selezionabile in modo è possibile sezionare i dati analyze l'uso specifico di una pagina. Uno dei più importanti pezzi di informazioni qui è il tempo trascorso su ogni pagina (o, meglio, su ogni visualizzazione). Dopo aver cliccato su un nome di schermo, è possibile aggiungere una metrica risultati tempo medio sullo schermo al grafico, facendo clic su Seleziona una metrica nella scheda Explorer.
Un grande strumento che Google fornisce è il rapporto flusso di comportamento, mostrato nella Figura 3. Grazie alla API di SendView, questo strumento è disponibile selezionando il comportamento nella scheda Rapporti sul cruscotto, e ti permette di analizzare come gli utenti si spostano tra le pagine dell'app dall'inizio di una sessione utente. Il grafico è composto da una sequenza di schermate (prima schermata, secondo schermo e così via) e indica il numero di sessioni utente di connettersi e uscire. Per l'uscita di sessione, è possibile vedere accedere alla pagina successiva (ordinati secondo il numero di sessione) e il numero di utenti che lasciano l'app da quella pagina (in rosso).
Rapporto di flusso di figura 3 esempio comportamento
Questo strumento consente di capire dove gli utenti passano il loro tempo quando usano l'app, e alla fine si può decidere di facilitare l'accesso alle pagine popolari fornendo un pulsante più grande, più riconoscibile. Figura 3 Mostra che nel mio app, i primi tre successiva schermata Destinazioni dalla pagina principale è askcloud, di funzionamento e di attività dettaglio. Ciò suggerisce la probabilmente una buona idea per dare una posizione centrale e visibile ai corrispondenti pulsanti della pagina principale, o per spostare alcune funzionalità gli utenti trovare su queste pagine alla schermata principale al fine di ridurre il tempo e il numero di rubinetti utenti necessario compiere queste attività.
Ti consigliamo anche di sapere quale versione della tua app è in uso, e questa informazione viene da dispositivi che utilizzano l'app. Ogni chiamata, il SDK Invia la versione dell'applicazione fornita in analytics.xml modo è possibile sezionare il tuo dati e trovare la versione utilizzata. Dati della versione storica app sono disponibili in pubblico | Versioni di app nel riquadro sinistro del cruscotto. Figura 4 Mostra cosa succede in genere quando rilascia una nuova versione del mio app nell'archivio. Perché il comportamento predefinito su Windows Phone 8.1 è automaticamente scaricare e installare la nuova versione dell'app quando disponibile, entro pochi giorni oltre il 90 per cento della base utenti migra verso l'ultima versione, (anche se una lunga coda di meno del 10 per cento degli utenti rimane che, per qualche motivo, non può o non desidera aggiornare).
Figura 4 App versione dati
Altre dimensioni che viene visualizzato "gratis" con navigazione di rilevamento sono la posizione, lingua, nome del dispositivo (che non è al 100% accurate per Windows Phone) e provider di servizi, di rete, mentre sul lato di misure è possibile trovare il numero di sessioni, utenti unici e nuovi utenti unici.
Con queste informazioni, siete in grado di rispondere a domande come: Qual è il più attivo paese o città? Dove ho avuto il maggior parte dei nuovi utenti nell'ultimo mese? Con questa nuova versione, sono miei clienti utilizzando l'app più o meno? E in questo contesto, l'unico limite è la vostra immaginazione perché è possibile impostare gli eventi personalizzati, contatori, dimensioni e metriche.
Come un utente si sposta da uno schermo a altro è un buon punto di partenza per comprendere come viene utilizzato l'app, ma c'è molto di più informazioni disponibili, più legati al dominio specifico dell'app. Questo tipo di informazioni può essere registrato come un evento personalizzato, che di solito comporta qualche interazione utente generico o le informazioni che ha un senso per essere propagato il team di sviluppatori. Un evento è composto da quattro campi che è possibile utilizzare per descrivere l'interazione di un utente con i contenuti dell'app:
- Categoria di stringa
- Action della corda
- String Label
- Valore Long
Perché tutti gli eventi personalizzati vanno in un unico elenco di comune, la categoria, azione e campi etichetta contribuiscono ad per identificare informazioni specifiche che si desidera analizzare.
Le informazioni raccolte in questo modo sono molto generiche, e questo è dove la telemetria diventa un'arte. Per dare significato ai dati, si avvia con la domanda che si desidera rispondere, che conduce alla progettazione di telemetria, che poi conduce alla strumentazione che è necessario. Quindi iniziamo con un approccio di esempio.
Domanda: La mia applicazione di esempio ha molte funzioni, innescate da pulsanti su varie pagine dell'app. Voglio capire quali funzioni vengono utilizzate più, per concentrare il mio sforzo di sviluppo nella giusta direzione.
Disegno di telemetria: Le principali funzioni dell'app sono attivate da pulsanti, quindi se a monitorare i clic su questi pulsanti, probabilmente io guadagno una migliore comprensione delle preferenze dell'utente. Metrica di successo di telemetria sarà il numero di clic che ricevo da ciascun pulsante.
Strumentazione: Posso andare all'evento click del pulsante selezionato e traccia l'evento.
Il codice riportato di seguito viene illustrato come registrare che un utente ha fatto clic i pulsanti "play" e "stop":
private void buttonPlay_Click(object sender, RoutedEventArgs e)
{
GoogleAnalytics.EasyTracker.GetTracker().SendEvent(
"ui_action", "press", "play", 0);
// Your code here
}
private void buttonStop_Click(object sender, RoutedEventArgs e)
{
GoogleAnalytics.EasyTracker.GetTracker().SendEvent(
"ui_action", "press", "stop", 0);
// Your code here
}
Come la precedente analisi di navigazione dell'utente, avere una tabella di eventi sotto entrambi i gruppi in tempo reale e il comportamento. A seconda del tipo di analisi da effettuare, è possibile selezionare la visualizzazione appropriata, storici o in tempo reale.
Gli eventi sono mostrati per un intervallo di tempo specifico (il valore predefinito è un mese), così si può vedere il numero di eventi raggruppati per categoria superiore, azione ed etichetta in esso. È possibile drill-down su una categoria specifica e su un'azione di evento specifico, ed è inoltre possibile modificare l'intervallo di date per l'analisi.
Per una categoria di evento specifico, azione o etichetta, è possibile trovare il numero totale di eventi, il numero di eventi unici, la somma di tutti i valori e il corrispondente valore medio.
Figura 5 Mostra un elenco di esempio di eventi, e Figura 6 Mostra la somma totale, unico e la media dei valori per il gruppo Grp1.
Eventi di esempio nella figura 5
Gruppo | Azione | Etichetta | Valore |
Grp1 | Stampa | Button1 | 1 |
Grp1 | Stampa | Button1 | 2 |
Grp1 | Stampa | Button1 | 2 |
Grp1 | Stampa | Button2 | 3 |
Grp1 | Toccare | Label1 | 4 |
Figura 6 valori di riepilogo per Grp1
Totale eventi | 5 |
Eventi unici | 4 |
Valore dell'evento | 12 |
Valore medio dell'evento | 2.4 |
Un esempio reale di utilizzo può aiutarvi a comprendere meglio le potenzialità dello strumento. Per "Caledos Runner," Volevo capire quanto l'app è stato realmente utilizzato per tenere traccia delle attività, e perché non volevo forzare l'utente a registrare un account per poter utilizzare l'applicazione, ho usato gli eventi per tenere traccia di queste informazioni.
Su start app, ho rintracciato un evento per ogni utente registrato e un evento diverso per ogni utente che non è registrato, con codice simile al seguente:
if (!string.IsNullOrEmpty(currentUser.AccessToken))
{
GoogleAnalytics.EasyTracker.GetTracker().SendEvent(
"user", "Cloud", "Registered", 1);
}
else
{
GoogleAnalytics.EasyTracker.GetTracker().SendEvent(
"user", "Cloud", "Unregistered", 1);
}
Ho scoperto che 55% degli utenti di non inviare i propri dati nel cloud, quindi al fine di ottenere un profilo preciso dei miei utenti, al fine di ogni attività di GPS l'app invia un evento con informazioni circa la distanza percorsa e un evento con il tempo totale trascorso dell'attività, utilizzando codice simile al seguente:
GoogleAnalytics.EasyTracker.GetTracker().SendEvent(
"activity", "outdoor", "time", (long)CurrentFitnessActivity.Duration);
GoogleAnalytics.EasyTracker.GetTracker().SendEvent(
"activity", outdoor", "distance", (long)model.CurrentFitnessActivity.TotalDistance);
Di conseguenza, ho ottenuto i dati riportati nella Figura 7 per la prima settimana di febbraio 2015.
Figura 7 esempio di eventi personalizzati
Che cosa dice questa analisi è: Nella prima settimana di febbraio, l'app ha tracciato con successo più di 15.000 ore (54,000,000 secondi) e 51.000 Km (32.000 miglia). L'utente medio utilizza l'app per un'attività di circa 5 Km (3,1 miglia), coprendo la distanza in un'ora e mezza (5.400 secondi).
Buono a sapersi, ma non abbastanza! Questo è solo un utilizzo medio di vista, ma più probabilmente vorreste sapere come che l'utilizzo è davvero distribuito. Si tratta di un app multisport, quindi si vorrebbe sapere lo sport più popolare e se la popolarità che proviene da un piccolo numero di utenti che utilizzano l'app spesso o un sacco di utenti che lo utilizzano, ma per solo un breve lasso di tempo.
Questo è dove può aiutare Google Analitica personalizzati dimensioni e metriche. Metriche e dimensioni personalizzate consentono di portare ulteriori dati in Google Analitica che può aiutarvi a rispondere a nuove domande su come gli utenti interagiscono con i tuoi contenuti. Una metrica è un conteggio di un tipo di dati che si può riassumere attraverso il tuo hits di Google Analitica. Una metrica corrisponde a una colonna in un report. Dimensioni consentono di abbattere una metrica per un particolare valore, ad esempio, schermate di nome dello schermo. Dimensioni corrispondono alle righe in un report (bit.ly/1lOry2r).
Ci sono due passaggi principali per implementare una dimensione personalizzata o metriche:
- Definire la dimensione personalizzata o la metrica utilizzando l'interfaccia Web di Google Analitica (bit.ly/1Je9RJQ).
- Implementare il codice per impostare e raccogliere dimensione personalizzata e i valori metrici.
Ogni proprietà di Google Analitica ha 20 indici disponibili per dimensioni personalizzate e un altro 20 indici per le metriche personalizzate. Una volta creata una dimensione o una metrica, il codice può riferirsi a tale metrica o dimensione utilizzando l'indice corrispondente.
Per tornare alla mia domanda, per capire il guasto di sport ho creato una dimensione, tipo di attività, con ambito, colpire e usato il seguente codice per tenere traccia di queste informazioni sulla vista visualizzata dall'app durante una sessione di fitness:
GoogleAnalytics.EasyTracker.GetTracker().SetCustomDimension(1, activityType);
GoogleAnalytics.EasyTracker.GetTracker().SendView("Running");
A / B Testing
A / B testing è un termine di marketing utilizzare per fare riferimento a test che fornisce informazioni sul comportamento dei visitatori, con l'obiettivo di aumentare il tasso di conversione. (Secondo Wikipedia, il tasso di conversione "è la percentuale di visitatori di un sito Web che agire per andare di là di un sito Web o la visualizzazione di contenuto casuale visita, a seguito di richieste sottili o dirette da marketing, inserzionisti e creatori di contenuti.")
Nel mondo di sviluppo di app, un e B test significa testare due diverse versioni di un elemento (ad esempio una pagina o un pulsante) utilizzando una metrica che definisce il successo di uno scenario rispetto ad un altro.
Si supponga di che avere due disegni di una pagina, A e B. In genere, A è il progetto esistente (il controllo), e B è il nuovo design. È possibile dividere il tuo utente base tra queste due versioni e misura le prestazioni utilizzando una metrica che ha senso per la tua app (forse facendo clic su un pulsante specifico) per trovare la metrica di successo o il tasso di conversione. Alla fine del test, si seleziona l'elemento che offre le prestazioni migliori.
In altre parole, si supponga che ogni disegno è una pagina diversa con relativo file XAML (page3v1.xaml e page3v2.xaml). Su ogni pagina avete il vostro bersaglio — il pulsante che si desidera l'utente a cliccare — ed è possibile utilizzare l'evento click del pulsante per tenere traccia di un evento personalizzato che riconosce un successo clic del pulsante. Sfruttando il pattern MVVM, è possibile separare la vista dal modello e il modello di visualizzazione, quindi si possono facilmente avere due file XAML che contengono la stessa logica e dati.
È quindi possibile utilizzare codice simile al seguente per portare gli utenti per le pagine di prova, spaccare la navigazione in modo uniforme tra le versioni A e B della pagina:
if (DateTime.Now.Second % 2 == 0)
this.Frame.Navigate(typeof(Page3V1));
else
this.Frame.Navigate(typeof(Page3V2));
È possibile monitorare il successo del layout da registrazione pulsante fare clic utilizzando:
GoogleAnalytics.EasyTracker.GetTracker().SendEvent(
"ABTest", "Scenario1", "pageV1", 0);
o il pulsante fare clic sulla prima pagina:
GoogleAnalytics.EasyTracker.GetTracker().SendEvent(
"ABTest", "Scenario1", "pageV2", 0);
e il clic del pulsante stesso nella seconda pagina.
Il numero totale di eventi per ogni etichetta (PageV1, PageV2) determina la pagina di maggior successo. Alla fine del test, solo quella pagina rimarrà nell'applicazione, mentre l'altra può essere rimossa.
Avvolgendo
Nello sviluppo di app moderne, strumenti di analisi e di telemetria possono fare una reale differenza in termini di quanto velocemente è possibile identificare i comportamenti degli utenti, nonché problemi di applicazione e la loro risoluzione. In questo articolo, ho discusso solo un piccolo esempio degli scenari che possono essere analizzati. Il numero e il tipo di tali scenari è limitato solo dalla vostra immaginazione e curiosità.
Nicola Delfino è un'applicazione development manager nella divisione italiana servizi Microsoft e l'autore di "Caledos Runner", uno dei più riusciti monitoraggio fitness app per Windows Phone, che gli diede l'opportunità di utilizzare la telemetria per scoprire e analizzare come le persone utilizzano la sua app. È possibile contattarlo al nicold@microsoft.com o nicola@caledos.com.
Grazie all'esperto tecnico Microsoft seguente per la revisione di questo articolo: Kraig Brockschmidt