Skip to main content

Overview

Display backfill ads in your WebView by registering it with the Adrop SDK. This allows web content within your app to show ads through the Adrop platform.

AndroidManifest.xml Configuration

Add the following to your AndroidManifest.xml to enable backfill ads in WebView:
AndroidManifest.xml
<manifest>
    <application>
        <!-- WebView Backfill Ad Integration -->
        <meta-data
            android:name="com.google.android.gms.ads.INTEGRATION_MANAGER"
            android:value="webview"/>
    </application>
</manifest>
This configuration is required for backfill ads to work properly in WebView. Without it, backfill ads may not display.

Register WebView

import android.webkit.WebView
import io.adrop.ads.Adrop

class WebViewActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)

        val webView = findViewById<WebView>(R.id.webView)

        // Register WebView for backfill ads support
        // Call as early as possible, before loading content
        Adrop.registerWebView(webView)

        // Load your web content
        webView.loadUrl("https://your-website.com")
    }
}
registerWebView() automatically configures optimal WebView settings:
  • JavaScript enabled
  • DOM storage enabled
  • Media playback without user gesture
  • Third-party cookies enabled
Call this method on the main thread, as early as possible (e.g., in onCreate).
Backfill ads in WebView requires adrop-ads-backfill module. If the module is not installed, registerWebView() is silently ignored.

Handling External URLs

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 android.content.Intent
import android.net.Uri
import android.webkit.WebResourceRequest
import android.webkit.WebView
import android.webkit.WebViewClient

val allowedHost = "my-domain.com"

webView.webViewClient = object : WebViewClient() {
    override fun shouldOverrideUrlLoading(view: WebView, request: WebResourceRequest): Boolean {
        val url = request.url
        val 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 gestures — do not block them
        if (!host.contains(allowedHost) && request.hasGesture()) {
            view.context.startActivity(Intent(Intent.ACTION_VIEW, url))
            return true
        }
        return false
    }
}
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.

Banner Ads

Learn how to integrate banner ads

Reference

API reference

Examples

Example repository