Manual Advanced Matching
You can gain more accurate conversions by passing one or more customer match keys with every conversion event. Passing these signals is optional but highly recommended, especially email.
Match keys are set during initialization. If you don't have all the parameters you need initially, that's okay. You can add them later by making another request. Any user actions that occur after this additional request will still be shared using the new parameters.
Manual advanced matching can be shared unhashed or pre-hashed for the Reddit Pixel and Conversions API (CAPI). If you'd like to hash signals, we recommend using SHA-256 and following the guidance below.
Email addresses
A user's unique email account. We strongly recommend passing it to help trace cross-platform conversions and strengthen attribution.
Example: example@email.com
Hashing email addresses
You can choose to hash and normalize email addresses by using redditNormalizeEmail
. These emails must be formatted like example@email.com
. Other formats, like ’First Last’ <example@email.com>
, won’t be accepted. Invalid addresses will be silently ignored.
The email address must be canonicalized before hashing:
- Lowercase the address: Convert the email to lowercase.
- Remove the email alias: Strip everything between the first
+
to the end of the username (before the@
). - Remove special characters: Remove all non-alphanumeric characters from the username.
- Hash using SHA-256: Hash the canonicalized email using SHA-256. Return the result as a lowercase hex string (64 characters).
For example, alice@example.com
and Al.ice$+Apple@Example.Com
should both hash to ff8d9819fc0e12bf0d24892e45987e249a28dce836a85cad60e28eaaa8c6d976
.
Example: Al.ice$+Apple@Example.Com
Al.ice$+Apple@Example.Com
becomesal.ice$+apple@example.com
al.ice$+apple@example.com
becomesal.ice+$@example.com
al.ice+$@example.com
becomesalice@example.com
alice@example.com
becomesff8d9819fc0e12bf0d24892e45987e249a28dce836a85cad60e28eaaa8c6d976
If you've added Reddit Pixel to your website, you can use this helper method to normalize for you:
const normalizedEmail = redditNormalizeEmail('al.ice+apple@example.com');
Phone numbers
A user's phone number in E.164 format.
Example: +15554441234
Hashing phone numbers
Phone numbers should be formatted like +15554441234
. Other formats, like +1 (555) 444-1234
, aren't valid and will be ignored.
The phone number must be canonicalized before hashing:
- must contain the country and area code
- remove the extension
- remove all non-numeric characters, including spaces, symbols, and letters
- the number should start with
+
- SHA-256 should be used to hash the identifier, and 64 lowercase hex digits should be given
For example, +15554441234
and +1 (555) 444-1234
should both hash to e5b124c58580eb16bd959b8d0cac12b12c952e2ceae0203d416cff94f10b994a
.
Here's a breakdown for the example of +1 (555) 444-1234 ext. 789
:
- remove the extension (
+1 (555) 444-1234 ext. 789
becomes+1 (555) 444-1234
) - remove non-numeric characters (
+1 (555) 444-1234
becomes15554441234
) - ensure it starts with
+
(15554441234
becomes+15554441234
)
Mobile Advertising ID (MAID)
A user's unique mobile advertising ID.
MAID | Description | Example |
---|---|---|
AAID | A unique identifier associated with individual devices running the Android operating system. | 38400000-8cf0-11bd-b23e-10b96e40000d |
IDFA | A unique identifier associated with individual devices running Apple's iOS operating system. | 8A2E4F6D-0852-4B2A-B9D5-79334DE14B16 |
Hashing MAIDs
When passing an IDFA or AAID directly, it should follow the standard format. Zeroed-out IDs (like 00000000-0000-0000-0000-000000000000
) can be passed, but they will be silently ignored.
If you choose to pre-hash the identifier, it should follow a canonical format:
- an IDFA should be uppercase hex digits
- an AAID should be lowercase hex digits
- the dashes should be included
- SHA-256 should be used to hash the identifier and 64 lowercase hex digits should be given
For example:
- an IDFA of
EA7583CD-A667-48BC-B806-42ECB2B48606
can be hashed to70574fa9c8f498a7b2e5c8712b1126de7b1406fd02fdc591821c5bd33092fd1c
- an AAID of
cdda802e-fb9c-47ad-9866-0794d394c912
can be hashed tof23b554b2a8fb732a8b973733832e70f018da7bc294dfea289735a07d5dd2c9f
External ID
An advertiser-assigned custom identifier. We recommend passing an external ID with its corresponding click ID whenever possible.
Example (unhashed): customer12345
Example (hashed): a4cc2fc5adf58a029291c1514d273989113a1d05e1d753c1d0c3a848af7109cc