Estos días ha habido mucho revuelo sobre la ley de cookies, y cómo nos afecta a los residentes en españa como publicadores.

Personalmente creo que esta ley es completamente innecesaria, es sobrecomplicar las cosas sin ningún motivo: las cookies en el 99% de los sitios web sólo son usadas para mejorar la experiencia del usuario. Pero qué se le va a hacer…

Google Adsense

El caso es que he estado enredando estos días con adsense (que usa cookies), y me estaba preguntando cómo podíamos cargar adsense una vez el usuario diera el visto bueno. El código de adsense (el de toda la vida, el síncrono, y el único que yo conocía) es algo así:

<script type="text/javascript"><!--
google_ad_client = "ca-pub-xxxxxxxxxxx";
/* nombre del anuncio */
google_ad_slot = "xxxxxxxxx";
google_ad_width = xxx;
google_ad_height = xxx;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>

Éste código no se puede cambiar, la única forma de insertarlo automáticamente podría ser un iframe que contuviera los anuncios, pero el robot de Google Adsense no rastrearía nuestra página, sino esa página en blanco. Por desgracia no es viable.

Entonces, ¿Cómo puedo cumplir la ley si uso Google Adsense?

Gracias a que a google le ha dado por crear un nuevo tipo de código (el código asíncrono), podemos crear fácilmente los anuncios y sólo mostrarlos cuando queramos cargando el script.

Pero a Google no le gusta que toquen su código…

Es cierto, a mucha gente le han baneado cuentas de Adsense con el pretexto de que el código en la página no era exactamente como debería ser. Últimamente han sido más permisivos, y daban permiso para modificarlo si era para un diseño responsive, un A/B test, etc… (Ver aquí).

La modificación que yo propongo (eliminar el script del código asíncrono, para cargarlo tras el consentimiento del usuario) no está listada explícitamente ahí, pero entra dentro de «modificaciones aceptables». Además sí que lo está implícitamente (tercera pregunta frecuente).

Al meollo: ¿Cuál es la idea?

Básicamente, sustituir todos los anuncios por anuncios asíncronos, y eliminar el script, quedando así:

<!-- nombre del anuncio -->
<ins class="adsbygoogle"
     style="display:inline-block;width:xxxpx;height:xxxpx"
     data-ad-client="ca-pub-xxxxxxxxxxxxxx"
     data-ad-slot="xxxxxxx"></ins>
<script>
(adsbygoogle = window.adsbygoogle || []).push({});
</script>

¿Y los anuncios sin tamaño fijo (adaptable)?

Usan el código asíncrono, así que lo mismo, sólo hay que quitar el primer <script>.

Cuando el usuario de su consentimiento se carga el script mediante javascript (publicaré los detalles junto con una herramienta para hacerlo en otro artículo, probablemente a la vez que este, si me acuerdo dejo el link ;)).

Actualización: Script para cumplir la ley de cokies

Pues eso, que ya terminé el script, podéis verlo aquí.