Los anuncios de Adsense no se recargan en las navegaciones de temas ni en las páginas de ToC, errores de CSP rechazados en frame-src y errores de excepción no capturados EmberJS

Estoy teniendo un montón de problemas al ejecutar anuncios en el sitio Discourse de https://howtodiscuss.com.

  1. Muchos errores de excepción DOM no capturados; simplemente ve a cualquier página de tema en modo incógnito y los verás: https://howtodiscuss.com/t/profit/7022

  1. Otro error ocurre cuando navego desde una página de tema antigua a una nueva: aparece esta advertencia en la consola. Se muestra un anuncio Vignette de Google, pero debido a esta advertencia, el anuncio desaparece y la página navega; por lo tanto, el usuario nunca puede hacer clic en los anuncios intersticiales Vignette de Google que aparecen entre cargas o navegaciones de página.

    Aviso de obsolescencia: Eliminar todos los oyentes de eventos a la vez está obsoleto; por favor, elimine cada oyente individualmente. How many ounces is a 1 4 cup - How To Discuss

  1. También estoy intentando mostrar un anuncio fijo y pegajoso de Google en la barra lateral derecha de una página de tema individual, usando este código:

Código Javascript para insertar un anuncio fijo y pegajoso en la barra lateral del tema; necesito que funcione también con la Tabla de Contenidos (ToC)

<!-- código del plugin para mostrar un anuncio fijo -->

<script type="text/discourse-plugin"
version="0.8">
	var friends_retries = 0;
var friends_timeout;

api.decorateWidget('topic-timeline-container:before', helper => {
	return helper.h('div.side-block', [
		helper.rawHtml('<div id="friends"></div>'),
	]);
});

api.onPageChange(() => {


	if (window.location.href.indexOf("/t/") > -1) {
		console.log('página cambiada - tema');
		friends_retries = 0;
		window.setTimeout(loadFriends, 100);

	} else {
		//console.log( 'página cambiada - no es tema');
	}
});

function loadFriends() {

	if (!document.getElementById('friends')) {
		//var timer;
		friends_retries++;
		if (friends_retries < 10) {
			//console.log('tiempo de espera reprogramado, intento ' + friends_retries);
			window.setTimeout(loadFriends, 100);
		} else {
			clearTimeout(friends_timeout);
			// window.clearTimeout(loadFriends);

			console.log('tiempo de espera aclarado, se rindió');
			// loadFriends();
		}
	} else {


		var bHTML = ' <!-- Barra lateral del tema línea de tiempo HTD --> <ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-7087907313091932" data-ad-slot="5067761793" data-ad-format="auto" data-full-width-responsive="true"></ins>';

		// var bHTML = '<img src="https://via.placeholder.com/300x250?text=300x250+MPU" alt="Chica con chaqueta">';

		$("#friends").html(bHTML);


	}
}


</script>
<!-- código del plugin para mostrar un anuncio fijo -->

Aquí está su código CSS:

/* para anuncio fijo */
/* corrección de diseño de línea de tiempo 2.6.0.beta5 */
@media screen and (min-width: 925px) {
    .container.posts .topic-navigation {
        margin-left: 7em;
    }
}

#friends {
    display:block;
    //width:300px; 

    height:150px;
    margin-left:-90px;
    margin-top:-25px;
    margin-bottom:90px;
}
/* para anuncio fijo */

A veces este código funciona, pero no funciona en la página donde aparece la Tabla de Contenidos (ToC), por ejemplo, no funciona en How Many Grams In A Quarter Ounce? - How To Discuss

¿Alguien puede corregir mi error en el código para que también se muestre en las páginas con ToC?

  1. También he notado otro error en mi código y en el código general del plugin de anuncios de Discourse: cuando navego de una página a otra, mi código de anuncio de AdSense nunca se actualiza ni se vuelve a cargar, por lo que no se activa ninguna impresión de anuncio. Quizás sea porque Discourse no recarga completamente toda la página al navegar. Quiero que los anuncios se actualicen y que toda la página se recargue desde cualquier navegación de enlace; ¿cómo puedo solucionarlo?

  2. También estoy recibiendo muchos de estos errores de frame-src en mi sitio: https://howtodiscuss.com/t/how-mouthwash-rinse-become-a-necessary-step-in-oral-hygiene/30631

Se ha denegado el enmarcado de 'https://pagead2.googlesyndication.com/' porque viola la siguiente directiva de Política de Seguridad de Contenido (CSP): "frame-src cm.g.doubleclick.net googleads.g.doubleclick.net www.google.com accounts.google.com pagead2.googlesyndication.com/pagead/s/cookie_push.html gmsg: https://tpc.googlesyndication.com/sadbundle/$csp=er3$/1522577804659956528/index.html".

