After spending several months of software requirements, scrum and design meetings, hours of implementation and testing efforts, our application is finally deployed, but the work for a sustainable product is not complete. After the app is deployed, it is important to understand the users to improve its adoption, and to understand its users, many questions need to be answered. Some common questions may include:
How do we know about user acceptance? How can we measure
the user experience? Are all those different features on the app being used? How
can we learn from our users to make app improvements?
To answer those question, we need to collect data that can
be used to provide and validate the answers. The best approach to collect this data is by
adding telemetry tracking in our apps. By tracking user activities like page
views, clicks and custom events, we can use Application Insights analytical visualization
tools to understand the user’s behavior. In this article, we look at some of
the analytical tools that are available on Azure Monitor Services, which we
can leverage to help us answer the questions listed before and better understand
our users. Before we get to understand those tools, let’s first provide an
overview of the monitor service that host them.
Application Insights (AppInsights)
AppInsights is part of the Cloud Monitor Services on Azure.
It has two main areas that work tightly together. It is a monitor service with
statistical analysis tooling, and it is an application framework, with support
for languages like JavaScript, C#, Python, that is used to instrument our
applications and track telemetry information for our apps.
This service has multiple statistical analysis tool to help
digest the telemetry information for many areas of the apps which can include front-end,
back-end, APIs. The tools are also grouped on areas of concerns like
investigation for performance metrics and problems, monitoring/alert, and application usage.
It is the usage statistical analysis tooling that can help
us learn how are users interacting with the application. Some of these tools include
the users, sessions, events, cohorts, funnels, and flows tools. Let’s review
each one of these tools and see how they can help us understand our users and their
behavior.
Users Analysis
The user analysis tool helps us understand details about the
users. We can visualize what events and pages/views the users are interested in as
well as some user specifics like country or city of origin, operating system in
their devices, and browser versions.
Those details can help us make decisions like improving advertisement
on some geographical areas to attract those users. Also, they are great
indicators to understand the usability based on the device types and browsers
being used. This leads to making decision on open issues that are related to
mobile device improvement, as an example.
Sessions Analysis
The session analysis tool is very similar to the users’ tool, but it provides session-based information about those users. Keep in mind that one user can have multiple session. These sessions can help us see how users are using the application. The sessions can be visualized by tracking page views and user events. This information is valuable to be able to understand what areas of the application are mostly used. Analysis can be done to understand usability problems in some areas, so they can be improved or simply removed from the app altogether.
The session information is very valuable for some A/B testing analysis, in which design variants can be introduced to the user experience. This, for example, can reveal that users tend to have a much better user experience with one design over the other.
Events
When we need to understand how users are responding to a
particular design or feature on the application, we can use the events tool to
see the telemetry information that is collected when the user makes some
actions like clicking on tabs, links, dropdowns to change selections. The
collected insights from these actions can reveal if a particular feature is
relevant to users. This can help determine that perhaps a feature is not
needed at all or if a design is too confusing to our users.
Custom events not only track user actions, but they can
also be used to track some data and or integration telemetry. For example, we
can track events about data variations that comes from an external API. The
application may not have any control about the source of the data, but custom
events can help us track those variations, which leads into creating some countermeasures
to handle them.
Other areas that can be tracked with custom events can
include input validation, timeouts from user inactivity, chat or help request
from specific areas of the application. All these leads to better insights for
the improvement of the overall user experience.
Cohorts
Cohorts enable us to create a specific group of users which
have completed a specific goal metric like signing for newsletters, completed a
purchase or landed on a particular area of the app. By predefining groups of
users with a particular criterion, we can use that group as a filter on the users,
sessions, and events tools. This enables us to continuously analyze the same
criteria and compare performance metrics.
The advantage of using Cohorts is that we can use custom logs
query expressions to select the information we need from the customEvents and pageViews
log tables. The customEvents table has all the events that are sent from the
app, while the pageViews table contains all the page visit information.
Combining these tables with a particular criterion can generate an excellent
filter which can enable us to analyze the data in more detail.
Funnels
Most apps have a particular workflow that we would ideally
like our users to follow. This however may not always be the case, and users
may not follow the steps as expected. Therefore, we require a tool that can help
us analyze the data to verify how are the users running each step of the
workflow. Funnels represent a set of steps on the application and the percentage
of users who follow such steps.
For example, an app workflow may consist of several pages/steps to allow the user to register. Since each page visit is tracked, we can create a funnel and select each page visit as a separate step, thus creating a workflow. The output should indicate to us which step the users are not completing or when they stop or abandon the workflow. This is an indication that a particular step may have some design issues that are causing our users to drop off and not complete the workflow. This information should help identify design improvements on those pages to help guide the user and improve the completion percentage.
User Navigation
Whereas Funnels can help us understand the percentage of users
completing certain application steps, it does not provide to us enough
information to clearly see where the remaining percentage of users are going.
User Navigation visualization tool provides this insight.
The tool provides a page view visualization that can help us track how users are
navigating the site. Ideally, the workflow should be a sequential flow, but if
we see that users are flowing/going into other areas of the app or stopping at
a particular step, we can analyze that information further and make some design
changes that can help increase the completion percentage.
To use the tool, an initial event like a page visit can be
selected as the starting point, then custom events and other page views can be
included to see a flow diagram of the steps before and after the selected
target event.
When it comes to user visiting pages, this is by far the most useful tool for us to examine, as this can lead us into better understanding of our application and make design decisions on how to improve the user experience and app navigation which help improve the page visit goals for our apps.
Conclusion
When an application development life cycle starts, several decisions are made based on the information that is available during the design phase of the app. It is very important to validate those design decisions by instrumenting our application, so the necessary telemetry information can be gathered and analyzed post deployment. It is then that we can better understand the app users to help validate the design decisions or make changes to improve both the user experience and adoption of our apps. In addition, this is an ongoing process as user behavior can change over time, so ongoing iteration of this process is required.
Add AppInsights to Single Page Apps
Thanks for reading!