Cómo configurar WebView

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

En esta guía, se muestra cómo proporcionar información sobre la configuración de un objeto WebView.

Habilita las cookies de terceros

Para mejorar la experiencia del usuario con los anuncios y cumplir 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 las APIs de WebSettings para configurar tu WebView para lo siguiente:

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

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

Carga contenido de la vista web

Las cookies y las URLs de las páginas son importantes para la monetización de la vista web y solo funcionan según lo previsto cuando se usa loadUrl() con una URL basada en la red. Para optimizar el rendimiento de WebView, carga el contenido web directamente desde 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://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/")
  }
}

Prueba la vista web

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

https://google.github.io/webview-ads/test/

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 observan los siguientes elementos:

Configuración de la vista web

  • Funcionamiento de las cookies de terceros
  • Funcionamiento de las cookies propias
  • JavaScript habilitado
  • Almacenamiento DOM habilitado

Anuncio de video

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

Una vez que se completen las pruebas, sustituye la URL de prueba por la URL que la vista web pretende cargar.