Identifier Types

How to encode IDs for storage and matching with Optable DCNs

What are Identifiers?

An identifier (or "ID") is a value that can be used to identify a device, network, person, or household. For example, an Email address can be encoded as an identifier, and so can an IP address, a phone number, etc.

An ID has a type which is specified by a special prefix, prepended to its encoded value. Each type of ID must be encoded according to the rules specified in the ID Encodings section below.

ID Graphs

IDs can be linked together to indicate that they belong to the same person or household. An identity (ID) graph is a collection of linked IDs, and it can be constructed from a company's private data. Typically, a company's private identity graph will contain many clusters of linked IDs, with each cluster representing a person or household.

An ID graph enables your Optable DCN to perform automatic identity resolution. Identity resolution consists of resolving a specified identifier to a list of neighbouring identifiers associated with the same person.

ID Matchability

An ID type can be either matchable or local. A matchable ID can be used to establish a record match between partners, whereas a local ID is only meaningful within the private database of a company.

For example, an Email address or phone number are considered to be matchable IDs since they are expected to have the same value for a given individual person between organizations, whereas a PPID is considered to be local, because the same PPID value across publishers is not necessarily identifying the same person.

ID Encodings

Matchable ID Types

The Optable DCN knows about the following types of matchable IDs, and expects each ID type's value to be encoded as specified:

Type
Expected Encoding

Email address

SHA256 hash of down-cased and space-trimmed address

Phone number

Postal code

Down-cased alphanumeric value, special characters removed. Maximum 10 characters.

IPv4 address

Four period (.) separated octets, each of which contains a number from 0 to 255

IPv6 address

Eight colon (:) separated segments, each of which contains 4 hexadecimal digits, down-cased

Down-cased alphanumeric value, including dashes if any

Down-cased alphanumeric value, including dashes if any

Down-cased alphanumeric value, including dashes if any

Down-cased alphanumeric value, including dashes if any

Down-cased alphanumeric value, including dashes if any

Base64 web-safe encoded value with 70 characters (TPID)

Down-cased alphanumeric value, prefixed by "ID5-"

Down-cased alphanumeric value, including dashes if any

Custom ID Types

You can configure up to 10 custom ID types. A custom ID can be any local ID which is not used for matching with partners, but is linked with other matchable IDs.

When you are on the receiving end of an audience match, once your incoming audience is materialized it will include any custom IDs that are linked to the latest version's matched IDs.

Examples of custom IDs are PPID, CRM_ID, userID, ProprietaryDeviceID, etc. Since these are internal identifiers, the encoding is up to you.

Note that the value of a custom ID is case-sensitive, so two values differing only in case will be considered to be different identifiers.

The maximum length of a custom ID value is 128 characters, and the minimum length is 1 character, following the c: prefix.

Optable VID

If you use the SDKs to load data, your DCN will automatically assign IDs to browsers and devices seen on each of your sites and apps. The assigned ID is called the VID and it is designed to track visitors to your sites and apps. It is considered to be a local (and therefore not matchable) identifier.

Note that the uniqueness scope of the visitor ID is the individual site or the app. The same browser or device appearing on two of your sites or apps will have different visitor ID values on each. You can link visitors to other IDs using the SDK identify API.

ID5

ID5 is an identifier used across the advertising ecosystem to recognize users in a privacy-compliant way. It offers an alternative to traditional user tracking methods that relied on third-party cookies.

When loading ID5s via a batch source such as BigQuery or File Uploads, ensure that the ID5s are already decrypted and are prefixed with id5: or the column header set to id_id5 for tabular data formats.

When using the Optable Web SDK, in conjunction with the ID5 JS SDK, your DCN can automatically collect ID5s and detect whether they are encrypted or decrypted. If the ID is encrypted, Optable can then facilitate their decryption, contact your CSM to enable this feature.

Automatic decryption of encrypted ID5s requires to be enabled manually, please contact your Optable CSM or support directly to submit your request. You will be required to provide your ID5 partner ID to enable this feature.

Utiq

Utiq is a privacy-led digital identity solution developed by a consortium of European telecommunication operators. It provides an alternative to third-party cookies for targeted advertising, while prioritizing user consent and control over personal data.

When loading Utiq IDs from batch sources, ensure they are in their raw, unencrypted format. If your data format is tabular (e.g., CSV), the column header for Utiq IDs should be labeled as id_utiq.

Utiq IDs are not typically encrypted. However, if you are working with encrypted Utiq IDs, please contact your Optable CSM or support for guidance.

Postal Codes

Postal codes serve as unique identifiers for geographic areas. These identifiers must be alphanumeric and a maximum 10 characters. US ZIP, ZIP+4, Canadian, UK and other international postal code formats are supported. For enhanced matchability, postal codes are automatically downcased and all special characters are removed.

When loading postal codes from multiple countries, it is recommended to include an additional trait for the country code, such as trait_countrycode, to segment postal codes based on their country of origin. Utilize this trait to target specific countries when building audiences.

When associating data specifically with a postal code area, id_z should be used as the primary ID. All related data points, such as average income or average age, are to be loaded as traits linked to this ID.

id_z
trait_averageincome
trait_averageage

12345

100k

45

To attach individual 'person' identities to postal codes when loading other ID types such as Emails, Mobile IDs, IPv4s, or other Custom ID types supported by Optable, these should be loaded separately. Load the specific ID type first (e.g., an email is id_e), then the postal code as a neighboring identifier (id_z), followed by person level relevant traits.

id_e
id_z
trait_income
trait_subscriber

email

12345

45k

true

Currently, postal codes can be used within Optable for audience building, matching in clean room operations, but they are not available for activation purposes. If specific activation use cases are required, contact you Customer Success Manager for further guidance.

