Skip to content

UID2-6592: Document UID2 token validator in integration guides#1001

Open
BehnamMozafari wants to merge 10 commits intomainfrom
bmz-UID2-6592-token-validator
Open

UID2-6592: Document UID2 token validator in integration guides#1001
BehnamMozafari wants to merge 10 commits intomainfrom
bmz-UID2-6592-token-validator

Conversation

@BehnamMozafari
Copy link

  • Added new reference page "UID2 Token Validator" giving an overview and instructions
  • Linked to reference page in "Preparing DII for Processing" section of integration guides
  • Linked to tool reference page in "Normalization and Encoding"

Copy link
Collaborator

@genwhittTTD genwhittTTD left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good! Few small edits and I sent the proposed updates to the sidebars file via Slack.

Great work.


## 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.
Copy link
Collaborator

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).

- A raw phone number
- A Base64-encoded email hash
- A Base64-encoded phone hash
3. Select the **Identifier Type** that matches your input.
Copy link
Collaborator

@genwhittTTD genwhittTTD Mar 10, 2026

Choose a reason for hiding this comment

The 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
3. Select the **Identifier Type** that matches your input.
3. Select the identifier type that matches your input.

3. Upload the CSV file.
4. Click **Validate Tokens**.

## Interpreting Validation Results
Copy link
Collaborator

Choose a reason for hiding this comment

The 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
## Interpreting Validation Results
## Interpret Validation Results


## Interpreting Validation Results

After clicking **Validate Tokens**, the **Validation Results** table displays a row for each token-identifier pair:
Copy link
Collaborator

Choose a reason for hiding this comment

The 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.
Plus, just our internal standards, we uses "as shown in the following table" or something like that, and no colon before a table, just a colon before a list.

Suggested change
After clicking **Validate Tokens**, the **Validation Results** table displays a row for each token-identifier pair:
When you click **Validate Tokens**, the **Validation Results** table displays a row for each token-identifier pair, in the format shown in the following table.

| `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).
Copy link
Collaborator

Choose a reason for hiding this comment

The 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
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).
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. For details, 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).


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)
Copy link
Collaborator

Choose a reason for hiding this comment

The 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.

Copy link
Collaborator

@genwhittTTD genwhittTTD left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Few more small edits.
And then there is one more thing... I built both languages and there are errors in the Japanese, as I'd suspected there would be, because you're adding new content.
If you could just address these few edits please, I'll check in the Japanese updates and you'll be good to go.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants