You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/endpoints/post-identity-map-v2.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -20,7 +20,7 @@ For details about the UID2 opt-out workflow and how users can opt out, see [User
20
20
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).
21
21
22
22
:::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).
24
24
:::
25
25
26
26
## Batch Size and Request Parallelization Requirements
Copy file name to clipboardExpand all lines: docs/endpoints/post-identity-map.md
+2-7Lines changed: 2 additions & 7 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -7,6 +7,7 @@ displayed_sidebar: docs
7
7
---
8
8
9
9
import Link from '@docusaurus/Link';
10
+
import POSTIdentityMapImprovements from '../snippets/_post-identity-map-improvements-v3.mdx';
10
11
11
12
# POST /identity/map
12
13
@@ -206,13 +207,7 @@ The following sections provide general information and guidance for migrating to
206
207
207
208
### Version 3 Improvements
208
209
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 <Linkhref="../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.
Copy file name to clipboardExpand all lines: docs/getting-started/gs-faqs.md
+8-7Lines changed: 8 additions & 7 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -175,7 +175,7 @@ Here are some frequently asked questions for advertisers and data providers usin
175
175
-[Does the same DII always result in the same raw UID2?](#does-the-same-dii-always-result-in-the-same-raw-uid2)
176
176
-[If two operators process the same DII, are the results the same?](#if-two-operators-process-the-same-dii-are-the-results-the-same)
177
177
-[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)
179
179
180
180
#### How do I know when to refresh a raw UID2?
181
181
@@ -198,7 +198,7 @@ A raw UID2 for a specific user changes roughly once per year. The latest version
198
198
199
199
For implementations that reference earlier versions of this endpoint (see [POST /identity/map v2](../endpoints/post-identity-map-v2.md)):
200
200
201
-
Even though each <Linkhref="../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 /identity/buckets](../endpoints/post-identity-buckets.md) endpoint more frequently; for example, hourly.
201
+
Even though each <Linkhref="../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 /identity/buckets](../endpoints/post-identity-buckets.md) endpoint more frequently: for example, hourly.
202
202
203
203
#### How should I generate the SHA-256 of DII for mapping?
204
204
@@ -224,7 +224,7 @@ If a user opts out through your website, you should follow your internal procedu
224
224
225
225
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 /identity/map](../endpoints/post-identity-map.md) endpoint at the same time, they would both get the same raw UID2 in response.
226
226
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.
228
228
229
229
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*.
230
230
@@ -240,13 +240,13 @@ However, if a publisher sends DII in a request for a <Link href="../ref-info/glo
240
240
241
241
#### How do I know when to refresh the UID2 due to salt bucket rotation?
242
242
243
-
Metadata supplied with the UID2 generation request indicates the <Linkhref="../ref-info/glossary-uid#gl-salt-bucket">salt bucket</Link> used for generating the UID2. Salt buckets persist and correspond to the underlying <Linkhref="../ref-info/glossary-uid#gl-dii">DII</Link> used to generate a UID2. Use the [POST /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 <Linkhref="../ref-info/glossary-uid#gl-salt-bucket">salt bucket</Link> used for generating the UID2. Salt buckets persist and correspond to the underlying <Linkhref="../ref-info/glossary-uid#gl-dii">DII</Link> used to generate a raw UID2. Use the [POST /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.
244
244
245
245
:::note
246
246
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.
247
247
:::
248
248
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?
250
250
251
251
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.
252
252
@@ -262,6 +262,7 @@ Here are some frequently asked questions for demand-side platforms (DSPs).
262
262
-[Where do I get the decryption keys?](#where-do-i-get-the-decryption-keys)
263
263
-[How many decryption keys may be present in memory at any point?](#how-many-decryption-keys-may-be-present-in-memory-at-any-point)
264
264
-[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)
265
266
-[Should the DSP be concerned with latency?](#should-the-dsp-be-concerned-with-latency)
266
267
-[How should the DSP maintain proper frequency capping with UID2?](#how-should-the-dsp-maintain-proper-frequency-capping-with-uid2)
267
268
-[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
288
289
289
290
#### How do I know when to refresh mapped raw UID2s?
290
291
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.
292
293
293
294
#### How do I know if/when the raw UID2 has rotated?
294
295
@@ -300,7 +301,7 @@ The UID2 service does not introduce latency into the bidding process. Any latenc
300
301
301
302
#### How should the DSP maintain proper frequency capping with UID2?
302
303
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)
304
305
305
306
#### Will all user opt-out traffic be sent to the DSP?
Copy file name to clipboardExpand all lines: docs/getting-started/gs-permissions.md
+4-4Lines changed: 4 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -18,13 +18,13 @@ For each UID2 participant that has API Key and Client Secret, the permissions ar
18
18
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).
19
19
:::
20
20
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.
22
22
23
23
The following table lists the key permissions, the types of participants that commonly use them, and a summary of the key associated activities.
24
24
25
25
| Name | Participant Type | Permissions |
26
26
| :--- | :--- | :--- |
27
-
| Generator | Publishers | Permission to call the [POST /token/generate](../endpoints/post-token-generate.md), [POST /token/validate](../endpoints/post-token-validate.md), and [POST /token/refresh](../endpoints/post-token-refresh.md) endpoints, to generate UID2 tokens from <Linkhref="../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 /token/generate](../endpoints/post-token-generate.md), [POST /token/validate](../endpoints/post-token-validate.md), and [POST /token/refresh](../endpoints/post-token-refresh.md) endpoints, to generate UID2 tokens from <Linkhref="../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> |
28
28
| Bidder | DSPs | Permission to decrypt UID2 tokens coming in from the <Linkhref="../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 /identity/map](../endpoints/post-identity-map.md) (latest version)</li><li>The earlier v2 identity mapping endpoints: [POST /identity/map (v2)](../endpoints/post-identity-map.md) and [POST /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 /identity/map](../endpoints/post-identity-map.md) (latest version)</li><li>The earlier v2 identity mapping endpoints: [POST /identity/map (v2)](../endpoints/post-identity-map.md) and [POST /identity/buckets](../endpoints/post-identity-buckets.md)</li></ul> |
Copy file name to clipboardExpand all lines: docs/guides/integration-advertiser-dataprovider-endpoints.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -95,7 +95,7 @@ You could also send conversion information via API or pixels for measurement (at
95
95
96
96
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.
97
97
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.
99
99
100
100
We recommend checking for refresh opportunities daily. The following table shows the steps for monitoring raw UID2 refresh.
Copy file name to clipboardExpand all lines: docs/guides/operator-guide-aks-enclave.md
+25-2Lines changed: 25 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -276,7 +276,7 @@ az aks create \
276
276
--resource-group ${RESOURCE_GROUP} \
277
277
--name ${AKS_CLUSTER_NAME} \
278
278
--location ${LOCATION} \
279
-
--kubernetes-version 1.29.13 \
279
+
--kubernetes-version 1.33 \
280
280
--network-plugin azure \
281
281
--network-policy calico \
282
282
--vnet-subnet-id ${AKS_SUBNET_ID} \
@@ -292,6 +292,9 @@ az aks create \
292
292
--nodepool-name oprnodepool \
293
293
--os-sku Ubuntu
294
294
```
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
+
:::
295
298
296
299
#### Get the Principal ID of the Managed Identity
297
300
@@ -376,23 +379,43 @@ After completing the previous steps, follow these steps to update placeholder va
376
379
1. Get the managed identity ID by running the following:
377
380
378
381
```
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)
380
383
```
381
384
382
385
2. In the `operator.yaml` file, update `microsoft.containerinstance.virtualnode.identity` with the managed identity ID that was returned:
383
386
387
+
- For Linux, run:
388
+
384
389
```
385
390
sed -i "s#IDENTITY_PLACEHOLDER#$MANAGED_IDENTITY_ID#g" "operator.yaml"
386
391
```
387
392
393
+
- For MacOS, run:
394
+
395
+
```
396
+
sed -i '' "s#IDENTITY_PLACEHOLDER#$MANAGED_IDENTITY_ID#g" "operator.yaml"
397
+
```
398
+
388
399
3. Update the Vault Key and Secret names with the environment variables:
389
400
401
+
- For Linux, run:
402
+
403
+
390
404
```
391
405
sed -i "s#VAULT_NAME_PLACEHOLDER#$KEYVAULT_NAME#g" "operator.yaml"
392
406
sed -i "s#OPERATOR_KEY_SECRET_NAME_PLACEHOLDER#$KEYVAULT_SECRET_NAME#g" "operator.yaml"
393
407
sed -i "s#DEPLOYMENT_ENVIRONMENT_PLACEHOLDER#$DEPLOYMENT_ENV#g" "operator.yaml"
394
408
```
395
409
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
+
396
419
#### Deploy Operator
397
420
398
421
Follow these steps to deploy the Private Operator:
Copy file name to clipboardExpand all lines: docs/ref-info/deprecation-schedule.md
+13Lines changed: 13 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -79,3 +79,16 @@ The latest ZIP file is linked in the Release Notes column in the following table
79
79
| ------- | ------ | ------ | ------ | ------ |
80
80
| Q2 2025 | xxx | xxx | xxx | xxx | -->
81
81
<!-- | 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.
Copy file name to clipboardExpand all lines: docs/sdks/sdk-ref-csharp-dotnet.md
+3-7Lines changed: 3 additions & 7 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -137,9 +137,9 @@ client.Refresh();
137
137
```
138
138
139
139
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 <Linkhref="../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 <Linkhref="../ref-info/glossary-uid#gl-app-name">app name</Link>.
142
+
* Otherwise, pass `null`.
143
143
144
144
145
145
```cs
@@ -211,7 +211,3 @@ else
211
211
```
212
212
213
213
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