HTML、CSS 或 JavaScript 错误 Google Tag Manager with FB Bot

Invalid HTML, CSS, or JavaScript error in Google Tag Manager with FB Bot

我正在尝试将以下 Facebook 机器人代码放入 Google 标签管理器,但出现 "Invalid HTML, CSS, or JavaScript found in template." 错误。知道为什么吗?

<!-- Load Facebook SDK for JavaScript -->
<div id="fb-root"></div>
<script>(function(d, s, id) {
  var js, fjs = d.getElementsByTagName(s)[0];
  if (d.getElementById(id)) return;
  js = d.createElement(s); js.id = id;
  js.src = 'https://connect.facebook.net/en_US/sdk/xfbml.customerchat.js#xfbml=1&version=v2.12&autoLogAppEvents=1';
  fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));</script>

<!-- Your customer chat code -->
<div class="fb-customerchat"
  attribution="setup_tool"
  page_id="1393263590925062">
</div>

GTM 不允许非标准的 HTML 属性。因此,HTML 元素中的“attribution”和“page_id”将导致 GTM 抛出错误。

您可以使用Javascript生成聊天代码。已测试,有效。

<script>
  (function() {
    var el = document.createElement('div');
    el.className = 'fb-customerchat';
    el.setAttribute('page_id', '{{Constant - Facebook Page ID}}');
    el.setAttribute('attribution', 'setup_tool');
    document.body.appendChild(el);
  })();
</script>

p/s:您可以将变量{{Constant - Facebook Page ID}}替换为页面ID。最佳做法是使用用户定义的常量变量,阅读 here.

我发现在每个自定义属性前添加 data- 也有效(尽管我没有在任何地方看到它的记录)。

<div class="fb-customerchat"
  data-attribution="setup_tool"
  data-page_id="1393263590925062">
</div>