如果您的应用 Android 利用WebView
来展示 Web 内容,建议您对其进行配置,以便通过广告充分利用内容变现。
本指南介绍了如何提供有关如何配置WebView
对象的信息。
启用第三方 Cookie
为了改善用户的广告体验,并遵守 Chrome 的 Cookie 政策的规定,请在 WebView
实例上启用第三方 Cookie。
Java
CookieManager.getInstance().setAcceptThirdPartyCookies(webView, true);
Kotlin
CookieManager.getInstance().setAcceptThirdPartyCookies(webView, true)
网络设置
默认的WebView
设置不会针对广告进行优化。使用
WebSettings
用于配置 WebView
的 API:
- 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
}
}
加载网页视图内容
Cookie 和网页网址对于通过网站浏览数据创收至关重要,只有在与基于网络的网址搭配使用 时,才能按预期运行。为了优化 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://webview-api-for-ads-test.glitch.me");
}
}
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://webview-api-for-ads-test.glitch.me")
}
}
测试网页视图
在应用开发期间,我们建议您加载以下测试网址:
https://webview-api-for-ads-test.glitch.me#webview-settings-tests
以验证这些设置是否对广告产生预期影响。如果观察到以下情况,测试网址就符合完全集成的成功标准:
网站数据视图设置
- 第三方 Cookie 正常运行
- 第一方 Cookie 的工作原理
- 已启用 JavaScript
- 已启用 DOM 存储
视频广告
- 视频广告内嵌播放,不会在内置全屏播放器中打开
- 无需点击播放按钮,视频广告即可自动播放
- 该视频广告可重放
测试完成后,将测试网址替换为相应网页视图想要加载的网址。