Troubleshooting Launch (for beginners)

The most frustrating situation in tech is when you start working on something new, and it won’t work.

You don’t understand what is going on, because your knowledge, quite frankly, isn’t there yet, and all the pages you find online give you different, conflicting advice.

‘Use the official plugin,’ one says, and it shows how version x.y.z works perfectly. But you’re on version x.y+1, and everything looks different.

‘OMG! Do NOT use the plugin!’ says another page, then goes into these simple 215 steps to make it work, including a complete recompile of your BIOS.

I’m exaggerating.

But it happens, and what would really help me in those cases would be an article that explains what to look for.

So, here is that article, for those of you wondering ‘why does this “Launch” thing not do what I want it to do?’

We’ll start with the basics, and I’ll be as non-Launch-y as I can. I’ll sort of presume that you are here because you have tried to put Launch into your site, and someone told you “it doesn’t work!” with absolutely no additional description.

So you’re on your own, and you need to figure out a) what’s wrong, and b) how to answer.

Is Launch alive?

First question, when you have to do something with Launch on your site: is Launch actually there? Is it being loaded?

If you find that Launch is not being loaded, you must sort that out before anything else.

Two easy ways to find out without any plugin or debugger.

Option 1 — Browser Network Console

If you go to the Network tab, then filter for ‘launch’, and reload the page, you will see either of the following results.

Launch is alive!
Launch is not alive!
This checks whether the Launch libraries are being loaded by the browser. It is the first thing to check, although, since option 2 is easier, I usually skip this one. Don’t tell anyone I said that.

Option 2 — Browser Console

If you type _satellite and hit Enter, you will get one of two results.

Launch is alive!
Launch is not alive!
The Launch Javascript code defines an object called _satellite. So if that object is present on your page, Launch is likely loaded properly.

You can even go further and check which Library is loaded, and when it was built.

Just type _satellite.buildInfo and then Enter.

Launch build info
In my case, the Library was built on the 3rd of August this year (note the time is “Zulu” time, which is GMT), and it is a Library in the “production” Environment.


Now we know that Launch is on the page, what shall we check next?

Is it the correct Launch Library?

Let’s check you are actually embedding what you think you are embedding.

Option 1 — Browser Console

Using in the browser console will give you the name of the Property that the loaded Library belongs to.

Satellite Property
In the Launch UI, you can see the same Property name.

Launch Property
See how the build date is the same? Good news, that!

With our knowledge about both, the Property and the Environment, we are pretty sure to have the right Launch Library in the page.

But you can also check this another way.

Option 2 — Browser Network Console

If you do what you did above, i.e. filter the Network tab for ‘launch’ and reload the page, you can see how the Library is loaded.

It has a name that consists of some code, the “Environment ID”, and that Environment ID can also be found in the UI.

Launch Environment ID
In the Launch UI, you can find that under the install instructions of one of the Environments in your Property.

In our case, we already know that this would be the “production” Environment, so let’s simply check that one.

Go to the Environments, then click the “Install” button on the right of the “production” Environment.

Launch UI – get to the Environment install dialog
In the dialog that pops up, you can see the same Environment ID, either at the top, or in the text box below.

Environment ID in the install dialog
If the IDs match, you have found the Environment that is currently in use.


What next?

What Should I See?

I know what you’re thinking, and you’re right. From this point onwards, things get murky, because what Launch does is inject Javascript into your pages, and what Javascript that is depends on the setup in the Launch UI.

So, either check things in the Launch UI yourself, or ask your friendly marketer to check for you. If she doesn’t know what exactly to look for, tell her this:

Question 1 — Are there any Rules?

Launch is rule-based. In Launch, you can create “Rules” which get triggered by “Events” and cause “Actions”.

(I really find it weird to write ‘and cause “Actions.”‘ the way it is supposed to be. How can a phrase end inside quotes? I hope noone here is grammatically strict to the point of not being able to bear what I do. My apologies if you are.)

(some completely unmotivated googling, and I now know that it is an AE thing. I shall remind you all that I lived in the UK, and so I am actually doing the right thing here. Ha!)


In order for you to see anything happen, those three elements (Rule, Event, and Action) have to be in place, and they have to correspond to what you are trying to do.

Example: if there is a Rule with a “Library Loaded (Page Top)” Event Type, you would expect that Rule to “fire” when the browser loads the page, whereas a Rule with a “Click” Event Type would only fire if you actually click the element in question.

Example 2: if there is a Rule that uses an “Analytics – Send Beacon” Action Type, you would expect the browser to send analytics data.

There is no magic, here. Everything that Launch does has to be spelt out. If there is no Rule, there won’t be anything happening.

So, check whether there are Rules, at all. And that they are “enabled” (they are, by default).

Rules in the Launch UI
The Rule names may give away what they do (they should!), but if you want to make sure, click into them, and check Events and Actions.

As stated above, Rules with “DOM Ready”, “Library Loaded (Page Top)”, “Page Bottom”, or “Window Loaded” Event Types will fire when the browser loads the page.

Others, like “Custom Code”, “Custom Event”, “Data Element Change”, “Direct Call”, or “History Change” may also trigger a Rule when you load the page (or navigate to the next one), so watch out for those.

Question 2 — How do I see whether Rules fire?

Easy: debug mode.

Using either the fabulous Launch & DTM Switch Chrome Extension by Search Discovery, or simply typing _satellite.setDebug(true); in the Console and reloading the page, you can get Launch to output debug information in the Console. A lot.

You can filter for one of two things:

  1. Filtering for “🚀” will show you everything that Launch writes, and
  2. filtering for “fired.” will show you which Rules were fired, specifically.

Launch listing Rules that fired
Now you not only know whether Rules fire, but you also know which ones.

That means you can check (or ask your friendly marketer to tell you) what Actions are supposed to happen. Does any of those Rules actually send Analytics data?

What else?

I think this is all you need for now.

What I can do is tell you how you can do the Rules check on your own, without logging into the Launch UI or talking to your friendly marketer.

This is where it is helpful that you are a developer, and that you know Javascript.

Go back to your Network tab, find the Launch Library, then look at the “Preview”.

Launch Library Preview
Scroll down (or search), and you’ll find a “rules” array.

Rules in the Launch Library
For each of the Rules in the file, you can see which Events trigger it, and which Actions are being called.

You can, of course, open the Library in a browser tab, or paste it into some JSON beautifier, to make it easier to find things. I recommend you do that.

Is looking into the Library easier than just checking in the UI or talking to someone who knows? Maybe, maybe not. But now you have a choice, and that might just come in handy.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.