> For the complete documentation index, see [llms.txt](https://aatkit.gitbook.io/rtbsdk-release-notes/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://aatkit.gitbook.io/rtbsdk-release-notes/ios/release-notes-1.md).

# Beta Release Notes

### 1.10 Beta

<details>

<summary>1.10.0-beta2</summary>

2026-06-19

### **Changes**

* Re-published last beta on new server.

</details>

<details>

<summary>1.10.0-beta1</summary>

2026-05-13

{% hint style="warning" %}
**Important Change in SPM distribution**

**Swift Package Manager distribution has been split into three separate repositories.** CocoaPods integration is unchanged.
{% endhint %}

**How to integrate via SPM**

* **Core SDK** — required for every integration. Contains `RTBSDK` and `OMSDK_Addapptr`, with no third-party dependencies.
  * Repository (stays the same): <https://github.com/AddApptr/RTBSDK>&#x20;
* **AppLovin mediation adapter** — add only if you mediate AppLovin.
  * Repository: <https://github.com/AddApptr/RTBSDK-AppLovin>
* **AdMob mediation adapter** — add only if you mediate AdMob.
  * Repository: <https://github.com/AddApptr/RTBSDK-AdMob>

In Xcode: **File → Add Package Dependencies…**, paste the repository URL, pick version `1.10.0-beta1`, and link the libraries to your app target. Repeat for each adapter you use.

**New Features**

* Added support for win/loss notifications in host-side (in-app) auctions.
  * New optional `isAuction: Bool` flag on request configurations — when `true`, the SDK keeps the bid's loss-notice URL (`lurl`) so the integrator can fire it manually.
  * New `didLoseAuction(price: Float)` method provided for all formats, to be called if RTBSDK creative loses in-app auction

**Changes**

* Ad requests are now sent as `POST` with a JSON body.

**Fixes**

* Deep-link clicks (`market://`, custom app schemes, etc.) now resolve correctly.

</details>

### 1.9 Beta

<details>

<summary>1.9.0-beta3</summary>

25-10-23

**Changes**

* Update the minimum supported iOS version to 13.&#x30;**.**
* Use IDFV instead of IDFA when tracking is disabled, provided **GDPR** or **CCPA** consent has been granted.

</details>

<details>

<summary>1.9.0-beta2</summary>

25-10-08

#### Library Updates <a href="#library-updates" id="library-updates"></a>

* AppLovinSDK to 13.4.0
* GoogleMobileAds to 12.12.0

</details>

<details>

<summary>1.9.0-beta1</summary>

25-08-18

### New Features <a href="#new-features" id="new-features"></a>

* Added support for [hybrid native ads](https://aatkit.gitbook.io/rtbsdk-ios-integration/formats/advanced/beta-hybrid-native-ads) format allowing to combine banner and native ad request.

</details>

### 1.8 Beta

<details>

<summary>1.8.0-beta4</summary>

2025-07-18

#### Fixes

* Fix an issue with Meta signals encoding.

</details>

<details>

<summary>1.8.0-beta2</summary>

2025-07-01

#### New Features

* Introduce support for passing `GPID`&#x20;
  * Banners:
    * ```
      let configuration = RTBBannerRequestConfiguration(placementId: <PLACEMENT_ID>, iTunesAppId: "<ITUNES_APP_ID>")
      configuration.gpid = "<YOUR_GPID_VALUE>"
      bannerView.load(configuration: configuration)
      ```
  * Fullscreen:
    * ```
      let configuration = RTBFullscreenRequestConfiguration(placementId: <PLACEMENT_ID>, iTunesAppId: "<ITUNES_APP_ID>")
      configuration.gpid = "<YOUR_GPID_VALUE>"
      fullscreenAd.load(configuration: configuration)
      ```
  * Rewarded Video:
    * ```
      let configuration = RTBRewardedVideoRequestConfiguration(placementId: <PLACEMENT_ID>, iTunesAppId: "<ITUNES_APP_ID>")
      configuration.gpid = "<YOUR_GPID_VALUE>"
      rewardedVideoAd.load(configuration: configuration)
      ```
  * Native Ads:
    * ```
      let configuration = RTBNativeAdRequestConfiguration(placementId: <PLACEMENT_ID>, iTunesAppId: "<ITUNES_APP_ID>")
      configuration.gpid = "<YOUR_GPID_VALUE>"
      nativeAdLoader?.load(configuration: requestConfiguration)
      ```

</details>

<details>

<summary>1.8.0-beta1</summary>

2025-06-17

#### New Features

* Introduced support for passing UTIQ identifier:
  * Banners
    * ```
      let configuration = RTBBannerRequestConfiguration(placementId: <PLACEMENT_ID>, iTunesAppId: "<ITUNES_APP_ID>")
      configuration.userTargeting = .init(userId: "<USER_ID>", gender: .male, yearOfBirth: <YEAR_OF_BIRTH>, keywords: ["kw1, kw2, kw3"], utiqAdtechpass: "<UTIQ_ID>")
      bannerView.load(configuration: configuration)
      ```
  * Fullscreen
    * ```
      let configuration = RTBFullscreenRequestConfiguration(placementId: <PLACEMENT_ID>, iTunesAppId: "<ITUNES_APP_ID>")
      configuration.userTargeting = .init(userId: "<USER_ID>", gender: .male, yearOfBirth: <YEAR_OF_BIRTH>, keywords: ["kw1, kw2, kw3"], utiqAdtechpass: "<UTIQ_ID>")
      fullscreenAd.load(configuration: configuration)
      ```
  * Rewarded Video
    * ```
      let configuration = RTBRewardedVideoRequestConfiguration(placementId: <PLACEMENT_ID>, iTunesAppId: "<ITUNES_APP_ID>")
      configuration.userTargeting = .init(userId: "<USER_ID>", gender: .male, yearOfBirth: <YEAR_OF_BIRTH>, keywords: ["kw1, kw2, kw3"], utiqAdtechpass: "<UTIQ_ID>")
      rewardedVideoAd.load(configuration: configuration)
      ```
  * Native Ads
    * ```
      let configuration = RTBNativeAdRequestConfiguration(placementId: <PLACEMENT_ID>, iTunesAppId: "<ITUNES_APP_ID>")
      configuration.userTargeting = .init(userId: "<USER_ID>", gender: .male, yearOfBirth: <YEAR_OF_BIRTH>, keywords: ["kw1, kw2, kw3"], utiqAdtechpass: "<UTIQ_ID>")
      nativeAdLoader?.load(configuration: requestConfiguration)
      ```

</details>

### 1.7 Beta

<details>

<summary>1.7.0-beta3</summary>

2025-05-27

#### New Features

* Implement handling of DSP adapters for rewarded video ads.

</details>

<details>

<summary>1.7.0-beta2</summary>

2025-05-22

#### New Features

* Introduced Rewarded Video ads support for AdMob Custom Events.
* Introduced Rewarded Video ads support in the AppLovin Mediation Adapter.

</details>

<details>

<summary>1.7.0-beta1</summary>

2025-05-15

#### New Features

* Added support for Rewarded Video ads. See the code sample below for basic integration:

```
// Create rewarded video ad instance
let rewardedVideoAd = RTBRewardedVideoAd()

// Set the delegate to listen to events
rewardedVideoAd.delegate = self

// Request the ad
let configuration = RTBRewardedVideoRequestConfiguration(placementId: 3382, iTunesAppId: "449621749")
configuration.sellerId = "<SELLER_ID>" //optional
rewardedVideoAd.load(configuration: configuration)

// After getting the rewardedVideoAdDidReceiveAd callback, you can show the ad by calling
rewardedVideoAd.show(viewController: self)
```

</details>

1.6 Beta

<details>

<summary>1.6.0-beta1</summary>

2025-01-15

#### New Features

* Introduced support for passing user targeting before requesting new ads
  * Banners
    * ```
      let configuration = RTBBannerRequestConfiguration(placementId: <PLACEMENT_ID>, iTunesAppId: "<ITUNES_APP_ID>")
      configuration.userTargeting = .init(userId: "<USER_ID>", gender: .male, yearOfBirth: <YEAR_OF_BIRTH>, keywords: ["kw1, kw2, kw3"])
      // YEAR_OF_BIRTH must be a 4-digit number
      bannerView.load(configuration: configuration)
      ```
  * Fullscreen
    * ```
      let configuration = RTBFullscreenRequestConfiguration(placementId: <PLACEMENT_ID>, iTunesAppId: "<ITUNES_APP_ID>")
      configuration.userTargeting = .init(userId: "<USER_ID>", gender: .male, yearOfBirth: <YEAR_OF_BIRTH>, keywords: ["kw1, kw2, kw3"])
      // YEAR_OF_BIRTH must be a 4-digit number
      fullscreenAd.load(configuration: configuration)
      ```
  * Native Ads
    * ```
      let configuration = RTBNativeAdRequestConfiguration(placementId: <PLACEMENT_ID>, iTunesAppId: "<ITUNES_APP_ID>")
      configuration.userTargeting = .init(userId: "<USER_ID>", gender: .male, yearOfBirth: <YEAR_OF_BIRTH>, keywords: ["kw1, kw2, kw3"])
      // YEAR_OF_BIRTH must be a 4-digit number
      nativeAdLoader?.load(configuration: requestConfiguration)
      ```

</details>

### 1.5 Beta

<details>

<summary>1.5.0-beta3</summary>

2024-11-29

#### New Features

* Introduced support for AdMob Custom Events. For details on integration, refer to the [documentation](https://aatkit.gitbook.io/rtbsdk-ios-integration/other/admob-custom-events-beta).

</details>

<details>

<summary>1.5.0-beta2</summary>

2024-11-15

#### New Features

* Added support for native ads in AppLovin Mediation Adapter.
* Added `displaymanager` and `displaymanagerver` parameters to bid requests.

</details>

<details>

<summary>1.5.0-beta1</summary>

2024-11-04

#### New Features

* Added support for SKAdNetworks.

</details>

### 1.4 Beta

<details>

<summary>1.4.0-beta3</summary>

2024-09-05

#### Fixes

* Fix an issue with Google-Bidding banners where signlas we not being loaded properly.

</details>

<details>

<summary>1.4.0-beta2</summary>

2024-08-22

#### API Changes

* Added `RTBBidInfo` as a parameter to the native ads successful load event.
  * New delegate method:&#x20;
  * `@objc func nativeAdDidReceiveAd(_ nativeAdLoader: RTBSDK.RTBNativeAdLoader, bidInfo: RTBSDK.RTBBidInfo, networkName: String)`

</details>

<details>

<summary>1.4.0-beta1</summary>

2024-08-20

#### New Features

* Added support for native ads. See the [native ads integration guide](https://aatkit.gitbook.io/rtbsdk-ios-integration/formats/advanced/beta-native-ads) to learn more.
* Added OMSDK support for both banners and fullscreen ads.

</details>

### 1.3 Beta

<details>

<summary>1.3.0-beta3</summary>

2024-06-21

#### Fixes

* Resolved an issue with the xcframework version specified in the plist file.

</details>

<details>

<summary>1.3.0-beta2</summary>

#### Fixes

* Remove extra viewability logs.

</details>

<details>

<summary>1.3.0-beta1</summary>

#### Improvements

* Added MRAID support for both banners and fullscreen formats.
* Provided the bidder (DSP name) with bid responses (Check the API changes section for more information).

#### API Changes

* Enhanced the `RTBBannerViewDelegate` by updating the `bannerViewDidReceiveAd` API to include the bidder (DSP name) in the bidding response. The bidder and the bid price are now encapsulated within the new `bidInfo` parameter.
  * The new method signature is `func bannerViewDidReceiveAd(_ bannerView: RTBBannerView, bidInfo: RTBBidInfo, networkName: String)`
* Enhanced the `RTBBannerAdDelegate` by updating the `bannerAdDidReceiveAd` API to include the bidder (DSP name) in the bidding response. The bidder and the bid price are now encapsulated within the new `bidInfo` parameter.
  * The new method signature is `func bannerAdDidReceiveAd(bidInfo: RTBBidInfo, networkName: String)`
* Enhanced the `RTBFullscreenDelegate` by updating the `fullscreenAdDidReceiveAd` API to include the bidder (DSP name) in the bidding response. The bidder and the bid price are now encapsulated within the new `bidInfo` parameter.
  * The new method signature is `func fullscreenAdDidReceiveAd(_ fullscreenAd: RTBFullscreenAd, bidInfo: RTBBidInfo, networkName: String)`
* `RTBBidInfo` interface:

```swift
@objc
public class RTBBidInfo: NSObject {
    @objc var priceCPM: Float
    @objc var bidder: String

    public override var description: String {
        return "RTBBidInfo { priceCPM: \(priceCPM) - bidder: \(bidder) }"
    }
}
```

</details>

### 1.2 Beta

<details>

<summary>1.2.0-beta1</summary>

2024-06-12

#### Improvements

* Added MRAID support for both banners and fullscreen formats.
* Provided the DSP name with bid responses (Check API changes for more information).

#### API Changes

* Enhanced the `RTBBannerAdDelegate` by updating the `bannerAdDidReceiveAd` API to include the DSP name in the bidding response.
  * The new method signature is `func bannerAdDidReceiveAd(bidInfo: RTBBidInfo, networkName: String)`.
* Enhanced the `RTBBannerViewDelegate` by updating the `bannerViewDidReceiveAd` API to include the DSP name in the bidding response.
  * The new method signature is `func bannerViewDidReceiveAd(_ bannerView: RTBBannerView, bidInfo: RTBBidInfo, networkName: String)`.
* Enhanced the `RTBFullscreenDelegate` by updating the `fullscreenAdDidReceiveAd` API to include the DSP name in the bidding response.
  * The new method signature is `func fullscreenAdDidReceiveAd(_ fullscreenAd: RTBFullscreenAd, bidInfo: RTBBidInfo, networkName: String)`.
* RTBBidInfo Interface:

<pre class="language-swift"><code class="lang-swift"><strong>@objc
</strong>public class RTBBidInfo: NSObject {
    @objc var priceCPM: Float
    @objc var bidder: String

    public override var description: String {
        return "RTBBidInfo { priceCPM: \(priceCPM) - bidder: \(bidder) }"
    }
}
</code></pre>

</details>

### 1.1 Beta

<details>

<summary>1.1.0-beta1</summary>

2024-02-22

#### Changes

* Implement Google Bidding. Google Bidding can and may only be used via Gravite's mediation SDK [AATKit](https://aatkit.gitbook.io/release-notes).

</details>

### 1.0 Beta

<details>

<summary>1.0.0-beta07</summary>

2024-02-02

#### Changes

* Add fullscreen close button delay (configurable from the dashboard).
* Use WKWebView instead of UIWebView.
* Add `sellerId` parameter to the Ad Request configuration object.

</details>
