搜索结果

×

搜索结果将在这里显示。

⚽ taboola和newsbreak针对YY像素

PageView--页面查看,所有页面生效。
ViewContent-商品查看,商品页面生效。
AddToCart-加入购物车,点击商品页面卡支付,加购按钮生效,
InitiateCheckout--开始结账,购物车页面点击支付生效,
Purchase--付款完成生效,

checkout_started,,initiatedCheckout,page_viewed,product_added_to_cart,product_viewed

yy店铺对应添加位置

GTM事件

初始化和页面查看

(function (w, d, s, l, i) {
  w[l] = w[l] || [];
  w[l].push({ "gtm.start": new Date().getTime(), event: "gtm.js" });
  var f = d.getElementsByTagName(s)[0],
    j = d.createElement(s),
    dl = l != "dataLayer" ? "&l=" + l : "";
  j.async = true;
  j.src = "https://www.googletagmanager.com/gtm.js?id=" + i + dl;
  f.parentNode.insertBefore(j, f);
})(window, document, "script", "dataLayer", "GTM-WB6Z5S3T");

window.dataLayer = window.dataLayer || [];
var ls = localStorage.getItem("_mtg");
// 页面加载时推送 page_view
window.dataLayer.push({
  event: "page_view",
});

ViewItem事件

window.dataLayer.push({
  event: "view_item",
  mtg_token: ls, // 假设 ls 已通过之前代码获取
  shopify: {
    data: {
      checkout: {
        subtotalPrice: {
          amount: meta.product.variants[0].price / 100, // 假设 payload.value 已定义
        },
      },
    },
  },
});

加购事件

document.addEventListener("DOMContentLoaded", function () {
  document
    .querySelector(".product-form__submit")
    .addEventListener("click", function () {

      // 构造 shopify e 对象
      const variant = meta.product.variants[0];
      const e = {
        data: {
          checkout: {
            subtotalPrice: {
              amount: (variant.price / 100).toString() // 转换为字符串,与 payload.value 格式一致
            }
          }
        }
      };

      window.dataLayer = window.dataLayer || [];
      window.dataLayer.push({
        event: "add_to_cart",
        mtg_token: ls,
        shopify: e
      });
    });
});

开始结账和结账完成

// 跟踪结账开始事件
function trackCartCheckout(cartData) {
    console.log("自动解析并触发结账跟踪");

    try {
        // 验证 cartData
        if (!cartData || !cartData.items || !Array.isArray(cartData.items)) {
            throw new Error("无效的 cart.js 数据");
        }

        // 获取 ls
        var ls = localStorage.getItem('_mtg') || '{}';

        // 构造 shopify e 对象
        const e = {
            data: {
                checkout: {
                    subtotalPrice: {
                        amount: ((cartData.total_price || 0) / 100).toString() // 转换为字符串
                    }
                }
            }
        };

        // 推送至 window.dataLayer
        window.dataLayer = window.dataLayer || [];
        window.dataLayer.push({
            event: "begin_checkout",
            mtg_token: ls,
            shopify: e
        });
        console.log("dataLayer begin_checkout 事件已发送", {
            event: "begin_checkout",
            mtg_token: ls,
            shopify: e
        });
    } catch (error) {
        console.error("解析或发送 begin_checkout 数据失败:", error.message);
    }
}

// 跟踪购买完成事件
function trackPurchase(cartData) {
    console.log("自动解析并触发购买跟踪");

    try {
        // 验证 cartData
        if (!cartData || !cartData.items || !Array.isArray(cartData.items)) {
            throw new Error("无效的 cart.js 数据");
        }

        // 获取 ls
        var ls = localStorage.getItem('_mtg') || '{}';

        // 构造 shopify e 对象
        const e = {
            data: {
                checkout: {
                    subtotalPrice: {
                        amount: ((cartData.total_price || 0) / 100).toString() // 转换为字符串
                    }
                }
            }
        };

        // 推送至 window.dataLayer
        window.dataLayer = window.dataLayer || [];
        window.dataLayer.push({
            event: "purchase",
            mtg_token: ls,
            shopify: e
        });
        console.log("dataLayer purchase 事件已发送", {
            event: "purchase",
            mtg_token: ls,
            shopify: e
        });
    } catch (error) {
        console.error("解析或发送 purchase 数据失败:", error.message);
    }
}

// 页面加载时自动触发
document.addEventListener("DOMContentLoaded", function () {
    fetch("/cart.js")
        .then(response => {
            if (!response.ok) {
                throw new Error("无法获取 cart.js 数据");
            }
            return response.json();
        })
        .then(data => {
            trackCartCheckout(data); // 触发 begin_checkout
            trackPurchase(data); // 触发 purchase
        })
        .catch(error => console.error("获取 cart.js 数据失败:", error));
});

yy的gtm事件

开始结账,商品详情页底部

