Behavior Tracking > What Does OneSpot's Script Do?
What Does OneSpot's Script Do?
Using metrics reported by the browser through the Navigation Timing API – we collect network and page load timing metrics for each page view. This allows us to correlate page performance (load time, etc) to our product performance or user content consumption.
See What Behavior is Tracked? for more information on which behaviors are tracked.
- Tracks who viewed the page (anonymous first and third party cookie ID)
- Associates the page view with a session (A new session starts if the user has been inactive for over 30 minutes)
- Tracks how long the page was open (wall clock time)
- Tracks how long the user spent actively engaged with the page (a timer fires every 5 seconds during which a user has the browser tab open/active and has some indication that they are actively engaged with the page – such as moving the mouse or scrolling)
- Tracks any Custom Actions that you would like to track, such as certain button clicks or form submissions
- Tracks clicks on hyperlinks
This pageview and engagement data are used for several purposes: (1) as training data/signal for our personalization models, (2) for performance reporting as part of our quarterly business reviews, (3) its visualized in our Insights product so you can explore how your users are interacting with your content, and (4) its used as a signal of new pages to scrape and analyze. For more information on what we scrape from pages, see Scraping Pages.
If you are using a network console or browser developer tools you will see these page-view, page-ping, and other in-page engagement events as calls to
http://sp.os-data.com/. These calls are very lightweight and return zero-byte response payloads.
For customers using our OnSite content recommendation product, the script will handle making all API calls to get recommendations for each unit on the page, handle generating the HTML markup to display the recommendations, and inject the HTML recommendation units on the page. The script will also handle reporting on the viewability of the units (i.e. whether the user scrolled the unit into view).
In addition if our API call times out after 4 seconds (due to network latency or any other issues) or if there is an error returned from the recommendation API, the script will fetch a set of static recommendations – these are a set of popular content items which get displayed when we are unable to retrieve dynamic recommendations. These will contain, for every possible filter (business rules) on the page, 50 static recommendation. These static recommendations are selected from the most popular site content that matches the filter. When static recs are employed, they are randomly selected from this set of 50 static recs.
If you are using a network console or browser developer tools you will see recommendation API requests to
https://api.rec-engine.com/ images that we serve for OnSite recommendations come from
https://cdn.rec-engine.com. Images are dynamically optimized for the users browser (image format) as well as display properties (image size, compression settings) and when the image has to be scrolled into view, we will delay loading the image until the visitor is reasonably close to the image to avoid unnecessary page weight cost. If static recommendations are needed you will see them downloaded from
With DMP systems such as Adobe Audience Manager and with Ad-Networks such as Appnexus. This lets us sync your user segment information with us if you choose to, and builds a retargeting cookie pool to content through ads in our ReAct product.
Cookie syncs are typically implemented as redirects. If you are using a network console or browser developer tools you will see cookie sync requests to
http://sync.os-data.com/. The cookie syncs operate as redirects so you will see the redirects to
demdex.net (for AAM) and
adnxs.com for Appnexus.
For matching email identifiers to our cookie IDs so that a users behavioral history can be associates when personalizing email content through our InBox product. For more information see InBox User Mapping.