Wo platziert man das Werbeskript?

Wir sind mit keinem der von Discourse unterstützten Werbenetzwerke zufrieden, aber wir haben eines gefunden, das auf unserem Blog perfekt funktioniert, und wir würden es gerne auch in unserem Forum implementieren. Dafür müssen wir jedoch einen Code kopieren und in das HTML unserer Seite einfügen. Wo genau machen wir das, und würde das funktionieren?

Verwenden Sie einfach Theme-Komponenten dafür.

Danke, aber ich bin kein Entwickler. Meine Kenntnisse gehen nicht über das Einrichten eines Discord-Servers (was eine Woche gedauert hat) und das Ändern von Site-Einstellungen hinaus.

Dann können Sie hier beginnen

Ihr Ziel ist es, eine Theme-Komponente zu erstellen, das <script>-Tag zum Reiter „/head

Willkommen im Club, wir sitzen im selben Boot. Aber ein kurzer Hinweis vorab: Das funktioniert nicht mit Theme-Komponenten, sodass die vorgeschlagene Antwort nicht funktionieren wird. Wir sind diesen Weg bereits gegangen, ebenso wie andere (siehe unsere Themen dazu). Bei Theme-Komponenten wird das Werbeskript nicht dort im Body angezeigt, wo es angezeigt werden soll. Der Kommentator, der vorschlägt, ein Skript im zu verwenden, ist möglicherweise nicht mit der tatsächlichen Implementierung von Werbeskripten vertraut. Wir haben Theme-Komponenten ausprobiert, konnten es aber nicht umsetzen, da es Einschränkungen gibt, was man mit Theme-Komponenten machen kann.

Letztendlich benötigen Sie ein Plugin, um das zu tun, was nötig ist, um -Tags von anderen Werbenetzwerken anzuzeigen. Leider existiert dafür noch kein Plugin. Die einzige Hoffnung besteht darin, dass Discourse ein generisches Werbeskript im Ads-Plugin hinzufügt, um Werbeskripte von Drittanbietern zu unterstützen, die in den Werbebereich injiziert werden müssen. Derzeit können Sie im Grunde nur Google DFP verwenden. Wenn Sie einen anderen Werbeanbieter nutzen, sind Sie in der Klemme und können das Forum nicht monetarisieren. Das ist bedauerlich, denn es gibt viele andere gute Werbenetzwerke (z. B. Adbutler, Openx usw.), und Sie sollten nicht gezwungen sein, Google DFP für die Ausspielung von Werbung zu verwenden.

Nun hoffen wir also, dass Discourse ein generisches Werbeskript zum Ads-Plugin hinzufügt. Ich sehe nicht wirklich, warum das schwierig sein sollte, aber ehrlich gesagt habe ich keine Ahnung, wie man in Ruby und Ember programmiert, daher bin ich mir nicht sicher, wie man das umsetzen kann. Theoretisch benötigen sie lediglich ein Textfeld im Plugin, das Script-Tags akzeptiert und diese dann in die Werbebereiche injiziert, die das Plugin bereits festlegt. Ein generisches Skriptfeld im Gegensatz zu einem Feld, das nur reines HTML akzeptiert, würde im Grunde jedes einzelne Werbenetzwerk abdecken, ohne dass für jedes einzelne Werbenetzwerk spezifischer Code implementiert werden muss.

Caleb, aus Interesse: Welchen Dienst nutzt du auf deinem Blog?

Es ist etwas schwierig, deine Punkte ohne Kontext zu beantworten. Es wäre sehr hilfreich, wenn du mehr Details dazu nennen könntest, welches Werbenetzwerk du meinst und genau, wie es bei dir nicht funktioniert hat.

Das ist nicht ganz richtig und hängt stark davon ab, welches Werbenetzwerk du verwenden möchtest. Wenn es eine strikte Anforderung ist, dass das Skript des Werbenetzwerks direkt neben dem </body>-Tag platziert werden muss – was unwahrscheinlich ist – dann liegt das Problem eindeutig beim Werbenetzwerk selbst, das solch eine strikte und unangemessene Anforderung stellt.

Skripte, die in einem Theme hinzugefügt werden, werden in eine theme.js-Datei eingebunden, die dann in das <head>-Tag des Dokuments injiziert wird.

