Eight Tools for Debugging your Adobe Launch Implementation

July 28, 2022 | Brandon Flynn
debugging

It is a maxim of technology that something will go wrong, even more so if that technology is esoteric, specialised or not available to the public. The same applies to your Adobe Launch implementation. Fortunately, there are a wealth of tools to solve the problems you may run into. Here are some tools and methods that I regularly use as an Analytics Engineer in the Adobe suite of Analytics tools which I think you will find helpful as well.

This article is targeted towards:

  • Web Analytics Engineers
  • those using tag managers (especially Adobe Launch)
  • those working adjacent to Adobe Launch

1. Use the Unminified Library    

What is this method?

Using an extension to unminify the Launch library.

Why?

Launch minifies itself to reduce the load on the browser. However, this also makes the code less understandable; comments are removed, and variables lose their human-readable names. We can unminify the library to make the code more coherent.

So, the original code like this:

//  sensible names
var campaign = source + "," + medium + "," + term;  



…may be transformed into this:

//  nonsensical names
var a=b+","+c+","+d;   



Use a chrome extension like Adobe Experience Cloud Debugger or Requestly to replace the minified library with the unminified library. 

""adobe debugger

""requestly

Simply remove the ".min" in the URL and you will see the sensible names return.

Adobe Experience Cloud Debugger:

adobe debugger



Requestly:

""requestly

2. Using Chrome's Source Search for Debugging

What is this method?

A tool to search through all files loaded from the site.

Why?

You can, of course, use CTRL+F to search through a file – but there is an even greater search tool in Chrome. In the Console drawer, there is a tab called "Search". This lets you search through all sources loaded by the browser.

This can make it much easier to discover:

  • where a rouge event is being set
  • what code is causing an error
""search

""evar125



3. Live Expressions

What is this method?

A tool that tracks an expression value.

Why?

Live Expressions are a fantastic tool to understand an expression's value. The value is updated in real time. There is no need to type-out the value in the console.

Navigate to the console and click the eye icon. The expression field will be routinely evaluated every moment.

""expression

In this example, any time the foo variable is updated it will be reflected here.

""foo

I recommend the below when interacting with several Launch environments.

_satellite.property.name     + "|" + 
_satellite.environment.stage + "|" + _satellite.buildInfo.buildDate
code block""

4.  Break Points and The Debugger Statement

What is this method?

Break points and getting around barriers to break points.

Why?

Break points in any coding discipline are essential if a script is not behaving as expected.

In some cases, you will be able to set a breakpoint in Launch without issue:

""href

However, Launch has different ways of packaging your code (the logic of which is beyond my understanding). If Launch has packaged your code as in the image below, you will not be able to set a breakpoint in the browser:

""nvar

To get around this, let's put a debugger statement directly into the code (let's also put in a condition so that it won't affect anyone else using the environment):

debugger

As in tip #3, let's set a live expression to trigger the above condition.

""window"

Reload the page and -- Voila! You are now able to go step-by-step through your code.

5. Three Important Values

What is this method?

Using three values that identify the current Launch library and tracking them in Adobe Analytics.

Why?

In tip #3 I introduced these values in the _satellite object:

_satellite.property.name

_satellite.environment.stage

_satellite.buildInfo.buildDate



property.name         …is the name of the Launch container.

environment.stage     …is this a development, staging, or production environment?

buildInfo.buildDate     …is the time the library was last modified.

Often debugging extends beyond the browser. You may find these come in handy in Adobe Analytics when investigating a problem. In particular I have found them helpful when debugging campaign information. I recommend setting these as props on every beacon:

prop

launch

6. Checking Which Rules Are Firing

What is this method?

A simple way to check which Launch rules are firing.

Why?

Maybe there's an eVar missing. Maybe there's an error. If a rule is not firing, there could be a simple reason why.

To see if a rule is firing, simply filter the console with the value /fired/. If you are not seeing any rules, you may need to turn on debug mode with:

_satellite.setDebug(true);



Also be sure to check for errors (and that you're not filtering them out).

Did you know that Launch is installed inside the Launch interface? Here's a peek at what's going on in there:

""interface"

7. Understanding what is in Production

What is this method?

How to understand the difference between what is live on the user-facing website vs. what is in Launch's working library.

Why?

If something is going wrong with a rule, it is instinctual to click Rules and go to the rule. The problem is that this does not necessarily reflect the version of the rule that is in production and can lead to misunderstandings.

If you want to understand what is in Launch's production environment, click on the library that was published most recently. You will find it at the top of the "Published column".

published



Under "Resource Changes" click the rule you're interested in. This is the version of your rule that is LIVE in production.

upstream



You will also see this dialog. I click on this by muscle memory -- but it's important to know that will take you to a version of the rule that is more recent than what is in production.

""orange"

Now let's look at a practical example.

Imagine this: You published a library yesterday. The library sends a Facebook pixel on every pageview. Today, you realize the pixel is not firing. 

You go to the "rules" tab…

rules

You check the rule…

facebook

…but you see no issues with it. How could that be?

The mistake is that you are not looking at the version of the rule that is in production, you are looking at a more recent draft that has not been published.

8. Overrides

What is this method?

A tool that can rewrite pages.

Why?

Overrides are a powerful tool. Put simply, they allow you to rewrite a page. Unlike using the inspection tool, these changes will persist even after reloading the page. This may be helpful for tested proposed changes to the site.

Under the Sources tab you'll find "Overrides".

overrides

Select a folder to put your overrides in. Make sure that "Enable Local Overrides" is checked.

overrides

Go to "Page", right click the page you want to change and choose "Save for overrides".

save for overrides

Edit the page in the sources tab. Be sure to save with CTRL+S.

this is my button now

Then you can make this kind of magic happen!

google



Now let's look at a practical example.

Let's say we've written an implementation guide (IG). That IG requests that a push is made to window.digitalData when a pageview happens. It looks like this:

digitalData.push({
  event:"pageview"
})



If we want to test that our Launch configuration is correct and compatible with the IG, we could simply paste this script into the console – but for a more realistic experience we could have overrides take care of this for us.

pageview

Now, we can have our pageview event trigger automatically on every pageview.

Keep the Eight Tools Handy

As you are working in Adobe Launch and the Adobe Analytics Suite, it is common that issues will arise that need fixed. Keep this list of eight tools in mind to help find bugs and solve problems you run into.