Using Adobe Launch ? for configuration management

Adobe Launch (, by Adobe) ist the tag manager that comes for free with the Adobe Experience Cloud. You can use it to manage and orchestrate all the marketing tags on your websites (not only from Adobe) and reduce integration efforts for the mobile Adobe SDKs to just copy-pasting from the launch interface. For a tutorial, look below on this post.

Launch is the successor to the Adobe Dynamic Tag Manager (DTM) which was used in the past, formerly known as Satellite. In 2018 Adobe announced plans to retire DTM fully by 2021 (source: So if you are still using DTM, you should start migrating to Launch, which is only a one-click-action under ideal circumstances.

Launch can host scripts for pre-tailored use cases (called Extensions) or custom code. With rules, we define when and where things should happen. Last, Data Elements let us define variables that we can use across all our tags to consolidate the tracked data points. But did you know that we can define static values and access them through the _satellite object? Let’s explore that!

Data Elements supercharged

When creating a new Data Element, Launch gives us a lot of options for the core extension. The obvious Element Types include web specific stuff like the Domain, Referrer or Query Parameters. There are some shorthand method for things like the Session Count, Time Spent or Visitor Retention. But for our example, we want to create two types of Elements: One Random Number and a Constant:

Data Element with Random Value
Data Element with Constant Value

With those two Data Elements, let’s publish our Library and take a look at our browser console. The _satellite object has a method getVar(“name”) that lets us get the value of a Data Element and takes the Data Element’s name as an argument. To get the constant value from the screenshot above, we would use _satellite.getVar(“test_constant”). Let’s try it out and get the value of both our random and constant Data Element:

There are two things to note here: The value returned for a Constant is always a string, even though we gave it an integer in Launch. If we wanted an integer, we would need to wrap it like parseInt(_satellite.getVar(“test_constant”)). Second, the random value changes every time we get it, respecting the boundaries we defined.

There are a lot of applications for this functionality that come to mind. For example, we could define a prefix for some tracking variables and change it without the need to ask a developer. At my company, we use sampling for our media tracking (to save on server calls). With Data Elements, we can have an evaluation like parseInt(_satellite.getVar(“test_constant”)) > _satellite.getVar(“test_random”) to decide if an interaction should be captured for tracking or not. If we ever want to change the sampling rate, we can do this completely in Launch without the need to touch any code!

There is only one downside to this: While it works like a charm on the web, we don’t have any equivalent for mobile Apps at time of writing. If you too would like to have this, please upvote my post on the Experience League.

Tutorial: Effortless Experience Cloud Implementation with Adobe Launch

The obvious use case for Launch is to manage your Experience Cloud Tags on your website. For a basic implementation of Adobe Analytics and Adobe Target you would first add the Extensions to Launch. Launch will automatically try to fetch as much configuration values as possible and prompt you to fill in whatever is still needed. In the end, it could look like this:

Next, you would add a Rule to fire when the Launch Library is loaded to load Target, fire its Page Load Request, and then send the Analytics Beacon:

Last step: Publish your Library and copy-paste the code from the Environments tab. This is what you would give to the developers of your website:

Done! Congratulations, you now have a basic but state-of-the-art Experience Cloud implementation of Launch, Target, and Analytics along the Experience Cloud ID Service. For validation, go to your website and enter “_satellite.setDebug(true)” in your browser console. This will output the launch debug lines on pageload. Refresh your page and look at the console to see what is going on:

Awesome! Launch is working and we can start testing our Website with Target and measure the effect with Analytics!