Is it possible to make GTM Custom HTML tag not to insert new <script/> tags into the DOM?

Viewed 473

There is a Single Page App with Facebook Pixel integrated via Google Tag Manager as Custom HTML tag.

<script>
  (function() {
    fbq({{Facebook Pixel Track Type}}, {{Facebook Pixel Event Name}});
  })()
</script>

This tag is firing on every history change. And on every history change new

<script type="text/javascript" id="">fbq(google_tag_manager["GTM-XXXXXXX"].macro('gtm22'),google_tag_manager["GTM-XXXXXXX"].macro('gtm23'));</script>

is inserted into the DOM.

multiple script tags added to the page

The only way I found just remove executed script tags.

<script id='facebook-pixel-hit'>
  (function() {
    fbq({{Facebook Pixel Track Type}}, {{Facebook Pixel Event Name}});
    setTimeout(function() {
      var scriptTag = document.getElementById('facebook-pixel-hit')
      if (scriptTag)
        scriptTag.remove()
    }, 500);
  })()
</script>

but it doesn't look like a good solution.

Are there any ways to avoid adding multiple tags into the DOM?

0 Answers
Related