Tealium

The FullStory tag for Tealium provides a flexible way to deploy FullStory with Tealium IQ.  Identify users and pass custom variables to FullStory from your Tealium data layer, all without a single line of code.  

Tag Installation

The first step to deploying FullStory via Tealium is to add the tag to your website.

  1. On the Tags tab of Tealium iQ, click the “+ Add” button.

  2. In the Tag Marketplace search box, type “fullstory”.

  1. Find the FullStory tag, and click “+ Add”.  The Tag Configuration modal will appear.

  2. In the modal, be sure to enter your Org ID, which is available in your recording snippet on a line that looks like window['_fs_org'] = 'AB123', where AB123 is the Org ID.

  1. Optionally click Next and specify some load rules for the tag.

  2. Click Finish.

  3. Follow your usual process to save and publish the new tag.

After this minimal set of steps, FullStory will be deployed to your site per any load rules, and recording will begin.  

Note: that this minimal configuration does not support identifying users or correlating FullStory and Tealium session IDs.  To configure these features, continue to the additional data mapping described in the sections below.

Standard Data Layer Destinations

The behavior of the tag can be customized by mapping data layer variables to some Standard destinations defined by the tag:

  • fs_debug - Controls whether FullStory debug logging is enabled.  When enabled, FullStory creates detailed logs on the browser console of its recording activities.

  • get_fs_session_id - Controls whether the FullStory session ID is sent from FullStory to Tealium.  When enabled, the session ID is added to the utag_data object as fs_session_id.

  • get_tealium_session_id - Controls whether the Tealium session ID is passed to FullStory in any FS.identify and FS.setUserVars calls as the custom variable tealiumSessionId_str.

  • get_tealium_visitor_id - Controls whether the Tealium visitor ID is passed to FullStory in any FS.identify and FS.setUserVars calls as the custom variable tealiumVisitorId_str.

  • fs_consent - Indicates whether the current user has given consent for recording. When this destination is mapped, the parameter value is passed to FS.consent. A value of "true" indicates the user has given consent, and FullStory recording proceeds as usual.  A value of "false" indicates the user has not given consent, and neither FS.identify nor FS.setUserVars will be called by the tag, to avoid recording any personal data. In addition, when fs_consent is "false" any elements that have been marked as requiring consent in your exclusion settings will be excluded from recording. Note that by default Tealium's built-in Custom Preferences Manager will remove the entire FullStory tag when a user opts out of the tag's assigned category. To avoid full removal of the tag, you must omit it from the set of tags controlled by the preferences pop-up.  

Note: all of the above settings are expecting “stringly” typed boolean values, that is to say the string “true” or the string “false”, not the boolean value true or the boolean value false.

As always, don’t forget to save and publish any changes you make to the tag’s data mappings.

User Data Destinations

The minimal configuration described above does not allow for identified sessions in FullStory.  To identify users, you must also provide a data mapping for the FullStory user ID.  There are three pre-defined user data mappings available:

  • uid - Contains the unique application ID of the current user, and indicates to that the tag should call FS.identify rather than FS.setUserVars.

  • uservars.displayName - In the case when there is an identified user, optionally contains the user’s display name, e.g. Joe Schmoe.

  • uservars.email - In the case when there is an identified user, optionally contains the user’s e-mail address.

If the variables uid, uservars.displayName, and uservars.email are mapped to data layer variables containing the values 1, ‘Daniel Falko’, and ‘daniel.falko@example.com’, respectively, the tag will make a call to FS.identify equivalent to the following:

 FS.identify('462718483', {
 displayName: 'Daniel Falko',
 email: 'daniel.falko@example.com'
});

Important note: in order for users to be appropriately identified, a variable from the data layer must be mapped to the uid destination, and that variable must be appropriately populated.  If the uid mapping is missing, or if the value passed from the data layer to the tag is null or empty, the user will not be identified.  Instead of FS.identify, the tag will call FS.setUserVars.

Custom Variable Destinations

FullStory allows for users to specify any amount of custom data on top of user ID, name, and email address.  These custom data mappings can be set with the “Custom User Var” option in the “User Parameters” data mappings for the tag.

  1. Begin the data mapping as usual by selecting the variable to map and then clicking “Select Destination”.  The mapping modal will appear.

  2. For Category, select “User Parameters”.  

  3. For Destination, select the last option, “Custom User Var”

  4. By default, the variable will be mapped to a destination named uservars.custom.  Click the destination text at the top of the dialog to make it editable.

  5. Change the name of the custom variable to the name you wish to see in FullStory.  Make sure to use a naming convention consistent with the data type of the variable’s value.

  6. Click Close.

You may create many custom fields with different data types, as long as each of them receives a unique name starting with the prefix “uservars.”  The below screenshot shows an example where the standard email and display name fields have been defined, along with two string-type custom fields.

Event Destinations

Note: Event tracking in FullStory is currently a beta feature. If you would like to participate in the beta program, you can use the Contact Us button below to let us know you're interested.

If you are doing event tracking and/or link tracking with Tealium, you can also set up the FullStory tag to pass those events into FullStory as custom events. Every custom event in FullStory has both an event name and a set of custom properties that can be configured in the Tealium data layer. The relevant destinations are:

  • fs_event_name - This is a string containing the name of the custom event (see the FS.event API call for additional discussion of naming events). If you are using the Tealium Events extension, you should map this destination to the data layer variable tealium_event.
  • fs_event_object - If you wish to pass custom properties for the event as an entire, pre-built object, you can do so by mapping the data layer variable for that object to the fs_event_object destination. The object's structure must follow the same rules as the custom event properties for the FS.event call; in other words, it may contain nested objects and arrays of atomic values, but not arrays of objects.
  • fs_event.custom - If you wish to pass custom properties to the event singly, use the fs_event destination. This destination works similarly to the custom variable destination described above. As you map data layer variables, simply replace the text "custom" in the destination name with the property name that you want to pass to FullStory.

Finding Sessions Using Tealium Variables

You'll likely want to find sessions in FullStory using the Tealium session ID or the Tealium visitor ID.  Both of these values will come into FullStory as custom variables, which means only the most recent value will be available in the user profile:

To search for older sessions with a specific Tealium session or visitor ID, add a “Has Any Activity” filter, then click the ellipsis to the right to show a list of custom fields against which you can search.  Below is an example of searching by session ID, with one matching user:

Below is an example of searching by visitor ID:

Additional Notes

The tag makes heavy use of the _fs_ready callback.  If you are writing extensions that include some some custom JavaScript code, please do not specify your own value for _fs_ready.  Such an extension will override the functionality of the tag and stop information being passed between the data layer and the tag.

Can’t find what you’re looking for?

The FullStory team awaits your every question.

Contact Us