Tracker Details
We have a variety of ways to install our client-side JavaScript tracker as we’ve outlined here. Following installation, you can test with these instructions.
How does the tracker affect site performance?
We minimize performance effects via the following methods:
- Parse.ly JavaScript code is custom-compiled, compressed, and minified. The low kilobyte footprint is due to the economy of the code itself, as well as a high JavaScript minification level, and gzip over-the-wire compression (by the origin servers).
- Parse.ly serves its code from global CDN and DNS servers. As detailed in our Servers and Infrastructure page, Parse.ly JavaScript is served using a global DNS provider and a global CDN provider with edge locations scattered all over the United States and even across Europe, Asia, and South America.
- Parse.ly code supports an async-loading approach. Parse.ly’s code is specifically designed to async-load after a page has already downloaded, parsed, and executed other assets. This is described in the Tracker technical document.
- Parse.ly JavaScript code introduces only a single on-page variable,
window.PARSELY
. The code is properly encapsulated so as not to conflict with any on-page libraries or the analytics SDKs of other vendors. - Parse.ly’s page heartbeating approach uses modern browser/device APIs to reduce number of requests per sessions. Most attempts at quantifying active time on page (aka engaged time) require frequent requests to a data collection server. But the tracking SDKs lerverage modern browser/device APIs to ensure that a minimum number of requests per session are sent. This performance optimization was rolled out in 2019-2020.
- Parse.ly does not use third-party cookies. As of 2020, Parse.ly does not set any third-party cookies, as described in this blog post. This optimizes the HTTP request sizes sent to Parse.ly’s data collection endpoints.
Regarding web performance budgets, and especially as relates to “time to first contentful paint”, Parse.ly JavaScript code is written so that it can be the very last asset that loads on your page. Combined with modern browser abilities to load scripts asynchronously, this means that Parse.ly will have close to no impact on your page performance.
Parse.ly’s DNS servers, such as static.parsely.com
and cdn.parsely.com
, are backed by a global, distributed DNS system, which has no downtime and extremely fast resolution times across the globe. The JavaScript code itself is hosted in a global content delivery network (CDN) with edge locations in every global region.
Our JavaScript experts have optimized our code to avoid impacting user experience. The code also automatically leverages asynchronous JavaScript loading technologies in newer browsers. For older browsers, it uses a sophisticated performance-preserving async loading process.
After loading the tracking code, it installs a small first-party cookie (just a user ID) and asynchronously beacons back information to analytics edge servers, aka pixel servers, typically named p1.parsely.com
. If this edge server is down, your site will still send actions without impact on user experience.
If you don’t trust our statements about response times and uptime, you can check out this public Pingdom report showing Parse.ly’s uptime and global response times. From there, you can navigate to entire months of pings where you’ll see the service’s speedy response times and high uptime.
How does tracking work?
Upon a visit to a Parse.ly-tagged page, a code bundle is downloaded from Parse.ly’s global content delivery network. This code bundle retrieves information about the visit to that page, such as pageview and time spent. When combined with metadata, information about your site streams into the dashboard and APIs.
What data is sent by default?
Several pixel fields are critical for Parse.ly to function at a basic level:
- url: current URL
- urlref: HTTP referrer (traffic source); can be blank
- action: action name (defaults to pageview)
- data: contains information on the UUID from cookie state
- idsite: the “site identifier”, aka Site ID, for the website
Other fields are also helpful, such as:
- title: page title
- screen: screen resolution information
- date: client-side datetime in the browser
These are sent in a standard HTTP request, which also includes client information such as the browser User-Agent, client IP address, and third-party (parsely.com) cookie settings.
What version of the Parse.ly tracker is currently on my site?
When troubleshooting, it can be useful to discover the version number of the currently integrated tracker code.
Open the Chrome DevTools Console (or a similar tool) on your Parse.ly-tracked webpage. Type PARSELY.version
to print the version number of the tracker, which will look something like "1.3.0"
.
If your site uses a legacy integration, PARSELY.version
may be undefined
. In that case, type or copy/paste PARSELY.config.bundle.match(/[d.]+/)[0]
into the console instead.
Last updated: September 20, 2024