mirror of
https://github.com/ksyasuda/dotfiles.git
synced 2026-03-22 06:11:27 -07:00
82 lines
2.0 KiB
Markdown
82 lines
2.0 KiB
Markdown
# Zaraz Gotchas
|
|
|
|
## Events Not Firing
|
|
|
|
**Check:**
|
|
1. Tool enabled in dashboard (green dot)
|
|
2. Trigger conditions met
|
|
3. Consent granted for tool's purpose
|
|
4. Tool credentials correct (GA4: `G-XXXXXXXXXX`, FB: numeric only)
|
|
|
|
**Debug:**
|
|
```javascript
|
|
zaraz.debug = true;
|
|
console.log('Tools:', zaraz.tools);
|
|
console.log('Consent:', zaraz.consent.getAll());
|
|
```
|
|
|
|
## Consent Issues
|
|
|
|
**Modal not showing:**
|
|
```javascript
|
|
// Clear consent cookie
|
|
document.cookie = 'zaraz-consent=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;';
|
|
location.reload();
|
|
```
|
|
|
|
**Tools firing before consent:** Map tool to consent purpose with "Do not load until consent granted".
|
|
|
|
## SPA Tracking
|
|
|
|
**Route changes not tracked:**
|
|
1. Configure History Change trigger in dashboard
|
|
2. Hash routing (`#/path`) requires manual tracking:
|
|
```javascript
|
|
window.addEventListener('hashchange', () => {
|
|
zaraz.track('pageview', { page_path: location.pathname + location.hash });
|
|
});
|
|
```
|
|
|
|
**React fix:**
|
|
```javascript
|
|
const location = useLocation();
|
|
useEffect(() => {
|
|
zaraz.track('pageview', { page_path: location.pathname });
|
|
}, [location]); // Include dependency
|
|
```
|
|
|
|
## Performance
|
|
|
|
**Slow page load:**
|
|
- Audit tool count (50+ degrades performance)
|
|
- Disable blocking triggers unless required
|
|
- Reduce event payload size (<100KB)
|
|
|
|
## Tool-Specific Issues
|
|
|
|
| Tool | Issue | Fix |
|
|
|------|-------|-----|
|
|
| GA4 | Events not in real-time | Wait 5-10 min, use DebugView |
|
|
| Facebook | Invalid Pixel ID | Use numeric only (no `fbpx_` prefix) |
|
|
| Google Ads | Conversions not attributed | Include `send_to: 'AW-XXX/LABEL'` |
|
|
|
|
## Data Layer
|
|
|
|
- Properties persist per page only - set on each page load
|
|
- Nested access: `{{client.__zarazTrack.user.plan}}`
|
|
|
|
## Limits
|
|
|
|
| Resource | Limit |
|
|
|----------|-------|
|
|
| Request size | 100KB |
|
|
| Consent purposes | 20 |
|
|
| API rate | 1000 req/sec |
|
|
|
|
## When NOT to Use Zaraz
|
|
|
|
- Server-to-server tracking (use Workers)
|
|
- Real-time bidirectional communication
|
|
- Binary data transmission
|
|
- Authentication flows
|