96h|
No heartbeat

Attribution Rules

System rules are locked and always run first. Your database rules run after and can be reordered.

System Rules (Locked)

#RuleBadges
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}