diff --git a/docs/guides/integration-javascript-client-server.md b/docs/guides/integration-javascript-client-server.md
index 97d50d5a7..ce3a92b2f 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
+
+
+**Action required**: On affected browsers, generate and refresh UID2 tokens on your server. For details, 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..01ec2d1b1 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
+
+
+**Action required**: This client-side integration is no longer supported in affected browsers (any browser on iOS 27 or later, and Safari on macOS 27 or later). Use a server-side integration to generate and refresh UID2 tokens. For details, 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..98610fd0e 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
+
+
+**Action required**: On affected browsers, use a server-side integration to generate and refresh UID2 tokens. For details, 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..21a4adb54 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 browser requests to `uidapi.com`. In any browser on iOS 27 or later, and in Safari on macOS 27 or later, the SDK for JavaScript can't load from the UID2 CDN, and tokens can't be generated or refreshed in the browser. This also affects the client-side and client-server refresh flows in Prebid.js.
+
+We've added notes about this to the web integration guides, the Prebid.js guides, and the SDK for JavaScript reference. In affected browsers, use a server-side integration to generate and refresh UID2 tokens.
+
+For details, see [Publisher integration guide, server-side](../guides/integration-publisher-server-side.md), [Client-server integration guide for Prebid.js](../guides/integration-prebid-client-server.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..fa883fb58 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
+
+
+**Action required**: The SDK for JavaScript is no longer supported in affected browsers. Use a server-side integration to generate and refresh UID2 tokens instead. For details, 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