AI-generated Key Takeaways
-
Configure
WebView
instances to enable optimal ad monetization. -
Enable third-party cookies to improve user ad experience and align with Chrome's cookie policy.
-
Adjust default
WebView
settings usingWebSettings
APIs to enable JavaScript, access to local storage, and automatic video play. -
Load web content from network-based URLs using
loadUrl()
for optimizedWebView
performance and monetization. -
Test your
WebView
configuration with the provided test URL to verify that settings have the intended effect on ads.
If your app utilizes
to display web content, it's recommended to configure it so that content can be optimally monetized with ads.WebView
This guide shows you how to provide information about how to configure a WebView
object.
Enable third-party cookies
To improve your user's ad experience and be consistent with Chrome's cookie policy, enable third-party cookies on your WebView
instance.
Java
CookieManager.getInstance().setAcceptThirdPartyCookies(webView, true);
Kotlin
CookieManager.getInstance().setAcceptThirdPartyCookies(webView, true)
Web settings
Default WebView
settings are not optimized for ads. Use the WebSettings
APIs to configure your WebView
for:
- JavaScript
- Access to local storage
Automatic video play
Java
import android.webkit.CookieManager; import android.webkit.WebView; public class MainActivity extends AppCompatActivity { private WebView webView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); webView = findViewById(R.id.webview); // Let the web view accept third-party cookies. CookieManager.getInstance().setAcceptThirdPartyCookies(webView, true); // Let the web view use JavaScript. webView.getSettings().setJavaScriptEnabled(true); // Let the web view access local storage. webView.getSettings().setDomStorageEnabled(true); // Let HTML videos play automatically. webView.getSettings().setMediaPlaybackRequiresUserGesture(false); } }
Kotlin
import android.webkit.CookieManager import android.webkit.WebView class MainActivity : AppCompatActivity() { lateinit var webView: WebView override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) webView = findViewById(R.id.webview) // Let the web view accept third-party cookies. CookieManager.getInstance().setAcceptThirdPartyCookies(webView, true) // Let the web view use JavaScript. webView.settings.javaScriptEnabled = true // Let the web view access local storage. webView.settings.domStorageEnabled = true // Let HTML videos play automatically. webView.settings.mediaPlaybackRequiresUserGesture = false } }
Load web view content
Cookies and page URLs are important for web view monetization and only function as expected when loadUrl()
is used with a network-based URL. For optimized WebView
performance, load web content directly from network-based URLs. Avoid using WebViewAssetLoader
, loading assets from the device, or generating web content dynamically.
Java
import android.webkit.CookieManager; import android.webkit.WebView; public class MainActivity extends AppCompatActivity { private WebView webView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); webView = findViewById(R.id.webview); // Let the web view accept third-party cookies. CookieManager.getInstance().setAcceptThirdPartyCookies(webView, true); // Let the web view use JavaScript. webView.getSettings().setJavaScriptEnabled(true); // Let the web view access local storage. webView.getSettings().setDomStorageEnabled(true); // Let HTML videos play automatically. webView.getSettings().setMediaPlaybackRequiresUserGesture(false); // Load the URL for optimized web view performance. webView.loadUrl("https://google.github.io/webview-ads/test/"); } }
Kotlin
import android.webkit.CookieManager import android.webkit.WebView class MainActivity : AppCompatActivity() { lateinit var webView: WebView override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) webView = findViewById(R.id.webview) // Let the web view accept third-party cookies. CookieManager.getInstance().setAcceptThirdPartyCookies(webView, true) // Let the web view use JavaScript. webView.settings.javaScriptEnabled = true // Let the web view access local storage. webView.settings.domStorageEnabled = true // Let HTML videos play automatically. webView.settings.mediaPlaybackRequiresUserGesture = false // Load the URL for optimized web view performance. webView.loadUrl("https://google.github.io/webview-ads/test/") } }
Test the web view
During app development, we recommend that you load this test URL:
https://google.github.io/webview-ads/test/
to verify these settings have the intended effect on ads. The test URL has success criteria for a complete integration if the following are observed:
Web view settings
- Third-party cookies work
- First-party cookies work
- JavaScript enabled
- DOM storage enabled
Video ad
- The video ad plays inline and does not open in the full screen built-in player
- The video ad plays automatically without clicking the play button
- The video ad is replayable
After testing is complete, substitute the test URL with the URL the web view intends to load.