[ PROMPT_NODE_24522 ]
Zaraz 常见陷阱
[ SKILL_DOCUMENTATION ]
# Zaraz 常见问题与陷阱
## 事件未触发
**检查:**
1. 仪表板中已启用工具(绿点)
2. 触发条件已满足
3. 已授予工具目的的许可
4. 工具凭据正确(GA4: `G-XXXXXXXXXX`, FB: 仅限数字)
**调试:**
javascript
zaraz.debug = true;
console.log('Tools:', zaraz.tools);
console.log('Consent:', zaraz.consent.getAll());
## 许可问题
**模态框未显示:**
javascript
// 清除许可 cookie
document.cookie = 'zaraz-consent=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;';
location.reload();
**工具在许可前触发:** 将工具映射到许可目的,并设置为“在获得许可前不要加载”。
## SPA 跟踪
**路由更改未跟踪:**
1. 在仪表板中配置“历史记录更改”触发器
2. 哈希路由 (`#/path`) 需要手动跟踪:
javascript
window.addEventListener('hashchange', () => {
zaraz.track('pageview', { page_path: location.pathname + location.hash });
});
**React 修复:**
javascript
const location = useLocation();
useEffect(() => {
zaraz.track('pageview', { page_path: location.pathname });
}, [location]); // 包含依赖项
## 性能
**页面加载缓慢:**
- 审计工具数量(50+ 会降低性能)
- 除非必要,否则禁用阻塞触发器
- 减小事件负载大小 (<100KB)
## 特定工具问题
| 工具 | 问题 | 修复 |
|------|-------|-----|
| GA4 | 事件非实时 | 等待 5-10 分钟,使用 DebugView |
| Facebook | 无效的 Pixel ID | 仅使用数字(无 `fbpx_` 前缀) |
| Google Ads | 转化未归因 | 包含 `send_to: 'AW-XXX/LABEL'` |
## 数据层
- 属性仅在页面内持久存在 - 在每次页面加载时设置
- 嵌套访问: `{{client.__zarazTrack.user.plan}}`
## 限制
| 资源 | 限制 |
|----------|-------|
| 请求大小 | 100KB |
| 许可目的 | 20 |
| API 速率 | 1000 请求/秒 |
## 何时不要使用 Zaraz
- 服务器到服务器跟踪(使用 Workers)
- 实时双向通信
- 二进制数据传输
- 身份验证流程