Esta entrada explica a todos mis lectores cómo solucionar el problema adsbygoogle.push() error: No link unit size for width=0px. Este es un error común que nos podemos encontrar al insertar algunos anuncios de AdSense en espacios de nuestro sitio web.
Por lo tanto ya sabes, si te encuentras con este error estás en el sitio adecuado para dar con la solución.
Uncaught H {message: «adsbygoogle.push() error: No link unit size for width=0px», name: «TagError», stack: «TagError: adsbygoogle.push() error: No link unit s…syndication.com/pagead/js/adsbygoogle.js:1:71669)»}
Índice
Introducción.
Desde que estoy sumergido en el mundo AdSense, la verdad es que estoy aprendiendo mucho… gracias al codeo con los grandes y a un nuevo canal de telegram donde intercambiamos las mejores opiniones, uno va perfeccionando sus técnicas sin apenas darse cuenta.
¿Dónde posicionar los mejores anuncios?, ¿cómo optimizar los sitios web para un funcionamiento excelente?, ¿que es lo que realmente les interesa a mis lectores cuando leen mis artículos?, etc…. son alguno de los temas tratados en el canal.
Explicación del error.
Vamos ahora a entrar en materia acerca de lo que nos aparece en el inspector de elementos de nuestro navegador: adsbygoogle.push() error: No link unit size for width=0px.
Este tema me llamó mucho la atención, resulta que uno de los grandes como es Google permite que al insertar concretamente un tipo de sus anuncios en nuestros sitios web, se reproduzca un error.
Pero ojo, este error tan sólo se reproduce en el navegador Chrome, más extraño aún ya que todos sabemos que este es el propio navegador de Google.
Problema con no link unit size for width=0px
El problema en si ya no era el propio error, sino que había estado trabajando durante los últimos meses en una correcta optimización de mis sitios que peleaban por las primera posiciones con varios long tails, y a causa del error las páginas que antes de insertar el anuncio cargaban en menos de 1 segundo, ahora estaban cargando en un tiempo entre 5 y 8 segundos. Algo completamente inaceptable para los consumidores finales.
Realmente este tipo de error tan solo lo he detectado en anuncios que tienen este atributo: data-ad-format=»link»
Si hacemos uso de otro tipo de anuncio como pueden ser por ejemplo los que tienen el atributo data-ad-format=»auto», veremos que estos no lanzan el error.
Doy por hecho que la diferencia entre el auto y el link es la siguiente: data-ad-format=»auto» es capaz de ajustarse a cualquier tipo de dimensión, independientemente de si el ancho es 0px o un 1000px. Mientras que data-ad-format=»link» tiene unas exigencias mínimas y si su caja no las respeta, es cuando tenemos el problema.
¿Cómo saber si mi página web tiene el error?
Podemos haber notado 2 cosas llamativas tras haber insertado en anuncio en nuestros sitios web. Un exceso en la carga de la página o si estamos familiarizados con temas de código fuente, un mensaje de error en nuestra consola del inspector de elementos.
Detectando el error de AdSense con el inspector de elementos del navegador.
Dependiendo del sistema operativo que tengas, mostrar el inspector de elementos del navegador se realiza con una combinación de letras u otra. En mi caso utilizo IOS y se muestra pulsando simultáneamente «command» + «option» + «i». En windows es con F12.
Una vez el inspector de elementos en uso, si recargamos página veremos algo como esto…
Detectando el error de AdSense con los tiempos de carga.
Otro posible síntoma tras insertar el anuncio que nos produce el error es que los tiempos de carga se disparan. Adiós a los meses de optimización…
En cambio, sin el error y un buen sistema de cacheo, los tiempos de carga no deberían ser muy superiores a 1 segundo. Aunque también dependemos mucho de lo que tarde el anuncio en mostrarte.
¿El error nos afecta negativamente?
Sí, realmente a día de hoy no está comprobado que nos afecte a nuestro posicionamiento, pero está claro que cuanto más tarde nuestros sitios webs en cargar menos usuarios estarán interesados en nuestros contenidos y finalmente menos clicks obtendremos en nuestros anuncios.
Además, damos una mala imagen ya que nuestra web carga con errores.
¿Por qué aparece el error adsbygoogle.push() error: No link unit size for width=0px?
Después de varios días de indagar por la red, hablar con unos y con otros, consultar canales de real interés y no obtener solución al problema. Hoy hablando con uno de mis compañeros de oficina hemos visto el porqué de esto.
Esto es debido a que el anuncio con la propiedad data-ad-format=»link» tiene uno requisitos mínimos y estos que en la caja donde cargas el contenido, necesita tener unas dimensiones mínimas.
Error adsbygoogle.push() – Explicación al problema
Pondré como ejemplo una de mis páginas, ya que tengo un widget en la cabecera donde muestro un tipo de anuncio para desktop y otro tipo para mobile (aclaro que ambos divs están en el mismo widget. Cuando se muestra uno, oculto el otro), entonces inicialmente tenía algo como esto.
<div class="anuncio-menu-header-mobile"> Código AdSense mobile. </div> <div class="anuncio-menu-header-desktop" style="padding-top:30px;"> Código AdSense escritorio. </div>
Y el CSS de cada clase lo que hacía era mostrar un div y ocultar el otro dependiendo del dispositivo desde el cual se accediera a mi página web.
El resultado era siempre error en versiones de escritorio.
¿Cómo solucionar el error adsbygoogle.push() error: No link unit size for width=0px?
La solución ha sido clara, me ha tocado dejar las clases de la hoja de estilos afectadas de este modo que os muestro.
/* Si es pantalla grande ocultamos el banner de menú y mostramos el de 468 x 60 */ @media (min-width: 320px) and (max-width: 960px) { .anuncio-menu-header-mobile{ display:block !important; } .anuncio-menu-header-desktop{ width:320px; height:0.5px; opacity:0; } } @media (min-width: 961px) { .anuncio-menu-header-mobile{ width:961px; height:0.5px; opacity:0; } .anuncio-menu-header-desktop{ display:block !important; } }
Como podéis ver, lo que estamos haciendo en el caso de tener que ocultar el anuncio, es crear la capa con las dimensiones necesarias, pero le damos opacidad 0 para que esta no se muestre.
Anteriormente, probé a poner un display none, pero el resultado era el mismo. El anuncio intentaba ser cargado dentro de una capa oculta en la cual no habíamos definido sus dimensiones y siempre se mostraba el mismo error.
Uncaught H {message: «adsbygoogle.push() error: No link unit size for width=0px», name: «TagError», stack: «TagError: adsbygoogle.push() error: No link unit s…syndication.com/pagead/js/adsbygoogle.js:1:71669)»}
Y bueno esto es todo en esta entrada, como siempre digo espero que os sea de utilidad.
Versiones utilizadas, tiempo y dificultad de desarrollo:
Plataforma: WordPress 4.9.5
Dificultad: Iniciación.