Skip to content

Commit 7fa094b

Browse files
authored
Merge pull request #985 from IABTechLab/swi-UID2-6511-remove-optout-check
Update docs for removal of optout_check
2 parents 9f3da02 + e0f38c8 commit 7fa094b

7 files changed

Lines changed: 45 additions & 49 deletions

File tree

docs/endpoints/post-token-generate.md

Lines changed: 7 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -15,11 +15,7 @@ Requests a UID2 token generated from a user's <Link href="../ref-info/glossary-u
1515

1616
Used by: This endpoint is used mainly by publishers.
1717

18-
:::important
19-
The `optout_check` parameter, required with a value of `1`, checks whether the user has opted out.
20-
:::
21-
22-
<!-- uid2_euid_diff re legal basis for admonition above -->
18+
<!-- uid2_euid_diff: admonition re legal basis (in EUID not in UID2)-->
2319

2420
Rather than calling this endpoint directly, you could use one of the SDKs to manage it for you. For a summary of options, see [SDKs: Summary](../sdks/summary-sdks.md).
2521

@@ -46,7 +42,7 @@ Here's what you need to know about sending requests to this endpoint:
4642
### Unencrypted JSON Body Parameters
4743

4844
:::important
49-
You must include only **one** of the following four conditional parameters, plus the required `optout_check` parameter with a value of `1`, as key-value pairs in the JSON body of the request when encrypting it.
45+
You must include only **one** of the following four conditional parameters as key-value pairs in the JSON body of the request when encrypting it.
5046
:::
5147

