New directions regarding user’s privacy have changed the way information is gathered, tracked and stored for all online businesses.
The online must now guarantee by law a secure approach for every website visitor, as they must decide which of their information can and will be used for marketing, tracking, and analytics data.
That is why we don’t gather any private information from our users. We only track action data, information regarding their interaction with the website and their online activities. This action data is gathered by generating a random identifier for the users which guarantees their anonymity.
Approaching data, not identity
How do we collect information?
In order to collect the action data we use Azure Functions, unrelated to all our Sitecore structure. This way we make sure that the collection of data is fast, non-intrusive and does not hinder the user experience.
One of the functions allows us to identify a user without an IP or other relevant/private data, by randomly generating an ID for each user that accesses the website. The ID is then saved in a local temporary storage – powered by Redis, and it contains the action data that we talked about earlier. This relevant information consists of time and date, accessed pages and the length of online sessions. This action data helps us identify most visited pages in order to focus our work in improving the content that the users truly like to see.
How do we store relevant information?
Another Azure function processes temporary data into relevant historical data that is stored in Azure tables for later consumption with minimum space for data utilized.
The last piece of the puzzle is another function set in place to provide both temporary and historical data to a customizable Sitecore page with user friendly custom reports.
From backend to frontend
Using the SPA approach with React JS we created a simple view that can help us display the data gathered by the Azure functions. One struggle that we had was to present the data in a human readable form. This was particularly difficult because we have never built an analytics app before. For the first version of the Custom Analytics Page we decided to present the data in a simple and clean way to be easy to read and process, we only used small representation cards and tables to display the collected data. We have not implemented complex data representation components like pie or bubble charts, line representations or other plots, this might be created for future versions after we can judge how helpful the view is.
Also, this page is specifically molded such that it can offer us relevant information regarding our visitors and their interaction with the web site. Some of the data that we can display consists of how many visitors we had and whether they accepted cookies or not.
We currently only developed some timeline filters allowing the users of the custom analytics page to change the date from which data is displayed or even display information from multiple days. Our code structure will help us improve and extend filtering functionality to for a better readability of the retrieved data.
Enhancing experiences by using safe data
How does the information we receive about users help us?
Even if we do not store private metadata such as location or IP, we are still interested to see how our users interact with the site. An example of the data that we track is the number of users on our site, how much time was spent on a specific page, if the cookie policies have been accepted or rejected. This kind of information helps us see which pages are the most popular amongst our users. Knowing this data we can update our code, load tests and, performance in order to make sure that the most populated part of our site stays up and running no matter what in order to offer our users the best experience possible.
Better performance, improved marketing
Approaching data, and not identities on our users, still allow us to extract and extrapolate data relevant for the current and future marketing strategies. What pages were most accessed, at what time of the day, month and year, and times spent on different pages can represent valuable information that can be corroborated with the marketing strategy.