This week I had the pleasure of being introduced to a “friend” in the world of “why isn’t my TMS working”. This friend’s name is the “Zero Width Space” character, and its unicode value is U+200B. You can learn more about this character here.

This character is exactly what it sounds like, a character that appears in-line with other text, but has zero width, rendering it practically invisible. Here is what I mean:

Consider the two Signal snippets below:

<script type=”text/javascript”>
(function () {
var tagjs = document.createElement(“script”);
var s = document.getElementsByTagName(“script”)[0];
tagjs.async = true;
tagjs.src = “//s.btstatic.com/tag.js#site=ABC123​”;
s.parentNode.insertBefore(tagjs, s);
}());
</script>
<noscript>
<iframe src=”//s.thebrighttag.com/iframe?c=ABC123″ width=”1″ height=”1″ frameborder=”0″
scrolling=”no” marginheight=”0″ marginwidth=”0″></iframe>
</noscript>

and…

<script type=”text/javascript”>
(function () {
var tagjs = document.createElement(“script”);
var s = document.getElementsByTagName(“script”)[0];
tagjs.async = true;
tagjs.src = “//s.btstatic.com/tag.js#site=ABC123″;
s.parentNode.insertBefore(tagjs, s);
}());
</script>
<noscript>
<iframe src=”//s.thebrighttag.com/iframe?c=ABC123″ width=”1″ height=”1″ frameborder=”0″
scrolling=”no” marginheight=”0″ marginwidth=”0″></iframe>
</noscript>

Now, you might think that these snippets look identical, but you would be wrong, and here is why. In the first snippet, on the 6th line (tagjs.src = “//s.btstatic.com/tag.js#site=ABC123​”;) there is a zero width space character after the site id (W32Q8am”).

You can’t see it, but it’s there, and because it’s there, it prevents the snippet from correctly loading the site configuration, or even working at all. You can check by placing the cursor after the “am” in the side ID, then using the arrow keys to move it to the right.

Here is what it looks like on the only tool I found that actually correctly identifies its presence, www.dirtymarkup.com.

Apparently, this happens when code is copied to and from email clients that construct messages using HTML. This includes Gmail, so if you are using Gmail, this includes you.

Feel free to leave a comment if you’ve experienced the same issue and this solution was helpful to you!