UIC Release Notes

These release notes pertain to Acoustic Experience Analytics (Tealeaf) UI Capture.

Release 6.0.0

New Features

  • UIC implements a DOM Capture configuration option for removing base64 image data from DOM snapshots. Data will be removed if its size exceeds a configurable threshold. UIC will add a new attribute removedByUIC to the image element in such cases. Link
  • UIC implements a DOM Capture configuration option for removing CSS style elements from DOM snapshots. Link
  • UIC adds support for tracking when the browser is minimized or sent to the background using the visibilitychange event. A type 4 message is logged which can be used to trigger a DOM snapshot. Link
  • UIC adds support for specifying an optional timeout value when using the delayUntil setting in the DOM Capture trigger configuration. The DOM snapshot will be taken when the timeout expires even if the condition specified in the delayUntil configuration has not been met. Link
  • UIC implements the ability to prevent sending data from Bots or Crawlers by specifying a configurable block list of User Agents in the core configuration. Link

Bug Fixes and Improvements

  • UIC sets SameSite=Strict for the TLTSID cookie.
  • UIC adds support for the W3C ScreenOrientation API to track device orientation changes.
  • UIC sets the mode to same-origin when making a fetch request to a same-origin target page.
  • The tab identifier is now a unique string identifier instead of a sequence number. This was done to improve tab identification during Incognito or Private browsing mode.
  • The configuration object in defaultconfiguration.js was moved to a named variable.
  • If UIC is terminated due to any reason, it stores a termination reason string in TLT.terminationReason.
  • Implemented a workaround for the Chrome cloneNode() issue (Chromium Issue #1042089) which resulted in extra image requests when capturing a DOM snapshot.
  • Fixed an issue where sendBeacon is not used during page unload when using the tltWorker.
  • Fixed an issue where the same domain iframes were not being captured.
  • Fixed an issue where tabId could contain an incorrect value.
  • Fixed an issue where the forceFullDOM setting would not work when using the delayUntil option for the DOM Capture trigger.
  • Fixed the Resource timing message format to enable efficient processing by the processing server.
  • Fixed an issue with the getSessionData API did not return the correct session id when using storage.
  • Fixed an edge case where a DOM snapshot was not triggered for a click on a checkbox or radio button that causes a page to unload.
  • Fixed an issue where UIC would not initialize in some instances after BACK/FORWARD or history navigation in Firefox and Safari.
  • Fixed an issue where the UIC would not initialize if the inactivity timeout was set to 0.
  • Fixed an issue with an incorrect host value reported in type 12 DOM snapshot on an iOS Ionic hybrid app.
  • Fixed an issue with the XHR log status message when using the tltWorker.
  • UIC logs all properties of the performance timing message. The option to filter performance timing properties in the configuration has been removed.
  • UIC always logs the XHR or fetch request timing data. The xhrLogging enable/disable option has been removed from the configuration.
  • The sample Tealeaf target page implementations have been updated to read a maximum of 200,000 bytes request data before writing a response.

Test Browsers
The following browsers were used for testing this release:

Browser
Versions

Chrome

85.0.4183.102


Firefox


79.0


Safari


13.1 (15609.1.20.111.8)


Edge


44.19041.1.0


Android Chrome


85.0.4183.81


iOS Safari


13.5.1


Internet Explorer


11

Test GZIP Encoder
pako 1.0.11

Release 5.7.0

The UI Capture version 5.7.0 library includes the following new features, bug fixes, and improvements.

New Features

  • UIC adds support for capturing Shadow DOM content. For applications that make use of Shadow DOM content, this feature can be enabled by adding the captureShadowDOM property and setting it to true in the DOM Capture service configuration.

Note:

Acoustic Overstat does not support Shadow DOM.

  • UIC adds a screenviewLoadEvent configuration option to specify a custom event to trigger the “root” screen view load message. Normally, the UIC will use a standard browser event such as DOMContentLoaded or the load event. If the application is lazy loading its content then a custom event fired when the page content is finished loading may produce better results.
  • UIC adds support for specifying a lazy load capture trigger in DOM Capture configuration. When DOM content is being loaded asynchronously, specifying a CSS selector for the updated content in the DOM Capture configuration will ensure the corresponding DOM snapshot is taken after the DOM reflects the updated content.
  • UIC adds support for logging performance timing metrics of slow loading resources such as images, CSS, and scripts. This data is logged in a new type 17 message type.
  • UIC adds support for detecting multiple browser tabs/windows within the context of a session. A new property called tabId which contains a numeric identifier is added to the JSON. Hits containing the same tabId originate from pages that were opened in the same browser window/tab. Hits containing different tabId values originated from a different browser window/tab.

Bug Fixes and Improvements

  • UIC applies any configured URL normalization function to the value returned in the X-TeaLeaf-Page-Url request header.
  • UIC infers clicks on disabled input controls using pointerdown and pointerup events. As of this release, only Chrome supports these events on disabled controls.
  • UIC will check periodically, instead of checking once, to determine when it can log the type 7 performance timing message.
  • UIC will detect and log gzip encoder failures as type 6 Exception messages.
  • The defaultconfiguration.js file is modified to set the asyncReqOnUnload property to true for the Chrome browser. Chrome 80+ will disallow a synchronous request during page unload. The useBeacon setting is also switched to true by default as this can help prevent data loss during page unload.
  • When a click occurs on a descendant of a link element the UIC will retarget the click to the parent link element. To preserve the original target set the normalizeTargetToParentLink property to false in the Browser service configuration.
  • A page load of a URL with a #fragment results in a screenview load message containing the #fragment as the screenview name instead of "root". This behavior can be overridden by setting forceRootScreenview to true in the replay module configuration.
  • The TLT.registerBridgeCallbacks API can now be invoked prior to invoking TLT.init.
  • Fixed an issue where the inactivity timer is not activated until there is a user interaction.
  • Fixed an issue which would cause an “Uncaught Exception: Failed to execute ‘contains’ on Node” to be logged in the browser console in some circumstances.
  • Fixed an issue where the type 4 orientationchange and type 4 touchend messages would not contain any information in the prevState or currState object when the privacy exclude feature is used.
  • Fixed an issue which would cause an incorrect status code and text in the XHR log when using fetch.
  • Fixed an issue which would cause an error in Firefox 44 and below due to the forEach method not being supported by the URLSearchParams object.
  • Fixed a typo in tltWorker.js deployment documentation. The Worker script must be deployed in the SAME domain as the page.
  • Fixed an issue where mousemove was logged for touch screen devices.
  • Added checks to ensure localStorage is supported before using it for session-id and tab id.

Test Browsers
The following browsers were used for testing this release.

Browser
Version

Chrome

80.0.3987.132


Firefox


74.0


Safari


13.0.5 (15608.5.11)


Edge


40.15063.674.0


Android Chrome


80.0.3987.132


iOS Safari


12.4


Internet Explorer


11.0.9600.19596

Test GZIP Encoder
Pako version 1.0.10

Known Issues

  • Using tltWorker and setting asyncReqOnUnload to true causes the UIC to always use fetch during page unload irrespective of the useBeacon setting.
  • The Cookie header might not be sent by the Edge browser for UIC requests using fetch. Since on-prem systems rely on the Cookie header for correct sessionization, this could cause incorrect sessionization for Edge visitors. The workaround is to disable fetch in the UIC configuration by setting useFetch to false in such cases.

Release 5.6.0

The UI Capture version 5.6.0 library includes the following new features, bug fixes, and improvements.

New Features

  • UIC adds support for URL normalization. URL normalization allows you to specify a custom function that accepts the input URL or screenview name and returns the normalized value that is used by the UIC.
  • UIC adds support for mouse movement tracking. If enabled, UIC collects up to 1000 unique mouse movement data points per screenview, which can be used to visualize visitor mouse movement during replay.
  • UIC adds support for blacklisting DOM Capture based on screenview name. Use the screenviewBlacklist property in the DOM Capture configuration to prevent the UIC from taking DOM snapshots for the specified screenviews.
  • UIC adds support for the fetch API. On browsers that support fetch, UIC uses fetch instead of asynchronous XHR. To disable the use of fetch, set useFetch to false in the queue configuration.
  • UIC adds support for optimizing the serialization, gzip, and network transfer of the captured data using Web Workers. The worker initializes only on newer browsers that implement fetch. For browsers that do not support Web Workers or implement fetch>, the UIC falls back to its default behavior. The tltWorker.js script can be found in the worker directory of the release package. Follow the deployment instructions mentioned in the tltWorker.js file.
  • For https-only web apps using the TLCookie module, the TLTSID cookie can now be created as a secure cookie by setting the secureTLTSID property to true in the TLCookie module configuration.

Bug Fixes and Improvements

  • UIC does not terminate when the endpoint check fails. If the endpoint check fails, UIC now switches to an asynchronous request on page unload.
  • UIC queue flush timer is reset using the same event criteria as the inactivity timeout. Any pause in the user activity that exceeds the configured timerInterval threshold causes the queue to be flushed.
  • UIC caches the User ID value retrieved using Eluminate cmRetrieveUserID API.
  • UIC ignores page unload events caused by clicking on mailto: and tel: links.
  • UIC initializes when the document readyState is interactive or complete.
  • UIC does not log the type 7 performance message until after page load and the page load timestamp is non-zero.
  • UIC logs the loadEventStart, requestStart and responseEnd properties by default in the type 7 performance message.
  • UIC logs the document title in the type 2 screenview message.
  • UIC logs query parameters in the type 2 screenview message.
  • UIC improves exception reporting. Repeat exceptions i.e. exceptions with the same message, url and line are tracked and counted but do not result in duplicate type 6 exception messages. All repeating exceptions are reported on screenview unload. To disable exception logging entirely remove the error event entry from the core configuration of the replay module.
  • UIC does not initialize on IE 9 (and below) when configured with a cross-origin endpoint.
  • Made an improvement to prevent the cancellation and data loss associated with the penultimate request by delaying the queue flush when the current event is a "click". The improvement allows the accumulated data to be flushed as part of the unload using a more reliable option like Beacon or synchronous XHR.
  • Fixed an issue with Privacy masking where the space character was incorrectly masked as a numeric type instead of a symbol.
  • Fixed an issue where the Overstat hover threshold configuration was not taken into account.
  • Fixed an issue where multiple consecutive clicks on text input elements would not get recorded.
  • Fixed an issue where the page width reported in the type 1 client state message would not reflect the actual scrollable width.
  • Fixed an issue where relXY property was being incorrectly set in the type 4 message for keyboard interactions.
  • Fixed the event type value in the type 11 gestures message.
  • Fixed an issue that could cause the gestures module to fail in some edge cases.
  • DOM Capture service options have been removed from the defaultconfiguration.js and made into internal defaults. Service configuration options can continue to be specified to override the internal defaults.
  • eval function that was used for maintaining compatibility with IE 6 and IE 7 has been removed from the UIC.

Test Browsers
The following browsers were used for testing this release.

Browser
Version

Chrome

76.0.3809.100


Firefox


67.0.4, 68.0.2


Safari


12.1.2


Edge


40.15063.674.0


Android Chrome


76.0.3809.111


iOS Safari


12.4


Internet Explorer


11.950.17134.0

Test GZIP Encoder
Pako version 1.0.10

Deprecation Notice
The jQuery flavor of the UIC is being deprecated. All new integrations of the UIC should use the W3C flavor. Existing web applications using the jQuery flavor of the UIC should plan for updating to the W3C flavor as soon as possible.

How do I know if my application is using the jQuery flavor of the UIC?
Fewer than 5% of Tealeaf integrations use the jQuery flavor of the UIC. Your web application is only impacted if you are using the jQuery flavor of the UIC. To determine the flavor of the UIC, look for the Copyright message in your UIC file. The jQuery flavor will have a copyright message with the last line containing "@flags jQuery" like the following:

/*!
* Licensed Materials - Property of Acoustic
* © Copyright Acoustic Corp. 2020
* US Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with Acoustic Corp.
*
* @version 5.4.1.1813
* @flags jQuery,NDEBUG
*/

Alternatively, load the web application with which the UIC is integrated and open Developer Tools. In the Console, type "TLT.getFlavor()" to obtain the UIC flavor.

What will happen if I do nothing?
Your current integration continues to function; however, you might not be able to take advantage of the latest enhancements to the product. At some point in the future, support for the jQuery flavor will stop entirely.
Consult with your Professional Services representative for further guidance.

Known issues

  • relXY is missing for select list control on Firefox. This is due to a Firefox issue in which Firefox does not provide co-ordinate information for click events on a select list control.
  • relXY is missing for select list control on Safari. This is due to a Safari issue in which Safari does not fire a click event on a select list control.

Release 5.5.0

The UI Capture version 5.5.0 library introduces the following new feature.
UIC now allows storing the session id in local storage. If the sessionIDUsesStorage flag is set in the TLCookie module configuration, the UIC creates the session id in local storage. If local storage is not available, the UIC falls back to creating the session id using cookies. To prevent the UIC from using cookies, set the sessionIDUsesCookie flag to false.

Known issues
Safari 11.1 has an issue that prevents the sendBeacon API from executing successfully. Until Apple fixes this issue, it is recommended that you do not use sendBeacon on Safari 11.1 (and later). Instead, use the XMLHttpRequest API. For updates about how Apple plans to address this issue, see https://bugs.webkit.org/show_bug.cgi?id=188329.

Release 5.4.1

The UI Capture version 5.4.1 library includes the following bug fixes and improvements.

Bug Fixes and Improvements

  • You can now set the queue endpoint to an empty string when integrating with the iOS or Android native framework in a hybrid application. This prevents the UI Capture queue from automatically flushing to the network.
  • The UI Capture does not create a WCXSID cookie. For session identification, the UIC checks the WCXSID cookie and verifies that it exists. If it exists, the UIC uses the WCXSID cookie value. If a WCXSID cookie does not exist, the UIC creates a TLTSID session cookie with a random 32 character value and uses it for session identification.
  • Fixed an issue where the final “tap” gesture message is not flushed on page unload.
  • Fixed an issue where the following error message is displayed on the console: “Cannot read property toString of undefined.”
  • Fixed an issue that resulted in a URIException when application cookies containing % signs are not URI encoded.

Release 5.4.0

The UI Capture version 5.4.0 library includes the following new features, bug fixes, and improvements.

New Features

  • A new feature to allow specifying a list of elements to be excluded from privacy masking has been added. When this feature is enabled, any "input," "select," or "textarea" element that does not match the list of privacy targets will have the specified privacy mask applied. The "exclude" property should be set to true in the privacy masking rule to enable this feature.
  • A new feature to allow pattern matching and replacement in captured DOM snapshots has been added. Pattern matching is applicable to full DOM snapshots as well as DOM diffs. Pattern matching is applicable to user input in "input," "select," or "textarea" elements only if no privacy rule was applicable.

Note:

Depending on the application and the specified RegEx patterns, using this feature could result in a performance impact to the application. Adequate performance testing must be performed when using this feature.

Bug Fixes and Improvements

  • If Beacon is enabled, then the library will always try to use the Beacon API instead of synchronous XHR even when the page is not unloading.
  • Added a new property "attributeDiffs" to the type 12 domCapture message. This property replicates the attribute diffs contained in the "diffs" array.
  • The type 7 performance message is now posted after page load. An optional delay setting can be used to fine tune when the message is posted. The default delay is 2 seconds. If the message could not be posted after page load, then it is posted during page unload.
  • When taking DOM snapshots, frames and iframes having their location as "about:blank" are no longer captured.
  • Fixed an issue where the TLTSID session cookie would not be set for single component domain names.
  • Fixed an issue where the type 1 clientState message could cause errors to be reported in the debug console when the library was terminated right after startup.
  • Fixed an issue where an incorrect "screenviewOffset" value could be reported in certain cases for type 2 UNLOAD messages.
  • Fixed an issue where an incorrect path would be specified in the case of Hybrid applications using Webviews.
  • A check was added to ensure the library has been successfully initialized before processing any DOM event provided via the TLT.processDOMEvent API.
  • A check was added to ensure the library has been successfully initialized before allowing modules to post messages to the queue.

Note:

This check may impact the functioning of custom UIC modules written by Acoustic Professional Services or Acoustic Business Partners. Any custom modules added to the UI Capture library should be re-validated after upgrading to 5.4.

  • The "useCapture" setting is enabled by default and it has been removed from defaultconfiguration.js.
  • The number of type 5 custom messages that can be posted per page is limited to 300.
  • The number of type 6 exception messages that can be posted per page is limited to 400.

Release 5.3.0

The UI Capture version 5.3.0 library includes the following new features, bug fixes, and improvements.

New features

  • A new feature to use the W3 Beacon API to asynchronously transmit the final POST on page unload was added. If this feature is enabled and the Beacon API is available on the browser, an attempt is made to send the final request on page unload by using the sendBeacon() API. If the feature is enabled but the Beacon API is not available on the browser, UIC falls back to use the XHR mechanism.

Note:

This feature requires Experience Analytics (Tealeaf) backend support and is only supported on the cloud. This feature is not supported for the on-prem product.

A new flag "useBeacon" was added to the queue configuration, which specifies whether the Beacon feature is used. This feature must be disabled when you use the on-prem product.

  • A new public API was added to create and add a form completion message. Form completion indicates whether the user submitted a form (or form equivalent) and if the form was validated. This
    information is used by Overstat to produce the Form Completion report.
    TLT.logFormCompletion(submitted, valid)

The API accepts two parameters:

  • submitted: Boolean flag indicates whether the form (or form equivalent) was submitted (true) or not (false).
  • valid: Optional boolean flag indicates whether any validation performed on the form input and if the validation check passed (true) or failed (false)
    For a standard HTML form element, the submission would be when the submit event is triggered. For applications that use AJAX, a submission is defined according to the business logic.
  • Collector killswitch support was added. If a tlAppKey is configured, an asynchronous GET request is made to the corresponding killswitch URL. If the response indicates that the killswitch is
    enabled, the UIC self-terminates for the current page and does not initialize on any subsequent pages for the current session.

Bug fixes and improvements

  • The queue is automatically flushed after the first full DOM snapshot is taken. This eliminates any need to explicitly configure the queue to send the initial snapshot of the page as soon as
    possible.
  • Additional safety checks are added around message serialization. Serialization errors result in the JSON being rejected and an appropriate message is placed in the JSON payload.
  • The inactivity timer does not reset for custom events. The inactivity timer resets only on "click", "change", "blur", "mouse" and "touch" events.
  • The DA visitor cookie is automatically added to the type 14 message when available.
  • Added support for a uniform session ID between Digital Analytics and Experience Analytics (Tealeaf) by using the WCXSID cookie.
  • The "messageRedirect" API now accepts an "order" parameter that specifies the relative ordering between multiple redirect callbacks.
  • The page id is also included as a custom HTTP header "X-PageId" to enable more usage metrics to be gathered by the collector.
  • Use percentages for relXY co-ordinates instead of the grid cell coordinates in the Overstat module. This keeps the points within the bounds of the element even when zooming in/out of the
    browser.
  • The document scroll values are rounded to integers.
  • The viewport co-ordinates are rounded to integers.
  • The screenview load event now resets the visited count of input elements.
  • Fixed an issue in the Overstat module where two elements with duplicate IDs have a parent-child relationship.
  • Fixed an issue when the observed window for DOM Diff contains an invalid document object.
  • The sample target pages are updated to remove the request processing duration information.

Release 5.2.0

The UI Capture version 5.2.0 library includes the following new features, bug fixes, and improvements.
New features

  • New enhancement to privacy handling for non-standard controls using the blockedElements configuration setting.
    UI Capture enables the blocking and masking of user input data by element ID, name, and xpath. Masks can be expressed as an explicit string, replacements for character types, or custom functions. Use the blockedElements configuration setting in the Core configuration file to define a set of elements for which no user interaction is to be reported.
  • Privacy masking is extended to select list controls. When a select list control is included in the privacy masking rules; all properties, except for the value property, are removed from the control state that is recorded in the type 4 message. The value property is masked in accordance with the privacy rule.
  • New TLCookie module.
    The TLCookie module is required for SaaS deployments and can be configured through the Configuration wizard or by modifying defaultconfiguration.js. The TLCookie module is used to record cookie values for each screenview load that occurs.
  • New TLT.getLibraryVersion API call.
    The TLT.getLibraryVersion API call can be used to return the version number of the UI Capture library. It is recommended to use the latest version of the UI Capture library with your applications.
  • New support for regex matching of screenview names in DOM Capture load and unload triggers.

Bug fixes and improvements

  • Improvement to inactivity timeout.
    The inactivity timeout setting stops recording user interactions for a page after specified amount of user inactivity on the page. The orientationchange event is now excluded from the event types that are reset by the inactivity timer. The orientationchange event is not reset because the mobile device might report an orientationchange event when the user is not deliberately interacting with the application. For example, the orientation of the mobile device might change while it is stored inside a pocket, bag, or carrier.
  • URL parsing for type 2 screenview messages now detects semicolons (;) as a query string separator.
  • Added the domain property to the webEnvironment section.
  • Added the url, host, and charset properties for frame snapshots in the type 12 DOM Capture messages.
  • Improved automatic screenview logging by detecting URL path and hash changes even when there is no hash change event. TLT.logScreenviewLoad and TLT.logScreenviewUnload are used to log nested screenview messages.
  • Improved handling of erroneous viewport values from the Google Search Appliance (GSA).
  • Normalized tlType property values for submit, reset, image, and other input element types.
  • Changed the TLTSID cookie value to only contain uppercase characters.
  • Fixed a bug which prevented successful DOM Capture and replay of textarea elements.
  • Fixed a bug in the cxOverstat module which was causing erroneous counts for hover events.
  • Fixed a bug which provided incorrect checkbox state in type 12 DOM capture messages on Internet Explorer 10.
  • Fixed a bug where privacy rules containing CSS selectors would not get applied to elements in child frames and iframes.
  • Fixed an edge case where the screenviewOffset would be incorrect for type 2 screenview unload messages.
  • Fixed the tlType property values for type 9 messages.
  • Fixed a bug when applying privacy mask type 3 to the period (.) character.
  • Fixed a bug in the jQuery version check.
  • Fixed a bug in the PHP target page to use CONTENT_LENGTH instead of HTTP_CONTENT_LENGTH.
  • Removed debug and MD5 functions that are no longer used from the target page examples.
  • Added a X-Tealeaf-syncXHR request header which allows the recipient to differentiate between synchronous and asynchronous requests (XHR) that are handled by the Queue service.
  • Diagnostic logging related to XHR can be enabled by setting the xhrLogging setting in the queue service configuration. The log data is appended to the JSON. The log data is used by Acoustic technical support for troubleshooting. Do not change the xhrLogging setting without contacting Acoustic technical support first.

Release 5.1.0

The UI Capture version 5.1.0 library includes the following new features, bug fixes, and improvements.

New features

  • New check endpoint setting. When enabled, the configured endpoint is sent a test request after each page load to verify that the service is available. The test request can be identified by the presence of the X-Tealeaf-EndpointCheck HTTP request header. If a timeout occurs, the UI Capture library shuts own and no session data for the page is sent to the collector. This feature can be used as a safety check when the endpoint is hosted cross-domain.

Note:

The check endpoint setting should be enabled for use with Acoustic Experience Analytics (Tealeaf).

  • New threshold setting for DOM Diff mutations.
    The DOM Diff service captures and processes the changes in a screenview that occur when a user interacts with a page. Processing the changes is often faster than performing a full DOM capture of a page on each user interaction.

For example, on a page that dynamically displays content in response to the user interaction by toggling the CSS properties of the elements, only the CSS style attribute changes are captured as part of the DOM Diff enabled capture. Without DOM Diff enabled, the entire HTML content of the page would be captured.

Depending on the application, there could be a high number of DOM differences to capture. Processing all of the DOM differences into one capture can decrease application performance. The number of mutations that were processed by the UI Capture libary are indicated in the mutationCount property of the type 12 DOM Capture message. It is recommended to set a threshold for the maximum number of DOM Diff mutations to capture. If the threshold is exceeded, the UI Capture libary ignores the DOM mutations and performs a full DOM Capture for the page. When UI Capture reverts to the full DOM Capture, the forced property is added to the type 12 DOM Capture message. UI Capture automatically switches back to capturing DOM Diffs for subsequent triggers.

  • The UI Capture now supports ability to enable full a full DOM capture for a specific target while DOM Diff is enabled.

  • New inactivity timeout setting.
    After initialization, the UI Capture library records user interactions that occur in a page until the page unloads or the browser is closed by the user. If there is an extended period of inactivity where no user interactions are observed, the library ends the recording. Terminating the recording prevents later POST requests (UI hits) of the library from creating one-hit or orphaned sessions. The termination also prevents any interference or accidental activation of the keep-alive behavior within an application.

  • New useCapture setting.
    Added a useCapture setting to the browser service configuration which enables the use of capture mode for listening to DOM events. The useCapture setting is enabled by default. When disabled or if the browser does not support event capture; then, event bubbling is used. Some events might be missed if the application is preventing the events from bubbling. For more information about event capture and bubbling, see the W3C DOM specification at https://www.w3.org/TR/DOM-Level-2-Events/events.html#Events-flow.

Bug fixes and improvements

  • Removed the feature that allows the dynamic loading of module scripts and SizzleJS due to potential security vulnerability.
  • Fixed an issue where ClientState type 1 messages are not reported for the Opera Mini browser.
  • The viewPortHeight property of the ClientState message is now limited to a positive range of values between 0 - 10000. Any values outside this range are not reported.
  • Explicit definition of the TLT object to ensure it is accessible in the global scope.
  • Improvements to click-event message ordering in relation to screenview messages in certain cases.

New features and changes in 5.0

The 5.0 release contains updates to the DOM Capture feature, extra configuration for Experience Analytics (Tealeaf) SaaS, and modifications and additions to the JSON messages that are generated by UIC.

New features

  • The DOM Capture feature was enhanced to incorporate DOM Diff functions. DOM Diff is enabled by default. When enabled, the first DOM Capture of the page is a full snapshot and subsequent DOM Captures capture only the differences from the previous snapshot.
  • For Experience Analytics (Tealeaf) SaaS:

    • A cookie module was added to the configuration so that cookies can be configured based on how Experience Analytics (Tealeaf) SaaS handles sessionization for the application.
    • Configuration options were added to test the target page at UIC initialization. You can configure the UIC to send an async test and configure a time to wait for a response back from the
      target page before the UIC shuts down.
  • The JSON messages that are affected include:

    • Type 1 (Client Environment) - the definitions for orientation, width, height, deviceWidth, and deviceHeight were updated.
    • Type 11 (Gestures) - scrollX and scrollY fields were added.
    • Type 12 (DOM Capture) - now shows the changes in a page to support the DOM diff service.

New features and changes in 4.1

New features

  • The documentation was updated and modified for use in the Knowledge Center. With the Knowledge Center documentation, the user can:
    • Search across all of the Experience Analytics (Tealeaf) documents and across all Acoustic product documentation.
    • Create collections of specific topics that they use frequently.
    • Create pdf documentation of the collections they create.
  • Acoustic Experience Analytics (Tealeaf) UI Capture now has the means to capture geolocation information on the user's device. The application programmer must ask for user's permission to collect the geolocation data. The information can be collected automatically when the application starts. Geolocation information can be manually collected as specific points in the application with the geolocation API.

Changes

  • JSON messages were added for geolocation capture events. There are now 13 JSON message types supported. The message added to the documentation in this release is:
    • Type 13: Geolocation - Geolocation information. If the user does not give permission to collect geolocation data, a geolocation type 13 error message is sent.
  • Custom events can now be used as triggers for DOM capture.
  • DOM Capture can now be delayed until the frames finish loading.

New features and changes in 4.0

This section describes the new features and changes that are introduced in version 4.0 of Experience Analytics (Tealeaf)UI Capture.

New features

  • DOM Capture is now an option for hybrid applications. DOM Capture relies on the Document Object Model (DOM), which provides a structured representation of the web page (document). The DOM Capture Service captures a "snapshot" of the rendered DOM. The Configuration Wizard has been modified to configure basic DOM settings for hybrid applications.
  • Experience Analytics (Tealeaf) UI Capture now has the means to capture gestures the user makes on a mobile application. The gestures that are captured include:
    • Tap
    • Tap and hold
    • Double tap
    • Swipe vertically
    • Swipe horizontally
    • Pinch open
    • Pinch close

Changes

  • The hybrid bridge has been expanded so that Native iOS and Native Android APIs are now accessible from the UI Capture JavaScript. The Android APIs that are available to JavaScript are:
    • Enable Experience Analytics (Tealeaf) Framework
    • Disable Experience Analytics (Tealeaf) Framework
    • Log Screen Capture
    • Start New Experience Analytics (Tealeaf) Session
    • Current® Session ID
    • Default Value for Configurable Item
    • Value for Configurable Item
    • Set Configurable Item
    • Add Additional HTTP Header
    • The iOS TLFApplicationHelper APIs that are available to JavaScript are:
      • -(void)enableTealeafFramework;
      • -(void)disableTealeafFramework;
      • -(void)requestManualServerPost;
      • -(BOOL)startNewTLFSession;
      • -(NSString*)currentSessionId;
      • -(BOOL)setConfigurableItem:(NSString*)configItem value:(id)value;
      • -(id)valueForConfigurableItem:(NSString*)configItem;
      • -(id)defaultValueForConfigurableItem:(NSString*)configItem;
      • -(void) addAdditionalHttpHeader:(NSString*)value forName:(NSString*)name;
        The iOS TLFCustomEvent APIs that are available to JavaScript are:
        • - (BOOL)logEvent:(NSString*)eventName;
        • - (BOOL)logEvent:(NSString*)eventName values:(NSDictionary*)values;
        • - (BOOL)logPrintScreenEvent;
  • DOM Capture is now an option for hybrid applications. DOM Capture relies on the Document Object Model (DOM), which provides a structured representation of the web page (document). The DOM Capture Service captures a "snapshot" of the rendered DOM. The Configuration Wizard has been modified to configure basic DOM settings for hybrid applications.
  • JSON messages were added for gesture capture and DOM capture events.
    All of the message types from 9.0 were updated to include the message type number. The complete list of messages is:
    • Type 1: Client State - Current state of client.
    • Type 2: Application Context - Message to indicate divisions in application view which could be current page/view/activity user is on.
    • Type 3: Connection - Any request/response application performs during capture.
    • Type 4: Control - User interface control that fires an event we listen to capture.
    • Type 5: Custom Event - Any custom log event from any place in application.
    • Type 6: Exception - Any exception application can throw.
    • Type 7: Performance - Performance data from a browser.
    • Type 8: Web Storage - An object containing information about local storage information on the browser.
    • Type 9: Overstat® Hover Event - An object containing information about mouse hover and hover-to-click activity.
    • Type 10: Layout - Current display layout of native page.
    • Type 11: Gesture - Gesture that fires a higher touch event Experience Analytics (Tealeaf) listens to and captures.
    • Type 12: DOM Capture - An object containing serialized HTML data (DOM snapshot) of the page.

Version 3.1.0

New features
This section describes the new features and changes that are introduced in version 3.1.0 of Experience Analytics (Tealeaf)UI Capture.

  • Two new APIs were added to the UI Capture library. TLT.logScreenCapture instructs the underlying native functionality to take a screen capture. TLT.registerBridgeCallbacks is used to register callback functions, which are invoked by the UI Capture library in specific instances. This API supports messageRedirect, screeCapture, and addRequestHeaders callbacks. The messageRedirect callback can be registered to redirect and intercept messages from UI Capture. The screeCapture callback can be registered to enable a JavaScript API to allow a screen capture to be taken. The addRequestHeaders callback can be registered to enable a third-party JavaScript to return custom HTTP headers that need to be set on the UI Capture libraries POST request.
  • In the development builds of the library, several APIs now throw exceptions and log the exception to the console when the library is not initiated for API calls that depend on the library. In the production builds of the library, the API call fails silently if the library was not initialized. The following APIs throw this exception in development builds.

    • getSessionData
    • logCustomEvent
    • logExceptionEvent
    • logScreenviewLoad
    • logScreenviewUnload
    • logScreenCapture
  • The UI Capture configuration wizard contains several new options.

    • In the Browser Service Configuration step, Internet Explorer Excluded Links option is added to handle beforeunload in Internet Explorer.
    • You can Enable asynchronous XHR on page unload to turn on asynchronous requests during page unload in the Queue Service Configuration step.
    • Remove Target and Remove Privacy Configuration are added to remove a single target or privacy configuration when you configure multiple privacy masks in the Message Service Configuration step.
    • In the Modules step, you can now add custom replay events in the Modules step. You can also enable the overstat module. The overstat module adds mouseout, mousemove, and click overstat events to your configuration.
  • Cross-domain communication is added to send UI Capture POST request to a different server than the parent page.

Known issues

  • Incorrect orientation values may be reported on certain Android devices. This issue occurs because the devices themselves report non-standard values for portrait and landscape modes.
  • Pinch open & close is not reported on the Android platform.

Bug fixes and improvements

  • Fixed jQuery version check for jQuery 1.10 and above.
  • An exception was thrown if multiple copies of the UI Capture were detected.
  • Fixed the reporting of width, height, and scale values for Android Chrome.
  • The navigationStart property in the performance timing object returns the absolute time stamp value instead of 0.
  • Any leading or trailing white space is trimmed from InnerText values of link elements.
  • Module events are not subscribed to if the module is not enabled.
  • Fixed a bug in the relXY positioning calculation by correctly factoring the elements scroll position.
  • JSON message version was updated to 3.0.0.0 to reflect additions that were made to the JSON format in the Acoustic Experience Analytics (Tealeaf) 9.0 release.

Version 3.0.1

Bug fixes and improvements

  • A bug was fixed so that frames blacklist works for CSS class-based selectors.
  • Conditional comments were replaced with user-agent check (MSIE) and document mode detection.
  • A close button was added for the Regex Tester in the Configuration Wizard.
  • The timer interval for flushing the queue is now set to 5 minutes in the default configuration.

Version 3.0.0

New features
This section describes the new features and changes introduced in the 8.8 version of Acoustic Experience Analytics (Tealeaf)UI Capture.

  • Added a new module, Overstat, that tracks two new events; hover duration and hover to click time.
  • Added event delegation support for jQuery flavor of UI Capture.
  • Added support for cross-domain POSTs.

Bug fixes and improvements

  • Added a host property to the screenview message that now contains the URL scheme and host.
  • Check for exceptions when unregistering handlers since the target may no longer be valid in some cases.
  • Library configuration object supports specifying window and document objects as strings (for example, target: "document")
  • The Configuration Wizard was fixed so the masking function value is displayed and not the function ID.
  • Certain cases of user input not being updated in the Configuration Wizard when using Firefox were fixed.
  • Clean up frame-related resources and events after a frame reloads.
  • Made improvements to the xpath algorithm.
  • UI Capture was fixed so that it does not send an empty performance object on legacy Internet Explorer when calculateRenderTime is disabled.
  • Added help text for Performance settings and Replay Events under Advanced Options on the Modules page of the Configuration Wizard.
  • Allow privacy masking functions to be specified the same way that we allow JSON parser, stringifier, and jQuery Sizzle configuration.
  • Set tlType to month for HTML5 input element of type=month Because HTML5 elements are not uniformly supported across all browsers, this fix only works for browsers that have underlying support for this element.
  • Ensure that messages get flushed in the right order when screenview load and unload are used.
  • The Configuration Wizard displays the UIC version string.
  • The queue service was modified so that serialization for native bridge uses the serializer service abstraction instead of the global JSON object.

Version 2.1.0

New features

  • A new public API was implemented, TLT.getSessionData(), that returns the Experience Analytics (Tealeaf) Session id information in JSON format.
  • Support was added for blacklisting frames.
  • Support was added for render time on legacy browsers that do not implement the W3C Navigation Timing API. In such cases, the library can optionally calculate render time based on the difference between the library load and page load.

Bug fixes

  • Changes were made to TLT.init logic to improve performance on load.
  • Made performance improvements to the xpath algorithm.
  • Legacy Internet Explorer (and IE9 in quirks mode) access denied issue when document domain is changed were fixed.
  • window.JSON calls were replaced with the serializer service abstraction. The JSON stringifier and parser are now configurable. Use of the built-in stringifier and parser is configurable.
  • Made performance improvements to the getBoundingClientRect algorithm.
  • Fixes implemented to the same origin detection for frames support and multi-level frame support.
  • jQuery is no longer assumed to be in the global scope. The configuration is used to specify the jQuery location.
  • Performance improvement to break out of the privacy processing loop once a privacy match is found. For targets that are configured multiple times in the privacy configuration, only the privacy mask that is specified for the first match s applied.
  • When the initial focus time on a target element is missing, the default dwell time is set to 0 instead of the timestamp.
  • Fixed XHR when using Microsoft ActiveX object.
  • Check for negative values of the selectedIndex for cases when the select list is empty.
  • Removed contenteditable from the target selector in the Configuration Wizard and the default configuration. For websites using HTML5 elements with contenteditable attributes, this must be configured manually.
  • If the target element's value is empty, the masked value is empty irrespective of the mask type (empty, basic, or type).
  • sizzleURL must be configured explicitly and is no longer included in the configuration by default.
  • Prioritize use of Sizzle engine over jQuery when available. jQuery detection logic checks for jQueryObject specified in the configuration before assuming jQuery in global scope. Location of the Sizzle engine is now configurable. The library checks for sizzleObject in the configuration before assuming Sizzle in the global scope.

Version 2.0.4

First release.

Updated 4 months ago


UIC Release Notes


Suggested Edits are limited on API Reference Pages

You can only suggest edits to Markdown body content, but not to the API spec.