如果您的应用使用 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
}
}
加载 WebView 内容
Cookie 和网页网址对网站浏览创收至关重要,只有将 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://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 存储
视频广告
- 视频广告在内嵌中播放,而不是在内置全屏播放器中打开
- 视频广告会在用户不点击播放按钮的情况下自动播放
- 视频广告可重玩
测试完成后,将测试网址替换为网页视图打算加载的网址。