diff --git a/docs/guides/integration-javascript-client-server.md b/docs/guides/integration-javascript-client-server.md index 97d50d5a7..a2aec5942 100644 --- a/docs/guides/integration-javascript-client-server.md +++ b/docs/guides/integration-javascript-client-server.md @@ -11,6 +11,7 @@ import Link from '@docusaurus/Link'; import SnptIntegratingWithSSO from '../snippets/_snpt-integrating-with-sso.mdx'; import SnptPreparingEmailsAndPhoneNumbers from '../snippets/_snpt-preparing-emails-and-phone-numbers.mdx'; import SnptExampleClientServerSendUid2ToSdk from '../snippets/_snpt-example-client-server-send-uid2-to-sdk.mdx'; +import SnptIos27WebkitNote from '../snippets/_snpt-ios27-webkit-note.mdx'; import SnptUidVerifyInspect from '../snippets/_snpt-uid-verify-inspect.mdx'; # Client-server integration guide for JavaScript @@ -43,6 +44,12 @@ For integration scenarios for publishers that do not use the SDK for JavaScript, If you are using Google Ad Manager and want to use the secure signals feature, first follow the steps in this guide and then follow the additional steps in the [Google Ad Manager Secure Signals integration guide](integration-google-ss.md). ::: +:::note + + +**Required action:** On affected browsers, generate and refresh UID2 tokens on your server. See [Publisher integration guide, server-side](integration-publisher-server-side.md). +::: + ## Integrating with single sign-on (SSO) diff --git a/docs/guides/integration-javascript-client-side.md b/docs/guides/integration-javascript-client-side.md index 47ef12a10..f1342b4be 100644 --- a/docs/guides/integration-javascript-client-side.md +++ b/docs/guides/integration-javascript-client-side.md @@ -12,6 +12,7 @@ import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; import SnptIntegratingWithSSO from '../snippets/_snpt-integrating-with-sso.mdx'; import SnptPreparingEmailsAndPhoneNumbers from '../snippets/_snpt-preparing-emails-and-phone-numbers.mdx'; +import SnptIos27WebkitNote from '../snippets/_snpt-ios27-webkit-note.mdx'; import SnptUidVerifyInspect from '../snippets/_snpt-uid-verify-inspect.mdx'; # Client-side integration guide for JavaScript @@ -44,6 +45,12 @@ To implement, you'll need to complete the following steps: 3. [Configure the SDK for JavaScript](#configure-the-sdk-for-javascript) 4. [Check that the token was successfully generated](#check-that-the-token-was-successfully-generated) +:::note + + +**Required action:** This client-side integration is not supported in affected browsers. Use a server-side integration to generate and refresh UID2 tokens. See [Publisher integration guide, server-side](integration-publisher-server-side.md). +::: + ## SDK for JavaScript version Support for client-side token generation is available in version 3.4.5 and above of the SDK. diff --git a/docs/guides/integration-options-publisher-web.md b/docs/guides/integration-options-publisher-web.md index aba313db0..d7f25a347 100644 --- a/docs/guides/integration-options-publisher-web.md +++ b/docs/guides/integration-options-publisher-web.md @@ -8,6 +8,7 @@ displayed_sidebar: sidebarPublishers import Link from '@docusaurus/Link'; import SnptIntegratingWithSSO from '../snippets/_snpt-integrating-with-sso.mdx'; import SnptUidVerifyInspect from '../snippets/_snpt-uid-verify-inspect.mdx'; +import SnptIos27WebkitNote from '../snippets/_snpt-ios27-webkit-note.mdx'; import SnptPreparingEmailsAndPhoneNumbers from '../snippets/_snpt-preparing-emails-and-phone-numbers.mdx'; # Publisher web integration overview @@ -45,6 +46,12 @@ To accomplish all steps, you can combine solutions. For example, you could use t +:::note + + +**Required action:** On affected browsers, use a server-side solution to generate and refresh UID2 tokens. See [Publisher integration guide, server-side](integration-publisher-server-side.md). +::: + ## Integrating with single sign-on (SSO) diff --git a/docs/guides/integration-prebid-client-server.md b/docs/guides/integration-prebid-client-server.md index 8a2a819ff..1ebb252a7 100644 --- a/docs/guides/integration-prebid-client-server.md +++ b/docs/guides/integration-prebid-client-server.md @@ -112,6 +112,10 @@ There are two ways to refresh a UID2 token, as shown in the following table. ### Client Refresh mode +:::note +Client Refresh mode is not supported in all browsers on iOS 27 or later or in Safari on macOS 27 or later because Prebid.js cannot refresh UID2 tokens in the browser. Use [server-only mode](#server-only-mode) instead. +::: + You must provide the Prebid module with the full JSON response body from the applicable endpoint: - [POST /token/generate](../endpoints/post-token-generate.md) for a new UID2 token. @@ -192,6 +196,10 @@ For information on how to determine if you need to provide a new token, see [Det ### Server-only mode +:::note +Use this mode for all browsers on iOS 27 or later and Safari on macOS 27 or later. Generate and refresh UID2 tokens on your server. +::: + In server-only mode, only the advertising token is provided to the module. The module cannot refresh the token. You are responsible for implementing a way to refresh the token. To configure the module to use server-only mode, do **one** of the following: diff --git a/docs/guides/integration-prebid-client-side.md b/docs/guides/integration-prebid-client-side.md index 62976377c..6a987e3b4 100644 --- a/docs/guides/integration-prebid-client-side.md +++ b/docs/guides/integration-prebid-client-side.md @@ -12,6 +12,7 @@ import SnptIntegratingWithSSO from '../snippets/_snpt-integrating-with-sso.mdx'; import SnptPreparingEmailsAndPhoneNumbers from '../snippets/_snpt-preparing-emails-and-phone-numbers.mdx'; import SnptAddPrebidjsToYourSite from '../snippets/_snpt-prebid-add-prebidjs-to-your-site.mdx'; import SnptStoreUID2TokenInBrowser from '../snippets/_snpt-prebid-storing-uid2-token-in-browser.mdx'; +import SnptIos27WebkitNote from '../snippets/_snpt-ios27-webkit-note.mdx'; import SnptUidVerifyInspect from '../snippets/_snpt-uid-verify-inspect.mdx'; # Client-side integration guide for Prebid.js @@ -20,6 +21,12 @@ This guide is for publishers who have access to + +### iOS 27 and macOS 27 web integration limitations + +October 9, 2026 + +Starting with iOS 27 and macOS 27, WebKit blocks client-side requests to `uidapi.com`. We've added notes to the web integration guides and the SDK for JavaScript reference explaining that, in affected browsers, the SDK can't be loaded from the UID2 CDN and tokens can't be generated or refreshed in the browser. The notes link to server-side alternatives. + +For details, see [Publisher integration guide, server-side](../guides/integration-publisher-server-side.md) and [SDK for JavaScript reference guide](../sdks/sdk-ref-javascript.md). + + + + + ## Q2 2026 The following documents were released in the second quarter of 2026. diff --git a/docs/sdks/sdk-ref-javascript.md b/docs/sdks/sdk-ref-javascript.md index 8e010995c..9f396badf 100644 --- a/docs/sdks/sdk-ref-javascript.md +++ b/docs/sdks/sdk-ref-javascript.md @@ -11,6 +11,7 @@ import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; import SnptExampleUid2Cookie from '../snippets/_snpt-example-uid2-cookie.mdx'; import SnptExampleJavaScriptInit from '../snippets/_snpt-example-javascript-init.mdx'; +import SnptIos27WebkitNote from '../snippets/_snpt-ios27-webkit-note.mdx'; # SDK for JavaScript reference guide @@ -26,6 +27,12 @@ For integration steps for publishers, refer to one of the following: - [Client-side integration guide for JavaScript](../guides/integration-javascript-client-side.md) - [Client-server integration guide for JavaScript](../guides/integration-javascript-client-server.md) +:::note + + +**Required action:** The SDK for JavaScript no longer works on these browsers. Use a server-side integration to generate and refresh tokens instead. See [Publisher integration guide, server-side](../guides/integration-publisher-server-side.md). +::: + ## SDK version This page describes version 4 of the UID2 SDK for JavaScript, which is the latest version. If you're using an earlier version, we recommend that you upgrade your integration, using the [migration guide](#migration-guide). If needed, documentation is also available for the following earlier versions: diff --git a/docs/snippets/_snpt-ios27-webkit-note.mdx b/docs/snippets/_snpt-ios27-webkit-note.mdx new file mode 100644 index 000000000..989edace4 --- /dev/null +++ b/docs/snippets/_snpt-ios27-webkit-note.mdx @@ -0,0 +1,6 @@ +**Web integration limitations on iOS 27 and macOS 27.** Starting with iOS 27 and macOS 27, WebKit blocks client-side requests to `uidapi.com`. This affects all browsers on iOS 27 or later, including Safari and Chrome, and Safari on macOS 27 or later. + +As a result, affected browsers cannot: +- Load the UID2 SDK for JavaScript from the UID2 CDN +- Generate UID2 tokens in the browser +- Refresh UID2 tokens in the browser