5248
| Body Parameter | Data Type | Attribute | Description |
@@ -55,7 +51,6 @@ You must include only **one** of the following four conditional parameters, plus
5551
| `email_hash` | string | Conditionally Required | The [Base64-encoded SHA-256](../getting-started/gs-normalization-encoding.md#email-address-hash-encoding) hash of a [normalized](../getting-started/gs-normalization-encoding.md#email-address-normalization) email address. |
5652
| `phone` | string | Conditionally Required | The [normalized](../getting-started/gs-normalization-encoding.md#phone-number-normalization) phone number for which to generate tokens. |
5753
| `phone_hash` | string | Conditionally Required | The [Base64-encoded SHA-256](../getting-started/gs-normalization-encoding.md#phone-number-hash-encoding) hash of a [normalized](../getting-started/gs-normalization-encoding.md#phone-number-normalization) phone number. |
58-
| `optout_check` | number | Required | Checks whether the user has opted out. Include this parameter with a value of `1`.|
5954

6055
### Request Examples
6156

@@ -67,33 +62,29 @@ The following are unencrypted JSON request body examples for each parameter, one
6762

6863
```json
6964
{
70-
"email": "username@example.com",
71-
"optout_check": 1
65+
"email": "username@example.com"
7266
}
7367
```
7468
```json
7569
{
76-
"email_hash": "tMmiiTI7IaAcPpQPFQ65uMVCWH8av9jw4cwf/F5HVRQ=",
77-
"optout_check": 1
70+
"email_hash": "tMmiiTI7IaAcPpQPFQ65uMVCWH8av9jw4cwf/F5HVRQ="
7871
}
7972
```
8073
```json
8174
{
82-
"phone": "+12345678901",
83-
"optout_check": 1
75+
"phone": "+12345678901"
8476
}
8577
```
8678
```json
8779
{
88-
"phone_hash": "wdN1alhrbw1Bmz49GzKGdPvGxLhCNn7n3teAOQ/FSK4=",
89-
"optout_check": 1
80+
"phone_hash": "wdN1alhrbw1Bmz49GzKGdPvGxLhCNn7n3teAOQ/FSK4="
9081
}
9182
```
9283

9384
Here's an encrypted token generation request example for an email hash:
9485

9586
```sh
96-
echo '{"email_hash": "tMmiiTI7IaAcPpQPFQ65uMVCWH8av9jw4cwf/F5HVRQ=","optout_check":1}' | python3 uid2_request.py https://prod.uidapi.com/v2/token/generate [Your-Client-API-Key] [Your-Client-Secret]
87+
echo '{"email_hash": "tMmiiTI7IaAcPpQPFQ65uMVCWH8av9jw4cwf/F5HVRQ="}' | python3 uid2_request.py https://prod.uidapi.com/v2/token/generate [Your-Client-API-Key] [Your-Client-Secret]
9788
```
9889
For details, and code examples in different programming languages, see [Encrypting Requests and Decrypting Responses](../getting-started/gs-encryption-decryption.md).
9990

docs/getting-started/gs-encryption-decryption.md

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,7 @@ This section includes encryption and decryption code examples in different progr
114114
For the [POST&nbsp;/token/refresh](../endpoints/post-token-refresh.md) endpoint, the code takes the values for `refresh_token` and `refresh_response_key` that were obtained from a prior call to [POST&nbsp;/token/generate](../endpoints/post-token-generate.md) or [POST&nbsp;/token/refresh](../endpoints/post-token-refresh.md).
115115

116116
:::note
117-
For Windows, if you're using Windows Command Prompt instead of PowerShell, you must also remove the single quotes surrounding the JSON. For example, use `echo {"email": "test@example.com", "optout_check": 1}`.
117+
For Windows, if you're using Windows Command Prompt instead of PowerShell, you must also remove the single quotes surrounding the JSON. For example, use `echo {"email": "test@example.com"}`.
118118
:::
119119

120120
### Prerequisites and Notes
@@ -228,8 +228,8 @@ Usage:
228228
echo '<json>' | python3 uid2_request.py <url> <api_key> <client_secret>
229229
230230
Example:
231-
echo '{"email": "test@example.com", "optout_check": 1}' | python3 uid2_request.py https://prod.uidapi.com/v2/token/generate PRODGwJ0hP19QU4hmpB64Y3fV2dAed8t/mupw3sjN5jNRFzg= wJ0hP19QU4hmpB64Y3fV2dAed8t/mupw3sjN5jNRFzg=
232-
231+
echo '{"email": "test@example.com"}' | python3 uid2_request.py https://prod.uidapi.com/v2/token/generate PRODGwJ0hP19QU4hmpB64Y3fV2dAed8t/mupw3sjN5jNRFzg= wJ0hP19QU4hmpB64Y3fV2dAed8t/mupw3sjN5jNRFzg=
232+
233233
234234
Refresh Token Usage:
235235
python3 uid2_request.py <url> --refresh-token <refresh_token> <refresh_response_key>
@@ -356,7 +356,7 @@ public class Uid2Request {
356356
+ "java -jar Uid2Request-jar-with-dependencies.jar <url> <api_key> <client_secret>" + "\n\n"
357357

358358
+ "Example:" + "\n "
359-
+ "echo '{\"email\": \"test@example.com\", \"optout_check\": 1}' | java -jar Uid2Request-jar-with-dependencies.jar https://prod.uidapi.com/v2/token/generate PRODGwJ0hP19QU4hmpB64Y3fV2dAed8t/mupw3sjN5jNRFzg= wJ0hP19QU4hmpB64Y3fV2dAed8t/mupw3sjN5jNRFzg=" + "\n\n\n"
359+
+ "echo '{\"email\": \"test@example.com\"}' | java -jar Uid2Request-jar-with-dependencies.jar https://prod.uidapi.com/v2/token/generate PRODGwJ0hP19QU4hmpB64Y3fV2dAed8t/mupw3sjN5jNRFzg= wJ0hP19QU4hmpB64Y3fV2dAed8t/mupw3sjN5jNRFzg=" + "\n\n\n"
360360

361361
+ "Refresh Token Usage:" + "\n "
362362
+ "java -jar Uid2Request-jar-with-dependencies.jar <url> --refresh-token <refresh_token> <refresh_response_key>" + "\n\n"
@@ -466,8 +466,8 @@ Usage:
466466
echo '<json>' | .\uid2_request <url> <api_key> <client_secret>
467467
468468
Example:
469-
echo '{"email": "test@example.com", "optout_check": 1}' | .\uid2_request https://prod.uidapi.com/v2/token/generate UID2-C-L-999-fCXrMM.fsR3mDqAXELtWWMS+xG1s7RdgRTMqdOH2qaAo= wJ0hP19QU4hmpB64Y3fV2dAed8t/mupw3sjN5jNRFzg=
470-
469+
echo '{"email": "test@example.com"}' | .\uid2_request https://prod.uidapi.com/v2/token/generate UID2-C-L-999-fCXrMM.fsR3mDqAXELtWWMS+xG1s7RdgRTMqdOH2qaAo= wJ0hP19QU4hmpB64Y3fV2dAed8t/mupw3sjN5jNRFzg=
470+
471471
472472
Refresh Token Usage:
473473
.\uid2_request <url> --refresh-token <refresh_token> <refresh_response_key>
@@ -810,8 +810,8 @@ func printUsage() {
810810
echo '<json>' | go run uid2_request.go <url> <api_key> <client_secret>
811811
812812
Example:
813-
echo '{"email": "test@example.com", "optout_check": 1}' | go run uid2_request.go https://prod.uidapi.com/v2/token/generate UID2-C-L-999-fCXrMM.fsR3mDqAXELtWWMS+xG1s7RdgRTMqdOH2qaAo= wJ0hP19QU4hmpB64Y3fV2dAed8t/mupw3sjN5jNRFzg=
814-
813+
echo '{"email": "test@example.com"}' | go run uid2_request.go https://prod.uidapi.com/v2/token/generate UID2-C-L-999-fCXrMM.fsR3mDqAXELtWWMS+xG1s7RdgRTMqdOH2qaAo= wJ0hP19QU4hmpB64Y3fV2dAed8t/mupw3sjN5jNRFzg=
814+
815815
816816
Refresh Token Usage:
817817
go run uid2_request.go <url> --refresh-token <refresh_token> <refresh_response_key>

docs/getting-started/gs-faqs.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ No, publishers do not need to decrypt <Link href="../ref-info/glossary-uid#gl-ui
9292
#### How will I be notified of user opt-out?
9393

9494
If the user has opted out, the API response notifies you in either of these cases:
95-
- When you generate the UID2 token by a call to the [POST&nbsp;/token/generate](../endpoints/post-token-generate.md) endpoint, either directly or via one of the UID2 SDKs, using the required `optout_check` parameter with a value of `1`.
95+
- When you generate the UID2 token by a call to the [POST&nbsp;/token/generate](../endpoints/post-token-generate.md) endpoint, either directly or via one of the UID2 SDKs.
9696
- When you refresh the UID2 token by a call to the [POST&nbsp;/token/refresh](../endpoints/post-token-refresh.md) endpoint, either directly or via one of the UID2 SDKs.
9797

9898
#### Where should I make token generation calls&#8212;from the server side or the client side?

docs/getting-started/gs-opt-out.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ The following steps provide a high-level outline of the opt-out workflow intende
4848

4949
| Participant | Distribution Method |
5050
| :--- | :--- |
51-
| Publishers | A publisher calling [POST&nbsp;/token/generate](../endpoints/post-token-generate.md) with the required `optout_check` parameter set to `1`, or [POST&nbsp;/token/refresh](../endpoints/post-token-refresh.md), receives the opt-out response instead of the UID2 token. |
51+
| Publishers | A publisher calling [POST&nbsp;/token/generate](../endpoints/post-token-generate.md), or [POST&nbsp;/token/refresh](../endpoints/post-token-refresh.md), receives the opt-out response instead of the UID2 token. |
5252
| DSPs | The UID2 Operator Service distributes information on all opted-out users to DSPs via a webhook provided for the purpose. For details, see [Honor User Opt-Outs](../guides/dsp-guide#honor-user-opt-outs).<br/>DSPs can also check the opt-out status of raw UID2s using the [POST&nbsp;/optout/status](../endpoints/post-optout-status.md) endpoint. |
5353
| Advertisers and data providers | The UID2 Operator Service distributes opt-out information to advertisers and data providers via the [POST&nbsp;/identity/map](../endpoints/post-identity-map.md) endpoint. Another option is to check the opt-out status of raw UID2s using the [POST&nbsp;/optout/status](../endpoints/post-optout-status.md) endpoint. |
5454
| Sharers | UID2 sharers can check the opt-out status of raw UID2s using the [POST&nbsp;/optout/status](../endpoints/post-optout-status.md) endpoint. |

docs/ref-info/updates-doc.md

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,28 @@ Check out the latest updates to our UID2 documentation resources.
2020
Use the Tags toolbar to view a subset of documentation updates.
2121
:::
2222

23+
## Q1 2026
24+
25+
The following documents were released in the first quarter of 2026.
26+
27+
<CustomTagsContainer tags="Endpoints, SDKs, Opt-Out">
28+
29+
### Removal of optout_check Parameter
30+
31+
February 10, 2026
32+
33+
The `optout_check` parameter has been removed from the [POST&nbsp;/token/generate](../endpoints/post-token-generate.md) endpoint. Opt-out checks are now handled automatically so publishers no longer need to include this parameter in their requests.
34+
35+
Related SDK functions have also been deprecated and removed from documentation:
36+
- Java SDK: `doNotGenerateTokensForOptedOut()`
37+
- Python SDK: `do_not_generate_tokens_for_opted_out()`
38+
39+
All code examples and integration guides have been updated to reflect these changes.
40+
41+
<!-- UID2-6511 -->
42+
43+
</CustomTagsContainer>
44+
2345
## Q4 2025
2446

2547
The following documents were released in this quarter.

docs/sdks/sdk-ref-java.md

Lines changed: 4 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -147,16 +147,10 @@ If you're using the SDK's HTTP implementation, follow these steps.
147147

148148
2. Call a function that takes the user's email address or phone number as input and generates a `TokenGenerateResponse` object. The following example uses an email address:
149149
```java
150-
TokenGenerateResponse tokenGenerateResponse = publisherUid2Client.generateTokenResponse(TokenGenerateInput.fromEmail("user@example.com").doNotGenerateTokensForOptedOut());
150+
TokenGenerateResponse tokenGenerateResponse = publisherUid2Client.generateTokenResponse(TokenGenerateInput.fromEmail("user@example.com"));
151151
```
152152

153-
:::important
154-
<!-- - Be sure to call the POST&nbsp;/token/generate endpoint only when you have a legal basis to convert the user’s <Link href="../ref-info/glossary-uid#gl-dii">directly identifying information (DII)</Link> to UID2 tokens for targeted advertising.
155-
156-
- --> Always apply `doNotGenerateTokensForOptedOut()`. This applies a parameter similar to setting `optout_check=1` in the call to the POST&nbsp;/token/generate endpoint (see [Unencrypted JSON Body Parameters](../endpoints/post-token-generate.md#unencrypted-json-body-parameters)).
157-
:::
158-
159-
<!-- uid2_euid_diff re legal basis for admonition above (first bullet not in UID2) -->
153+
<!-- uid2_euid_diff: admonition re legal basis (in EUID not in UID2)-->
160154

161155
#### Basic Usage, Client-Server Integration
162156

@@ -224,21 +218,16 @@ If you're using server-side integration (see [Publisher Integration Guide, Serve
224218
2. Call a function that takes the user's email address or phone number as input and creates a secure request data envelope. See [Encrypting requests](../getting-started/gs-encryption-decryption.md#encrypting-requests). The following example uses an email address:
225219
226220
```java
227-
EnvelopeV2 envelope = publisherUid2Helper.createEnvelopeForTokenGenerateRequest(TokenGenerateInput.fromEmail("user@example.com").doNotGenerateTokensForOptedOut());
221+
EnvelopeV2 envelope = publisherUid2Helper.createEnvelopeForTokenGenerateRequest(TokenGenerateInput.fromEmail("user@example.com"));
228222
```
229223
3. Using an HTTP client library of your choice, post this envelope to the [POST&nbsp;token/generate](../endpoints/post-token-generate.md) endpoint, including headers and body:
230224
1. Headers: Depending on your HTTP library, this might look something like the following:
231225
232226
`.putHeader("Authorization", "Bearer " + UID2_API_KEY)`
233227
`.putHeader("X-UID2-Client-Version", PublisherUid2Helper.getVersionHttpHeader())`
234228
2. Body: `envelope.getEnvelope()`
235-
:::important
236-
<!-- - Be sure to call the POST&nbsp;/token/generate endpoint only when you have a legal basis to convert the user’s <Link href="../ref-info/glossary-uid#gl-dii">directly identifying information (DII)</Link> to UID2 tokens for targeted advertising.
237-
238-
- --> Always apply `doNotGenerateTokensForOptedOut()`. This applies a parameter similar to setting `optout_check=1` in the call to the POST&nbsp;/token/generate endpoint (see [Unencrypted JSON Body Parameters](../endpoints/post-token-generate.md#unencrypted-json-body-parameters)).
239-
:::
240229
241-
<!-- uid2_euid_diff re legal basis for admonition above (first bullet not in UID2) -->
230+
<!-- uid2_euid_diff: admonition re legal basis (in EUID not in UID2)-->
242231
243232
4. If the HTTP response status code is _not_ 200, see [Response Status Codes](../endpoints/post-token-generate.md#response-status-codes) to determine next steps. Otherwise, convert the UID2 identity response content into a `TokenGenerateResponse` object:
244233

docs/sdks/sdk-ref-python.md

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -158,16 +158,10 @@ Decryption response codes, and their meanings, are shown in the following table.
158158
2. Call a function that takes the user's email address or phone number as input and generates a `TokenGenerateResponse` object. The following example uses an email address:
159159

160160
```py
161-
token_generate_response = client.generate_token(TokenGenerateInput.from_email("user@example.com").do_not_generate_tokens_for_opted_out())
161+
token_generate_response = client.generate_token(TokenGenerateInput.from_email("user@example.com"))
162162
```
163163

164-
<!-- :::important
165-
Be sure to call this function only when you have a legal basis to convert the user’s <Link href="../ref-info/glossary-uid#gl-dii">directly identifying information (DII)</Link> to UID2 tokens for targeted advertising.
166-
:::
167-
168-
<!-- uid2_euid_diff re legal basis for admonition above (not in UID2) -->
169-
170-
`do_not_generate_tokens_for_opted_out()` applies `optout_check=1` in the [POST&nbsp;/token/generate](../endpoints/post-token-generate.md) call. Without this, `optout_check` is omitted to maintain backwards compatibility.
164+
<!-- uid2_euid_diff: admonition re legal basis (in EUID not in UID2)-->
171165

172166
### Client-Server Integration
173167

0 commit comments

Comments
 (0)