广州做工业设备出口的周总去年在必应广告上花了 30 万,后台显示 200 个转化,但实际签下的订单只有 47 单。问题出在哪?他只配了最基础的”页面访问”转化目标,把所有到过询盘页的人都算作了转化。真正提交表单的、真正签合同的、真正付款的——这些关键环节全没追踪。
基础 UET 安装只是起跑线。当你的广告预算超过每月 5 万,你就需要更精细的数据来驱动决策:哪个按钮的点击率最高?哪种表单结构转化最好?线下签约的客户是哪条广告链路来的?这些问题的答案,都藏在 UET 的高级配置里。
自定义事件追踪:精确到每一个用户行为
基础的 UET 追踪只记录页面访问。但用户在页面上做的事情远不止”打开页面”——他们点按钮、填表单、看视频、滚动页面。自定义事件追踪就是让你捕捉这些具体行为。
核心语法非常简单:
window.uetq = window.uetq || [];
window.uetq.push('event', '事件名称', {
'event_category': '分类',
'event_label': '标签',
'event_value': 数值
});
追踪按钮点击
最常见的需求是追踪 CTA 按钮的点击。比如”立即咨询”按钮:
// 方式一:直接在按钮 HTML 上绑定
<button onclick="trackButtonClick('hero_cta')">立即咨询</button>
<script>
function trackButtonClick(buttonName) {
window.uetq = window.uetq || [];
window.uetq.push('event', 'button_click', {
'event_category': 'CTA',
'event_label': buttonName,
'event_value': 1
});
}
</script>
// 方式二:用 JavaScript 监听(推荐,代码与 HTML 分离)
document.querySelectorAll('[data-track-click]').forEach(function(el) {
el.addEventListener('click', function() {
var label = this.getAttribute('data-track-click');
window.uetq = window.uetq || [];
window.uetq.push('event', 'button_click', {
'event_category': 'CTA',
'event_label': label,
'event_value': 1
});
});
});
然后在 HTML 按钮上加个属性即可:
<button data-track-click="hero_cta">立即咨询</button>
<a href="/pricing" data-track-click="view_pricing">查看报价</a>
做 SaaS 出海的李总用这套方案追踪了首页上 5 个不同位置的 CTA 按钮,发现第三屏的”免费试用”按钮点击率是顶部 Hero 区的 2.3 倍,据此调整了页面布局,整体转化率提升了 18%。
追踪表单提交
表单提交是 B2B 和服务类业务最核心的转化行为:
// 监听表单提交事件
document.getElementById('contact-form').addEventListener('submit', function(e) {
window.uetq = window.uetq || [];
window.uetq.push('event', 'form_submit', {
'event_category': 'Lead',
'event_label': 'contact_form',
'event_value': 1
});
});
如果你有多个表单(询盘表单、注册表单、订阅表单),建议用不同的 event_label 区分:
| 表单类型 | event_label | 在后台设置的转化目标 |
|---|---|---|
| 询盘表单 | inquiry_form | 高价值转化(主转化) |
| 注册表单 | signup_form | 中价值转化 |
| 邮件订阅 | newsletter | 微转化(观察用) |
| 报价请求 | quote_request | 高价值转化 |
追踪滚动深度
了解用户看了页面多少内容,可以帮你判断内容质量和页面长度是否合理:
// 追踪 25%、50%、75%、100% 滚动深度
var scrollMarks = [25, 50, 75, 100];
var firedMarks = {};
window.addEventListener('scroll', function() {
var scrollPercent = Math.round(
(window.scrollY / (document.body.scrollHeight - window.innerHeight)) * 100
);
scrollMarks.forEach(function(mark) {
if (scrollPercent >= mark && !firedMarks[mark]) {
firedMarks[mark] = true;
window.uetq = window.uetq || [];
window.uetq.push('event', 'scroll_depth', {
'event_category': 'Engagement',
'event_label': mark + '_percent',
'event_value': mark
});
}
});
});
在 Microsoft Ads 后台配置事件转化目标
自定义事件代码部署到网站后,还需要在广告后台创建对应的转化目标:
- 进入
Tools→Conversion goals→Create - 转化类型选择 Event
- 填写匹配条件:
– Event action =form_submit(对应你代码中的事件名称)
– Event category =Lead
– Event label =inquiry_form - 设置转化价值和计数方式
- 保存
[截图:事件转化目标设置界面]
更多关于转化追踪的基础知识,参考必应广告转化追踪完整指南。
可变收入追踪:让每笔订单金额自动回传
基础转化追踪只能告诉你”有没有成交”,可变收入追踪能告诉你”成交了多少钱”。这对电商和 SaaS 业务至关重要——你需要知道的不是”这个关键词带来了 10 个转化”,而是”这个关键词带来了 ¥58,000 的收入”。
标准电商场景
在订单确认页(thank-you page)添加以下代码:
// 从页面或后端获取订单数据
var orderData = {
revenue: 299.00, // 订单金额
currency: 'USD', // 货币(ISO 4217)
transactionId: 'ORD-20260413-001' // 订单号
};
window.uetq = window.uetq || [];
window.uetq.push('event', 'purchase', {
'revenue_value': orderData.revenue,
'currency': orderData.currency,
'transaction_id': orderData.transactionId
});
WooCommerce 动态收入追踪
WooCommerce 需要从 PHP 拿到订单数据,传递给前端 JavaScript:
add_action('woocommerce_thankyou', 'uet_dynamic_revenue_tracking');
function uet_dynamic_revenue_tracking($order_id) {
// 防止重复触发
if (get_post_meta($order_id, '_uet_tracked', true)) return;
$order = wc_get_order($order_id);
if (!$order) return;
$total = $order->get_total();
$currency = $order->get_currency();
$items = array();
foreach ($order->get_items() as $item) {
$product = $item->get_product();
$items[] = array(
'id' => $product->get_sku() ?: $product->get_id(),
'name' => $item->get_name(),
'price' => $item->get_total() / $item->get_quantity(),
'quantity' => $item->get_quantity()
);
}
?>
<script>
window.uetq = window.uetq || [];
window.uetq.push('event', 'purchase', {
'revenue_value': <?php echo $total; ?>,
'currency': '<?php echo $currency; ?>',
'transaction_id': '<?php echo $order_id; ?>',
'items': <?php echo json_encode($items); ?>
});
</script>
<?php
update_post_meta($order_id, '_uet_tracked', '1');
}
做跨境美妆的陈经理配置了可变收入追踪后,发现”organic skincare”这个关键词的平均客单价是 $89,而”cheap skincare”只有 $23。虽然后者的转化数更多,但前者的 ROAS 高出 3 倍。她果断把预算向高客单价关键词倾斜,月利润增加了 $4,200。这就是可变收入追踪的价值——不只看转化数,还要看每个转化值多少钱。
了解如何利用这些数据优化出价策略,能进一步放大广告回报。
增强转化:跨设备归因的突破口
用户在手机上点了你的广告,回家后用电脑下了单——基础 UET 追踪会丢失这个转化。增强转化(Enhanced Conversions)通过匹配用户的哈希化邮箱或电话,把跨设备行为串联起来。
部署增强转化代码
在转化触发点添加用户标识信息:
window.uetq = window.uetq || [];
window.uetq.push('event', 'purchase', {
'revenue_value': 199.00,
'currency': 'USD',
// 增强转化字段(自动哈希化处理)
'pid': {
'em': 'customer@example.com', // 用户邮箱
'ph': '+14155551234' // 用户电话(含国际区号)
}
});
重要说明:
- UET 会自动对邮箱和电话进行 SHA-256 哈希处理,不会传输明文
- 只需提供你已经收集到的信息(比如结账时填写的邮箱),不需要额外收集
- 增强转化需要在 Microsoft Ads 后台开启(
Tools→Conversion goals→ 选择目标 →Enhanced conversions)
增强转化的实际效果
根据微软官方数据和我们客户的实测,增强转化通常能多追踪到 5%-15% 的转化量。也就是说,你之前以为”没有效果”的一部分广告,其实是在悄悄带来转化,只是基础追踪看不到。更多详细信息可参考 Microsoft Advertising 增强转化文档。
离线转化导入:把线下成交归因到线上广告
B2B、大件商品、定制服务——很多出海业务的成交发生在线下。客户通过广告找到你,在线上询盘,但最终是通过邮件、电话或面谈成交的。离线转化导入让你把这些线下成交数据回传给 Microsoft Ads,完成完整的归因闭环。
工作流程
| 步骤 | 操作 | 工具 |
|---|---|---|
| 1 | 用户点击广告,UET 记录 Microsoft Click ID (MSCLKID) | 自动 |
| 2 | 用户提交表单,你在 CRM 中记录 MSCLKID | CRM 配置 |
| 3 | 线下成交后,导出包含 MSCLKID 和成交数据的文件 | CRM / 手动 |
| 4 | 上传到 Microsoft Ads 后台 | 手动 / API |
捕获 MSCLKID
当用户通过必应广告点击进入你的网站时,URL 中会自动附带 msclkid 参数。你需要把它存下来:
// 从 URL 中提取 msclkid 并存入 cookie
function captureMsclkid() {
var urlParams = new URLSearchParams(window.location.search);
var msclkid = urlParams.get('msclkid');
if (msclkid) {
// 存入 cookie,有效期 90 天
var date = new Date();
date.setTime(date.getTime() + (90 * 24 * 60 * 60 * 1000));
document.cookie = 'msclkid=' + msclkid + ';expires=' + date.toUTCString() + ';path=/';
}
}
// 页面加载时执行
captureMsclkid();
在表单提交时传递 MSCLKID 到 CRM
document.getElementById('inquiry-form').addEventListener('submit', function() {
// 从 cookie 读取 msclkid
var msclkid = document.cookie.replace(
/(?:(?:^|.*;\s*)msclkid\s*=\s*([^;]*).*$)|^.*$/, '$1'
);
// 注入到表单隐藏字段
if (msclkid) {
var hidden = document.createElement('input');
hidden.type = 'hidden';
hidden.name = 'msclkid';
hidden.value = msclkid;
this.appendChild(hidden);
}
});
上传离线转化数据
准备一个 CSV 文件,格式如下:
Microsoft Click ID,Conversion Name,Conversion Time,Conversion Value,Conversion Currency
abc123def456,offline_sale,2026-04-10T14:30:00+08:00,5000,USD
xyz789ghi012,offline_sale,2026-04-11T09:15:00+08:00,3200,USD
上传路径:Tools → Conversion goals → Offline conversions → Upload
做工业传感器出口的何总通过离线转化导入,第一次看到了完整的广告-询盘-成交链路。他发现”industrial pressure sensor”这个关键词虽然点击贵(CPC $8.5),但线下成单率高达 12%,单笔订单均价 $15,000。算下来,一个有效点击的广告成本不到 $71,ROI 超过 200 倍。要是没有离线转化导入,这个关键词早就因为”转化率低”被他砍掉了。
动态再营销设置:基于浏览行为的个性化广告
动态再营销能根据用户浏览过的具体商品,自动投放个性化广告。用户看过红色的蓝牙耳机,广告就展示那款红色耳机;看过 $49 的套餐,广告就推那个价位的方案。
产品页事件追踪
在商品详情页添加:
window.uetq = window.uetq || [];
window.uetq.push('event', 'view_item', {
'ecomm_prodid': 'SKU-BT-EARPHONE-RED',
'ecomm_pagetype': 'product',
'ecomm_totalvalue': 49.99,
'ecomm_category': 'bluetooth-earphones'
});
购物车页面追踪
window.uetq = window.uetq || [];
window.uetq.push('event', 'add_to_cart', {
'ecomm_prodid': ['SKU-BT-EARPHONE-RED', 'SKU-CASE-BLACK'],
'ecomm_pagetype': 'cart',
'ecomm_totalvalue': 65.98
});
购买完成追踪
window.uetq = window.uetq || [];
window.uetq.push('event', 'purchase', {
'ecomm_prodid': ['SKU-BT-EARPHONE-RED', 'SKU-CASE-BLACK'],
'ecomm_pagetype': 'purchase',
'ecomm_totalvalue': 65.98,
'transaction_id': 'ORD-20260413-002'
});
动态再营销所需的页面类型
| 页面类型 | ecomm_pagetype | 追踪事件 |
|---|---|---|
| 首页 | home | pageLoad(自动) |
| 分类页 | category | view_item_list |
| 商品详情页 | product | view_item |
| 购物车页 | cart | add_to_cart |
| 购买确认页 | purchase | purchase |
配合 Microsoft Merchant Center 的产品 Feed,系统会自动把浏览数据和产品信息匹配,生成个性化广告创意。了解更多关于必应广告账户结构的知识,能帮你更好地组织再营销广告组。
高级配置的调试与监控
高级配置比基础安装复杂,调试环节必不可少。
浏览器控制台验证
打开 F12 开发者工具,在 Console 中输入:
console.log(window.uetq);
你应该能看到一个数组,包含了所有已推送的事件。如果是空数组或 undefined,说明 UET 基础代码没有正常加载。
网络请求验证
在 F12 的 Network 面板,过滤 bat.bing.com,你应该能看到每次事件触发时都有一个请求发出。请求参数中包含了事件名称、分类、标签和数值。
[截图:Network 面板中的 UET 请求]
常见调试问题
| 问题 | 可能原因 | 解决方案 |
|---|---|---|
| 事件不触发 | 代码执行时机太早,DOM 未加载 | 用 DOMContentLoaded 包裹事件绑定 |
| 事件重复触发 | 监听器绑定了多次 | 检查是否在循环中绑定,或使用 once 选项 |
| 收入值为 0 | 变量类型是字符串 | 用 parseFloat() 转换为数字 |
| MSCLKID 丢失 | Cookie 被清除或路径限制 | 检查 cookie path 设置,考虑用 localStorage |
| 跨域问题 | iframe 中的表单 | 确保 UET 代码在主域和 iframe 域都有部署 |
如果你的必应广告质量分不理想,精准的转化数据反馈也能帮助系统更好地理解你的目标受众,间接提升质量分。
下一步:数据驱动的持续优化
UET 高级配置的最终目的不是技术炫技,而是让数据驱动每一个广告决策。当你的自定义事件、增强转化和离线归因全部跑通后,你能回答这些关键问题:
- 哪个广告创意真正带来了高质量询盘?(不是点击,是询盘)
- 哪些关键词的线下成交率最高?(不是线上转化率)
- 用户从点击到成交平均需要多少天?(归因窗口是否合理)
- 再营销受众中哪个细分群体的 ROAS 最高?
如果你正在考虑开通或升级必应广告账户,想要从一开始就搭建完整的数据追踪体系,欢迎通过我们的专业开户通道获取支持。我们不仅帮你完成开户,还会根据你的业务模式设计最适合的 UET 追踪方案。
同时推荐阅读我们的 Copilot 广告数据分析指南,了解如何利用 AI 工具更高效地分析你收集到的转化数据。
常见问题解答(FAQ)
Q1:自定义事件追踪和转化目标的关系是什么?
自定义事件是你在网站端部署的 JavaScript 代码,负责采集用户行为数据并发送给 Microsoft。转化目标是你在广告后台设置的规则,告诉系统”哪些事件算作转化”。两者是上下游关系:先有事件代码采集数据,再有转化目标定义哪些数据有意义。一个事件可以对应一个或多个转化目标。
Q2:增强转化会泄露用户隐私吗?
不会。增强转化传输的用户信息(邮箱、电话)会在浏览器端自动进行 SHA-256 哈希处理,微软收到的是不可逆的哈希值,无法还原为原始信息。微软仅用这些哈希值进行匿名匹配,不会用于其他用途。但你仍需在隐私政策中告知用户数据使用方式。
Q3:离线转化数据上传的时效要求是什么?
Microsoft Ads 要求离线转化数据在点击发生后 90 天内上传。建议每周上传一次,保持数据新鲜度。上传后通常 6-24 小时内数据会反映在后台报表中。注意:转化时间必须晚于点击时间,且 MSCLKID 必须准确匹配。
Q4:动态再营销需要多少流量才值得做?
微软建议网站月访客至少达到 1,000 以上再启用动态再营销。受众列表至少需要 300 个用户才能开始投放。如果你的流量暂时不够,可以先做标准再营销(基于页面访问而非具体商品),等流量积累到位再升级为动态再营销。
Q5:可以同时追踪多种货币的收入吗?
可以。UET 的 currency 字段支持所有 ISO 4217 货币代码(USD、EUR、GBP、CNY 等)。Microsoft Ads 会按照当天汇率自动换算为你的账户货币。如果你的独立站同时面向美国和欧洲市场,只需在转化代码中传入对应的货币代码即可,无需任何额外配置。