Session about Microsoft Azure Mobile Engagement at "DevOps@Work 2017" event, managed by DomusDotNet community and hosted in Microsoft Rome's headquarter on February 10th, 2017.
The session is related to the product's presentation, configuration and integration using the available SDK.
4. Agenda
•Cos’è Azure Mobile Engagement
•Esigenze di business
•Caratteristiche del servizio
•Dashboard di controllo
•Demo
•Conclusioni
5. Cos’è Mobile Engagement
•SaaS disponibile su Azure
•Analisi delle tipologie di utenze di una app
•Statistiche sulle modalità di utilizzo di una app
•Integrato con i gateway delle tre piattaforme
mobile principali
•API aperte e complete
•Protezione dei dati degli utenti
6. Cos’è Mobile Engagement
...in questa sessione...
• Disponibile per Mobile
(iOs, Android, Windows Universal)
• Disponibile perWeb
(in preview)
7. Cos’è Mobile Engagement
Esigenze di business
• Ci sono i dati dello Store ma non abbiamo altre informazioni
• Analisi delle modalità di utilizzo dei propri prodotti
• Individuazione delle proprie classi di utenza
• La fedeltà degli utenti è messa ogni giorno a dura prova
10. Caratteristiche del servizio
•Google GCM (Google Cloud Messaging)
•AppleAPNS (Apple Push Certificates Portal)
•MicrosoftWNS (Windows Push Notification Services)
Integrazione nativa con i gateway delle piattaforme principali:
11. Caratteristiche del servizio
• Permette di inviare notifiche mirate, sondaggi e notifiche in-app
• Può usare payload di testo semplice o HTML formattato
• Personalizza le notifiche con i dati acquisiti dall'utilizzo dell'app
(es. nomi utente e sesso)
12. Caratteristiche del servizio
•procedure trasparenti per la privacy
•gestione responsabile dei dati archiviati
•nessuna condivisione o vendita delle informazioni derivate
dai dati di proprietà dei clienti
•garanzia del rispetto delle leggi sulla privacy dei dati locali
e specifiche dei diversi paesi
Protezione e privacy dei dati a livello globale
13. Dashboard di controllo
Subscription su Azure
• Abbonamento
• Pay as you go
• sottoscrizioni MSDN
(solo sviluppo e test)
Cosa ci serve per poter partire
19. Dashboard di controllo
Users utenti nuovi o «retained», utenti «attivi»
Retention azioni di «retention» effettuate ed i loro effetti
Sessions numero di sessioni utente effettuate in un periodo
Activities le attività definite e l’utilizzo (conteggio e durata)
User Path grafo delle interazioni tra le pagine e attività fatte dagli utenti
20. Dashboard di controllo
Events eventi avvenuti (click, notifica ricevuta o altro nella sessione)
Jobs durata di un task (es. download file o esposizione banner)
Technical info sui device che utilizzano l’app (es. operatori, dimensioni schermo, ecc.)
Errors informazioni relative agli errori
Crashes informazioni sui crash
22. Dashboard di controllo
• In questa area si potranno monitorare in tempo reale le
informazioni sull’utilizzo della nostra app, quali ad esempio:
- Sessioni
- Jobs
- Errori
- Crashes
23. Dashboard di controllo
• Qui ci sono tre funzionalità con cui «raggiungere» gli utenti:
- Announcements
- Polls
- Data pushes
• Utili per creare campagne mirate verso tipologie di utenze (segmenti)
24. Dashboard di controllo
•Qui è possibile creare dei «segmenti», ovvero tipologie di utenza
con determinate caratteristiche
•Giusto come esempio potremmo definire:
• «notturni», gli utenti che si collegano dalle 23 all’una di notte
• «fedeli» gli utenti che si sono collegati più di 10 volte nell’ultima settimana
26. EngagementAgent - API disponibili (elenco parziale)
Metodo Utilizzo
EngagementAgent.Instance.Init Inizializzazione agent per le statistiche
EngagementAgent.Instance.GetDeviceId Ottiene l’identificativo del device collegato
EngagementAgent.Instance.StartJob Notifica l’avvio di un «job»
EngagementAgent.Instance.EndJob Notifica l’arresto di un «job»
EngagementAgent.Instance.SendAppInfo Invia informazioni sull’app (dizionario)
EngagementAgent.Instance.SendCrash Invia informazioni su un crash (exception, stacktrace)
EngagementAgent.Instance.SendEvent Invia una notifica di un «custom event»
27. Altre classi disponibili (elenco parziale)
Classe Scopo
EngagementReach Gestisce la coda degli invii (push notification)
EngagementLog Gestisce i log
EngagementConfiguration Gestisce la configurazione
EngagementPageOverlay Classe base per le pagine con strumentazione inclusa1
29. Tutto bello… ma quanto costa ?
ESEMPIO (periodo di riferimento 1 mese)
• 10.000 utenti attivi => -0,00843€ x 10.000 => -84,30€
• con prospettiva di IAP del 5% => 500 x 0,99€ = 495,00€
• guadagno => 495,00€ - 84,30€ = 410,70€
30. Conclusioni
•Servizio mirato a garantire la raccolta dei dati e la conseguente
«fidelizzazione» degli utenti
•Le informazioni sono utili ad evitare fallimenti delle proprie app nel
breve e nel lungo termine
•Un’app vincente è basata su una buona idea, ma dati e strumenti di
fidelizzazione aiutano a raggiungere il successo
31. Documentazione, tutorial e link utili
•http://bit.ly/MsMobileEngagement
Mobile Engagement Documentation
•http://bit.ly/Ch9MobileEngagement
Channel 9 Mobile EngagementVideos
•http://bit.ly/MsMEGitHub
Progetti SDK su GitHub di Microsoft per le varie piattaforme + demo app
34. Feedback Form
Compilate il feedback form!!
Aiutateci a migliorare la qualità degli eventi!!!
Track A
http://svy.mk/2l9THNc
Grazie!
Hinweis der Redaktion
Dati dallo Store: abbiamo bisogno di capire quanto tempo restano su una pagina, come usano l’app ecc.
Analisi utilizzo: abbiamo bisogno di capire come interagiscono tra le pagine
Classi di utenza: area geografica, range età, sesso,… ma anche tipo di device
Fedeltà: la riduzione di utilizzo potrebbe dipendere dalla nostra app o da altre concorrenti
Dati dallo Store: abbiamo bisogno di capire quanto tempo restano su una pagina, come usano l’app ecc.
Analisi utilizzo: abbiamo bisogno di capire come interagiscono tra le pagine
Classi di utenza: area geografica, range età, sesso,… ma anche tipo di device
Fedeltà: la riduzione di utilizzo potrebbe dipendere dalla nostra app o da altre concorrenti
Users
In questa sezione potremo vedere quanti utenti nuovi o “retained” (ovvero mantenuti, convinti a restare) abbiamo avuto in un arco temporale (es. ultima settimana, ultimo mese, periodo a scelta, ecc.)
Possiamo vedere anche quanti utenti sono stati attivi (almeno con una sessione) in un periodo a scelta, come detto prima
Gli utenti sono conteggiati in maniera univoca ed anonima tramite l’identificativo del dispositivo con il quale utilizzano l’app
Retention
Qui vengono visualizzate tutte le azioni di “retention” effettuate ed i loro effetti
Sessions
In questa sezione possiamo trovare il numero di sessioni utente effettuate nel periodo di tempo che scegliamo e la loro durata
Con sessione si intende l’inizio-fine periodo in cui un utente esegue una serie di attività all’interno di un’app, quindi lo stesso utente può effettuare più sessioni in un periodo di tempo anche ristretto
Una sessione può essere espressa anche all’interno di più “pagine” della nostra app
Trattandosi di scenari mobile, laddove il periodo di inattività di un utente all’interno di una sessione si prolunga oltre alcuni secondi, la sessione stessa può essere suddivisa in due distinte sessioni
Activities
Qui troviamo le attività che abbiamo definito e il loro utilizzo, nel tempo, sia in termini di conteggio che di durata
Con il termine attività si può intendere normalmente la generica pagina della nostra app
User Path
Questa è una sezione a mio avviso di grande interesse, perchè mostra, attraverso un grafo, le varie interazioni tra le attività o meglio i passaggi che l’utente fa attraverso le nostre pagine
In questo modo possiamo comprendere quali siano i comportamenti di maggior frequenza degli utenti della nostra app
Events
Qui troveremo gli eventi che si sono susseguiti nel tempo
Con il termine “evento” si può intendere un click all’interno dell’app oppure una notifica ricevuta o altro che sia avvenuto all’interno di una sessione
Jobs
Quando si parla di Job si intende la durata di un task
Un esempio di task può essere il download di un file o l’esposizione di un banner pubblicitario
Technical
In questa sezione troveremo numerose informazioni, relative ai device che utilizzano la nostra app, come ad esempio gli operatori attraverso il quale i device si collegano, le dimensioni dello schermo più usate o addirittura la versione del firmware che avevano montato sul loro dispositivo
L’elenco di queste funzionalità è lungo e viene qui omesso per brevità, in ogni caso di queste informazioni si possono vedere i “Top 5”, ovvero i migliori 5 (o i 5 più diffusi, utilizzati, ecc.)
Errors
Come si può facilmente immaginare, qui troveremo informazioni relative agli errori che sono avvenuti all’interno della nostra app
Crashes
E allo stesso modo qui troveremo informazioni sui crash della nostra app, ovvero quando la nostra app termina improvvisamente a causa di un errore
Users
In questa sezione potremo vedere quanti utenti nuovi o “retained” (ovvero mantenuti, convinti a restare) abbiamo avuto in un arco temporale (es. ultima settimana, ultimo mese, periodo a scelta, ecc.)
Possiamo vedere anche quanti utenti sono stati attivi (almeno con una sessione) in un periodo a scelta, come detto prima
Gli utenti sono conteggiati in maniera univoca ed anonima tramite l’identificativo del dispositivo con il quale utilizzano l’app
Retention
Qui vengono visualizzate tutte le azioni di “retention” effettuate ed i loro effetti
Sessions
In questa sezione possiamo trovare il numero di sessioni utente effettuate nel periodo di tempo che scegliamo e la loro durata
Con sessione si intende l’inizio-fine periodo in cui un utente esegue una serie di attività all’interno di un’app, quindi lo stesso utente può effettuare più sessioni in un periodo di tempo anche ristretto
Una sessione può essere espressa anche all’interno di più “pagine” della nostra app
Trattandosi di scenari mobile, laddove il periodo di inattività di un utente all’interno di una sessione si prolunga oltre alcuni secondi, la sessione stessa può essere suddivisa in due distinte sessioni
Activities
Qui troviamo le attività che abbiamo definito e il loro utilizzo, nel tempo, sia in termini di conteggio che di durata
Con il termine attività si può intendere normalmente la generica pagina della nostra app
User Path
Questa è una sezione a mio avviso di grande interesse, perchè mostra, attraverso un grafo, le varie interazioni tra le attività o meglio i passaggi che l’utente fa attraverso le nostre pagine
In questo modo possiamo comprendere quali siano i comportamenti di maggior frequenza degli utenti della nostra app
Creazione nuovo progetto con Application Insights
Aggiunta Application Insights ad un progetto esistente
Instrumentation Key
Instrumentation Key per svilupo e produzione
Catch di tutti gli errori con AI
Registrazione eventi con AI