Implement conditional initialization

Overview

Some application situations need to initiate and terminate the capture functionality on various runtimes. For example, an application might require user consent before it begins capturing analytics data.

Prerequisites

The Web SDK is normally required to capture all user interactions from page load to page unload. However, it may be desirable to initiate and terminate this capture functionality in certain application situations depending on various runtime variables.

For example, consider an application that requires user consent before it begins capturing analytics data. In such a case, the application can choose to implement its application-specific user interface to obtain such consent. If consent is given, then the application can invoke the initialization process of the Web SDK.

  1. Locate the Web SDK configuration section. This section is normally found towards the end of the Web SDK JavaScript file.
  2. Replace the anonymous self-executing function, which invokes the TLT.init() API with a named function that can be called at a later stage from within the application.
function initTealeafUIC() {
    "use strict";
    var TLT =
        window.TLT,
        changeTarget;

    if (TLT.getFlavor() ===
        "w3c" &&
        TLT.utils.isLegacyIE) {
        changeTarget =
            "input, select, textarea, button";
    }

    TLT.init({
                core: {
                    modules: {
                        overstat: {
                            events: [{
                                    name: "click",
                                    recurseFrames: true
                                },
                                {
                                    name: "mousemove",
                                    recurseFrames: true
                                },
                                {
                                    name: "mouseout",
                                    recurseFrames: true
                                },
                                {
                                    name: "submit",
                                    recurseFrames: true
                                }
                            ]
                        },

                        ...

                    });
            }
  1. With this change, Web SDK will not initialize automatically on page load.

Rather, the named function initTealeafUIC() has to be explicitly invoked by the application in order to initialize Web SDK. The application can choose to invoke this function based on any runtime condition.

Once initialized, Web SDK will continue operation until page unload. To terminate Web SDK at any time, invoke the TLT.destroy() API.