Insertar un script personalizado después de la cabecera

Hola a todos,

Ya tengo funcionando el plugin oficial de anuncios de Discourse y mostrando anuncios en mi sitio. La pregunta es: ¿qué pasa si alguien quiere insertar un script o anuncio personalizado que no sea ninguno de los integrados en Discourse?

Intenté ir a Personalizar → Tema → Editar HTML/CSS → Después del encabezado. Pegué ese bloque de script allí, recargué mi sitio, pero no lo veo. De hecho, solo lo puedo ver si lo coloco dentro de , lo que hace que el anuncio aparezca al final de la página. Sin embargo, “Después del encabezado” es la mejor posición y no carga. Cabe mencionar que este script incluye async.

Quiero decir, ¿por qué necesitamos un plugin complicado solo para copiar y pegar un bloque HTML? Incluso Google te da su script y puedes simplemente copiarlo y pegarlo después del encabezado. Esto es lo que la gente suele hacer en los sitios web, pero no parece funcionar en Discourse porque algo está bloqueando el script. No es CSP, ya que tengo https: y inline-code como filtros, lo que debería permitir cualquier JS que comience con “https”. Aquí tienes un anuncio de Google:

<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<!-- Anuncio 1 -->
<ins class="adsbygoogle"
     style="display:block"
     data-ad-client="ca-pub-3368174556925488"
     data-ad-slot="4362547659"
     data-ad-format="auto"
     data-full-width-responsive="true"></ins>
<script>
     (adsbygoogle = window.adsbygoogle || []).push({});
</script>

Intenta hacer que el código anterior funcione manualmente sin usar el plugin de AdSense y colócalo en el tema después del encabezado.

#plugin:advertising

Actualización: Aparentemente, la respuesta fue Anuncios Propios (House Ads). Sin embargo, incluso al insertar algunos scripts en Anuncios Propios, esos anuncios no se muestran, lo que indica que Discourse está bloqueando algo, ya que si publico el mismo script en cualquier página HTML, sí se muestra.

1 me gusta

Ahora puedes probar esto usando un componente de tema. ¿Ya lo has probado?

Spoiler: los anuncios no se actualizarán porque Discourse es una aplicación de una sola página. Si AdSense ha cambiado y ahora puede actualizar los anuncios automáticamente sin usar adsbygoogle.push({}), eso es noticia para mí.

1 me gusta

En realidad, al final opté por usar un iframe. Inserté un iframe dentro de House Ads y funcionó. Los anuncios de Google AdSense se actualizan si refrescas la página.

La única desventaja es que si quiero colocar un anuncio de afiliado de House Ads en la parte inferior de la página, no hay opción para hacerlo. Solo puedo colocarlo en la parte superior de la lista de temas o entre ellos. Sería genial si también se añadiera la opción de colocarlo en la parte inferior, lo que nos daría más libertad.

Excepto que Google no reconocerá el tema de tu foro y mostrará a tus visitantes anuncios mucho menos relevantes, arruinando completamente tus ingresos.

No lo harán si simplemente navegas a otra página.

2 Me gusta

Por favor, proporciona una referencia para esta afirmación.

No debería haber ninguna diferencia si los anuncios se sirven mediante una etiqueta IFRAME o una etiqueta SCRIPT para que Google AdSense y otros bots publicitarios rastreen el sitio en busca de contexto.

¡Espero con interés leer algunas referencias de desarrolladores de Google sobre esto!

Gracias.

Cuando se muestra un anuncio de AdSense dentro de un iframe anidado, las funciones de seguridad del navegador impiden que el anuncio detecte la URL o el dominio de la página para usarlos en la segmentación. Como resultado, no se muestra el anuncio más relevante y los ingresos por publicidad son inferiores a lo que podrían ser.

3 Me gusta

Sí, pero eso es solo un matiz, no toda la imagen de cómo se crea el contexto publicitario.

Todos los sitios que ejecutan AdSense son rastreados por el rastreador de Google AdSense, por lo que los servidores de Google muestran anuncios en contexto con el sitio basándose en el rastreador que recorre el sitio.

Esto significa que un sitio técnico que discute Ruby on Rails mostrará anuncios relevantes para ese contexto (si están disponibles) a nivel de sitio.

Sin embargo, a nivel de página, por supuesto, existe un problema con el contexto en las etiquetas de IFRAME anidadas.

No todas las etiquetas publicitarias servidas en etiquetas de IFRAME están anidadas.

Aquí hay un ejemplo de etiquetas de IFRAME anidadas:

<iframe src="http://www.w3schools.com" width="1000" height="1000" id="frame1" name="frame1">
   <iframe width="200" height="200" src="http://www.bing.com" id="frame2" name="frame2">
   </iframe>
</iframe>

Personalmente, he visto muy raramente que esto ocurra de manera práctica; y cuando lo verificamos (lo cual hemos hecho muchas veces en los últimos 15 años o más), la única vez que hemos visto este problema es con las etiquetas de pasarela (passback tags).

Espero que esto ayude.

Querías una referencia. Eso no es lo que querían decir con ‘anidado’. Eso queda claro por el título del párrafo: “¿Cómo puedo mostrar un anuncio de AdSense dentro de un iFrame?”. De hecho, en el pasado, usar un iframe ya era una violación de las políticas.

He probado todos los trucos del libro con AdSense desde 2007 y escribí el primer plugin de Discourse para AdSense junto con @michaeld.

Supongo que ambos tenemos experiencias diferentes. Es bueno saber que lograste salirte con la tuya. Para cualquier otra persona que quiera intentarlo: no estaré allí para secar tus lágrimas.

3 Me gusta

Bueno, para ser francos, hemos servido más de 1,000,000,000 de anuncios en la última década y no hemos servido AdSense directamente durante muchos años (no nos gusta AdSense por muchas razones), así que veamos este “servicio de anuncios” desde una perspectiva general, desde el punto de vista de lo que está ocurriendo ahora en la publicidad display.

Contexto (Relevancia)

La mayoría de las redes de anuncios que sirven anuncios de compra directa, como por ejemplo IDN Technet u otras redes de anuncios basadas en contexto, no rastrean los sitios en busca de contenido. Promocionan el sitio ante sus compradores de anuncios y, por ejemplo, dirán: “Oye, esto es Discourse meta y tienen contenido excelente para todo lo relacionado con desarrollo tecnológico, Ruby, JavaScript, etc.”. Los recomendamos encarecidamente.

Luego, proporcionan al editor una entrada ads.txt en estos días y servirán anuncios al editor desde su red de anuncios basándose en la categoría del sitio y subcategorías, no desde un rastreador (como el rastreador de Adsense).

Esta es la norma hoy en día, y no la excepción.

Lo mismo ocurre con el contenido de video y los anuncios basados en video. Nuestro socio de video vende anuncios para nuestro sitio basándose en el contexto del sitio, en un folleto, no en un “robot rastreador” que busca contexto.

De hecho, no hemos servido anuncios durante años desde ninguna red de anuncios que dependa de un rastreador para clasificar un sitio; especialmente para las etiquetas de retorno (passback). Las etiquetas de retorno siempre funcionan mejor cuando el contexto está codificado directamente en la red de anuncios, en lugar de derivarse de un rastreador que realiza la clasificación.

Etiquetas de retorno (Passbacks)

Siempre es difícil obtener un contexto relevante de las etiquetas de retorno (passback).

Mi experiencia, desde la perspectiva de un editor que ha servido más de mil millones de anuncios display a lo largo de los años, es no utilizar una red de anuncios que desarrolle contexto a partir de un rastreador para redes de etiquetas de retorno.

Lo mejor, según mi experiencia publicando anuncios durante la última década, es utilizar etiquetas de retorno basadas en contexto codificado directamente; por ejemplo, si tengo un sitio tecnológico y quiero servir etiquetas de retorno a la India, utilizaré etiquetas de retorno de interés tecnológico para los técnicos de la India.

AdSense

Usamos AdSense hace quizás entre 15 y 10 años, y durante la última década no recuerdo cuándo servimos AdSense directamente. En mi opinión, AdSense no es realmente una gran manera de generar ingresos.

AdSense desarrolla contexto a partir de su rastreador, por lo que, en general, si tu etiqueta no es una etiqueta IFRAME anidada (una etiqueta de retorno IFRAME dentro de una etiqueta iFRAME), estarás bien con las etiquetas IFRAME.

Algunas ventajas de las etiquetas IFRAME

  • El navegador asigna algo de espacio para un marco en línea con antelación y lo tiene en cuenta al renderizar el documento.

  • Los iframes implementan la política de origen cruzado, lo cual puede ser útil para cargar sitios/contenido/anuncios de otros nombres de dominio, y también son relativamente seguros, por lo que la mayoría de las soluciones de publicidad web se basan en iframes.

  • Si el contenido debe cargarse primero y luego los anuncios, esto se puede hacer usando Iframe.

  • Iframe ayuda a mejorar el rendimiento.

  • Iframe se carga independientemente de otros componentes de la página.

  • Si un usuario tiene JavaScript desactivado, los iframes funcionarán.

  • Una etiqueta iframe tiene los atributos “height” y “width,” lo que permite al diseñador gran libertad con las dimensiones y el formato, como 300×250, 728×90, dependiendo del tamaño del anuncio.

  • Una etiqueta iframe puede aparecer en cualquier lugar de la página y se pueden agregar varios iframes si se desea.

Algunas desventajas de las etiquetas IFRAME

  • Las etiquetas iframe pueden causar problemas de accesibilidad.

  • Las etiquetas iframe no son compatibles con todos los navegadores y pueden mostrarlas incorrectamente o incluso mostrarlas en blanco.

  • Una razón clave para usar iframe en la publicidad web es la seguridad en el soporte de dominios cruzados, pero el rendimiento no es perfecto.

  • Los iframes no pueden verse en muchos dispositivos móviles.

  • Se sabe que los iframes a veces reducen el SEO.

Ventajas y desventajas de las etiquetas JS:

  • Se puede agregar esto más tarde si alguien está interesado.

Oferta y demanda

Este es el año 2020. El número de sitios web que suministran anuncios a los anunciantes ha crecido exponencialmente desde el año 2000. La oferta de anuncios ha superado con creces la demanda. Esto significa que para la mayoría de los sitios, aquellos que están aquí hablando de configurar anuncios en Discourse, es poco probable que obtengan tráfico de anuncios premium a menos que tengan una fuerte demanda y una audiencia de nicho establecida.

Cada técnico y su hermana pueden publicar anuncios en sus blogs y foros en el año 2020 y lo hacen. Esto significa que la oferta continuará superando la demanda de anuncios display en el futuro. La mayoría de los sitios de nicho tendrán dificultades para generar ingresos publicitarios desde un sitio nuevo hasta que se establezcan bien.

Discourse y rastreadores

Discourse no sirve la SPA a los rastreadores, por lo que esto significa que los rastreadores de bots publicitarios tampoco verán la SPA y las implicaciones completas de esto no han sido analizadas “por un tercero objetivo” (por un tercero independiente), hasta donde yo sé.

Resumen

Creo que la gran mayoría de los nuevos usuarios de Discourse que ejecutan Discourse como una SPA de JavaScript no generarán grandes ingresos de las redes de ingresos por publicidad display (como Adsense). Esto es especialmente cierto en 2020, donde los presupuestos publicitarios de los anunciantes son mucho más pequeños debido a la pandemia. Además, la oferta es alta y la demanda es baja.

Si ejecutas anuncios display, tendrás problemas en todas las SPA debido a cómo las páginas “no se recargan” y esto es un problema con las etiquetas JS y las etiquetas IFRAME; se necesita un mejor código de plugin para las SPA para optimizar todo tipo de etiquetas de terceros.

Cierre

No hemos servido AdSense durante muchos años y no tenemos planes de hacerlo en el futuro; por lo que el punto de cómo AdSense obtiene contexto es irrelevante para nosotros. Para otros, es mejor ejecutar etiquetas IFRAME que funcionen que arrancarse los cabellos intentando luchar contra los problemas de la SPA al servir etiquetas de scripts de terceros y dolores de cabeza de CORS, IMHO.

Arrástrate antes de caminar. Camina antes de correr.

Espero que esto ayude.

Cuídate.


PS: Perdón por cualquier error tipográfico, ¡mi esposa me está esperando en la puerta y quiere ir de compras antes de que llueva!

Esto no es para Google. Como se discutió anteriormente, esto es para unidades de anuncios de afiliados que no son de Google, Amazon, etc. Para Google, ya utilizo el plugin integrado de AdSense. Mis anuncios de Google ya funcionan y adaptan el tema del anuncio a mis visitantes. Además, puedo controlar el género del anuncio a través de AdSense.

Mi pregunta se refiere a un anuncio de afiliado estático que siempre será el mismo. Por lo tanto, quería usar anuncios internos (House ads), que están diseñados para ese propósito. Sin embargo, esto me limita en cuanto a la posición para colocar esa unidad de anuncio.

Actualmente, he utilizado simplemente un iframe y lo he colocado en el pie de página del HTML de mi tema, lo cual funciona perfectamente. El único problema con esto es que el iframe se mostrará para todos los grupos de usuarios, incluso aquellos con un nivel de confianza alto, cuando antes podía optar por no mostrar las unidades de anuncios a usuarios con un nivel de confianza de 3 o superior a través del administrador de anuncios en Discourse.