NewsBreak Pixel 自定义代码接入指引(主题 3.0)

一、官方文档

https://help.newsbreak.com/hc/en-us/sections/30523433509645-Event-Tracking

二、兼容版本

主题 3.0

三、操作流程

准备:安装自定义代码应用,以下操作需要添加自定义代码

注意:下列代码中,注意修改自己的 **[pixel ID]**

1. NewBreak配置
1.1. 创建你的 NewsBreak Pixel Event
  • 登录 Ad Manager ,然后导航到“Tools” > “Event Mangement” > “Create/test web event”。

1.2. 配置你的 NewsBreak Pixel Event, 并在下方 Base Code 中找到 NewsBreak Pixel ID

2. 通用代码安装
2.1. 添加代码,触发页面全选,插入位置顶部,语法选择 Sline

2.2. 将以下代码复制入代码内容,注意将下方代码中的 pixel ID,替换为步骤 1.2 中获取到的 NewsBreak Pixel ID ,例如:ID-xxxxxxxxx
<script>
  document.addEventListener('DOMContentLoaded', function() {
    !(function (e, n, t, i, p, a, s) {
      e[i] ||
        (((p = e[i] =
          function () {
            p.process ? p.process.apply(p, arguments) : p.queue.push(arguments);
          }).queue = []),
        (p.t = +new Date()),
        ((a = n.createElement(t)).async = 1),
        (a.src = 'https://static.newsbreak.com/business/tracking/nbpixel.js?t=' + 864e5 * Math.ceil(new Date() / 864e5)),
        (s = n.getElementsByTagName(t)[0]).parentNode.insertBefore(a, s));
    })(window, document, 'script', 'nbpix'),
    nbpix('init', 'pixel ID'),
    nbpix('event', 'pageload');
  })
</script>
3. 加购事件
3.1. 添加代码,触发页面全选,插入位置顶部,语法选择 Sline

如果对应页面不会存在加购操作,可以不选。

3.2. 将以下代码复制入代码内容
<script>
  window.themeEventCenter.addListener('variant:added', (event) => {
    nbpix('event','add_to_cart', {nb_value: event.detail.price});
  });
</script>
4. 商品访问事件
4.1. 添加代码,触发页面选择商品详情页,插入位置底部,语法选择 Sline

4.2. 将以下代码复制入代码内容
<script>
  document.addEventListener('DOMContentLoaded', function() {
    const compare_at_price = '{{ product.selected_or_first_available_variant.compare_at_price | divided_by(100, integer=false) }}';
    nbpix('event','view_content', {nb_value: compare_at_price});
  })
</script>
5. 开始结账与下单成功事件
5.1. 添加代码,触发页面选择结算页,插入位置底部,语法选择 Handlebars

5.2. 将以下代码复制入代码内容
<script>
  document.addEventListener('DOMContentLoaded', function() {
    {{#if @root.checkout}}
      console.log('Start NB Pixel Snippet initiate_checkout')
      const checkout_total_amount = '{{ divide checkout.total_price 100 }}';
      nbpix('event', 'initiate_checkout', {nb_value: checkout_total_amount});
    {{/if}}
    {{#if @root.thankyou}}
      console.log('Start NB Pixel Snippet CompleteOrder')
      const thankyou_total_amount = '{{ divide thankyou.priceInfo.totalAmount 100 }}';
      nbpix('event','complete_payment', {nb_value: thankyou_total_amount});
    {{/if}}
  })
</script>