Display backfill ads in your WKWebView by registering it with the Adrop SDK. This allows web content within your app to show ads through the Adrop platform.
import WebKitimport AdropAdsclass WebViewController: UIViewController { @IBOutlet weak var webView: WKWebView! override func viewDidLoad() { super.viewDidLoad() // Initialize a WKWebViewConfiguration object. let webViewConfiguration = WKWebViewConfiguration() // Let HTML videos with a "playsinline" attribute play inline. webViewConfiguration.allowsInlineMediaPlayback = true // Let HTML videos with an "autoplay" attribute play automatically. webViewConfiguration.mediaTypesRequiringUserActionForPlayback = [] // Initialize the WKWebView with your WKWebViewConfiguration object. webView = WKWebView(frame: view.frame, configuration: webViewConfiguration) // Register WebView for backfill ads support // Call as early as possible, before loading content Adrop.registerWebView(webView) // Load your web content if let url = URL(string: "https://your-website.com") { webView.load(URLRequest(url: url)) } }}
registerWebView() must be called on the main thread.
Call this method as early as possible (e.g., in viewDidLoad), before loading any web content.
Backfill ads in WebView requires adrop-ads-backfill module. If the module is not installed, registerWebView() is silently ignored.
If your app opens non-own-domain URLs in an external browser, you must ensure that ad resource requests (e.g., googleads.g.doubleclick.net) are not blocked.Ad resources such as iframes and scripts are loaded automatically by the ad SDK — they are not user-initiated navigations. Only redirect user-initiated main frame navigations to an external browser.
import UIKitimport WebKitlet allowedHost = "my-domain.com"func webView(_ webView: WKWebView, decidePolicyFor navigationAction: WKNavigationAction, decisionHandler: @escaping (WKNavigationActionPolicy) -> Void) { guard let url = navigationAction.request.url else { decisionHandler(.cancel) return } let host = url.host ?? "" // Only redirect user-initiated navigations to external browser // Ad resources (e.g., googleads.g.doubleclick.net) load via iframes/scripts, // not user clicks — do not block them if !host.contains(allowedHost), navigationAction.navigationType == .linkActivated { UIApplication.shared.open(url, options: [:], completionHandler: nil) decisionHandler(.cancel) return } decisionHandler(.allow)}
Do not block or redirect all non-own-domain requests. Ad resources like googleads.g.doubleclick.net are loaded automatically during the backfill ad process and must be allowed to load within the WebView.