Attribution Rules
System rules are locked and always run first. Your database rules run after and can be reordered.
System Rules (Locked)
| # | Rule | Badges | |
|---|---|---|---|
1 | Unknown or unrecognized platform (unk) ID: sys_unknown_platform | action: quarantine | |
2 | Landing URL missing platform click id ID: sys_missing_click_id | action: quarantine | |
3 | Landing URL missing attribution app params (Wicked / Hyros / TripleWhale) ID: sys_missing_attrib_app_params | action: quarantine | |
4 | Event missing ad_id ID: sys_missing_ad_id | action: quarantine | |
5 | Event missing UTM parameters ID: sys_missing_utms | action: quarantine | |
6 | Unrecognised source (cannot infer platform) ID: sys_unrecognised_source | action: quarantine | |
7 | Suspicious URL (dev/sandbox) ID: sys_suspicious_url | action: quarantine | |
8 | Email campaign (auto-release, exclude from MPIs) ID: sys_email_campaign | action: auto-releaseexclude from MPIs | |
9 | Google Shopping (srsltid) - auto-release + patch UTMs ID: sys_google_shopping_srsltid | action: auto-releaseexclude from MPIs | |
10 | Google PMAX & Demand Gen (auto-release + set ad_id=01) ID: sys_google_pmax_auto_release | action: auto-release |
Database Rules (Backend)
Loading rules from backend...
Creating Custom Rules
To create custom rules, you can:
- Use the pattern detection feature in the quarantine page (will auto-generate rules)
- Create rules via the backend API: POST `/api/v1/rules/` with JSONB condition/action
- Rules created will automatically apply to new events during ingestion
Example: POST /api/v1/rules/ {"name": "Auto-patch missing ad_id for campaign X", "rule_type": "enrichment", "condition": {"and": [{"field": "spore.campaign.id", "operator": "==", "value": "12345"},{"field": "spore.ad_id", "operator": "not_exists"}]}, "action": {"patch": {"spore": {"ad_id": "00"}}}, "priority": 100}