Howl Publisher Tag

Overview

The Howl publisher tag is a lightweight tag that has two operational modes: Audit Mode and Active Mode.

Audit Mode

Audit Mode allows us to size the opportunity for out of stock link repair and scopes the size of integration. This mode also allows us to identify additional retailers that sell your recommended products, diversifying your content monetization.

Active Mode

Active Mode contains the features of Audit Mode, and enables Howl’s link monetization features. The active tag finds all eligible commerce links on the page and runs Howl tracking and optimization. Reporting on links can be found in the Howl dashboard.

Audit Mode Implementation

Copy and paste the following Javascript snippet into the <head> section of all your site’s pages.

  • Make sure to replace ACCOUNT ID with your own Howl account id.

  • Need to know your Howl account id? Reach out to your growth manager or solutions@planethowl.com for assistance.

   <script type="text/javascript">
      (function (window, document, accountId) {
          window.skimlinks_exclude = ["shop-links.co", "shop-edits.co", "howl.me"];
          window.NRTV_EVENT_DATA = { donotlink: true };
          var b = document.createElement("script");
          b.type = "text/javascript";
          b.src = "https://static.narrativ.com/tags/narrativ-pub.1.0.0.js";
          b.async = true;
          b.id = 'nrtvTag';
          b.setAttribute('data-narrativ-id', accountId);
          var a = document.getElementsByTagName("script")[0];
          a.parentNode.insertBefore(b, a);
      })(window, document, ACCOUNT ID);
</script>

Active Mode Implementation

To update your Audit Mode tag to Active Mode, simply remove the following line from the script:

window.NRTV_EVENT_DATA = { donotlink: true };

If you aren’t currently using the tag in Audit Mode, copy and paste the following Javascript snippet into the <head> section of all your site’s pages.

  • Make sure to replace ACCOUNT ID with your own Howl account id.

  • Need to know your Howl account id? Reach out to your growth manager or solutions@planethowl.com for assistance.

   <script type="text/javascript">
      (function (window, document, accountId) {
          window.skimlinks_exclude = ["shop-links.co", "shop-edits.co", "howl.me"];
          var b = document.createElement("script");
          b.type = "text/javascript";
          b.src = "https://static.narrativ.com/tags/narrativ-pub.1.0.0.js";
          b.async = true;
          b.id = 'nrtvTag';
          b.setAttribute('data-narrativ-id', accountId);
          var a = document.getElementsByTagName("script")[0];
          a.parentNode.insertBefore(b, a);
      })(window, document, ACCOUNT ID);
</script>

Please Note: The tag determines a link’s uniqueness by the combination of the product url and page url. If your website uses dynamic values (such as user or session id) in either the product or page urls, please inform your growth manager or solutions@planethowl.com to ensure correct functionality

Active Tag Capabilities: Dynamic price and merchant names (Out of Stock optimization)

If your content contains commerce buttons or links that mention a merchant’s name or product price (i.e. “$5 at Nordstrom”), the tag has a feature to enable dynamic updates of these values.

After an auction completes, the Howl tag will write the output of the auction to the data-bamx-auction attribute. In that attribute, you can find information about the auction winner (e.g. product price, merchant name, image url) and update your frontend using this information.

Updating Your Buttons

Below is an example JS snippet that will create a MutationObserver on all relevant links in your content, which trigger after our auction runs.

Please note: the below code assumes monetized-links is a pre-existing identifier. If there is no identifier you may use document.querySelectorAll("a[data-bamx-auction]") instead.

 1const anchorNodes = [...document.querySelectorAll('a.monetized-links')];
 2const config = {attributes: true};
 3
 4for (let i = 0; i < anchorNodes.length; i++) {
 5  let anchor = anchorNodes[i];
 6
 7  const logFunction = (mutationList, observer) => {
 8    for (let j = 0; j < mutationList.length; j++) {
 9      const mutation = mutationList[j];
10
11      if (mutation.type === 'attributes' && mutation.attributeName === 'data-bamx-auction') {
12        console.log('Narrativ Auction has finished. Update display values now');
13        console.log(anchor.getAttribute('data-bamx-auction'));
14        // Your custom update function here.
15      }
16    }
17  };
18
19  const observer = new MutationObserver(logFunction);
20  observer.observe(anchor, config);
21}

Merchant Checkout Tracking: U1 Parameter Support

The Howl publisher tag also provides user ID tracking for clicks and checkouts via an appendable U1 Parameter.

To add the U1 parameter to Howl events, add the following snippet to your Howl tag script:

window.NRTV_EVENT_DATA = { data-u1Param: yourU1Param };

Replace yourU1Param with your U1 Parameter variable.

Once added, your Javascript tag should look like this:

   <script type="text/javascript">
      (function (window, document, accountId) {
          window.skimlinks_exclude = ["shop-links.co", "shop-edits.co", "howl.me"];
          window.NRTV_EVENT_DATA = { data-u1Param: yourU1Param };
          var b = document.createElement("script");
          b.type = "text/javascript";
          b.src = "https://static.narrativ.com/tags/narrativ-pub.1.0.0.js";
          b.async = true;
          b.id = 'nrtvTag';
          b.setAttribute('data-narrativ-id', accountId);
          var a = document.getElementsByTagName("script")[0];
          a.parentNode.insertBefore(b, a);
      })(window, document, ACCOUNT ID);
</script>

The U1 Parameter can be included in click and order reports. Please contact your growth manager or solutions@planethowl.com for more details.

Please note: This implementation is specific to tag integrations. For using U1 Parameters with a Clickmate integration, see Clickmate Query Parameters.