A few customers have requested the ability to view an aggregation of the user actions in chronological order. This would essentially allow them to "profile" the usage of the application and see the most common "click paths". This view (in theory) would be similar to that of the user action breakdown of a visit but would somehow contain aggregated information on the most common click paths, showing how users typically use the application.
I realize that this is likely not possible within dynaTrace as the focus is mainly on performance and not user analytics, however, I was wondering if anyone else has encountered the same request and what they did to monitor it? The only way I'm thinking that this is somewhat possible is by manually defining filters for specific use cases into a business transaction and then count the number of visits in which those user actions occur.
Any other thoughts on the subject are greatly appreciated!
I've thought about this from a theoretical perspective, to use the BT Export on User Actions with a bunch of splitting dimensions, but particularly the action name and the sequential page number of the visit could be used to analyze this in another engine
That would work if you went form one page to another, but it wouldnt work for a sequence of method calls, for example. I was throwing around the idea of creating a series of business transactions and using one business transaction as a measure for the next, but that would still only act as a basic filtering, as if you did everything on 1 business transaction. except with more overhead.
That's a good thought Rick, forgive me if it's obvious but how would you get the page number out of dT?
One other thought is possibly monitoring the source URI/action for certain pages in order to get a good sense of where the users are coming from to get to that page. Although this wouldn't give a comprehensive view of a visit "click page' it would provide some behavior related information.
Also, I found that the landing and exit pages for visits can be tracked. Therefore, I wonder if there is some sort of internal number dynaTrace gives to each user action within the visit? This may allow for aggregation to take place.
Perhaps there is a way to key off of purepath timing? I mean we obviously are capturing that information already, maybe there is some way to rip that timing information out. The problem then becomes: can we get purepath times as a relative number instead of a hardcoded timestamp. there may be some way to do it using the tag of the purepath itself (whatever mechanism we use to link purepaths together into one large purepath)
Looks like there is a Action ID value that can be used:
If possible to pull this out, it may be sufficient to create multiple Business transactions for each action ID numbered 1-5 or so and then split by the Action Name. This will help show what the users typically click on first, second, third, etc within the application. What do you guys think? It would need to be tested though since I suspect there would be a LOT of splittings.
looks like action name and action type are the only kinds of data we can scrape. im not seeing any option for action ID.
Also, is the action ID a fixed value? or does that value change based on individual visits?
If you go into Visits ---> click a viisit ---> right click an action and click details: you will see a "user action step". Seems to be a similar thing to key off of, but the question once again becomes: how do we tell it the sequence? Perhaps if we say "user action = click" as the first filter in a BT, use an AND type of aggregation, and then say "user action ID" for the second filter and set its to a number like 1. Then we can use this business transaction as a filter within a second BT, in addition to a user action ID of a higher numebr and a second user action for that BT.
The overlying problem that I'm seeing is not so much "how do we get the right data", its always "how do we clarify a certain sequence", even if we could rip out the action ID or step.
Ya, unfortunately I couldn't find a way to scrape out the Action ID as well.
I think the right data depends on the request. For my current customer, I believe that pulling out the action ID and name would be sufficient as we would be able to see what users typically click on first, second, third, etc within the program. Although we wouldn't see the most common "Click Paths" we would gain a pretty good idea of what functions users are using most and then concentrate on any performance issues concerning those functions.
One thing was brought up during a meeting i had:
What if the client's own app kept track of the sequence of events for us? I suspect they could index each page or action that people can take, and then capture that info as a simple number. then we can split based on that number. alternatively, if they do it as a series or a set of numbers or even page titles as single huge string, we could probably regex it and split off of that value to show different paths users can take through the web page. Maybe the JS ADK would come in handy here? I need to learn more about it to say for sure.
That seems as though it would certainly work. If they stored these numbers as a session attribute or something similar, then we would be able to capture it out of dynaTrace pretty easily. The issue with most customers is that they wouldn't want to alter their code base in order to capture this sort of information, therefore, it's always best to try to make it work in the tool first.