Interaction Path Analysis in an Ad
During Flite’s Q2 hackday, the secret ingredient was “Big data sets” and every group could work on any hack that deals with the secret ingredient. During the brainstorming process, our group “Beets” thought of utilizing the large amount of data generated from our ad metrics system when a user interacts with an ad.
When a user interacts with a Flite ad, we collect all actions made by the user within the ad. The common interactions we collect include clicks, scrolls, hovers, clickthroughs and many more. Each interaction contains a series of information, including the sequence number, the spot where the interaction happened (x,y position relative to the ad), component name, etc. With this information we can reconstruct the whole user session.
As we have this huge amount of interaction data, we thought of building a feature which shows the most common user path for a specific ad. This can help data analysts see how our current users are interacting with the ad, when they are leaving the ad, and find patterns to improve the interaction rate.
For any given ad:
- Grab all interaction data, grouped by session.
- For each session, remove interactions that are not important like hovers, rollovers, rollouts etc., and generate new sequence numbers.
- Group all sessions by its sequence number and component name.
After that, we used the data to construct a weighted tree where the root node will always be the number of impressions served till now. The child nodes for the root will be the first interactions users have done on the ad. You can click on each node to find out what other interactions users performed after that interaction.
Session Ended events show how many users didn’t interact with the ad after the parent interaction.
To implement the UI, we used the flow plugin from an open source visualization tool - D3.flow.js. On each node click we make an ajax call with the id to get the child nodes and render them. The time consuming part was grabbing session data for an ad and constructing a data model out of the huge data set within 24 hours.
Team Beets - Sam Chan, Toshi, Jiangyue, Chakri