Cómo configurar WebView

Si tu app usa WebView para mostrar contenido web, te recomendamos que la configures para que el contenido se pueda monetizar de forma óptima con anuncios.

En esta guía, se muestra cómo proporcionar información para configurar un objeto WebView.

Habilita las cookies de terceros

Para mejorar la experiencia del usuario con los anuncios y mantener la coherencia con la política de cookies de Chrome, habilita las cookies de terceros en tu instancia de WebView.

Java

CookieManager.getInstance().setAcceptThirdPartyCookies(webView, true);

Kotlin

CookieManager.getInstance().setAcceptThirdPartyCookies(webView, true)

Configuración web

La configuración predeterminada de WebView no está optimizada para los anuncios. Usa el WebSettings APIs para configurar tu WebView para lo siguiente:

  • JavaScript
  • Acceso al almacenamiento local
  • Reproducción automática de video

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
  }
}

Cómo cargar contenido de vista web

Las cookies y las URLs de página son importantes para la monetización de vistas web y solo funcionan como se espera cuando se usa loadUrl() con una URL basada en la red. Para optimizar el rendimiento de WebView, carga el contenido web directamente desde las URLs basadas en la red. Evita usar WebViewAssetLoader, cargar recursos desde el dispositivo o generar contenido web de forma dinámica.

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")
  }
}

Prueba la vista web

Durante el desarrollo de la app, te recomendamos que cargues esta URL de prueba:

https://webview-api-for-ads-test.glitch.me#webview-settings-tests

para verificar que esta configuración tenga el efecto deseado en los anuncios. La URL de prueba tiene criterios de éxito para una integración completa si se observa lo siguiente:

Configuración de la vista web

  • Cómo funcionan las cookies de terceros
  • Cómo funcionan las cookies propias
  • JavaScript habilitado
  • Almacenamiento DOM habilitado

Anuncio de video

  • El anuncio de video se reproduce intercalado y no se abre en el reproductor integrado en pantalla completa.
  • El anuncio de video se reproduce automáticamente sin hacer clic en el botón de reproducción.
  • El anuncio de video se puede volver a reproducir

Una vez que se complete la prueba, reemplaza la URL de prueba por la URL que la vista web pretende cargar.