# Release Notes

| Version | Release Date | Notes |
|---|---|---|
| 23.1.0 | 2026-02-23 | - Updates nonce creation to comply with the [Transparency and Consent Framework (TCF)](https://iabtechlab.com/standards/gdpr-transparency-and-consent-framework/) v2.3 regulations. |
| 23.0.0 | 2025-12-08 | - Updates how PAL handles user privacy and data usage by adding the [`ConsentSettings.Builder.forceLimitedAds`](https://developers.google.com/ad-manager/pal/android/api/com/google/ads/interactivemedia/pal/ConsentSettings.Builder#forceLimitedAds(java.lang.Boolean)) property and removing the existing `ConsentSettings.Builder.allowStorage` property. For more information about this change, see [Limited ads and first party identifier settings](https://developers.google.com/ad-manager/pal/android/limited-ads-first-party-identifier-settings). - Adds support for reading [Transparency and Consent Framework (TCF)](https://support.google.com/admanager/answer/9805023) data from the device to determine user consent for local storage. - Adds support for detecting invalid traffic in programmatic limited ads. - Adds app desugaring as a requirement for apps integrating the PAL SDK. Apps without desugaring enabled won't build with the current or future PAL versions. To enable app desugaring, see [Add the Android PAL SDK as a library](https://developers.google.com/ad-manager/pal/android/get-started#add_the_android_pal_sdk_as_a_library). - Increases the Android minSdkVersion that PAL supports to 23. - Adds the `androidx.preference:preference` library as a PAL dependency to support parsing TCF data. |
| 22.1.0 | 2025-06-23 | - Updates the PAL SDK to use `palsdk-%d` as the identifier of generated threads to help memory profiling. - Provides public getter functions for `NonceRequest` properties to enable unit tests to inspect `NonceRequest` values and make assertions. |
| 22.0.0 | 2025-01-14 | - Adds the [`GoogleAdManagerSettings`](https://developers.google.com/ad-manager/pal/android/api/com/google/ads/interactivemedia/pal/GoogleAdManagerSettings) class for matching PAL first-party cookie behavior with the corresponding settings set in Google Ad Manager. - Removes the deprecated method `NonceRequest.omidVersion()`. |
| 21.0.0 | 2024-11-05 | - Increases the Android minSdkVersion that PAL supports to 21. - Deprecates `NonceRequest.omidVersion`. Instead, set `omidPartnerName`, `omidPartnerVersion`, and `supportedApiFrameworks` on the `NonceRequest` class. |
| 20.3.0 | 2024-05-29 | - Service release, no new features. |
| 20.2.0 | 2023-11-02 | - Increases the Android minSdkVersion that PAL supports to 19. |
| 20.1.1 | 2023-10-12 | - Adds improvements to PAL error logging for better debugging. |
| 20.1.0 | 2023-08-16 | - Adjusts the log level priority from `ERROR` to `INFO` for nonfatal messages. |
| 20.0.1 | 2022-08-16 | - Fixes default values for Android TV initialization. |
| 20.0.0 | 2022-07-07 | - Adds the [`PlatformSignalCollector`](https://developers.google.com/ad-manager/pal/android/api/com/google/ads/interactivemedia/pal/PlatformSignalCollector) class. `PlatformSignalCollector` is an adapter for providing platform-specific signals to PAL. - Adds [`NonceRequest.Builder.platformSignalCollector()`.](https://developers.google.com/ad-manager/pal/android/api/com/google/ads/interactivemedia/pal/NonceRequest.Builder#platformSignalCollector(com.google.ads.interactivemedia.pal.PlatformSignalCollector)) `NonceRequest.Builder.platformSignalCollector()` sets the `PlatformSignalCollector` when building a `NonceRequest`. |
| 19.0.0 | 2022-03-16 | - Adds the `NonceManager.sendAdTouch()`, `NonceManager.sendPlaybackStart()`, and `NonceManager.sendPlaybackEnd()` methods. - Deprecates the `NonceManager.sendTouch()` method in favor of the `NonceManager.sendAdTouch()` method. - Deprecates the `NonceManager.sendAdImpression()` method in favor of the `NonceManager.sendPlaybackStart()` and `NonceManager.sendPlaybackEnd()` method calls. |
| 18.0.0 | 2022-01-11 | - Adds [`ConsentSettings.Builder.directedForChildOrUnknownAge()`](https://developers.google.com/ad-manager/pal/android/api/com/google/ads/interactivemedia/pal/ConsentSettings.Builder#public-abstract-consentsettings.builder-directedforchildorunknownage-boolean-toggle) to indicate whether the ad request will be directed to a child or a user of unknown age. The default value is `false`. - Adds permission for accessing the Advertising ID. To learn more about the `AD_ID` permission declaration, including how to disable it, refer to this [Play Console Help article](https://support.google.com/googleplay/android-developer/answer/6048248). - Adds support for the [app set ID](https://developer.android.com/training/articles/app-set-id) for use cases such as reporting and fraud prevention. |
| 17.1.2 | 2021-08-18 | - Adds the following methods to [`NonceRequest.Builder`](https://developers.google.com/ad-manager/pal/android/api/com/google/ads/interactivemedia/pal/NonceRequest.Builder): - `sessionId` - `supportedApiFrameworks` |
| 17.1.1 | 2021-07-08 | - Service release; no new features. |
| 17.1.0 | 2021-02-04 | - Changes the default behavior of the SDK by not including advertising identifiers without user consent. - Adds the new [ConsentSettings](https://developers.google.com/ad-manager/pal/android/api/com/google/ads/interactivemedia/pal/ConsentSettings) API which allows advertising identifiers to be used. This API informs PAL that appropriate consent has been gathered and the publisher wishes to enable advertising identifiers. If using this in compliance with IAB TCFv2, then the publisher should determine consent by integrating with a Consent Management Provider (CMP). For more information on integration with IAB TCF v2.0 please see this [Ad Manager help article](https://support.google.com/admanager/answer/9805023). - Creating a new instances of the [NonceLoader](https://developers.google.com/ad-manager/pal/android/api/com/google/ads/interactivemedia/pal/NonceLoader) will now reset the correlator ID. Previously the correlator ID would remain constant. |
| 17.0.7 Deprecated | 2021-01-21 | - **Deprecated release.** Please use v17.1.0 or higher. |
| 17.0.5 | 2020-07-08 | - Fixed a bug where the PAL nonce would fail to be generated if the first attempt occurred while offline. - Fixed an issue where non-valid correlator values could be generated by the SDK. |
| 17.0.3 | 2020-02-04 | - Service release; no new features. |
| 17.0.2 | 2019-10-01 | - Service release; no new features. |
| 17.0.0 | 2019-08-22 | - Replaced `NonceGenerator` with `NonceLoader`, `NonceManager`, and `NonceRequest`. - Play Services PAL no longer requires a specific version of Play Services Ads. |
| 16.3.4 | 2018-09-07 | - Initial release. |