Adsense-Anzeigen werden bei Themennavigationen oder auf ToC-Seiten nicht neu geladen, frame-src weigerte sich CSP-Fehler und abgefangene Ausnahmen Fehler EmberJS

Ich habe eine Reihe von Problemen mit der Anzeige von Werbung auf meiner Discourse-Seite unter https://howtodiscuss.com.

  1. Viele nicht abgefangene DOM-Exception-Fehler. Gehen Sie einfach zu beliebigen Themen-Seiten im Inkognito-Modus, und Sie werden sie sehen: https://howtodiscuss.com/t/profit/7022

  1. Ein weiterer Fehler tritt auf, wenn ich von einer alten Themen-Seite zu einer neuen navigiere. In der Konsole erscheint eine Warnung: Ein Google Vignette-Werbebanner wird angezeigt, aber aufgrund dieser Warnung verschwindet die Anzeige, und die Seite navigiert weiter. Dadurch kann der Nutzer niemals auf Google Vignette-Interstitial-Werbeanzeigen klicken, die beim Laden oder Navigieren zwischen Seiten erscheinen.

    Veraltungshinweis: Das gleichzeitige Entfernen aller Event-Listener ist veraltet. Bitte entfernen Sie jeden Listener einzeln. How many ounces is a 1 4 cup - How To Discuss

  1. Ich versuche auch, eine feste, klebende Google-Werbung in der rechten Seitenleiste einer einzelnen Themen-Seite anzuzeigen, mit folgendem Code:

JavaScript-Code zum Einfügen einer klebenden, festen Anzeige in der Themen-Seitenleiste – muss auch mit dem Inhaltsverzeichnis (ToC) funktionieren

<!-- Plugin-Code zum Anzeigen einer festen Anzeige -->

<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('page changed - topic');
		friends_retries = 0;
		window.setTimeout(loadFriends, 100);

	} else {
		//console.log( 'page changed - not topic');
	}
});

function loadFriends() {

	if (!document.getElementById('friends')) {
		//var timer;
		friends_retries++;
		if (friends_retries < 10) {
			//console.log('timeout rescheduled, try ' + friends_retries);
			window.setTimeout(loadFriends, 100);
		} else {
			clearTimeout(friends_timeout);
			// window.clearTimeout(loadFriends);

			console.log('timeout cleared, gave up');
			// loadFriends();
		}
	} else {


		var bHTML = ' <!-- Topic side bar timeline 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="Girl in a jacket">';

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


	}
}


</script>
<!-- Plugin-Code zum Anzeigen einer festen Anzeige -->

Hier ist der dazugehörige CSS-Code:

/* für feste Anzeige */
/* Timeline-Layout-Fix 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;
}
/* für feste Anzeige */

Manchmal funktioniert dieser Code, aber nicht auf Seiten, auf denen das Inhaltsverzeichnis (ToC) angezeigt wird, z. B. nicht auf How Many Grams In A Quarter Ounce? - How To Discuss

Kann jemand meinen Fehler im Code korrigieren, damit er auch auf ToC-Seiten funktioniert?

  1. Ich habe auch einen weiteren Fehler in meinem Code und im allgemeinen Discourse-Werbe-Plugin-Code festgestellt: Wenn ich von einer Seite zur anderen navigiere, wird mein AdSense-Werbe-Code nie aktualisiert und neu geladen, sodass keine Werbeeinblendung ausgelöst wird. Möglicherweise liegt dies daran, dass Discourse beim Navigieren nicht die gesamte Seite neu lädt. Ich möchte, dass die Werbung aktualisiert wird und die gesamte Seite bei jeder Link-Navigation neu geladen wird. Wie kann ich das beheben?

  2. Ich erhalte außerdem viele dieser frame-src-Fehler auf meiner Seite: https://howtodiscuss.com/t/how-mouthwash-rinse-become-a-necessary-step-in-oral-hygiene/30631

Refused to frame 'https://pagead2.googlesyndication.com/' because it violates the following Content Security Policy directive: "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".

So sehen meine CSP-Einstellungen aus:

Aber ich weiß nicht, wie ich Google-Werbe-iframe-Anfragen whitelisten kann. Ich habe auch diesen Code versucht, aber er funktioniert nicht gut; ich sehe immer noch die oben genannten frame-src-Fehler. Wenn ich Werte neben frame-src im Meta-Tag hinzufüge, erhalte ich die Fehlermeldung, dass frame-src im Meta-Tag nicht verwendet werden kann.

