Hallo zusammen,
Ich habe das offizielle Discourse-Werbeplugin bereits für mich eingerichtet und es werden Anzeigen auf meiner Seite angezeigt. Die Frage ist: Was ist, wenn jemand ein benutzerdefiniertes Skript oder eine Anzeige platzieren möchte, die nicht zu den in Discourse integrierten gehört?
Ich habe versucht, zu Customize → Theme → Edit HTML/CSS → After Header zu gehen. Ich habe diesen Skriptblock dort eingefügt und meine Seite neu geladen, aber ich sehe nichts. Tatsächlich kann ich es nur dann sehen, wenn ich es in einfüge, wodurch die Anzeige ganz unten auf der Seite erscheint. „After Header“ wäre jedoch die beste Position, und es wird nicht geladen. Beachten Sie, dass in diesem Skript das Attribut async verwendet wird.
Ich meine, warum brauchen wir ein kompliziertes Plugin, um einfach einen HTML-Block einzufügen? Selbst Google stellt Ihnen ihr Skript zur Verfügung, und Sie können es einfach nach dem Header einfügen. Das ist es, was Leute normalerweise für Websites tun, aber es scheint bei Discourse nicht zu funktionieren, da etwas das Skript blockiert. Es liegt nicht an CSP, da ich bereits https: und inline-code als Filter habe, die jedes JS zulassen sollten, das mit „https“ beginnt. Hier ist eine Google-Anzeige:
<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<!-- Ad 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>
Versuchen Sie, den obigen Code manuell zu verwenden, ohne das Adsense-Plugin, und fügen Sie ihn im Theme nach dem Header ein.
#plugin:advertising
Update: Offensichtlich war die Antwort „House Ads“. Selbst wenn ich jedoch einige Skripte in „House Ads“ poste, werden diese Anzeigen nicht angezeigt, da Discourse etwas blockiert. Wenn ich dasselbe Skript auf einer beliebigen HTML-Seite poste, wird es angezeigt.