Skip to main content

Formatting Identifiers

Follow the guidelines listed below when formatting identifiers (whether known or pseudonymous identifiers).

For a list of identifiers that can be hashed, see "Hashing Identifiers."

Note

Known identifiers and PII identifiers are sometimes referred to as "offline identifiers." Pseudonymous identifiers and device identifiers are sometimes referred to as "online identifiers." See "Identifier Data" for more information.

Warning

Do not combine known identifiers and pseudonymous identifiers in a single file.

When Formatting File Data, you may include as many plaintext postal addresses per individual as you know, but if you have multiple addresses for the same person, place each on a separate row along with the same "first name" and "last name" info (but segment data values do not need to be duplicated/included on those additional rows).

Note

Because postal addresses are comprised of multiple fields, including only one per row ensures there are no accidental mismatches of elements from the different address fields. If you need to include multiple addresses per row, contact your LiveRamp representative for details.

Each of the elements listed below is required for name and postal address identifiers, and each element must be in a separate column:

Caution

Make sure to separate names into first and last name fields. Do not include middle name(s) or initials.

Element

Header(s)

Notes

First name

FIRSTNAME

Last name

LASTNAME

Street address

ADDRESS1

ADDRESS2 (optional)

A single full address field should not contain a newline character. This tends to occur when you generate the data in a spreadsheet application like Excel and place two lines inside one cell.

City

CITY

State

STATE

ZIP code

ZIP

You can include either 5-digit or 9-digit (ZIP+4) values. If sending 9-digit values, do not include hyphens. Note: Matching using only ZIP+4 is available for certain use cases. Contact your LiveRamp representative for details.

Caution

LiveRamp cannot accept hashed name and postal address data. Unfortunately, there is too much variation in casing and whitespace to do this reliably.

LiveRamp accepts plaintext and SHA-1 hashed phone numbers (see "Hashing Phone Numbers" below for more information).

Caution

EU data files cannot contain hashed phone numbers. Email addresses are the only identifiers that can be hashed in EU data files.

You may include as many phone numbers per individual as you know. Place all phone numbers for the same person in the same row, with each phone number in its own distinctly-labeled column. This minimizes file size and ensures there are not conflicting segment values tied to the same identifier.

Note

If including multiple phone numbers, be sure to use unique field names (for example, "HOME_PHONE" and "MOBILE_PHONE").

Use one of the allowed formats listed below:

  • +1XXXXXXXXXX

  • +1 (XXX) XXX-XXXX

  • (XXX) XXX-XXXX

  • XXX-XXX-XXXX

  • XXX XXX XXXX

  • XXXXXXXXXX (this format must be used if hashing)

LiveRamp accepts SHA-1 hashed phone numbers. Remove all country extensions, parentheses, and hyphens and then perform UTF-8 encoding on the string before hashing.

For example, if the input phone number is "+1 (555) 123-4567", convert that to "5551234567" before hashing.

Warning

EU data files cannot contain hashed phone numbers.

LiveRamp accepts plaintext and SHA-256, MD5, or SHA-1 hashed email addresses (see "Hashing Email Addresses" below for more information on performing hashes).

Note

Want the highest match rates? Your match rates might be slightly lower with hashed email addresses than with plaintext emails. To maximize the match rates for hashed email addresses, send all three hash types, each in a separate column.

You may include as many email addresses per individual as you know. Place all email addresses for the same person in the same row, with each email address in its own distinctly-labeled column. This minimizes file size and ensures there are not conflicting segment values tied to the same identifier.

Note

Make field names unique: If including multiple email addresses, be sure to use unique field names (such as "EMAIL1", "EMAIL2", etc.).

LiveRamp accepts SHA-256, MD5, or SHA-1 hashed email addresses.

Convert all characters to lowercase, remove all whitespace, and perform UTF-8 encoding on the string before hashing. For example, the plaintext email address "MyName@liveramp.com " must be changed to "myname@liveramp.com" before hashing.

Caution

Make sure to check that your hashing algorithm produces the results for email address hashing produced in the “Hashing Examples” section of this document. Hashing algorithms that put a “0x” at the beginning of the hash string will result in the file upload failing.

Note

Your match rates may be slightly lower with hashed email addresses than with plaintext emails. To maximize the match rates for hashed email addresses, send all three hash types, each in a separate column.

MD5 Hashing in Python

The following code snippet shows an example of how to perform an MD5 hash of an email address in Python.

# Import hashing library
import hashlib
# The input email has capital letters and a space at the end.
input_email = "IMeyers@liveramp.com "
# The input email address is downcased and ALL whitespace (not only spaces) is removed.
hashed_email = hashlib.md5(''.join(input_email.lower().split())).hexdigest()

SHA-1 Hashing in Ruby

The following code snippet shows an example of how to perform a SHA-1 hash of an email address in Ruby.

# Load the Digest module
require 'digest'

email_to_hash = 'liveramp@example.com'

# Get the hex-encoded hash value (a.k.a. digest value) of the email address
# after stripping leading and trailing white space and replacing all uppercase
# letters with their lowercase counterparts.
Digest::SHA1.hexdigest(email_to_hash.strip.downcase)
#=> "91ac4ee2ca1782581f12d865a6779eb179f8b22a"

SHA-1 Hashing in Python

The following code snippet shows an example of how to perform an SHA-1 hash on a phone number in Python.

import hashlib

# A phone number in the correct format
input_phone = "4159870604"

# SHA-1 hash the phone number
hashed_phone = hashlib.sha1(input_phone).hexdigest()

Other Hashing Examples

There are JavaScript libraries available that can perform SHA-1 hashes—for example, this one from Google.

When formatting file data before uploading files, do not modify (e.g., by changing casing) cookie values.

LiveRamp accepts the following plaintext or SHA-1 hashed mobile device IDs (see "Hashing Mobile Device IDs" below for more information):

  • Identifier for Advertisers (also known as IDFA) (Apple/iOS devices).

  • Android Advertising ID (also known as AAID) (Android devices).

Plaintext mobile device IDs should be downcased and hyphenated. For example: 1f4d256c-1f08-41f6-a108-bbe511de9497.

Plaintext AAIDs ( Android device IDs) and IDFAs ( iOS device IDs) can be included together in the same file. LiveRamp can match off of both IDs at the same time as long as they are in plaintext. All IDs should be in a single mobile device ID column, regardless of whether the ID is an AAID or an IDFA.

Caution

Have both types? Hashed AAID IDs and hashed IDFA IDs cannot be accepted in the same file. To send both types of hashed mobile device IDs, put them in separate files.

LiveRamp accepts SHA-1 hashed mobile device IDs.

Before hashing:

  • AAIDs must be downcased and hyphenated

  • IDFAs must be upcased and hyphenated

  • Perform UTF-8 encoding on the string

Caution

Hashed AAID IDs and hashed IDFA IDs cannot be accepted in the same file. To send both types of hashed mobile device IDs, put them in separate files.

When formatting file data before uploading files, do not modify (e.g., by changing casing) custom ID (CID) values.

When formatting file data before uploading files, do not modify RampID values. For example, do not change the case of alphabetical characters.