Expand my Community achievements bar.

SOLVED

Tracking infinite scroll

Avatar

Level 2

We have a page which has an infinite scroll displaying ecommerce products. How can I implement scroll percent and percentage page viewed in most efficient way? I know how to implement 25%,50%,75%,100% but not user scrolling 

1 Accepted Solution

Avatar

Correct answer by
Community Advisor

Ultimately best way to track this would be to have a data layer and your developer should push an event each time new product list is displayed

View solution in original post

5 Replies

Avatar

Community Advisor and Adobe Champion

Infinite scroll really throws any logical way of tracking such things out of the water.... since the page is constantly changing sizes...personally I hate (and I do mean hate) infinite scroll... as a user.. as an analytics person... basically this design just plain sucks (and there are some sites that use Infinite Scroll that I will actually refuse to use their onsite search and find content via Google because the experience is so frustrating) ... but unfortunately, sometimes business mandates that kind of site behaviour and this will be difficult to get any sort of usable data from this implementation.... 

 

Are you using Adobe's getPercentPageViewed plugin? I would assume this would track the current page size when you click on a link, so the % will be relative to the current size of the page... but the problem is the every user will be calculated on very different page sizes even within the same experience (we all know that desktop vs tablet vs mobile yields very different % results, but at least they are mostly consistent within their own platform... not so with Infinite Scrolling). Let's say the infinite scroll loads 20 items at a time... I have scrolled enough to show 60 items (and I scrolled enough to see most of those 60 without triggering the next 20), and click on item X... 

 

Another user (with the same screen size) has scrolled enough to show 100 items (but just barely got to the bare minimum to load those last 20 items), then clicked through to a product....

 

The % scrolled is going to be vastly different for the same criteria...  I might very well have a higher % scrolled (merely cause I saw more of a smaller set of data) than the person who scrolled more and loaded far more content.... 

 

 

If you are not talking about getPercentPageViewed and instead are triggering actions when the user gets to 25%, 50%, 75% and 100% of the page... then you might want to reconsider instead of that, tracking an action each time content is loaded for Infinite Scroll, and increment a value for each time content is loaded... initial page load would be "1"... first set of content to load onto the page "2", next set of data "3", and so on... then you could compare users and get average of the number of content loads a user triggered, etc...

 

If the number of assets per load varies, then maybe you need to track specifically the count of products loaded to the page?

 

When it comes to infinite scroll, it would also be best to discuss with your stakeholders the impact that it causes to analytics, and outline what data you can provide and what will be sacrificed... make sure that you have a clear definition of what can and is tracked...

 

Good Luck.

Thank you for such thoughtful detailed explanation. I am still in the implementation process with devs and see where we land with it.

Avatar

Community Advisor and Adobe Champion

I will say there is no correct way to do so, as you can't calculate the percentage of infinite or unknown length.

All you can do is only how far the user had scrolled by an absolute number, in your case it can be how many products had been displayed, instead of a percentage of the total.

Moreover, don't track whenever the user scrolls and more products are displayed, only when the user is leaving the current page where the user will not long scrolling down and the number of products displayed will not be changed.

Avatar

Community Advisor

I think you should move the requirements away from scroll depth/percentage to component/page loads.

 

I would think your app might work in a way that it would fetch N amount of products and display them, when it reaches the end of the component a new request is done to fetch next N amount of products and display the component.

 

Try to work with your developer to see if there is an event you can piggyback on. 

 

 

 

 

Avatar

Correct answer by
Community Advisor

Ultimately best way to track this would be to have a data layer and your developer should push an event each time new product list is displayed