This page explains how to implement the preezie widget into your webpages using Google Tag Manager.

Initial Setup for embedded journeys (single-code snippet version)

Create a new GTM tag with your desired name, we recommend ‘preezie-widgets-{pagename}’

<script type="text/javascript" src="https://widget-cdn.preezie.com/production/preguide.min.js" data-widgetid="123456789" data-targets="header-container" data-isafter="true"></script>

Now update header-container to the HTML class or ID on your page where you want preezie to appear after: data-targets="header-container"

So if your HTML uses class="section-header" instead it would become data-targets="section-header"

Then underneath that, add this snippet below it:

<script>
    window.document.dispatchEvent(new Event("DOMContentLoaded", {
      bubbles: true,
      cancelable: true
    }));
</script>

The final tag would look like this:

<script type="text/javascript" src="https://widget-cdn.preezie.com/production/preguide.min.js" data-widgetid="123456789" data-targets="section-header" data-isafter="true"></script>
<script>
    window.document.dispatchEvent(new Event("DOMContentLoaded", {
      bubbles: true,
      cancelable: true
    }));
</script>

Do not initialise the snippet on all pages, only on the pages which you want journey(s) on.

Example trigger

Exit Intents, Popups & CTAs

This works in the same way as the Embedded version above but does NOT need data-targets element for page positioning, page positioning/triggers can be done via the preezie CMS.

You can obtain the code snippet from the CMS > Popups > Settings > Code Snippet:

image-20240625-043730.png

Then add the additional code below the snippet, so it looks like this:

<script type="text/javascript" src="https://widget-cdn.preezie.com/production/preguide.min.js" data-widgetid="123456789"></script>
<script>
    window.document.dispatchEvent(new Event("DOMContentLoaded", {
      bubbles: true,
      cancelable: true
    }));
</script>

Add a trigger to this tag as above, this tag can be loaded on all pages as popups are controlled via preezie CMS instead. See this guide.


Initial Setup (full code snippet version)

Below is another version of the code snippet if your platform requires this level of control instead.

example of changing to a custom class:
var targetElement = document.querySelector(".mycustomclasshere") || document.getElementById("INSERT_ID_TARGET")

example of changing to a custom id:
var targetElement = document.querySelector(".INSERT_CLASS_TARGET") || document.getElementById("mycustomidhere")

Tip: remember to not remove the '.' from the querySelector element

<script type="text/javascript" src="https://preeziecdn.azureedge.net/production/preguide.min.js"></script>
    <script defer type="text/javascript">
      var targetElement = document.querySelector(".INSERT_CLASS_TARGET") || document.getElementById("INSERT_ID_TARGET")
      ;(function () {
        if (!targetElement) return
        targetElement.innerHTML += '<div id="preezie-widget-div-id"></div>'

        PREEZIE_GUIDE.render([
          {
            guideKey: "PUT YOUR OWN GUIDE KEY HERE",
            version: "1.0.0",
            renderTo: "preezie-widget-div-id",
          }
        ])
      })()
    </script>

Example Image:

Multiple Journeys On A Page

If you want to add another journey to a page, simply add another script below your initial workflows script.

Remember to change any instances of preezie-widget-div-id to another unique id for any additional widgets.

Example:

  <script type="text/javascript" src="https://preeziecdn.azureedge.net/production/preguide.min.js"></script>
    <script defer type="text/javascript">
      var targetElement = document.querySelector(".INSERT_CLASS_TARGET") || document.getElementById("INSERT_ID_TARGET")
      ;(function () {
        if (!targetElement) return
        targetElement.innerHTML += '<div id="preezie-widget-div-id"></div>'

        PREEZIE_GUIDE.render([
          {
            guideKey: "PUT YOUR OWN GUIDE KEY HERE",
            version: "1.0.0",
            renderTo: "preezie-widget-div-id",
          }
        ])
      })()
    </script>
<!-- New Widget -->
<script defer type="text/javascript">
      var targetElement = document.querySelector(".INSERT_CLASS_TARGET") || document.getElementById("INSERT_ID_TARGET")
      ;(function () {
        if (!targetElement) return
        targetElement.innerHTML += '<div id="CHANGE ME PLEASE"></div>'

        PREEZIE_GUIDE.render([
          {
            guideKey: "YOUR OTHER GUIDE KEY HERE",
            version: "1.0.0",
            renderTo: "CHANGE ME PLEASE",
          }
        ])
      })()
    </script>

Exit Intents, Popups & CTAs:

In GTM, all you need to do is add a single Custom HTML Tag to load on all pages.

This tag uses the below format with your popup guide key added. If you load on all pages you can control which page and method is shown via the preezie CMS.

<script type="text/javascript" src="https://preeziecdn.azureedge.net/production/preguide.min.js"></script>
<div id="preezie-widget-div-id-popup"></div>
<script defer type="text/javascript">
    PREEZIE_GUIDE.render([
      {
        guideKey: 'YOUR POP UP GUIDE KEY HERE',
        version: '1.0.0',
        renderTo: 'preezie-widget-div-id-popup'
      }
    ]);
</script>