It isn’t always possible to know the exact cause of self-referrals, and a certain amount is to be expected.
The Referrer is a session-level property that we pull from the browser’s Document.referrer
property at the very start of a session. It may be impacted by the referrer policy of the referring site, redirects, and innocuous user behavior such as letting a session time out and returning to it after 30 minutes of inactivity.
The Session has timed out in a tab.
What is a session?
A session in Heap is a period of activity from a single user in your app or website. It can include many pageviews or events. On web, a session ends after 30 minutes of pageview inactivity from the user. On mobile, a session ends after 5 minutes of inactivity, regardless of whether the app’s background or foreground state.
When the page loads for a new session, a cookie is set marking the start of that session. On each page load, we re-assess whether the cookie should be reset or not.
If the user navigates away from the page but leaves it open, the cookie remains the same, even after the 30-minute window when the session has expired. If the user navigates back to that open page and completes actions on this page without reloading it, then those actions will be attached to the previous session ID, because the cookies haven’t been reset. An example of this is when the user places an item in their shopping cart, navigates away from the page, then returns later to complete their checkout.
This effect is more noticeable on mobile due to auto-refreshing behavior on certain operating systems (particularly Apple’s Mobile Safari).
You have the resetIdentity
API call on a page of your site.
When a logged-in user visits this page, the resetIdentity API will temporarily create a new anonymous user. When that user re-logs in (which resets their cookies), their identified again under the correct identifier. If the user never logs back in, or cookies expire, that temporary anonymous user will continue to exist within your dataset.
If this is happening, talk to your developer to re-evaluate your API configuration, or contact us via the Get support page.
Heap is not loaded on your landing page.
If Heap is loaded on other pages on your site, but not on the landing page, then referrers from the landing page will list your site’s domain. You can fix this by adding the Heap installation snippet to your landing page’s header block. See our web installation instructions for complete steps.
Users are navigating/navigated (redirects) to new pages before Heap finishes loading, or before the document itself finishes loading.
This can be related to a variety of causes, including blocking JavaScript and tag loading priority.
To fix the former, make your JavaScript synchronous and optimize the loading of stylesheets.
To fix the latter, if you are using a tag manager, load Heap with highest priority. If you are not using a tag manager, make sure your app loads Heap in the <head>
rather than the <body>
.