<script>
(function () {
    // 初始化 Google Tag Manager
    (function (w, d, s, l, i) {
        w[l] = w[l] || [];
        w[l].push({ "gtm.start": new Date().getTime(), event: "gtm.js" });
        var f = d.getElementsByTagName(s)[0],
            j = d.createElement(s),
            dl = l != "dataLayer" ? "&l=" + l : "";
        j.async = true;
        j.src = "https://www.googletagmanager.com/gtm.js?id=" + i + dl;
        f.parentNode.insertBefore(j, f);
    })(window, document, "script", "dataLayer", "GTM-WB6Z5S3T");

    // 初始化 dataLayer 和 mtg_token
    window.dataLayer = window.dataLayer || [];
    var ls = localStorage.getItem("_mtg") || "{}";
    window.dataLayer.push({
        event: "page_view",
    });

    function trackCartCheckout() {
        console.log("trackCartCheckout 函数被调用");

        try {
            // 获取 mtg_token
            console.log("获取的 mtg_token", { ls });

            // 尝试获取 XPath 对应的元素值
            const xpath = "/html/body/main/div[2]/div/div[2]/div[2]/div/div[3]/div[1]/div/div[1]";
            console.log("尝试查找 XPath", { xpath });
            let element = document.evaluate(xpath, document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue;

            // 如果 XPath 失败,尝试 CSS 选择器
            if (!element) {
                console.warn("XPath 元素未找到,尝试 CSS 选择器");
                element = document.querySelector("main > div:nth-child(2) > div > div:nth-child(2) > div:nth-child(2) > div > div:nth-child(3) > div:nth-child(1) > div > div:nth-child(1)");
            }

            // 提取并格式化金额,失败时使用默认值 "0"
            let amountDigits = "0"; // 默认金额
            if (element) {
                const rawAmount = element.textContent.trim();
                console.log("提取的原始金额", { rawAmount });
const numericAmount = rawAmount.replace(/[^0-9]/g, '') || "0"; // 只保留数字
                amountDigits = (parseInt(numericAmount, 10) / 100).toString(); // 除以 100 并转为字符串
                console.log("格式化后的金额 (除以 100)", { amountDigits });
            } else {
                console.warn("未找到金额元素,使用默认金额", { amount: amountDigits });
            }

            // 构造 shopify e 对象
            const e = {
                data: {
                    checkout: {
                        subtotalPrice: {
                            amount: amountDigits
                        }
                    }
                }
            };

            // 推送至 window.dataLayer
            window.dataLayer.push({
                event: "checkout_started",
                mtg_token: ls,
                shopify: e
            });
            console.log("dataLayer begin_checkout 事件已发送", {
                event: "checkout_started",
                mtg_token: ls,
                shopify: e
            });
        } catch (error) {
            console.error("trackCartCheckout 执行过程中发生错误,但仍推送事件:", error.message, error.stack);

            // 即使发生错误,也推送默认事件
            const fallbackE = {
                data: {
                    checkout: {
                        subtotalPrice: {
                            amount: "0"
                        }
                    }
                }
            };
            window.dataLayer.push({
                event: "begin_checkout",
                mtg_token: ls,
                shopify: fallbackE
            });
            console.log("推送默认 begin_checkout 事件", {
                event: "begin_checkout",
                mtg_token: ls,
                shopify: fallbackE
            });
        }
    }

    // 绑定点击事件到具有指定类的按钮
    function init() {
        console.log("初始化 trackCartCheckout,绑定 BUY IT NOW 按钮事件");
        const buyNowButtons = document.querySelectorAll(".main_btn.product-now.control-product_detail-buy");
        if (buyNowButtons.length > 0) {
            buyNowButtons.forEach(button => {
                button.addEventListener("click", function () {
                    console.log("BUY IT NOW 按钮被点击", { buttonId: button.id, buttonClasses: button.className });
                    trackCartCheckout();
                });
            });
        } else {
            console.error("未找到 BUY IT NOW 按钮,class: main_btn product-now control-product_detail-buy");
        }
    }

    // 确保脚本在页面加载时绑定事件
    if (document.readyState === "complete" || document.readyState === "interactive") {
        console.log("DOM 已加载,立即触发 init");
        init();
    } else {
        document.addEventListener("DOMContentLoaded", function () {
            console.log("DOM 已加载,通过事件触发 init");
            init();
        });
    }
})();
</script>

初始化,所有页面顶部

<script>
(function (){
    var url = new URL(window.location.href);
    var campaign = url.searchParams.get('utm_mtg_campaign_uuid');
    var clickid = url.searchParams.get('utm_mtg_click_id');
    if (campaign && clickid) {
        localStorage.setItem('_mtg', JSON.stringify({"d":{"_default":{"u":campaign,"c":clickid,"t":parseInt(Date.now()/1000)}}}));
        console.log('mtg_write_ls',localStorage.getItem('_mtg'))
    }
})()
</script>

taboola和newsbreak的YY事件

初始化,所有页面顶部,

<!-- Google Tag Manager -->
<script>
(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;
j.src='https://www.googletagmanager.com/gtm.js?id='+i+dl;
f.parentNode.insertBefore(j,f);
})(window,document,'script','dataLayer','GTM-NWJMXWKF');

</script>
<!-- End Google Tag Manager -->

购买事件

页面底部,购买完成页

<script>
  const order = window.C_SETTINGS.order;
  const product = order.products[0];

  const data = {
    transaction_id: order.order_number,
    value: parseFloat(order.total_price),
    currency: 'USD',
    content_type: 'product',
    items: [
      {
        item_id: product.variant_id,
        item_name: product.variant_title,
        quantity: product.quantity || 1,
        price: parseFloat(product.price)
      }
    ]
  };

  dataLayer.push({
    event: 'make_purchase',
    ...data
  });

  dataLayer.push({
    event: 'complete_payment',
    ...data
  });
</script>