---
title: "Migrate Adapty iOS SDK to v3.15"
description: "Migrate to Adapty iOS SDK v3.15 for better performance and new monetization features."
---

If you use [Paywall Builder](adapty-paywall-builder) in [Observer mode](observer-vs-full-mode), starting from iOS SDK 3.15, you need to implement a new method `observerModeDidInitiateRestorePurchases(onStartRestore:onFinishRestore:)`. This method provides more control over the restore logic, allowing you to handle restore purchases in your custom flow. For complete implementation details, refer to [Present Paywall Builder paywalls in Observer mode](ios-present-paywall-builder-paywalls-in-observer-mode).

```diff showLineNumbers
func observerMode(didInitiatePurchase product: AdaptyPaywallProduct,
                 onStartPurchase: @escaping () -> Void,
                 onFinishPurchase: @escaping () -> Void) {
      // use the product object to handle the purchase
      // use the onStartPurchase and onFinishPurchase callbacks to notify AdaptyUI about the process of the purchase
}

+ func observerModeDidInitiateRestorePurchases(onStartRestore: @escaping () -> Void,
+                                            onFinishRestore: @escaping () -> Void) {
+      // use the onStartRestore and onFinishRestore callbacks to notify AdaptyUI about the process of the restore
+ }
```