Configurar tu WebView para mostrar anuncios de AdSense sin riesgos
Un WebView es un elemento bastante común y muy útil en una aplicación Android, pero anteriormente teníamos que limitar su uso, ya que, emplearlo en páginas con anuncios de AdSense y de Ad Manager de Google, era algo no permitido, teniendo en cuenta que, según ellos, este elemento podría generar una mala publicación de los anuncios y, una mala medición de los mismos.
La alternativa, era enviar a los usuarios fuera de la app o, usar las Chrome Custom Tabs, que permiten integrar un poco el navegador del teléfono a la aplicación, pero muchas veces falla y, dependen mucho de las configuraciones del usuario final. Ante esto, Google accedió a ofrecer una optimización del WebView para Android, con una serie de configuraciones que permiten usar páginas con publicidad de AdSense en un WebView, sin inconvenientes, ni riesgo de posibles sanciones.
Cómo configurar tu WebView para que se admitido por AdSense y evitar sanciones
Preparar la App
Lo primero es configurar apartados importantes de la App para que pueda funcionar sin problemas. Ya sea que tu App sea hecha en Java o en Kotlin, lo primero será agregar dos dependencias para que publicidad de Google se entregue de manera correcta, para eso debes ir al apartado en tu build.Gradle y pegar lo siguiente:
implementation 'com.google.android.gms:play-services-ads:23.1.0'
implementation 'androidx.browser:browser:1.8.0'
Esas son las versiones más recientes de esas dependencias hasta la fecha de publicación de este artículo, puedes pegar estas inicialmente y, luego Android Studio te informará si hay alguna actualización. También tendrás que modificar tu manifiesto, colocando el siguiente fragmento justo arriba del apartado de Activity:
<meta-data
android:name="com.google.android.gms.ads.INTEGRATION_MANAGER"
android:value="webview"/>
Agregar y configurar el WebView
Lo siguiente es agregar al xml correspondiente el WebView, ya sea que lo quieras poner en un fragmento o en una actividad, el funcionamiento, es prácticamente igual. Una vez hecho eso y, teniendo las configuraciones básicas, como activar el uso de JavaScript y otras. Además, tendrás que permitir el uso de cookies de terceros y que los sitios web puedan acceder al uso de almacenamiento local. También tendrás que agregar una línea código de verificación para Google. El código inicial debería quedarte de la siguiente manera:
webView = findViewById(R.id.webview);
webView.setWebViewClient( new WebViewClient())
// Permite que acepte cookies de terceros.
CookieManager.getInstance().setAcceptThirdPartyCookies(webView, true);
// permite el uso de JavaScript.
webView.getSettings().setJavaScriptEnabled(true);
// Permite que accede al almacenamiento local.
webView.getSettings().setDomStorageEnabled(true);
// Permite que los videos cargados en el HTML se reproduzcan automáticamente
webView.getSettings().setMediaPlaybackRequiresUserGesture(false);
// Carga la URL de tu preferencia
webView.loadUrl("https://webview-api-for-ads-test.glitch.me");
// Registrar el WebView
MobileAds.registerWebView(webView);
La URL que ves en ese código, es una que Google ha dispuesto para hacer un test del WebView y comprobar que tu app está completamente optimizada para mostrar anuncios de AdSense y de Ad Manager. Lo ideal es que la uses en tu fase de desarrollo, ya luego pondrás la que requieres para tu App.
También es bueno que configures tu WebView para que abra dominios diferentes a los de tu app, fuera de la aplicación. Esto es lo correcto, en caso de un clic dentro de un anuncio de AdSense o, en caso de que se abran enlaces de Facebook o de Twitter, por ejemplo.
Si quieres emplear un solo WebView para toda tu app y abrir varios enlaces ahí, puedes hacerlo, como se explica en el siguiente artículo: Cómo abrir varias URL en un mismo WebView Fragment (Java)