Type Prefixes

When loading IDs into an Optable DCN, you must prepend its encoded value with the appropriate ID type prefix:

Type
Prefix

Email Address

e:

Phone Number

p:

Postal Code

z:

IPv4 Address

i4:

IPv6 Address

i6:

Apple IDFA

a:

Google GAID

g:

Roku RIDA

r:

Samsung TV TIFA

s:

Amazon Fire AFAI

f:

NetID

n:

ID5

id5:

Utiq

utiq:

Custom IDs

c: c1: c2: c3: c4: c5: c6: c7: c8: c9: ...

Optable VID

v:

Examples

Some examples of various types of IDs are shown below.

Email Address

The following Email addresses:

example@example.com
eXample2@example.com
Example3@example.com

Would be normalized and encoded as follows:

e:31c5543c1734d25c7206f5fd591525d0295bec6fe84ff82f946a34fe970a1e66
e:274e44d98f150bdaff591268419d09f488c22a617e34e15434e5ac1f8db3b216
e:6cfb3c87ab6570473e2931f440cf33b1b0335355911be42c876bf187cb8b75d8

Phone Number

The following phone numbers:

1 (514) 555-1234
+1514-555-1234
1-514 5551234
+1 514 555 1beg
33 555 456789
+216 30 010 123
+44 (121) 234-5678
(81) 31 234-5678

When formatted according to E.164 look like:

+15145551234
+15145551234
+15145551234
+15145551234
+33555456789
+21630010123
+441212345678
+81312345678

After SHA256 hashing and prefixing, the resulting list looks like:

p:cae639ccf68d6b1a47262a84194b5d0a1e184c738aa558a4f012b59a1b5f9947
p:cae639ccf68d6b1a47262a84194b5d0a1e184c738aa558a4f012b59a1b5f9947
p:cae639ccf68d6b1a47262a84194b5d0a1e184c738aa558a4f012b59a1b5f9947
p:cae639ccf68d6b1a47262a84194b5d0a1e184c738aa558a4f012b59a1b5f9947
p:ebad3b64ae96005048fca1af2f15e5251ad3844d00fb80252711de9b651c8e46
p:6d82245796735fa5c3ff5e6095eadc8f8ae81d98eb7f1609a2b1ef141f95a460
p:9d662385445e740ad2e7d79c3b2963590132da11e94db6dbd7a9ae4f16138730
p:7d7350df0a907cf9cf79b40e32af0a5cc71886126b86babd1f2ccedd25d336c6

Postal/Zip Codes

The following postal/zip codes:

M5V 3L9
T2P 5H1
90210
10001
94105-1804
SW1A 1AA
EH1 1BB

Would be normalized as follows:

m5v3l9
t2p5h1
90210
10001
941051804
sw1a1aa
eh11bb

ID5 IDs

The following is an example of an encrypted ID5, which are prefixed by ID5*:

id5:ID5*UDWnp3JOtWV0ky-bHvEeU4xOVHXCmYeg24YigF8iAymUHplfYSElM3fy79h8p-Fg

Which will be decrypted into the following format:

id5:ID5-87543Gkwn9ByRvQp284zC5EzG5LSbFTGzhLARNuCguA

Utiq IDs

The following is an example of aa Utiq ID.

utiq:496f5db5-681f-4392-acd5-0d4f6e2f6b88
utiq:8ea990eb-c3b1-4093-854c-ec022feed54f
utiq:1403ef42-8513-402f-826e-40863aa287c1

IPv4 Address

i4:8.8.8.8
i4:1.1.1.1
i4:192.168.3.12

IPv6 Address

i6:2001:0db8:85a3:0000:0000:8a2e:0370:7334
i6:2001:0db8:3333:4444:5555:6666:7777:8888
i6:2001:0db8:3333:4444:cccc:dddd:eeee:ffff

Apple IDFA

a:496f5db5-681f-4392-acd5-0d4f6e2f6b88
a:8ea990eb-c3b1-4093-854c-ec022feed54f
a:1403ef42-8513-402f-826e-40863aa287c1

Google GAID

g:64873d9f-d5af-4770-8bcb-167a220eb17d
g:c1b8d576-fde5-40d1-93ee-1d15962537a7
g:16bd9620-08c7-484b-9b64-070ad0c91470

Roku RIDA

r:0b179df0-6cd5-49f1-be21-425d002e0d22
r:8a57d24e-8efb-4276-8f79-22edae3af307
r:60859cb0-ce37-4107-8637-ab550f0cf5c8

Samsung TIFA

s:e0ef86a8-6ebf-4c9d-9127-e69407fe748d
s:c67251e6-4cc7-41bf-8042-058aeaf6e086
s:a701eb06-9b14-489c-a097-de6c3ab596d1

Amazon AFAI

f:6e853799-ef31-4a30-8706-9742be254d38
f:f839fb60-51b4-49d1-a870-808032c995d3
f:487a6fbb-87bc-491f-a663-fd0c1e8ea03b

NetID

n:_YV2v2Uhx3vqeH47Rrhzgr-4c3VNsxis4M1WY9qn--QTbVapax5VM2HJykoGAyWcwS5lKQ
n:3g---iNqaaXav5Wzp8m9h7mg68ChHKV9IDjaMgpTRKFkLSKN4SM3hMTvsviB1riileyz0A

Custom ID

Here are a couple of examples of custom ID types (c: and c1:) local to the DCN:

c:d29c551097b9dd0b82423827f65161232efaf7fc
c1:AaaZza.dh012
c1:Bc22a4.cafff
c:44a091b1c0f75a84b1822165589cc82b99dfe289

Last updated