Después de contarte cómo comenzar con Mobile Engagement lo siguiente es ver cómo generar información útil para conocer el uso de la aplicación por parte de los usuarios o errores que puedan ocurrir en la plataforma.
Como ya te conté en el post anterior, existen dos pestañas llamadas Analytics y Monitor. En la primera de ellas podemos ver información computarizada la cual podemos visualizar en diferentes formatos y filtrar de diferentes formas. Todas las gráficas pueden descargarse en formato CSV.
Una de las secciones que más me gusta es el User Path, que te permite ver cuál es el comportamiento de los usuarios.

Otra sección que te puede servir para conocer el tipo de dispositivos, operadoras, versiones utilizadas del SDK de Mobile Engagement, tamaño de las pantallas, etcétera es la llamada Technicals.

Por otro lado existen un par de secciones, Users y Retention, dedicadas a contabilizar el número de usuarios nuevos, activos, usuarios recurrentes, etcétera.
El resto de secciones están relacionadas con temas más concretos, los cuales nuestra aplicación debe ser capaz de generar a través de programación. Estas mismas secciones se pueden ver en el apartado Monitor donde se muestra a tiempo real acciones de usuarios que están generando este tipo de información.

- Sessions: se produce cuando un usuario hace uso de la aplicación, desde el momento que comienza hasta que deja de usarla. Como se puede ver en la imagen anterior, las sesiones se inician cuando comienza una actividad (como por ejemplo el acceso a una pantalla). Siguiendo el ejemplo del post anterior, en una aplicación para Windows Phone el propio uso de la página Main.xaml genera una actividad (debido a que hereda de EngagementPage) pero también es posible general actividades de manera manual de la siguiente forma:
private void Panorama_OnSelectionChanged(object sender, SelectionChangedEventArgs e) { var panoramaItem = (PanoramaItem)e.AddedItems[0]; var header = panoramaItem.Header.ToString(); EngagementAgent.Instance.StartActivity(header); }
En este ejemplo se ha capturado el cambio de selección en el control panorama y se genera una actividad con el nombre del titulo de la sección.
- Jobs: se utilizan para reportar acciones que tienen una duración en el tiempo, como pueden ser llamadas a Apis, tareas en segundo plano, rellenar informes, el tiempo que pasa un usuario revisando un pedido, etcétera. Un job puede lanzarse en segundo plano sin la interacción del usuario.
private void JobBtn_OnClick(object sender, RoutedEventArgs e) { EngagementAgent.Instance.StartJob("SleepingJob"); Thread.Sleep(10000); EngagementAgent.Instance.EndJob("SleepingJob"); }
- Events: son utilizados para informar de acciones de los usuarios, como hacer clic en un botón, comprar un artículo, etcétera.
private void LongListSelector_DoubleTap(object sender, GestureEventArgs e) { EngagementAgent.Instance.SendEvent("Double tap!"); }
- Errors: errores correctamente detectados por la aplicación de los que nos gustaría ser informados.
private void ErrorBtn_Click(object sender, RoutedEventArgs e) { var extraData = new Dictionary<object, object> { { "operationID", "1234" } }; EngagementAgent.Instance.SendError("Error from my Windows Phone app", extraData); }
- Crashes: excepciones no controladas en la aplicación. El SDK de Mobile Engagement se encarga de enviar estos errores a tu panel de manera automática.
private void CrashBtn_Click(object sender, RoutedEventArgs e) { throw new Exception("Booooom!"); }
Por último tenemos un espacio llamado Alerts donde podemos suscribirnos a cualquiera de las acciones anteriores.

¡Saludos!