Sessionization: It’s much more than you thought it was

When it comes to web or app analytics, sessions are an important unit of measurement. To best understand user behavior, we seek to analyze user actions grouped in sessions. Traditional analytics defines sessions either as Time-Oriented which translates user inactivity as a signal to end a session or Navigation-Based which “divide requests into sessions based on an unbroken chain of hyperlinks.” (Wikipedia)

While traditional approaches may have been adequate in yesteryear, in today’s multi-device, multi-source realities, to understand user behavior, we simply cannot define sessions only in terms of time or navigation or rely on a single source of information for sessionization.

For example, if the user Scott installed the Skype app and registered from the computer, then right away installed on the phone too, and immediately proceeded to add money as Skype credit, shouldn’t we be able to define Scott’s entire journey as a single session?

Server-side Session Consolidation

Users’ activities data flows from various sources; app installation data (from AppsFlyer), registration events (from the app itself) and payment data (from REST API with the finance system). With server-side sessionization, we are able to consolidate user events from all the different sources, and group them under one session ID. Doing so, we can analyze user’s behavior by the collection of actions which happened at various touchpoints, and examine them as one unit – a session. This way, we are able to understand Scott’s true session and behavior.

In this example, this pivot table demonstrates session consolidation of actions collected from various sources.

We clearly see the session of User1 that started at 13:32 with the user registration, tracked by the REST API, performed on a Linux device, then continues to five other actions, collected from different trackers on different devices. This multi-device journey is aggregated into the same session_id on the server side. Now you can dive deeper to analyze user behavior.

Behavioral Analysis Table

Choose Your Own Ending

Unique applications (like yours) are not like the others (frankly, by definition). Then, it is not logical that all businesses have to conform with that same traditional definition of a session. While one company may be placated knowing that sessions are closed after 10 minutes of inactivity, for others the time limit may not work.

Each vertical is different and companies within each vertical are different from their competitors. Gaming companies may define a session as a mini game, while publishing companies may conclude a session when the reader closes an article.

With deep analyitcs you get to personalize your sessionization and define your session termination by setting a defined time of inactivity between 2 defined events. in event based analyitcs, it can be any event of any type, not limited to just page close or browser close.

To truly understand the unique way your users behave on your app, you need the ability to easily define your sessions.

Understanding user behavior within well defined sessions is extremely valuable. By the Time definition of traditional analyitcs, a user’s registration and conversion may be logged as separate sessions. But if you define your sessions another way (completion of a cart purchase), then the user conversion calculated inside the same session.

Session Enrichment

The sessionization process does not end when the session terminated. After the session is recorded, we perform a set of enrichment steps (as part of our ETL):

Spreading session scope values alongside the events, for example: IP address (or email address) that is sent only by one event is applicable to the whole session.

Calculating aggregated parameters (attributes) such as session duration (ms), number of steps in session, session path, session funnel.  This way you can look at a user sequence of sessions, or sessions that happen on time range.

Aggregate session data to allow easy querying of the data on the session level like daily sessions, for example: WHAT IS THE average number of sessions per user WHERE COUNTRY = ‘CANADA’

The Golden Session

Based on the consolidated sessionization, analysts can Analyze a successful session, in which the goal conversion was achieved. (a conversion that happened on the first session is always considered a golden one). and build a “behavioral profile” of the golden session, that helps to optimize the conversion path for other users who fit the persona.

The Advantages of Behavioral Sessionization

Using the great advantages of flexible server side behavioral sessionization, analysts are able to:
1 – Look at actions data collected from multiple sources as one united session for a complete picture of the user session across multiple touch points.
2 – Define custom session termination, unique to their users and their app
3 – Spread session scope values alongside the events (as described my previous post)
4 – Perform funnel and cohort analysis on a session scope , as oppose to user lifetime analysis
5 – Sessions based comparison to analyze the session step that leads to churn and compare with the steps of successful sessions

The new realities of user behavior analytics require a new view of sessionization.

Sessionization has great value in behavioral analysis.
When analysts have the flexibility to analyze sessions based on their own definition, the insights gleaned vary greatly than when they are bound by predefined (and ill-fitting) sessions. Given access to accurate session data and the ability to perform rigorous quantitative analysis, only then can we optimize our apps and games to deliver an experience that thrills users and causes them to convert.

Ready to start with deep behavioral analytics? Let’s talk. 
We’ll get you on the shortest path to true understanding of your users’ behavior.

Share this post