What is a Single Page Application?

A Single page applications (SPA) is an app that works inside a browser and does not need page reloading during its usage. There are many examples of SPAs around the internet that you use every day, such as Google, Gmail, Maps, Facebook, Twitter or GitHub etc.

A SPA is especially good for responsive websites which support mobile devices, Tablets & Desktop browser. Single page applications can improve a performance in many ways and that's the reason why the get more common everyday. 

Why can SPAs be a problem for Adtriba? 

Adtriba uses the page referral to distinguish traffic. Once the referrer changes during a visit on the website Adtriba thinks: Oh, here is a new touchpoint for the customer journey!

Let's assume you are clicked on a Google Search link to get to yourwebsite.com
In that case, once you hit the website your referral will be: google.com and Adtriba knows your click was triggered by SEO. 

Once you navigate from the first page the trouble basically starts in most SPAs as - for most basic SPA set ups - the referral is not persisted and is empty on your second pageview. In that case Adtriba thinks - oh there is a change in the referral, and it's empty now - thus Adtriba will count one direct touchpoint even though thats not the case. 

How to solve the problem? 


The Problem is easy to solve. Just go to your IT and ask them to persist whatever is in the document.referral when the user enters the page or if the user came via direct type in the referral should be the domain of your website for each new pageview. It's also possible to overwrite the location and referrer information by using the extended pageview event API. 

<script type="text/javascript">
(function(){
    window.adtriba = window.adtriba || [];
    window.adtriba.push(["pageview", "", {
        location: "https://example.com/new-location",
        referrer: "https://my-new-referrer.com"
    }]);
})();
</script>

If you need any further help you can always contact us via support@adtriba.com

Did this answer your question?