diff --git a/dev-docs/bidder-adaptor.md b/dev-docs/bidder-adaptor.md
index e6f682b11f..8aafc724bf 100644
--- a/dev-docs/bidder-adaptor.md
+++ b/dev-docs/bidder-adaptor.md
@@ -380,7 +380,8 @@ Some of the data in `ortb2` is also made available through other `bidderRequest`
{: .alert.alert-warning :}
-Since version 8, `auctionId` and `transactionId` are being migrated to `ortb2.source.tid` and `ortb2Imp.ext.tid` respectively; and are disabled by default, requiring [publisher opt-in](https://docs.prebid.org/dev-docs/pb8-notes.html#transaction-identifiers-are-now-reliable-and-opt-in).
+Since version 8, `auctionId` and `transactionId` are being migrated to `ortb2.source.tid` and `ortb2Imp.ext.tid` respectively. As of 10.9.0, these values are now generated to be unique for each bidder. They are also disabled by default, requiring [publisher opt-in](https://docs.prebid.org/dev-docs/pb8-notes.html#transaction-identifiers-are-now-reliable-and-opt-in).
+
When disabled, `auctionId`/`transactionId` are set to `null`; `ortb2.source.tid`/`ortb2Imp.ext.tid` are not populated. Your adapter should prefer the latter two, and be able to handle the case when they are undefined.
diff --git a/dev-docs/publisher-api-reference/setConfig.md b/dev-docs/publisher-api-reference/setConfig.md
index 3b8efb71d6..2a4eb21edb 100644
--- a/dev-docs/publisher-api-reference/setConfig.md
+++ b/dev-docs/publisher-api-reference/setConfig.md
@@ -78,13 +78,15 @@ For more information about the asynchronous event loop and `setTimeout`, see [Ho
### Enable sharing of transaction IDs
-
Prebid generates unique IDs for both auctions and ad units within auctions; these can be used by DSPs to correlate requests from different sources, which is useful for many applications but also a potential privacy concern. Since version 8 they are disabled by default (see [release notes](/dev-docs/pb8-notes.html)), and can be re-enabled with `enableTIDs`:
```javascript
pbjs.setConfig({ enableTIDs: true });
```
+{: .alert.alert-warning :}
+Since version 10.9.0 transaction IDs are unique for each bidder and cannot be used to correlate requests from different sources, even when `enableTIDs` is set.
+
### Max Requests Per Origin
diff --git a/features/firstPartyData.md b/features/firstPartyData.md
index c932919c14..e4eea093ee 100644
--- a/features/firstPartyData.md
+++ b/features/firstPartyData.md
@@ -272,24 +272,6 @@ pbjs.addAdUnits({
});
```
-You may also specify adUnit-specific transaction IDs using `ortb2Imp.ext.tid`, and Prebid will use them instead of generating random new ones. This is useful if you are auctioning the same slots through multiple header bidding libraries. Note: you must take care to not re-use the same transaction IDs across different ad units or auctions. Here's a simplified example passing a tid through the [requestBids](/dev-docs/publisher-api-reference/requestBids.html) function:
-
-```javascript
-const tid = crypto.randomUUID();
-pbjs.requestBids({
- adUnits: [{
- code: 'test-div',
- // ...
- ortb2Imp: {
- ext: {
- tid: tid
- }
- }
- }]
-});
-// reuse `tid` when auctioning `test-div` through some other header bidding wrapper
-```
-
{: .alert.alert-info :}
Prebid does not support AdUnit-specific **user** data, nor does it support
bidder-specific AdUnit First Party Data. You could implement either of