<!--<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'" />-->

Es wäre eine große Hilfe, wenn mir jemand bei der Lösung meiner Probleme helfen könnte:

Ich erhalte solche Fehler sogar auf meiner Startseite: https://howtodiscuss.com/ (um die Fehler zu reproduzieren, öffnen Sie die Seite im Inkognito-Modus, verwenden Sie ein VPN oder laden Sie die Seite einfach mehrmals neu oder navigieren Sie zu anderen Seiten. Sie werden die Fehler in der JS-Konsole finden und auch sehen, wie Google Vignette-Werbung verschwindet, ohne dem Nutzer die Möglichkeit zu geben, auf die Anzeige zu klicken).

Ich hoffe, jemand kann mir helfen.

Meine Seite läuft auf Cloudflare, ich verwende die neueste Discourse-Version 2.6.0.beta6. Ich habe alles aktualisiert, einschließlich aller Plugins, und habe Docker gerade neu aufgebaut. Trotzdem sehe ich diese Fehler.

Es ist möglich, dass dies die Ursache für die Probleme ist, auf die Sie stoßen. Schauen Sie sich einige Cloudflare-bezogene Support-Themen an, um zu sehen, ob diese Hinweise zu Cloudflare-Konfigurationsproblemen enthalten, die die Schwierigkeiten verursachen könnten: Search results for 'cloudflare #support' - Discourse Meta.

Meines Wissens müssen Sie sicherstellen, dass Cloudflares Geschwindigkeits- und Leistungs-Optimierungen für JavaScript, CSS und HTML deaktiviert sind, damit es ordnungsgemäß mit Discourse funktioniert.

3 „Gefällt mir“

Danke @simon für deine schnelle Antwort.

Wie von dir empfohlen, habe ich Cloudflare und Brotli deaktiviert sowie alle Minifizierungen für CSS, JS und HTML abgeschaltet. Außerdem habe ich Rocket Loader deaktiviert.

Ich habe auch das CF-Cache geleert und 30 Minuten gewartet, um die Ergebnisse zu testen, aber ich bekomme immer noch seltsame JS-Konsolenfehler, wenn ich auf meiner Startseite https://howtodiscuss.com bin und

wenn ich zu meinen Themen-Seiten navigiere, Catholic rosary - How To Discuss

Du kannst diese Fehler nachstellen, indem du meine Seite im Chrome-Inkognito-Modus öffnest und versuchst, einige Seiten/Themen auf meiner Seite aufzurufen.

Außerdem, weißt du vielleicht, warum meine fest angeheftete AdSense-Werbung rechts neben der Themen-Timeline/Themen-Navigation nur angezeigt wird, wenn ich die Seite vollständig neu lade (über das Browser-Aktualisierungssymbol) oder wenn ich zuerst auf meiner Website lande? Bei allen nachfolgenden Seitenaufrufen wird die Funktion nicht ausgelöst, sie erkennt nicht, dass sich die Themen-Seite geändert hat.

Sie landet jedes Mal in diesem else-Block. Gibt es einen Fehler in meiner benutzerdefinierten Discourse-Plugin-Logik, um zu erkennen, wann ein Benutzer zu einer Themen-Seite navigiert? Ich möchte jedes Mal eine neue AdSense-Werbung anzeigen und neu laden, aber sie landet im else-Block. Der Code denkt, die ID #friends existiere bereits, wird aber nie neu geladen, es sei denn, ich führe ein VOLLES HARD-REFRESH durch. Timeout abgelaufen, aufgegeben.

Bitte hilf mir. Du kannst selbst die Themen meiner Website durchsuchen, du wirst alle Probleme in der JS-Konsole finden. Ich bekomme auch diese Warnung in der JS-Konsole, und die Google-Vignette-Werbung bleibt nie lange genug für einen Klick des Benutzers.

Deprecation notice: Removing all event listeners at once is deprecated, please remove each listener individually.

Ich habe meine CF-Speed-Optimierungen gemäß deinen Vorschlägen deaktiviert: CSS/JS/HTML-Minifizierung, Rocket Loader, Brotli. Was könnte sonst noch das Problem sein? Könnte ein Discourse-Plugin das Problem sein? Das sind meine aktuellen Plugins:

Mein SSL ist auf „Strict

2 „Gefällt mir“