Ich habe eine Reihe von Problemen mit der Anzeige von Werbung auf meiner Discourse-Seite unter https://howtodiscuss.com.
- 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
-
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
- 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?
-
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?
-
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.

















