Today’s websites are often fully-fledged browser-based applications. They’ve grown increasingly dynamic, re-rendering components multiple times as the user interacts with the page and often lazy loading content – after the initial page load.
For all the good that SPAs brought us with faster, more performant web experiences, it made site personalization technically challenging. If elements on the page are constantly changing, how can a client-side platform like Monoloop apply changes at the right time?
Previously this required custom coding which was exactly what we wanted to minimize with Monoloop in the first place. We have been struggling with this for a while, so we are very excited to announce Support for Dynamic Websites and SPAs.
New page interaction flow
The main change we have made is how Monoloop communicates with your website. Now Monoloop monitor and respond immediately to changes to the DOM – independent of the page load. If something dynamic is introduced after the page loads, Monoloop will engage and re-apply the changes that’s part of the experience you have designed. No more polling or custom code to track AJAX calls to figure out if content is returned or not, no more custom coding to support lazy loading etcetera. Now we let the page tell Monoloop when elements load or re-render and activate Monoloop on each change – no matter how many changes are happening after the page has loaded.
New Page Event tracking
Not only has Single Page Applications challenged how content is loaded – but also the basic web concept of tracking pageviews. Being a single page we would previously only track the first page view and get no information about the visitor’s interaction with the different content elements on the page. The count of pageviews would be 1 – no matter how much content the visitor interacted with. All the nice interest scoring you are used to in Monoloop simply did not work without custom code.

SPAs can be designed in many different ways – but typically content sections (pages) are reflected with a change in the URL# or a change in the URL history. Monoloop now support both in order to track page events. Simply select how you want to track page views in your SPA and tell Monoloop how long a page should be visible (and page not scrolling) in order to be counted. Then Monoloop will trigger a page event track whenever the site visitor views a new content section in your SPA. All conditions on the SPA will be evaluated on each section view and any conditional content will be injected as normal.
Available now
Support for Dynamic Websites and Single Page Applications is released as Beta and is available for all accounts. Support for Dynamic Websites is automatically enabled for all accounts. To enable Single Page Application options you have to select between the supported methods in your Account/Snippet settings.
It seems that the path towards personal and relevant user experiences on professional websites just got shorter and broader. Look forward to seeing it being used by more.
Lars Gardan