Skip to content

Commit c4da024

Browse files
committed
Merged main
2 parents e7f36db + 3c9867d commit c4da024

20 files changed

+90
-81
lines changed

docs/endpoints/post-identity-map-v2.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ For details about the UID2 opt-out workflow and how users can opt out, see [User
2020
This documentation is for version 2 of this endpoint, which is not the latest version. For the latest version, v3, see [POST /identity/map](post-identity-map.md).
2121

2222
:::note
23-
If you're using the previous version, we recommend that you upgrade as soon as possible, to take advantage of improvements. For migration guidance, see [Migration from v2 Identity Map](post-identity-map.md#migration-from-v2-identity-map).
23+
If you're using the previous version, we recommend that you upgrade as soon as possible, to take advantage of improvements. For migration guidance, see [Migration from v2 Identity Map](post-identity-map.md#migration-from-v2-identity-map). For deprecation information, see [Deprecation Schedule: Endpoint Versions](../ref-info/deprecation-schedule.md#endpoint-versions).
2424
:::
2525

2626
## Batch Size and Request Parallelization Requirements

docs/endpoints/post-identity-map.md

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ displayed_sidebar: docs
77
---
88

99
import Link from '@docusaurus/Link';
10+
import POSTIdentityMapImprovements from '../snippets/_post-identity-map-improvements-v3.mdx';
1011

1112
# POST /identity/map
1213

@@ -206,13 +207,7 @@ The following sections provide general information and guidance for migrating to
206207

207208
### Version 3 Improvements
208209

209-
The v3 Identity Map API provides the following improvements over v2:
210-
211-
- **Simplified Refresh Management**: You can monitor for UID2s reaching `refresh_from` timestamps instead of polling <Link href="../ref-info/glossary-uid#gl-salt-bucket-id">salt buckets</Link> for rotation.
212-
- **Previous UID2 Access**: You have access to previous raw UID2s for 90 days after rotation for campaign measurement.
213-
- **Single Endpoint**: You use only one endpoint, `/v3/identity/map`, instead of both `/v2/identity/map` and `/v2/identity/buckets`.
214-
- **Multiple Identity Types in One Request**: You can process both emails and phone numbers in a single request.
215-
- **Improved Performance**: The updated version uses significantly less bandwidth to process the same amount of DII.
210+
<POSTIdentityMapImprovements />
216211

217212
### Key Differences Between v2 and v3
218213

docs/getting-started/gs-faqs.md

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -175,7 +175,7 @@ Here are some frequently asked questions for advertisers and data providers usin
175175
- [Does the same DII always result in the same raw UID2?](#does-the-same-dii-always-result-in-the-same-raw-uid2)
176176
- [If two operators process the same DII, are the results the same?](#if-two-operators-process-the-same-dii-are-the-results-the-same)
177177
- [How do I know when to refresh the UID2 due to salt bucket rotation?](#how-do-i-know-when-to-refresh-the-uid2-due-to-salt-bucket-rotation)
178-
- [Do refreshed emails get assigned to the same bucket with which they were previously associated?](#do-refreshed-emails-get-assigned-to-the-same-bucket-with-which-they-were-previously-associated)
178+
- [Do refreshed emails get assigned to the same bucket that they were previously associated with?](#do-refreshed-emails-get-assigned-to-the-same-bucket-that-they-were-previously-associated-with)
179179

180180
#### How do I know when to refresh a raw UID2?
181181

@@ -198,7 +198,7 @@ A raw UID2 for a specific user changes roughly once per year. The latest version
198198

199199
For implementations that reference earlier versions of this endpoint (see [POST&nbsp;/identity/map v2](../endpoints/post-identity-map-v2.md)):
200200

201-
Even though each <Link href="../ref-info/glossary-uid#gl-salt-bucket">salt bucket</Link> is updated roughly once a year, individual bucket updates are spread over the year. This means that about 1/365th of all buckets are rotated daily. If fidelity is critical, consider calling the [POST&nbsp;/identity/buckets](../endpoints/post-identity-buckets.md) endpoint more frequently; for example, hourly.
201+
Even though each <Link href="../ref-info/glossary-uid#gl-salt-bucket">salt bucket</Link> is updated roughly once a year, individual bucket updates are spread over the year. This means that about 1/365th of all buckets are rotated daily. If fidelity is critical, consider calling the [POST&nbsp;/identity/buckets](../endpoints/post-identity-buckets.md) endpoint more frequently: for example, hourly.
202202

203203
#### How should I generate the SHA-256 of DII for mapping?
204204

@@ -224,7 +224,7 @@ If a user opts out through your website, you should follow your internal procedu
224224

225225
In general yes, the process of generating a raw UID2 from DII is the same, and results in the same value, no matter who sent the request. If two UID2 participants were to send the same email address to the [POST&nbsp;/identity/map](../endpoints/post-identity-map.md) endpoint at the same time, they would both get the same raw UID2 in response.
226226

227-
However, there is a variable factor that's used in generating the raw UID2. The underlying values are refreshed roughly once per year (for details, see [How often should raw UID2s be refreshed for incremental updates?](#how-often-should-raw-uid2s-be-refreshed-for-incremental-updates)). If these values change between one request and another, those two requests result in two different raw UID2, even when the DII is the same.
227+
However, there is a variable factor that's used in generating the raw UID2. The underlying values are refreshed roughly once per year (for details, see [How often should raw UID2s be refreshed for incremental updates?](#how-often-should-raw-uid2s-be-refreshed-for-incremental-updates)). If these values change between one request and another, those two requests result in two different raw UID2s, even when the DII is the same.
228228

229229
For more information, see [Monitor for Raw UID2 Refresh](../guides/integration-advertiser-dataprovider-overview.md#5-monitor-for-raw-uid2-refresh) in the *Advertiser/Data Provider Integration Guide*.
230230

@@ -240,13 +240,13 @@ However, if a publisher sends DII in a request for a <Link href="../ref-info/glo
240240

241241
#### How do I know when to refresh the UID2 due to salt bucket rotation?
242242

243-
Metadata supplied with the UID2 generation request indicates the <Link href="../ref-info/glossary-uid#gl-salt-bucket">salt bucket</Link> used for generating the UID2. Salt buckets persist and correspond to the underlying <Link href="../ref-info/glossary-uid#gl-dii">DII</Link> used to generate a UID2. Use the [POST&nbsp;/identity/buckets](../endpoints/post-identity-buckets.md) endpoint to return which salt buckets rotated since a given timestamp. The returned rotated salt buckets inform you which UID2s to refresh.
243+
Metadata supplied with the UID2 generation request indicates the <Link href="../ref-info/glossary-uid#gl-salt-bucket">salt bucket</Link> used for generating the UID2. Salt buckets persist and correspond to the underlying <Link href="../ref-info/glossary-uid#gl-dii">DII</Link> used to generate a raw UID2. Use the [POST&nbsp;/identity/buckets](../endpoints/post-identity-buckets.md) endpoint to return which salt buckets rotated since a given timestamp. The returned rotated salt buckets inform you which UID2s to refresh.
244244

245245
:::note
246246
We do not make any promises about when the rotation takes place. To stay as up-to-date as possible, we recommend doing the checks once per hour.
247247
:::
248248

249-
#### Do refreshed emails get assigned to the same bucket with which they were previously associated?
249+
#### Do refreshed emails get assigned to the same bucket that they were previously associated with?
250250

251251
Not necessarily. After you remap emails associated with a particular bucket ID, the emails might be assigned to a different bucket ID. To check the bucket ID, see [Generate Raw UID2s from DII](../guides/integration-advertiser-dataprovider-overview.md#1-generate-raw-uid2s-from-dii) and save the returned raw UID2 and bucket ID again.
252252

@@ -262,6 +262,7 @@ Here are some frequently asked questions for demand-side platforms (DSPs).
262262
- [Where do I get the decryption keys?](#where-do-i-get-the-decryption-keys)
263263
- [How many decryption keys may be present in memory at any point?](#how-many-decryption-keys-may-be-present-in-memory-at-any-point)
264264
- [How do I know when to refresh mapped raw UID2s?](#how-do-i-know-when-to-refresh-mapped-raw-uid2s)
265+
- [How do I know if/when the raw UID2 has rotated?](#how-do-i-know-ifwhen-the-raw-uid2-has-rotated)
265266
- [Should the DSP be concerned with latency?](#should-the-dsp-be-concerned-with-latency)
266267
- [How should the DSP maintain proper frequency capping with UID2?](#how-should-the-dsp-maintain-proper-frequency-capping-with-uid2)
267268
- [Will all user opt-out traffic be sent to the DSP?](#will-all-user-opt-out-traffic-be-sent-to-the-dsp)
@@ -288,7 +289,7 @@ There may be thousands of decryption keys present in the system at any given poi
288289

289290
#### How do I know when to refresh mapped raw UID2s?
290291

291-
See [Advertisers and Data Providers section](#how-do-i-know-when-to-refresh-a-raw-uid2).
292+
See [How do I know when to refresh a raw UID2?](#how-do-i-know-when-to-refresh-a-raw-uid2) in the FAQs for Advertisers and Data Providers.
292293

293294
#### How do I know if/when the raw UID2 has rotated?
294295

@@ -300,7 +301,7 @@ The UID2 service does not introduce latency into the bidding process. Any latenc
300301

301302
#### How should the DSP maintain proper frequency capping with UID2?
302303

303-
The UID2 has the same chance as a cookie of becoming stale. Hence, the DSP can adapt the same infrastructure currently used for cookie or deviceID-based frequency capping for UID2. For details, see [How do I know when to refresh a raw UID2?](#how-do-i-know-when-to-refresh-a-raw-uid2).
304+
The UID2 has the same chance as a cookie of becoming stale. Hence, the DSP can adapt the same infrastructure currently used for cookie or deviceID-based frequency capping for UID2. For details, see [How do I know when to refresh a raw UID2?](#how-do-i-know-when-to-refresh-a-raw-uid2)
304305

305306
#### Will all user opt-out traffic be sent to the DSP?
306307

docs/getting-started/gs-permissions.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,13 +18,13 @@ For each UID2 participant that has API Key and Client Secret, the permissions ar
1818
If you're a publisher and are implementing UID2 on the client side, API permissions do not apply to you. Instead, you'll receive a different set of credentials that are specifically for generating a client-side token request. For details, see [Subscription ID and Public Key](gs-credentials.md#subscription-id-and-public-key).
1919
:::
2020

21-
A participant can have one or several sets of API credentials with associated permissions. In cases where you have m ore than one API permission, you have the option to have a separate set of credentials for each permission or have a single set of credentials for all permissions. We recommend having a separate set of credentials for each permission.
21+
A participant can have one or several sets of API credentials with associated permissions. In cases where you have more than one API permission, you have the option to have a separate set of credentials for each permission or have a single set of credentials for all permissions. We recommend having a separate set of credentials for each permission.
2222

2323
The following table lists the key permissions, the types of participants that commonly use them, and a summary of the key associated activities.
2424

2525
| Name | Participant Type | Permissions |
2626
| :--- | :--- | :--- |
27-
| Generator | Publishers | Permission to call the [POST&nbsp;/token/generate](../endpoints/post-token-generate.md), [POST&nbsp;/token/validate](../endpoints/post-token-validate.md), and [POST&nbsp;/token/refresh](../endpoints/post-token-refresh.md) endpoints, to generate UID2 tokens from <Link href="../ref-info/glossary-uid#gl-dii">DII</Link> and to refresh them, using one of these integration methods:<ul><li>A Prebid integration</li><li>The SDK for JavaScript</li><li>An integration that directly calls the applicable API endpoints for retrieving and managing UID2 tokens.</li></ul> |
27+
| Generator | Publishers | Permission to call the [POST&nbsp;/token/generate](../endpoints/post-token-generate.md), [POST&nbsp;/token/validate](../endpoints/post-token-validate.md), and [POST&nbsp;/token/refresh](../endpoints/post-token-refresh.md) endpoints, to generate UID2 tokens from <Link href="../ref-info/glossary-uid#gl-dii">DII</Link> and to refresh them, using one of these integration methods:<ul><li>A Prebid integration</li><li>The SDK for JavaScript</li><li>An integration that directly calls the applicable API endpoints for retrieving and managing UID2 tokens</li></ul> |
2828
| Bidder | DSPs | Permission to decrypt UID2 tokens coming in from the <Link href="../ref-info/glossary-uid#gl-bidstream">bidstream</Link> from publishers into raw UID2s for bidding purposes. |
29-
| Sharer | Any participant type that takes part in UID2 sharing. For details, see [UID2 Sharing: Overview](../sharing/sharing-overview.md). | Permission to do both of the following:<ul><li>Encrypt raw UID2s into UID2 tokens for sharing with another authorized sharing participant, using a UID2 SDK or Snowflake</li><li>Decrypt UID2 tokens received from another authorized sharing participant into raw UID2s.</li></ul> |
30-
| Mapper | Advertisers<br/>Data Providers | Permission to call the following endpoints to map multiple email addresses, phone numbers, or their respective hashes to their raw UID2s, previous raw UID2s, and refresh timestamps:<ul><li>[POST&nbsp;/identity/map](../endpoints/post-identity-map.md) (latest version)</li><li>The earlier v2 identity mapping endpoints: [POST&nbsp;/identity/map (v2)](../endpoints/post-identity-map.md) and [POST&nbsp;/identity/buckets](../endpoints/post-identity-buckets.md).</li></ul> |
29+
| Sharer | Any participant type that takes part in UID2 sharing.<br/>For details, see [UID2 Sharing: Overview](../sharing/sharing-overview.md). | Permission to do both of the following:<ul><li>Encrypt raw UID2s into UID2 tokens for sharing with another authorized sharing participant, using a UID2 SDK or Snowflake</li><li>Decrypt UID2 tokens received from another authorized sharing participant into raw UID2s</li></ul> |
30+
| Mapper | Advertisers<br/>Data Providers | Permission to call the following endpoints to map multiple email addresses, phone numbers, or their respective hashes to their raw UID2s, previous raw UID2s, and refresh timestamps:<ul><li>[POST&nbsp;/identity/map](../endpoints/post-identity-map.md) (latest version)</li><li>The earlier v2 identity mapping endpoints: [POST&nbsp;/identity/map (v2)](../endpoints/post-identity-map.md) and [POST&nbsp;/identity/buckets](../endpoints/post-identity-buckets.md)</li></ul> |

docs/guides/integration-advertiser-dataprovider-endpoints.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@ You could also send conversion information via API or pixels for measurement (at
9595

9696
A raw UID2 is an identifier for a user at a specific moment in time. The raw UID2 for a specific user changes roughly once per year as part of the UID2 refresh process.
9797

98-
The v3 Identity Map API provides a refresh timestamp (`r` field) in the response that indicates when each raw UID2 might refresh. Use this timestamp to determine when to regenerate raw UID2s for your stored data, it is guaranteed that it won't refresh before that time.
98+
The v3 Identity Map API provides a refresh timestamp (`r` field) in the response that indicates when each raw UID2 might refresh. Use this timestamp to determine when to regenerate raw UID2s for your stored data. It is guaranteed that it won't refresh before that time.
9999

100100
We recommend checking for refresh opportunities daily. The following table shows the steps for monitoring raw UID2 refresh.
101101

docs/guides/operator-guide-aks-enclave.md

Lines changed: 25 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -276,7 +276,7 @@ az aks create \
276276
--resource-group ${RESOURCE_GROUP} \
277277
--name ${AKS_CLUSTER_NAME} \
278278
--location ${LOCATION} \
279-
--kubernetes-version 1.29.13 \
279+
--kubernetes-version 1.33 \
280280
--network-plugin azure \
281281
--network-policy calico \
282282
--vnet-subnet-id ${AKS_SUBNET_ID} \
@@ -292,6 +292,9 @@ az aks create \
292292
--nodepool-name oprnodepool \
293293
--os-sku Ubuntu
294294
```
295+
:::note
296+
Be sure to use the latest supported Kubernetes version, using the `--kubernetes-version` flag. If you use an earlier version, you must enable Long-Term Support (LTS). For details, see [Long-term support for Azure Kubernetes Service (AKS) versions](https://learn.microsoft.com/en-us/azure/aks/long-term-support) in the Microsoft documentation.
297+
:::
295298

296299
#### Get the Principal ID of the Managed Identity
297300

@@ -376,23 +379,43 @@ After completing the previous steps, follow these steps to update placeholder va
376379
1. Get the managed identity ID by running the following:
377380

378381
```
379-
MANAGED_IDENTITY_ID=$("az identity show --name "${MANAGED_IDENTITY}" --resource-group "${RESOURCE_GROUP}" --query id --output tsv")
382+
MANAGED_IDENTITY_ID=$(az identity show --name "${MANAGED_IDENTITY}" --resource-group "${RESOURCE_GROUP}" --query id --output tsv)
380383
```
381384

382385
2. In the `operator.yaml` file, update `microsoft.containerinstance.virtualnode.identity` with the managed identity ID that was returned:
383386

387+
- For Linux, run:
388+
384389
```
385390
sed -i "s#IDENTITY_PLACEHOLDER#$MANAGED_IDENTITY_ID#g" "operator.yaml"
386391
```
387392

393+
- For MacOS, run:
394+
395+
```
396+
sed -i '' "s#IDENTITY_PLACEHOLDER#$MANAGED_IDENTITY_ID#g" "operator.yaml"
397+
```
398+
388399
3. Update the Vault Key and Secret names with the environment variables:
389400

401+
- For Linux, run:
402+
403+
390404
```
391405
sed -i "s#VAULT_NAME_PLACEHOLDER#$KEYVAULT_NAME#g" "operator.yaml"
392406
sed -i "s#OPERATOR_KEY_SECRET_NAME_PLACEHOLDER#$KEYVAULT_SECRET_NAME#g" "operator.yaml"
393407
sed -i "s#DEPLOYMENT_ENVIRONMENT_PLACEHOLDER#$DEPLOYMENT_ENV#g" "operator.yaml"
394408
```
395409

410+
- For MacOS, run:
411+
412+
```
413+
sed -i '' "s#VAULT_NAME_PLACEHOLDER#$KEYVAULT_NAME#g" "operator.yaml"
414+
sed -i '' "s#OPERATOR_KEY_SECRET_NAME_PLACEHOLDER#$KEYVAULT_SECRET_NAME#g" "operator.yaml"
415+
sed -i '' "s#DEPLOYMENT_ENVIRONMENT_PLACEHOLDER#$DEPLOYMENT_ENV#g" "operator.yaml"
416+
```
417+
418+
396419
#### Deploy Operator
397420

398421
Follow these steps to deploy the Private Operator:

docs/ref-info/deprecation-schedule.md

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,3 +79,16 @@ The latest ZIP file is linked in the Release Notes column in the following table
7979
| ------- | ------ | ------ | ------ | ------ |
8080
| Q2 2025 | xxx | xxx | xxx | xxx | -->
8181
<!-- | Q1 2025 | 5.49.7 | [v5.49.7](https://github.com/IABTechLab/uid2-operator/releases/tag/v5.49.7) | Mar 19, 2025 | Mar 31, 2026 | -->
82+
83+
## Endpoint Versions
84+
85+
Version 2 of the `POST /identity/map` endpoint has been superseded by version 3, which includes the additional advantages listed in [Version 3 Improvements](../endpoints/post-identity-map.md#version-3-improvements).
86+
87+
With version 3 of the `POST /identity/map endpoint`, the `POST /identity/buckets` endpoint is no longer used at all.
88+
89+
The following table shows the deprecation schedule for the v2 endpoints.
90+
91+
Endpoint | Deprecation Date |
92+
| ------- | ------ |
93+
| `POST /v2/identity/map` | June 30, 2026 |
94+
| `POST /v2/identity/buckets` | June 30, 2026 |

docs/ref-info/updates-doc.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ We've released a new version of the Identity Map API (v3) that provides signific
3838

3939
## Q1 2025
4040

41-
The following documents were released in this quarter.
41+
The following documents were released in the first quarter of 2025.
4242

4343
<CustomTagsContainer tags="Guides, Private Operator">
4444

docs/sdks/sdk-ref-cplusplus.md

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -165,7 +165,3 @@ The following instructions provide an example of how you can implement sharing u
165165
// check decrypted.GetStatus() for the failure reason
166166
}
167167
```
168-
169-
## FAQs
170-
171-
For a list of frequently asked questions for DSPs, see [FAQs for DSPs](../getting-started/gs-faqs.md#faqs-for-dsps).

docs/sdks/sdk-ref-csharp-dotnet.md

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -137,9 +137,9 @@ client.Refresh();
137137
```
138138

139139
3. Decrypt a token into a raw UID2. Pass the token, and then do one of the following:
140-
* If the bid request originated from a publisher's website, pass the domain name. The domain name must be all lower case, without spaces and without subdomain. For example, for `Subdomain.DOMAIN.com`, pass `domain.com` instead.
141-
* If the bid request originated from a mobile app, pass the <Link href="../ref-info/glossary-uid#gl-app-name">app name</Link>.
142-
* Otherwise, pass `null`.
140+
* If the bid request originated from a publisher's website, pass the domain name. The domain name must be all lower case, without spaces and without subdomain. For example, for `Subdomain.DOMAIN.com`, pass `domain.com` instead.
141+
* If the bid request originated from a mobile app, pass the <Link href="../ref-info/glossary-uid#gl-app-name">app name</Link>.
142+
* Otherwise, pass `null`.
143143

144144

145145
```cs
@@ -211,7 +211,3 @@ else
211211
```
212212

213213
For a full example, see the `ExampleSharingClient` method in [SampleApp/Program.cs](https://github.com/IABTechLab/uid2-client-net/blob/main/src/SampleApp/Program.cs).
214-
215-
## FAQs
216-
217-
For a list of frequently asked questions for DSPs, see [FAQs for DSPs](../getting-started/gs-faqs.md#faqs-for-dsps).

0 commit comments

Comments
 (0)