Skip to main content

Analytics: Technical Specifications

By Guðrún Unnur Gústafsdóttir

This article outlines technical specifications for Siteimprove Analytics which includes: how we collect statistics, what we do and do not collect, data transfer protocol, use of cookies, data endpoints, and log collecting. 

How Siteimprove Collects Statistics

Our statistics are collected with a JavaScript snippet typically placed on the master template of the customer’s website. The script should be placed before the “</body>” tag and should load asynchronously if using a tag manager.

The script is a version of the following: 

<script type="text/javascript">
/*<![CDATA[*/
(function() {
var sz = document.createElement('script'); sz.type = 'text/javascript'; sz.async = true;
sz.src = '//siteimproveanalytics.com/js/siteanalyze_CUSTOMER_ACCOUNT_ID.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(sz, s);
})();
/*]]>*/
</script>

NOTE: (CUSTOMER_ACCOUNT_ID) will be replaced with actual account id.

The JavaScript is triggered to load asynchronously when a webpage loads. Loading the script asynchronously ensures that the script will load in the background of the webpage without causing delay in the rendering of the rest of the page.

When a page with the JavaScript snippet loads, the script will execute and request a file from one of the Siteimprove log collection servers. The file requested is image.aspx and appended to the request will be a number of parameters with the data collected. From the request to load the image.aspx file we will collect additional information from our webserver.

What Siteimprove Collects

The JavaScript will identify and collect the following:

  1. The URL visited
  2. The title of the page
  3. The Siteimprove account id of the site’s owner
  4. The resolution of the user’s monitor/size of the browser window
  5. The referring address, if any (this is used to pick up search keywords, visits that came through links from other sites, etc.)
  6. The time it took to fetch and render the page
  7. A session identifier, allowing us to view a series of page views as a coherent visit
  8. A random number to avoid caching
  9. (Optional) A breadcrumb trail if we have configured it
  10. (Optional) A group name the page should be stored under
  11. (Optional) Search word used on internal search page
  12. (Optional) Any events setup to be tracked on the website
  13. (Optional) Scrolls and clicks on specific pages to be tracked on the website (Behavior Map)

From the request to load the image.aspx file we will additionally collect the following from our web server:

  • User IP address (Disabled for some users depending on region/country)
  • User agent string (Type and version of the browser being used and the operating system the browser is running on)

What Siteimprove Does Not Collect

We do not pick up or store any data submitted to forms. By default, we do not store any information from the page itself, but we can store breadcrumbs and group information (from meta tags) listed as “optional” above. These are only set up at the request of customers.

Data Transfer from Client to Siteimprove

We can transmit the collected data using either the HTTP or HTTPS protocol. This is controlled by the implementation of the script. If the website in question uses secure HTTP (HTTPS) we log through HTTPS as well, so the details we collect are protected during transport to our log collection servers.

Use of cookies

We set and use the following cookies to identify returning visitors and visitor-sessions:

__________________________________________________________________________

Cookie name: nmstat

Type: Persistent - expires after 1000 days

Domain: yourdomain.com

About:

This cookie is used to help record visitors' use of the website.

It is used to collect statistics about site usage such as when the visitor last visited the site.

This information is then used to improve the user experience on the website. This Siteimprove Analytics cookie contains a randomly generated ID used to recognize the browser when a visitor reads a page.

The cookie contains no personal information and is used only for web analytics.
____________________________________________________________________________

Cookie name: siteimproveses

Type: Session cookie

Domain: .siteimprove.com

About

This cookie is used purely to track the sequence of pages a visitor looks at during a visit to the site.

This information can be used to create User Journeys and enable visitors to find relevant information more quickly.

_______________________________________________________________________________

Cookie name: szcookiechoice

Type: Session cookie

Domain: .siteimprove.com

About: This cookie is used to determine if the user has accepted or declined cookies.

_______________________________________________________________________________

Data Endpoints

1. US-Endpoint

us1.siteimprove.comus2.siteimprove.com, us4.siteimprove.com Amazon Web Services, North Virginia (US-EAST-1)

Analytics script (/js/siteanalyze_[account_id].js)

Analytics log endpoint (/image.aspx)

Analytics events endpoint (/event.aspx)

Analytics heatmap endpoint (/heat.aspx)

2. UK-Endpoint

uk1.siteimprove.com Amazon Web Services, Ireland (EU-WEST-1)

Analytics script (/js/siteanalyze_[account_id].js)

Analytics log endpoint (/image.aspx)

Analytics events endpoint (/event.aspx)

Analytics heatmap endpoint (/heat.aspx)

3. EU-Endpoint

ssl.siteimprove.com, dk1.siteimprove.com, eu1.siteimprove.com, eu2.siteimprove.com Amazon Web Services, Frankfurt (EU-CENTRAL-1)

Analytics script (/js/siteanalyze_[account_id].js)

Analytics log endpoint (/image.aspx)

Analytics events endpoint (/event.aspx)

Analytics heatmap endpoint (/heat.aspx)

4. Datacenter

www.siteimprove.com InterXion DataCenter, Copenhagen, DK

Analytics transfer logs from endpoint script

Analytics databases

Analytics web site

Analytics local backup

Log Collecting

The Siteimprove Analytics logs are collected the following way:

  • A user visits a page on your web site through their browser. 
  • The html returned for the page contains an asynchronous call to fetch our customer script at a DATA-ENDPOINT (e.g. siteimprove.com/js/siteanalyze_[account_id].js)
  • The customer script makes a call to one of our endpoints to fetch a small 1x1 pixel transparent image. 
  • The endpoint logs this call together with parameters.
  • The logs collected on the endpoint are continuously retrieved and made available for queries in our Analytics Platform.
  • To protect against data loss all endpoints keep data for 48 hours. This retention period can be manually extended if needed.
Was this article helpful?
0 out of 0 found this helpful