Visitor campaign information is stored in a cookie on the visitor’s machine. This cookie stores the referral information for the visitor’s session. This cookie tracks organic referrals, tagged campaign links, un-tagged referral links, and direct visits.
Each time a visitor visits your site the Google Analytics Tracking code updates this cookie with the appropriate campaign information. When the cookie is updated GA discards the previous campaign information. As a result, GA only tracks the current campaign information, not previous campaign information.
With that said, there is a ‘pecking order’ regarding which activities will overwrite the data in the campaign tracking cookie. Let’s review how GA buckets your traffic in terms of referral information:
- Campaigns: links that you have tagged with campaign information
- Referrals: untagged links on other web pages
- Direct: people who type your URL into a browser
- Organic: organic search engine traffic
Here’s an example. A visitor visits your site from a newsletter with tagged links. They look around and decide to leave. When they leave your site the campaign tracking cookie will persist and indicate that they originated from the newsletter.
The same visitor decides to come back the next day and types your URL into the browser. The campaign cookie will still indicate that the visitor arrived via your newsletter because the second visit was a direct visit, and direct traffic does not overwrite existing campaign information.
How GA Updates the Campaign Tracking Cookie Based on Referral:
- Direct traffic is always overwritten by referrals, organic and tagged campaigns
- A new campaign, referral or organic link that brings a visitor to the site always overrides the existing campaign cookie
- You can do some setting in GA to avoid new campaign to override existing campaign cookie. However, this will still not prevent GA to update the campaign cookie to be overwritten by Organic link or untagged referral links.
Google Practice to Allow Redirection and Retain Referral:
Always use the server side 301 redirect method: