Tracking

Tracking is the practice of collecting information about website visitors – which may in turn be used to measure performance and setting business targets for a given solution or business.

Dynamicweb contains two distinct tracking frameworks:

  • Statistics is the old implementation – it collects and stores data in StatV2 tables. While it has been deprecated for a while, certain features in Dynamicweb still rely on it.
  • Tracking is the new implementation – it collects more accurate data about website visitors and is required in order to use more recent features like Reports

Both types of tracking can be enabled by going to Settings > Web and HTTP > Tracking and activating either framework as necessary (Figure 1.1).

Figure 1.1 Tracking

As you can see, the Tracking framework can be further configured using these settings:

  • Customize the session expiration time
  • Customize the returning visitor expiration time
  • Check Do not track personal information to anonymize IP adresses
  • Check Do not track visits with DNT header to not track DNT=1 headers

The Tracking limits section is used to further configure the behavior of the Tracking framework (Figure 2.1).

Figure 2.1 Tracking Limits

You can:

  • Set the tracking level
    • Allall visits are tracked
    • Do not track undetected devices and unknown bots – tries to ignore devices and bots which are not of interest
    • Do not track if device is unknown – tries to ignore unknown devices
  • Exclude certain request headers:
    • Do not track 'accept=*/*' header – ignores the typically not very interesting accept header used on by all requests
    • Do not track 'connection=close' header – ignores the typically not very interesting connection=close header. Don't use on solutions with SSL, as it interferes with the protocol.
    • Do not track where header count <= {min header count} most “real” request contains at least 5 headers, so requests with fewer headers are typically bots or other non-human actors
  • Check Do not track internal IP addresses and specify a list of IP addresses to ignore
  • Check Store ignored visits to track everything despite the settings above but mark them with excluded=true. Usually only enabled for debugging purposes.

The Debug section (Figure 3.1) allows you to enable logging – this logs tracking exceptions to the event viewer.

The Tables section (Figure 4.1) allows you to define an interval after which the tracking tables will be split.

Please note, that Daily is only for testing purposes, not for production(!)

database

These are the tables relevant for Users and User groups in the Dynamicweb database:

TrackingSessions

Contains session information from all visitors

Field name Data type Length
TrackingSessionId int 4
TrackingSessionTimestamp datetime 8
TrackingSessionUrl nvarchar 2048
TrackingSessionHeaders nvarchar Max
TrackingSessionHeadersCount int 4
TrackingSessionAreaId int 4
TrackingSessionPageId int 4
TrackingSessionReferrerUrl nvarchar 2048
TrackingSessionReferrerDomain nvarchar 255
TrackingSessionReferrerName nvarchar 255
TrackingSessionReferrerType int 4
TrackingSessionVisitorId nvarchar 36
TrackingSessionVisitorIsReturning bit 1
TrackingSessionLocationCountryCode nvarchar 2
TrackingSessionSourceName nvarchar 255
TrackingSessionSourceMedium nvarchar 255
TrackingSessionSourceCampaign nvarchar 255
TrackingSessionSourceTerm nvarchar 255
TrackingSessionSourceContent nvarchar 255
TrackingSessionDeviceIpAddress nvarchar 45
TrackingSessionDeviceUserAgent nvarchar 255
TrackingSessionDeviceType int 4
TrackingSessionDevicePlatformType int 4
TrackingSessionBotName nvarchar 255
TrackingSessionBotType int 4
TrackingSessionExcluded bit 1
TrackingSessionExcludedReason nvarchar 255
TrackingSessionDateYear smallint 2
TrackingSessionDateMonth tinyint 1
TrackingSessionDateDay tinyint 1
TrackingSessionDateHour tinyint 1
TrackingSessionDateMinute tinyint 1
TrackingSessionDateWeek tinyint 1
TrackingSessionDateWeekDay tinyint 1
npViewCount int 4
TrackingSessionPingBackReceived bit 1

TrackingView

Contains view information on all visits - which pages, products etc. that has been visited

Field name Data type Length
TrackingViewId int 4
TrackingViewTimestamp datetime 8
TrackingViewSessionId int 4
TrackingViewAreaId int 4
TrackingViewPageId int 4
TrackingViewUserId int 4
TrackingViewAdminUserId int 4
TrackingViewEntityType nvarchar 255
TrackingViewEntityKey nvarchar 255
TrackingViewEntitySubKey nvarchar 255

TrackingEvent

Contains events made by the visitor, like adding products to cart, downloads, submitting forms etc.

Field name Data type Length
TrackingEventId int 4
TrackingEventName nvarchar 255
TrackingEventValue float 8
TrackingEventEntityType nvarchar 255
TrackingEventEntityKey nvarchar 255
TrackingEventEntitySubKey nvarchar 255
TrackingEventTimestamp datetime 8
TrackingEventSessionId int 4
TrackingEventViewId int 4
TrackingEventIsConversion bit 1