Tag managers and CDPs

For the layer between your website and everything else - Tealium, Adobe Launch, Commanders Act, Segment, RudderStack and Snowplow.

1. Two layers, one idea

A tag manager decides which tools run on your page. A customer data platform decides where the events go afterwards. Both sit between your website and your stack, and both are worth telling that a recording exists.

The bridge writes the replay link into whichever of the two you run, so that anything downstream of it - your analytics, your warehouse, your marketing automation - can carry the link without a separate integration for each.

If you already use Google Tag Manager, use the GTM dataLayer tile instead. This one is for the tag managers that are not GTM, and it exists precisely because "just use GTM" is not an answer for an Adobe or Tealium shop.

2. What each one actually accepts

These six differ more than their category suggests, and the differences are not stylistic - each one refuses what the others expect.

ToolHow it takes the value
Tealiumutag.link - not utag_data, which is only read at page load
Adobe Launchthrough the Client Data Layer; _satellite has no public write API
Commanders Acttc_vars - and we do not create it if it is missing, because its absence means TagCommander is not there
Segmentanalytics.identify with a trait
RudderStackthe same shape, its own global
Snowplowa global context; answers by callback, so the value is buffered
JENTIS_jts.push with track: "event"; custom field names are allowed, only track and type are reserved

JENTIS is the exception to the ordering rule. Its install snippet creates window._jts = window._jts || [], which makes _jts a queue: a push survives the library loading and is not lost. What section 4 says about ordering therefore does not apply to it. We still do not create the queue if it is missing — for the same reason as with Commanders Act: its absence means JENTIS is not installed, and a self-made _jts would be a promise nobody keeps.

The Tealium mistake worth naming

Writing into utag_data looks right and does nothing: Tealium reads that object once, when the page loads, and our value arrives afterwards. utag.link is the call that reaches a running Tealium, and it is the one we use.

3. What it does not do

It does not create your data layer

If Commanders Act is not on the page, tc_vars is missing - and we leave it missing. Creating it would produce an object that looks like a configured TagCommander to every other script on the page, which is a worse outcome than doing nothing.

It does not send anything itself

The tag manager or CDP forwards the value under its own configuration and its own contracts. From our side this is a write into a local object; whether it leaves the browser, and to whom, is decided in your own tooling - which is also why these recipients do not appear in our record of processing activities.

It does not retry forever

Twenty attempts at half-second intervals, then it stops. A tag manager that has not appeared in ten seconds is not going to.

4. A note on order

Tag managers load early by design, CDPs usually later, and MousePlayer sits somewhere in between depending on how you embedded it. That is why the bridge polls rather than reading once.

If you control the load order, putting the tag manager before our snippet removes the wait entirely - but nothing depends on it, and we do not ask you to rearrange your page for our benefit.

The value we write is the replay link and the session ID, nothing else. No email address, no name, no IP - the same restraint as everywhere else in this product.

All trademarks named here belong to their respective owners. MousePlayer has no business relationship with these providers.