These release notes pertain to the Acoustic Experience Analytics (Tealeaf) UI Capture SDK. To view the notes for a specific release, select from the following table:

Release 5.7.0 Release 5.6.0 Release 5.5.0
Release 5.4.1 Release 5.4.0 Previous releases

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.
  • UIC adds a screenviewLoadEvent configuration option to specify a custom event to trigger the “root” screenview 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

    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 IBM
    * © Copyright IBM Corp. 2017
    * US Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM 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.

    The SDK 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 SDK queue from automatically flushing to the network.
      • The UI Capture SDK does not create a WCXSID cookie. For session identification, the UIC SDK checks the WCXSID cookie and verifies that it exists. If it exists, the UIC SDK uses the WCXSID cookie value. If a WCXSID cookie does not exist, the UIC SDK 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 UI SDK modules written by Acoustic Professional Services or Acoustic Business Partners. Any custom modules added to the UI Capture SDK 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.

      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, the SDK falls back to use the XHR mechanism.

        Note: This feature requires Acoustic 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 Acoustic 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 SDK 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 SDK ignores the DOM
        mutations and performs a full DOM Capture for the page. When the UI Capture SDK reverts to the full DOM Capture, the
        forced property is added to the type 12 DOM Capture message. The UI Capture SDK automatically switches back to
        capturing DOM Diffs for subsequent triggers.

      • The UI Capture now supports the
        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 Acoustic Experience Analytics (Tealeaf) SaaS, and modifications and additions to the JSON
      messages that are generated by the SDK.

      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 Acoustic Experience Analytics (Tealeaf) SaaS:
        • A cookie module was added to the configuration so that cookies can be configured based on how
          Acoustic Experience Analytics (Tealeaf) SaaS handles sessionization for the
          application.
        • Configuration options were added to test the target page at SDK initialization. You can
          configure the SDK to send an async test and configure a time to wait for a response back from the
          target page before the SDK 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 Acoustic 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 Acoustic 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.
      • Acoustic 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 Acoustic Experience Analytics (Tealeaf) Framework
        • Disable Acoustic Experience Analytics (Tealeaf) Framework
        • Log Screen Capture
        • Start New Acoustic 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 Acoustic 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 Acoustic 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 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 Acoustic 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 contenteditablefrom 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.


      Join The Discussion

      Your email address will not be published. Required fields are marked *