Suggestion - how to visualise sequence of actions and relationships

Posted almost 3 years ago by Magali Colin - Avizua

Post a topic
  • Pinned Topic
Answered
Magali Colin - Avizua
Magali Colin - Avizua

Hello,



I am looking for ideas of interesting views (network views, scatterplots, sankey...or any other views)  to present this data.


This is a sample that represents searches on a search engine. The searches are done by known users (UserID) :

· One sessionID per user.

· A user can have made several sessionID

· The order of actions during the session is seen by the IDline.

· Instant action was calculated in seconds from the beginning of the session.

 

I would like to show some possible views, for example to show the path of actions (keeping the order in time (by IDline)) for a session.

Or, for example analyze the actions performed, the expressions searched...


Thanks for any ideas.


Magali

0 Votes

P

Paola Tomei posted almost 3 years ago Admin Best Answer

Thanks for posting. In this scenario we are exploring a 'typical user journey', which is a sequence of actions in effort to establish:

a) what are the most frequent actions or combinations of actions, measured by record count

b) the effect these different journeys have on the target variable - the field [Number of Responses].


PREPARATION

Dataset will require some preparation to add several calculated fields in the Field Organiser block (e.g. Next step, Next action, Total responses per SessionID etc.) and data mapping - to assign a symbol to every [Action type] for a more effective visualisation. Concatenation of Step# and Action will allow us to create ordered sequences.

Formulae used in the Field Organiser block can be found at the bottom of this page, along with the IOZ file containing the whole project. 

(download/ import / explore the details in your Omniscope installation)


We will also use the workflow to create multiple data orientation and aggregation states.


We can now observe the transformation by 'pinning' different blocks - below we used a Pivot block to move the data from 2 fields [ABC] and [Sequence Step#] to orientation where each step is a new field and actions are distributed accordingly.



VISUALISATION

Our aim is to compare the frequencies of different actions to establish which action or combination of actions has the highest frequency. This is especially relevant when linked to our target variable - Number of responses.

This project offers some conventional visualisations e.g. Bar charts or line on bar to make comparisons, as well as multiple Network views as options to explore the relationships. Probably the most effective one in this mission the Sankey chart, as it allows us to order the actions following the concatenated step# / action combination, while colouring enables us to follow every action type. Weight by record count indicates the traffic, while weighting by the responses points to where the conversion happens.



Another angle of our research would be also to identify which journey is likely to end without a desired result/conversion. For that we can also use a Table view where aggregated sequences show order of components agains the frequency and responses sum.



Not to be forgotten are the Filter devices - when used well these can orchestrate the 'drill-down' behaviour, enabling the report viewer to filter/select and explore effects of a particular component or a combination.


FORMULAE used in this project


Next action

SUBSET_SINGLETON([Action type],

INTERSECTION(

SUBSET([Sessionid]),

SUBSET([Sequence step #],[Sequence step #]+1))

)


Sequence step#

RUNNINGTOTAL([1], subset([Sessionid]), TRUE)


Unique Actions List

IF([Sequence step #]=1,

SUBSET_UNIQUESLIST([Action type], subset([Sessionid])),

null)


Concatenated Step Action

[Sequence step #]+' '+[Action type]


Ordered Actions List

IF([Sequence step #]=1,

SUBSET_UNIQUESLIST(([Concat step action]), subset([Sessionid])),

null)

(creating an ordered actions list just on the first record for each SessionID, to avoid duplication)


Next Step

IF(

[Sequence step #]=SUBSET_MAX([Sequence step #], subset([Sessionid])),null,

([Sequence step #]+1)

)


Responses per SessionID

SUBSET_SUM([Number of responses], subset([Sessionid]))




0 Votes


3 Comments

Sorted by
Magali Colin - Avizua

Magali Colin - Avizua posted almost 3 years ago

Great ! Thanks Paola !

Mariagrazia, sorry : the sample of data comes from a client's private tool. It does not come from Google Analytics. In case I get more information, I'll come back to you.

Regards,

0 Votes

M

Mariagrazia Efato posted almost 3 years ago

 Hi Magali, I would like to know how Can I extract the id session and id line (found it in the file) from Google Analytics. I'm trying to do it, but I can't find the right field. Thank you so much!

0 Votes

P

Paola Tomei posted almost 3 years ago Admin Answer

Thanks for posting. In this scenario we are exploring a 'typical user journey', which is a sequence of actions in effort to establish:

a) what are the most frequent actions or combinations of actions, measured by record count

b) the effect these different journeys have on the target variable - the field [Number of Responses].


PREPARATION

Dataset will require some preparation to add several calculated fields in the Field Organiser block (e.g. Next step, Next action, Total responses per SessionID etc.) and data mapping - to assign a symbol to every [Action type] for a more effective visualisation. Concatenation of Step# and Action will allow us to create ordered sequences.

Formulae used in the Field Organiser block can be found at the bottom of this page, along with the IOZ file containing the whole project. 

(download/ import / explore the details in your Omniscope installation)


We will also use the workflow to create multiple data orientation and aggregation states.


We can now observe the transformation by 'pinning' different blocks - below we used a Pivot block to move the data from 2 fields [ABC] and [Sequence Step#] to orientation where each step is a new field and actions are distributed accordingly.



VISUALISATION

Our aim is to compare the frequencies of different actions to establish which action or combination of actions has the highest frequency. This is especially relevant when linked to our target variable - Number of responses.

This project offers some conventional visualisations e.g. Bar charts or line on bar to make comparisons, as well as multiple Network views as options to explore the relationships. Probably the most effective one in this mission the Sankey chart, as it allows us to order the actions following the concatenated step# / action combination, while colouring enables us to follow every action type. Weight by record count indicates the traffic, while weighting by the responses points to where the conversion happens.



Another angle of our research would be also to identify which journey is likely to end without a desired result/conversion. For that we can also use a Table view where aggregated sequences show order of components agains the frequency and responses sum.



Not to be forgotten are the Filter devices - when used well these can orchestrate the 'drill-down' behaviour, enabling the report viewer to filter/select and explore effects of a particular component or a combination.


FORMULAE used in this project


Next action

SUBSET_SINGLETON([Action type],

INTERSECTION(

SUBSET([Sessionid]),

SUBSET([Sequence step #],[Sequence step #]+1))

)


Sequence step#

RUNNINGTOTAL([1], subset([Sessionid]), TRUE)


Unique Actions List

IF([Sequence step #]=1,

SUBSET_UNIQUESLIST([Action type], subset([Sessionid])),

null)


Concatenated Step Action

[Sequence step #]+' '+[Action type]


Ordered Actions List

IF([Sequence step #]=1,

SUBSET_UNIQUESLIST(([Concat step action]), subset([Sessionid])),

null)

(creating an ordered actions list just on the first record for each SessionID, to avoid duplication)


Next Step

IF(

[Sequence step #]=SUBSET_MAX([Sequence step #], subset([Sessionid])),null,

([Sequence step #]+1)

)


Responses per SessionID

SUBSET_SUM([Number of responses], subset([Sessionid]))




0 Votes

Login or Sign up to post a comment