如果您的应用使用
展示 Web 内容,建议您对其进行配置,以便通过广告实现内容的最佳创收效果。WebView
本指南介绍如何提供有关如何配置 WebView
对象的信息。
启用第三方 Cookie
为了改善用户的广告体验,并遵守 Chrome 的 Cookie 政策的规定,请在 WebView
实例上启用第三方 Cookie。
Java
CookieManager.getInstance().setAcceptThirdPartyCookies(webView, true);
Kotlin
CookieManager.getInstance().setAcceptThirdPartyCookies(webView, true)
网络设置
默认的 WebView
设置并未针对广告进行优化。请使用 WebSettings
API 来配置 WebView
,以便实现下列功能:
- JavaScript
- 访问本地存储空间
自动播放视频
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
}
}
加载 WebView 内容
Cookie 和网页网址对于 WebView 创收至关重要,只有在 loadUrl()
与基于网络的网址搭配使用时,才能按预期方式发挥作用。为了优化 WebView
性能,请直接从基于网络的网址加载 Web 内容。避免使用 WebViewAssetLoader
、从设备加载资源或动态生成 Web 内容。
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/")
}
}
测试 WebView
在应用开发期间,我们建议您加载此测试网址:
https://google.github.io/webview-ads/test/
以验证这些设置是否对广告产生了预期效果。如果观察到以下情况,则表示测试网址已成功完成集成:
网页视图设置
- 第三方 Cookie 的运作方式
- 第一方 Cookie 的运作方式
- JavaScript 已启用
- 已启用 DOM 存储
视频广告
- 视频广告以内嵌方式播放,不会在全屏内置播放器中打开
- 视频广告会自动播放,无需点击播放按钮
- 视频广告可重播
测试完成后,将测试网址替换为 WebView 打算加载的网址。