You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

新手求助:如何通过GTM从DOM捕获产品名称配置FB动态再营销

从DOM抓取订单确认页产品名称用于Facebook动态再营销

别担心,新手刚接触Facebook动态再营销遇到这种情况太正常啦!我帮你一步步搞定从订单确认页的DOM里抓取产品名称的事儿~

第一步:用JavaScript定位目标元素

你给出的DOM片段是:

<h3> <p> <a href="/product/79530/icebreaker-pocket-hat" title="Show details for "> **Icebreak...</a></p></h3>

我们可以通过元素的特征来定位这个承载产品名称的a标签,这里有两种简单的方式:

  • 方式1:通过href的特征定位
    因为所有产品链接的href都是以/product/开头的,用这个规则来精准匹配:

    // 定位单个产品链接
    const productLink = document.querySelector('a[href^="/product/"]');
    // 提取产品名称(直接取标签里的文本内容)
    const productName = productLink.textContent.trim();
    console.log(productName); // 打开浏览器控制台(F12)运行,先确认是否拿到正确内容
    
  • 方式2:通过DOM层级定位
    如果这个a标签固定是在<h3>下的<p>标签里,也可以用层级选择器:

    const productLink = document.querySelector('h3 > p > a');
    const productName = productLink.textContent.trim();
    

处理多产品订单的情况

如果用户一次买了多个产品,页面里会有多个这样的a标签,这时候要用querySelectorAll来遍历所有产品:

// 获取所有产品链接
const productLinks = document.querySelectorAll('a[href^="/product/"]');
// 把所有产品名称转成数组
const productNames = Array.from(productLinks).map(link => link.textContent.trim());
console.log(productNames); // 输出所有产品名称的数组

第二步:解决名称截断的问题

你看到的文本是Icebreak...(截断状态),如果页面里没有直接显示完整名称,可以试试这两种方法:

  • 从href路径提取完整名称
    产品链接的最后一段icebreaker-pocket-hat就是产品名称的slug格式,我们可以把它转成正常的名称:

    const hrefParts = productLink.href.split('/');
    const nameSlug = hrefParts[hrefParts.length - 1];
    // 把连字符分隔的slug转成首字母大写的完整名称
    const fullProductName = nameSlug.split('-').map(word => word.charAt(0).toUpperCase() + word.slice(1)).join(' ');
    console.log(fullProductName); // 会输出 Icebreaker Pocket Hat
    
  • 检查是否有隐藏的完整名称属性
    有些网站会把完整名称放在a标签的data-*属性里,比如<a data-product-name="Icebreaker Pocket Hat"...>,如果有的话直接提取:

    const fullProductName = productLink.dataset.productName;
    

第三步:集成到Facebook像素代码

拿到产品名称后,就可以把它放到Facebook的Purchase事件里,用于动态再营销:

// 单个产品的情况
fbq('track', 'Purchase', {
  content_name: productName,
  content_ids: ['79530'], // 从href里提取的产品ID(79530)
  content_type: 'product',
  value: 19.99, // 这里的订单金额也可以从DOM里抓取哦
  currency: 'USD' // 根据你的网站币种调整
});

// 多产品的情况
fbq('track', 'Purchase', {
  content_names: productNames,
  content_ids: ['79530', '12345'], // 对应产品的ID数组
  content_type: 'product',
  value: 49.97,
  currency: 'USD'
});

最后提醒:记得先在浏览器控制台测试所有代码,确认能正确拿到产品名称后,再把代码添加到订单确认页的Facebook像素脚本里哦~

内容的提问来源于stack exchange,提问作者Oli

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 06:37:01