Das gibt uns eine gewisse Kontrolle und ermöglicht es uns, nützliche Funktionen umzusetzen, wie zum Beispiel zu verhindern, dass defekte Themes die gesamte Seite lahmlegen.

Auch das ist nur teilweise richtig. Themes können auf der Client-Seite alles modifizieren. Das bedeutet, dass alles, was in JavaScript in Discourse geschrieben ist, für Themes zugänglich ist.

Tatsächlich könnte das gesamte offizielle Werbe-Plugin in eine Theme-Komponente umgewandelt werden, und es würde funktionieren. Das Einzige, was fehlen würde, ist die Möglichkeit, eine ads.txt-Datei hinzuzufügen, da dies Zugriff auf das Backend erfordert. Der Grund, warum wir das nicht getan haben, ist, dass ein Plugin eine sauberere Implementierung für diesen Zweck darstellt – vor allem, weil es mehr als einen Anbieter unterstützt. Also ja, Themes haben Einschränkungen, aber das ist hier nicht der Hauptpunkt.

Hier gibt es einen sehr wichtigen Hinweis: Discourse ist eine Single-Page-Applikation. Das bedeutet, dass nach dem initialen Laden der App auf der ersten Seite alle weiteren Navigationen von Discourse und nicht vom Browser verarbeitet werden.

Das ist wichtig zu wissen, denn ein Werbenetzwerk muss die notwendigen Hooks bereitstellen, damit Single-Page-Applikationen die Seiteninformationen aktualisieren und neue Anzeigen ausliefern können. Ich weiß nicht viel über Adbutler oder Openx, aber ich konnte keine Dokumentation für die Unterstützung von Single-Page-Applikationen durch einen dieser Anbieter finden.

Wenn das Werbenetzwerk also die notwendigen Hooks nicht bereitstellt, liegt es dann wirklich an Discourse, dass es nicht unterstützt wird?

Du wirst nicht wirklich gezwungen, DFP zu verwenden. Es ist nur eine von sechs Optionen im offiziellen Werbe-Plugin, die ich hier der Vollständigkeit halber aufliste:

  1. DFP
  2. AdSense
  3. Google Ads
  4. Amazon Advertising
  5. Codefund
  6. Carbon Ads

Wiederum: Da Discourse eine Single-Page-Applikation ist, funktioniert ein „generisches

Vielen Dank für Ihre detaillierte Antwort und Ihre Hilfe. Es gibt hier viel zu verdauen.

Aber ich denke, es liegt hier ein Missverständnis vor. AdButler ist eine Art Ad Server, ähnlich wie Google DFP. Diese Anbieter helfen Ihnen dabei, Ihre eigenen Anzeigen mit Werbetreibenden zu verwalten. Dagegen sind Dinge wie Adsense (und anscheinend auch Carbon) Ad Networks. Ad Networks funktionieren etwas anders als Ad Server. Unser Problem betrifft Ad Server, nicht Ad Networks. Entschuldigen Sie bitte die Verwirrung.

Wir müssen mit unserer Website Geld verdienen, um geschäftsfähig zu bleiben, und dafür benötigen wir einen Ad Server, um Werbetreibende zu verwalten. Dafür nutzen wir Ad Butler. Die Funktionalität „Eigene Anzeigen

Kurzes Follow-up: Ich habe mir den Code für Carbon Ads im Ad Plugin angesehen und habe ein konzeptionelles Verständnis dafür, wie dies umgesetzt wurde. Hoffentlich können wir das als Sprungbrett nutzen, um Ad Butler zu implementieren. Danke für den Hinweis zu Carbon Ads.

Hallo @sfoster, gibt es Neuigkeiten zur AdButler-Integration?

Nein. Wir haben einige Programmierer kontaktiert, aber bisher hat uns niemand ein festes Angebot und einen Zeitplan gegeben. In WordPress fügen wir den Code einfach in ein Widget ein und sind fertig. Wir waren überrascht, wie komplex die Programmierung in Discourse teilweise ist. Wir werden uns also noch etwas umsehen und ich halte Sie auf dem Laufenden. Wir tendieren jedoch dazu, einfach zu DFP zu wechseln, das im Kern-Plugin unterstützt wird, auch wenn wir es wirklich ungern tun müssen.