每個百度統計帳號下的網站擁有唯一 **站點特徵碼** (如 hm.js?09***a2 中的雜湊值),是識別統計代碼是否正確載入的關鍵指紋。
hm.src = "//hm.baidu.com/hm.js?XXXXXXXX" 的 XXXXXXXX 部分 (或完整 hm.js?XXXXXXXX)。注意:Firebug 已於 2017 年停止開發,Firefox 57+ (Quantum) 不再支援傳統 XUL 擴充功能。現代驗證請使用 **Firefox 開發者工具 (內建)** 或 **Chrome DevTools**,操作邏輯完全相同。
09***a2 或 hm.js)。在 Console (主控台) 輸入:
_hmt
應顯示陣列結構,包含 ['_setAccount', 'XXXXXXXX'] 等指令,確認追蹤代碼邏輯已執行。
| 錯誤現象 | 原因 | 修正 |
|---|---|---|
| Network 無 hm.js 請求 | 代碼未放入頁面 / 放在 </html> 之後 / 被模板邏輯略過 | 將代碼置於 </head> 前或 </body> 前 |
| hm.js 載入 404 | 站點特徵碼錯誤 / 帳號被刪除 | 重新獲取代碼、確認帳號狀態 |
| hm.js 被 AdBlock 攔截 | 易隱私清單規則誤判 | 測試時關閉攔截器;正式環境無法控制用戶端,接受極小比例漏統 |
| 單頁應用 (SPA) PV 重複/遺漏 | 路由切換未觸發 _hmt.push(['_trackPageview']) | 在路由守衛/元件掛鉤中手動推送虛擬頁面追蹤 |
| HTTPS 網站載入 HTTP hm.js | 代碼未使用協定相對 URL | 確保代碼為 //hm.baidu.com/hm.js?xxx (雙斜線開頭),自動適配 HTTP/HTTPS |
_hmt.push(['_setDomainname', 'example.com']) 實現跨子域名追蹤。const puppeteer = require('puppeteer');
const SITE_ID = '09***a2';
(async () => {
const browser = await puppeteer.launch();
const page = await browser.newPage();
let found = false;
page.on('response', res => {
if (res.url().includes(`hm.js?${SITE_ID}`) && res.status() === 200) found = true;
});
await page.goto('https://your-site.com', {waitUntil: 'networkidle2'});
console.log(found ? '✅ 百度統計代碼載入正常' : '❌ 未偵測到統計代碼');
await browser.close();
})();
將驗證納入 CI/CD 流程,每次部署自動檢查統計代碼完整性,杜絕「上線忘裝統計」的低級錯誤。