Así es como se ven mis configuraciones de CSP:

Pero no sé cómo poner en la lista blanca las solicitudes de iframe de anuncios de Google. También probé este código, pero no funciona bien; sigo viendo los errores de frame-src mencionados anteriormente. Si agrego valores junto a frame-src en la etiqueta meta, me da un error indicando que no podemos usar frame-src en la etiqueta meta.

<!-- <meta http-equiv="Content-Security-Policy" content="default-src *; style-src 'self' http://* 'unsafe-inline'; frame-src  ; script-src 'self' http://* 'unsafe-inline' 'unsafe-eval'" /> -->

Sería de gran ayuda si alguien pudiera ayudarme a resolver mis problemas:

Incluso estoy obteniendo errores como este en mi página de inicio: https://howtodiscuss.com/ (para replicar los errores, abra la página en incógnito, use una VPN o simplemente actualice varias veces o navegue a otras páginas; encontrará los errores en la consola de JS y también verá cómo se descarta el Vignette de Google sin dar la oportunidad al usuario de hacer clic en el anuncio).

Espero que alguien pueda ayudar.

Mi sitio está en Cloudflare, estoy en la última versión de Discourse 2.6.0.beta6, he actualizado todo, incluidos todos los plugins, y también he reconstruido Docker hace un momento. Aún así, sigo viendo estos errores.

Es posible que esto sea la causa de los problemas que estás experimentando. Revisa algunos temas de soporte relacionados con Cloudflare para ver si alguno de ellos ofrece pistas sobre problemas de configuración de Cloudflare que puedan estar causando los inconvenientes: Search results for 'cloudflare #support' - Discourse Meta.

Entiendo que debes asegurarte de que las optimizaciones de velocidad/rendimiento de Cloudflare para JavaScript, CSS y HTML estén desactivadas para que funcione correctamente con Discourse.

3 Me gusta

Gracias @simon por tu rápida respuesta.

Siguiendo tu consejo, desactivé Cloudflare, Brotli y desactivé todas sus minificaciones en CSS, JS y HTML. También desactivé Rocket Loader.

También he limpiado la caché de CF y he esperado 30 minutos para probar los resultados, pero sigo obteniendo errores extraños en la consola de JS cuando estoy en mi página de inicio https://howtodiscuss.com y

cuando navego a mis páginas de temas, Catholic rosary - How To Discuss

Puedes replicar estos errores abriendo mi sitio en el navegador de incógnito de Chrome e intentando navegar a algunas páginas o temas de mi sitio.

Además, ¿sabes por qué mi anuncio de AdSense fijo y pegajoso en el lado derecho de la línea de tiempo del tema/navegación del tema solo se muestra cuando recargo completamente mi página usando el icono de actualizar del navegador, o cuando aterrizo por primera vez en mi sitio web, pero en cualquier carga de página subsiguiente, la función no activa mi anuncio, no detecta que mi página de tema ha cambiado

entra en este bloque else cada vez, ¿hay algún error en mi lógica de plugin de Discourse personalizado para detectar cuándo un usuario ha navegado a una página de tema? Quiero mostrar y recargar un nuevo anuncio de AdSense cada vez, pero va al bloque else; el código piensa que el ID #friends ya existe, pero nunca se recarga a menos que haga una RECARGA COMPLETA. tiempo de espera agotado, rendido.

Por favor, ayúdame. Puedes navegar por los temas de mi sitio tú mismo; encontrarás todos los problemas en la consola de JS. También estoy obteniendo esta advertencia en la consola de JS y el anuncio de Google Vignette nunca se queda para que el usuario haga clic en él.

Aviso de obsolescencia: Eliminar todos los escuchadores de eventos a la vez está obsoleto; elimina cada escuchador individualmente.

He desactivado las optimizaciones de velocidad de CF según tus sugerencias: minificaciones de CSS/JS/HTML, Rocket Loader, Brotli. ¿Qué más podría ser el problema ahora? ¿Podría ser un problema un plugin de Discourse? Estos son mis plugins actualmente,

Mi SSL es estricto, ¿podría ser ese el problema?

Acabo de hacer una reconstrucción fresca también, por si acaso los cambios se producen después de la reconstrucción… pero los errores siguen siendo los mismos, acabo de probar de nuevo :frowning:

2 Me gusta