JENTIS Accounts and Containers
  • 31 Mar 2022
  • 4 Minutes to read
  • Contributors
  • Dark
    Light

JENTIS Accounts and Containers

  • Dark
    Light

JENTIS Tag Manager is a scalable product. There are many dimensions to scale where a tag management can be used efficiently to manage many similar or different implementations and also considering multiple applications or even domains. Websites and companies are a complex world and we want to cover as many possible ways to adjust to the different needs. For that we have containers, environments and JTM accounts. Here we will describe best practices on when to use which.

Hierarchies

JENTIS has a three level hierarchy:

  1. JENTIS account:
    This is the highest level of administration. In general a single company is represented by an account. It has one single point of contact, here you login and can manage users, containers and environments.
  2. JENTIS Tag Manager Container:
    A container is always directly connected to a domain and JavaScript embed snippet.
  3. Container Environment:
    Part of the JavaScript embed snippet is the definition of an environment. Per default a JTM Container will always have two: stage and live.

Implementation Details

The hierarchies and structure of JENTIS is resembled in code. Or put it differently: the architecture of server side tracking as a first party dictates the scaling to multiple sites. As each integration must be implemented in a first party context. Making it inevitable to have different JavaScript embed snippets and therefor containers.

Lets have a look on the generic embed snippet:

<script>
(function (sCDN,sCDNProject,sCDNWorkspace,sCDNVers) {
            if(
                window.localStorage !== null &&
                typeof window.localStorage === "object" &&
                typeof window.localStorage.getItem === "function" &&
                window.sessionStorage !== null &&
                typeof window.sessionStorage === "object" &&
                typeof window.sessionStorage.getItem === "function" )
            {
                sCDNVers = window.sessionStorage.getItem('jts_preview_version') || window.localStorage.getItem('jts_preview_version') || sCDNVers;
            }
            window.jentis = window.jentis || {};
            window.jentis.config = window.jentis.config || {};
            window.jentis.config.frontend = window.jentis.config.frontend || {};
            window.jentis.config.frontend.cdnhost = sCDN+"/get/"+sCDNWorkspace+"/web/"+sCDNVers+"/";
            window.jentis.config.frontend.vers = sCDNVers;
            window.jentis.config.frontend.env = sCDNWorkspace;
            window.jentis.config.frontend.project = sCDNProject;
            window._jts = window._jts || [];
            var f   = document.getElementsByTagName("script")[0];
            var j = document.createElement("script");
            j.async = true;
            j.src   = window.jentis.config.frontend.cdnhost+"jts.js";
            f.parentNode.insertBefore(j, f)
        })("https://JENTIS_SUBDOMAIN.mydomain.com","JENTIS_CONTAINER_NAME","JENTIS_CONTAINER_ENVIRONMENT","_");
</script> 

Now there are multiple dynamic parameters in that code:

  • JENTIS_SUBDOMAIN: this is a dynamically generated value, where you have to map the DNS A record entry. All details are shared in your JTM account setup guide.
  • JENTIS_CONTAINER_NAME: this is the reference to you containers name that is to be used with the JS embed snippet.
  • JENTIS_CONTAINER_ENVIRONMENT: either “stage” or “live”.

Global and Local Elements

To make handling multiple integrations efficiently elements in the JENTIS Tag Manager have references to containers.

The following elements are either global definitions (same for all containers, available in all containers) and some are local (you can select in which container those are implemented). If a local element selects ALL containers it is the same as global.

Container Based Elements (LOCAL)

This JTM elements can be associated with all or only some JTM Containers:

  • Tools: each tool (Google Analytics, Facebook, etc.) is always connected to a container.
  • Tags: as each tag is always part of a tool it shares the setting from the tool, making it also always connected to containers selected in the according tool.
  • Code Snippets: all frontend code snippet elements are defined per container.

Shared Elements (GLOBAL)

This JTM elements are defined globally and are available to all containers:

In your JENTIS account you can have multiple tools, you can even have the same tool defined multiple times (like Google Analytics in the scribble).

Any element is either global or only locally available in a container. Following your configuration decisions in your account settings.

If you want to manage a tool only once and share the configuration on multiple websites (domains) then you simply select this tool to be available in multiple containers.

If a tool has a specific tag or configuration than you can simply add a tool and assign it only to the required container.

Best Practices

Now we need to discuss some best practices and common questions. Mainly on the scaling of multiple accounts/containers in a company with multiple websites on different domains.

How can I use the same tool or tag on multiple implementations?

All containers are maintained in a single JENTIS account.

So you can use the same tools, tags and codes in all or only in selected containers. You don’t need to copy-paste settings from one account to another. Even if the container and embed snippet is different on all domains, the JENTIS Tag Manager configuration is always managed globally in a single account.

How do I setup a tool only in one domain?

A domain is always connected to a single container, this is a 1:1 relationship. To only implement a tool or a tag on a single container you have to select only this one container.

Can I have only one global container on multiple websites (domains)?

No, a container, embed snippet and DNS record are defined per domain. JENTIS is a first party tool and can only be used in a first-party context. As the cookies set and associated with JENTIS are set via HTTP this architecture does not support loading a third party JS embed snippet as the cookies would still be set in that third party context via HTTP.

This is a browser security and data privacy measure that can not be circumvented.


Was this article helpful?

What's Next