Skip to main content

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:

  1. Lowercase the address: Convert the email to lowercase. 
  2. Remove the email alias: Strip everything between the first +  to the end of the username (before the @).
  3. Remove special characters: Remove all non-alphanumeric characters from the username.
  4. 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
  1. Al.ice$+Apple@Example.Com  becomes al.ice$+apple@example.com
  2. al.ice$+apple@example.com becomes al.ice+$@example.com
  3. al.ice+$@example.com becomes alice@example.com
  4. alice@example.com becomes ff8d9819fc0e12bf0d24892e45987e249a28dce836a85cad60e28eaaa8c6d976

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 becomes 15554441234)
  • ensure it starts with + (15554441234 becomes +15554441234)

Mobile Advertising ID (MAID)

A user's unique mobile advertising ID.

MAIDDescriptionExample
AAIDA unique identifier associated with individual devices running the Android operating system.38400000-8cf0-11bd-b23e-10b96e40000d
IDFAA 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 to 70574fa9c8f498a7b2e5c8712b1126de7b1406fd02fdc591821c5bd33092fd1c
  • an AAID of cdda802e-fb9c-47ad-9866-0794d394c912 can be hashed to f23b554b2a8fb732a8b973733832e70f018da7bc294dfea289735a07d5dd2c9f

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

We're here to help

Our Reddit Ads team is ready to support you from setup to success.

Snoo Punch Up