-
Notifications
You must be signed in to change notification settings - Fork 50
UID2-6592: Document UID2 token validator in integration guides #1001
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Changes from all commits
608693b
993d585
77911b2
1a2d224
874040d
063d814
5d4c139
4c29e90
7038637
a708b07
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change | ||||
|---|---|---|---|---|---|---|
| @@ -0,0 +1,81 @@ | ||||||
| --- | ||||||
| title: UID2 Token Validator | ||||||
| description: How to use the UID2 Token Validator to validate UID2 tokens against source DII and confirm that your token generation workflow is correct. | ||||||
| hide_table_of_contents: false | ||||||
| sidebar_position: 02 | ||||||
| displayed_sidebar: docs | ||||||
| --- | ||||||
|
|
||||||
| import Link from '@docusaurus/Link'; | ||||||
|
|
||||||
| # UID2 Token Validator | ||||||
|
|
||||||
| The [UID2 Token Validator](https://token-validator.uidapi.com/) is a web-based tool that validates <Link href="../ref-info/glossary-uid#gl-uid2-token">UID2 tokens</Link> against their source <Link href="../ref-info/glossary-uid#gl-dii">directly identifying information (DII)</Link> to confirm that your token generation process is correct. | ||||||
|
|
||||||
| ## Overview | ||||||
|
|
||||||
| Publishers who generate UID2 tokens by providing DII sometimes receive tokens that appear valid but are unusable in the UID2 ecosystem. This happens when the normalization or hashing steps are not performed correctly. Because UID2 uses the normalized and hashed form of DII to derive the token, an error in either step produces a <Link href="../ref-info/glossary-uid#gl-raw-uid2">Raw UID2</Link> that is unique to that publisher. This mismatched Raw UID2 will not correspond to the one used by other participants for the same DII, meaning the publisher's tokens will not match up with those from other publishers, data providers, or advertisers' CRM uploads. | ||||||
|
|
||||||
| ## Prerequisites | ||||||
|
|
||||||
| To use the UID2 Token Validator, you need: | ||||||
|
|
||||||
| - A **UID2 API Key** (Client Key) | ||||||
| - A **UID2 Client Secret** | ||||||
|
|
||||||
| If you do not have these, see [API Keys](../portal/api-keys.md) for instructions on creating them in the UID2 Portal. | ||||||
|
|
||||||
| ## Using the Token Validator | ||||||
|
|
||||||
| Enter your **API Key** (Client Key) and **Client Secret** in the fields at the top of the Token Validation section. | ||||||
|
|
||||||
| Select the **Operator** (environment) you want to validate against. For information about UID2 environments, see [Environments](../getting-started/gs-environments.md). | ||||||
|
|
||||||
| ### Validate a Single Token | ||||||
|
|
||||||
| 1. Under **Input Mode**, select **Single Validation**. | ||||||
| 2. In the **Identifier** field, enter the DII you used to generate the token. This can be: | ||||||
| - A raw email address | ||||||
| - A raw phone number | ||||||
| - A Base64-encoded email hash | ||||||
| - A Base64-encoded phone hash | ||||||
| 3. Select the **Identifier Type** that matches your input. | ||||||
|
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Because you're not referring to the name of the UI element here, bold and initial cap not needed:
Suggested change
|
||||||
| 4. In the **Token** field, paste the UID2 token you want to validate. | ||||||
| 5. Click **Validate Tokens**. | ||||||
|
|
||||||
| ### Validate Multiple Tokens (CSV) | ||||||
|
|
||||||
| To validate a batch of token-identifier pairs: | ||||||
|
|
||||||
| 1. Under **Input Mode**, select **CSV**. | ||||||
| 2. Prepare a CSV file with the following columns: | ||||||
| - `identifier`: The DII (raw email, raw phone, email hash, or phone hash) | ||||||
|
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. There is a period (full stop) only on the third item. Period on each one for consistency. |
||||||
| - `identifier_type`: Either `email`, `phone`, `email_hash` or `phone_hash` | ||||||
| - `token`: The UID2 token to validate. | ||||||
| 3. Upload the CSV file. | ||||||
| 4. Click **Validate Tokens**. | ||||||
|
|
||||||
| ## Interpreting Validation Results | ||||||
|
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Keep headings in the same form... "Interpret" in this case (Validate, Interpret):
Suggested change
|
||||||
|
|
||||||
| After clicking **Validate Tokens**, the **Validation Results** table displays a row for each token-identifier pair: | ||||||
|
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Couple of things here. Technically the table is the subject of the sentence, but you are the one clicking. Reword for clarity.
Suggested change
|
||||||
|
|
||||||
| | Column | Description | | ||||||
| |---|---| | ||||||
| | Identifier | The DII you entered. | | ||||||
| | Identifier Type | `email`, `phone`, `email_hash` or `phone_hash`. | | ||||||
| | Normalized Hash | The Base64-encoded SHA-256 hash of the normalized DII. | | ||||||
| | Token | The token you submitted. | | ||||||
| | Validation | The result of the validation. For details, see the following table. | | ||||||
|
|
||||||
| The **Validation** column reflects the response from the [POST /token/validate](../endpoints/post-token-validate.md) endpoint. | ||||||
|
|
||||||
| | Validation Result | Meaning | | ||||||
| |---|---| | ||||||
| | `Token matches identifier` | The token matches the provided DII. This means that the token was generated from the correct normalized hash. | | ||||||
| | `Failed: Token does not match identifier` | The token does not match the provided DII. The most likely cause is incorrect normalization or hashing. | | ||||||
| | `Failed: Invalid token` | The token is malformed and cannot be parsed. | | ||||||
| | `Failed: {"status":"unauthorized"}` | The API credentials provided are invalid or unauthorized. | | ||||||
|
|
||||||
| :::tip | ||||||
| If the result is **Failed: Token does not match identifier**, compare the **Normalized Hash** shown in the results with what your own implementation produced for the same DII. If they differ, the issue is in your normalization or hashing steps. See [Normalization and Encoding](../getting-started/gs-normalization-encoding.md) and [Preparing Emails and Phone Numbers for Processing](ref-preparing-emails-and-phone-numbers-for-processing.md). | ||||||
|
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Again just our TTD doc standards... rather than "see", we use "For details, see" consistently.
Suggested change
|
||||||
| ::: | ||||||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Two instances Raw UID2 > raw UID2. We do not generally initial cap this term (only at the beginning of a sentence, in a heading, that type of instance).