         if isJsReady {
             slotOpener?()
         }
+    }
+
+    private func createContainerView(topOffset: CGFloat, bottomOffset: CGFloat) -> UIView {
+        let container = UIView()
+        container.clipsToBounds = true
+        container.translatesAutoresizingMaskIntoConstraints = false
+        if let webView = webView {
+            webView.scrollView.addSubview(container)
+            NSLayoutConstraint.activate([
+                container.topAnchor.constraint(equalTo: webView.topAnchor, constant: topOffset),
+                container.bottomAnchor.constraint(equalTo: webView.bottomAnchor, constant: -bottomOffset),
+                container.leadingAnchor.constraint(equalTo: webView.leadingAnchor),
+                container.trailingAnchor.constraint(equalTo: webView.trailingAnchor),
+            ])
+        }
+        return container
     }
 
     /// Update the slot height with the given ad ratio

    /// - Parameters:
    ///   - ad: inRead ad
    ///   - adRatio: ratio of the ad
    ///
    /// - Note:
    ///   sould be called from
    ///   ```TeadsInReadAdPlacementDelegate.didReceiveAd(ad: TeadsInReadAd, adRatio: TeadsAdRatio)```
    @objc public func openSlot(ad: TeadsInReadAd, adRatio: TeadsAdRatio) {
        openSlot(adView: TeadsInReadAdView(bind: ad), adRatio: adRatio)
    }

    @objc public func openSlot(adView: UIView, adRatio: TeadsAdRatio = .default) {
        slotOpener = { [self] in
            // update slot with the right ratio
            self.updateSlot(adRatio: adRatio)

            // in case openSlot is called multiple times
            self.adView?.removeFromSuperview()

            adView.translatesAutoresizingMaskIntoConstraints = false
            self.containerView = createContainerView(topOffset: topOffset, bottomOffset: bottomOffset)
            self.containerView?.addSubview(adView)
            self.adView = adView
            self.evaluateBootstrapInput(JSBootstrapInput.showPlaceholder(0)) { [weak delegate] _, error in
                if error != nil {
                    delegate?.webViewHelperOnError(error: "openSlot failed")
