April 1, 2016
Tealium Universal Tag (utag.js)
Improvements in behavior in Single Page App (SPA) sites using utag.link
and utag.view
Previously, items in current data layer passed to utag.link/view
were merged into the utag.data
global object. This was required to re-evaluate load rules for each utag.link/view
call. The utag.js
4.40 template takes advantage of a publish engine update so that this is no longer required. In version 4.40, the utag.data
global object is not updated with each utag.link
or utag.view
call.
You may use the following JS Extension to test for backwards compatibility with 4.39 behavior before updating to 4.40.
// JS Extension scoped to "Before Load Rules"
utag.ut.merge( b, utag.data, 0 );
utag.ut.merge( utag.data, b ,1 );
New “noconsole” flag.
Setting the flag in utag_cfg_ovrd object to true stops any output from utag.DB
from displaying in the web console. If debugging is enabled, the output still persist in the utag.db_log
array.
Creating an iframe in DOM using utag.ut.loader function
If an iframe with the same ID already exists, the iframe is not added again. Instead, the iframe src is updated.
Updating JS Page vars value for utag.view
or utag.link
calls
JS Page vars are now updated to their current value with every call to utag.view
or utag.link
. As a result the b["js_page.my_global_var"]
has the latest value in window.my_global_var
each time utag.link
is called.
Bug fix to keep cp.utag_main_ses_id
in the data layer with every utag.link
or utag.view
call
The value is now updated with a new session ID following a utag.link/view
call that occurs when the visitor has been on the same page for 30 minutes with no activity.
Removed trick to use eval
to read the document.referrer
value into the data layer’s b["dom.referrer"]
New utag.ut.encode
function
This function falls back to use escape when encodeURIComponent issues an exception (an exception is possible when attempting to encode Unicode characters that are incomplete or incorrectly formed).
_t_visitor_id
and _t_session_id
are no longer available
Auto-generated data layer values _t_visitor_id
and _t_session_id
are no longer available. These are replaced by ut.visitor_id
and ut.session_id
. If still desired, add them back in as follows:
// JS Extension scoped to "Before Load Rules"
b["_t_visitor_id"] = b["cp.utag_main_v_id"];
b["_t_session_id"] = b["cp.utag_main_ses_id"];