Snapchat Conversion Events: Fields, Types, and Hashing Rules
Snapchat conversion events pass a single gate before anything else is read: at least one match parameter must be present, or Snap rejects the request. Past that gate, the payload is a well-documented field map - identifiers in user_data, a fixed event type enum, a click identifier from the landing URL, and deduplication fields - all specified in Snap's parameter reference with normalization examples.
The Match Key Set
| Parameter | Requirement | Notes |
|---|---|---|
em / ph (hashed email / phone) | Mandatory set (any one) | Normalized, then SHA-256 |
| client_ip_address + user_agent | Mandatory set (the pair counts as one key) | IP from the device, not the server; both unhashed; IPv4 and IPv6 |
| madid (mobile advertising ID) | Mandatory set (app advertisers) | Normalized lowercase; not hashed |
| external_id | Hashing recommended | Loyalty IDs, first-party cookie IDs |
| sc_click_id | Recommended | The value from the landing URL's &ScCid= parameter, unhashed |
| sc_cookie1 | Highly recommended | The _scid first-party cookie value from the Pixel SDK |
Snap's reference documents the normalization pipeline per field with worked examples: email lowercased and trimmed, phone reduced to digits with country code, names lowercased without punctuation - then SHA-256 as a 64-character lowercase hex string. A value hashed without normalization does not error; it matches nobody. The cross-platform canonicalization map is in CAPI user data hashing and normalization.
Event Types and custom_data
Event types are a fixed enum - purchase, start_checkout, add_cart, sign_up, subscribe, page_view, search, and the documented set - plus CUSTOM_EVENT_1 through CUSTOM_EVENT_5 for anything outside it. The custom_data object carries the commerce fields: content_category, content_ids, content_name, content_type, and contents for item-level reporting that also feeds Dynamic Ads. The event_tag parameter adds a free-form label for building custom event sets.
The Clock and the Dedup Key
Snap accepts second- or millisecond-level epochs and encourages milliseconds, with event timestamps valid up to 37 days in the past - the most forgiving window among major platforms. Deduplication rides client_dedup_id, identical across pixel, App Ads Kit, and API, honored within 48 hours of first occurrence; transaction_id covers order-level identity. A payload template that covers these fields end to end is exactly what the complete guide sketches for Pinterest and Snapchat Conversions API setup walks for Snap - including how the click ID reaches sc_click_id from a tracked funnel.
Frequently asked questions
Sources
Sources
- Manual testing and validation: Pixel Activator fires free test events while you tune parameters.
- Automated delivery: Most routes conversions from your tracker or CRM continuously, with deduplication and retries handled.
