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.
| Tool | How it takes the value |
|---|---|
| Tealium | utag.link - not utag_data, which is only read at page load |
| Adobe Launch | through the Client Data Layer; _satellite has no public write API |
| Commanders Act | tc_vars - and we do not create it if it is missing, because its absence means TagCommander is not there |
| Segment | analytics.identify with a trait |
| RudderStack | the same shape, its own global |
| Snowplow | a 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.