Woltlab Suite – Werbeblocker (Adblock etc.) blockieren…

Woltlab ist eine beliebte, wenngleich auch nicht freie Community-Software. Ich nutze es selbst seit Anfang 2020 für den Betrieb von Netbiker.de. Und: Ich bin begeistert. Die Software ist hocheffizient, funktioniert einwandfrei und der Wechsel von WordPress zu Woltlab war das Geld wert.

Zur Finanzierung ist dezente Werbung eingebunden. Und dennoch hatte ich kürzlich die Diskussion, wie man die am besten umgeht und welcher Adblocker der Beste ist. Das ist quasi so, als würde man in der Kneipe vor den Ohren und Augen des Barkeepers über Tricks sprechen, wie man umsonst aus dem Zapfhahn sein Bier bekommen kann, diesem dann ins Gesicht zu lächeln und ohne zu zahlen zu gehen. Das fand ich einfach dreist, zumal ich viel Freizeit die letzten zwanzig Jahre für dieses Projekt verwendet habe. Und das hat mich dann zu einem Umdenken bewogen, den Inhalt gegenüber Werbeblockern nicht mehr auszuliefern.

Es gibt hier auch Plugins, die Statistiken anfertigen, wie viele Nutzer solche Blocker haben usw. Das war mir zu viel, ein einfaches Script, das dann einfach ohne große Wartung und Pflege funktioniert, war mein Ziel.

Dabei bin ich auf diesen Beitrag von webdeasy gestoßen. Ein schönes kleines Script, was im Prinzip wunderbar funktioniert. Vielen Dank an die Betreiber von webdeasy für die Veröffentlichung und Freigabe zur Weiternutzung. Für mehr Informationen zum Thema bitte einfach eben verlinkten Beitrag besuchen.

Für die meisten Websiten funktioniert das „out of the box“. Aber leider nicht für Woltlab. Integriert man das Script in die Website, funktionieren die Menüs nicht mehr für Profil, Benachrichtigungen usw. Dies liegt daran, wo per Script das DIV, das der Werbeblocker dann aus dem Weg räumen soll, eingefügt wird. Daher habe ich es für Woltlab Forum etwas abgeändert und das DIV fest integriert und zudem einen netten Hinweis eingefügt, der das Inhaltsfenster dann eben komplett durch einen Hinweistext ersetzt.

Weitere Anforderungen bzw. Ausnahmen

Folgendes wollte ich zudem noch mit unterbringen:

  1. Start- und Registrierseiten sowie alle Einstellungsseiten für den eigenen Account sollen auch weiter mit Werbeblocker bedienbar bleiben.
  2. Das Haupt-Blog (identifizierbar durch den Titel der Website) sowie interne Foren (damit User sich auch gegenseitig beim Ausschalten der Werbeblocker helfen können) sollen weiter bedienbar bleiben.
  3. Es existiert eine Gruppe mit Fördermitgliedern, die freiwillig einen kleinen Beitrag zur Finanzierung leisten. Für diese (erkennbar an der ID-Nr der Gruppe, hier: 6, und der Mitgliedschaft darin) erfolgt keine Erkennung von Werbeblockern.

Werbeblocker – Erkennung für Woltlab hinzufügen

  1. Erstelle im Administrationsmenü eine Box des Typs „Template“ für die Position Fußzeile.
  2. Vergebe keinen Titel im Reiter „Inhalte“, dann sieht der Endbenutzer nichts davon
  3. Willst Du den Werbeblocker nur für registrierte Mitglieder einsetzen, unter „Zugangsbeschränkung“ z.B. registrierte Benutzer auswählen
  4. Als Inhalt unter „Inhalte“ folgenden Code einfügen und den Part nach .html(‚…. entsprechend anpassen. Ebenso, wenn deine Module (forum usw.) unter anderen URLs als den Standard-URLs bzw. als den von mir nachfolgend verwendeten installiert sind, bitte anpassen…
{if 6|in_array:$__wcf->user->getGroupIDs()}
{else}
	<div class="adBanner"></div>
	<script type="text/javascript">
		setTimeout(function() {
			var adblockEnabled = false;
			var adElement = document.getElementsByClassName('adBanner')[0];
			var adElementStyle = getComputedStyle(adElement, null);
			var internesForum = (
				window.location.href.includes("intern") 
				|| document.title.includes("Rund um Netbiker") 
				|| document.title.includes("Mitglieder helfen")
				|| document.title.includes("Netbiker-News")
			);
			if (!internesForum) {
				if(
					(adElementStyle.display === 'none') 
					&& (
							(window.location.href.includes("forum") && window.location.href != 'https://www.netbiker.de/forum/')
						 	|| window.location.href.includes("mitglieder") 
							|| window.location.href.includes("gallery") 
							|| window.location.href.includes("calendar")
							|| window.location.href.includes("conversation")
							|| window.location.href.includes("blog")
						)
				) {
				$("#content").html('<header class="contentHeader"><div class="contentHeaderTitle"><h1 class="contentTitle">Hey, was ist los? Wir haben einen aktiven Werbeblocker erkannt...</h1><p class="contentHeaderDescription">...aber irgendwie müssen wir das hier doch auch finanzieren!</p></div></header><div class="section cmsContent htmlContent"><h3>Werbung? Pfui Teufel...</h3><p>Ja, das stimmt, Werbung kann nervig sein. Gerade aufdringliche Werbung macht keinen Spaß. Auf manchen Websites ist sehr viel und auf anderen wiederum ist keine oder nur dezente Werbung eingebettet. Wir sehen auch von zu aufdringlicher oder die Inhalte überlagernder Werbung ab.<br/><br/>Werbung hat natürlich den Zweck, Geld  für denjenigen, der die Werbung einblendet, einzubringen. Für uns dient die Werbung, die wir hier anzeigen, dazu, die Betriebskosten der Server und die Lizenzkosten der Software regelmäßig zu begleichen. Dass das für uns wichtig ist, verstehst Du sicher, und gerade weil hier eh alles quasi als reines Hobby betrieben wird ist das doppelt wichtig.<br/><br/>Wer bei uns mitmachen will, der muss seinen Teil dazu beitragen und auch bei uns die Werbung entsprechend zulassen.<br/><br/><strong>Von daher vielen Dank dafür, dass Du für Netbiker eine Ausnahme hinzufügst!</strong></p><h3>Ach ja: Netbiker geht auch ohne Werbung!</h3><p>Wie das? Ganz einfach, du kannst Fördermitglied werden. Für aktive Fördermitglieder findet keine Prüfung auf Adblocker statt.<br/><br/><a href="/paid-subscription-list/">Mehr unter <strong>Fördermitgliedschaften</strong></a></p><h3>Alles erledigt?</h3><p>Hast Du das gemacht, <a href="' + window.location.href + '">klicke hier und lade diese Seite erneut</a>. Im Erfolgsfall bekommst Du dann auch diese Meldung nicht mehr angezeigt!</p><h3>Etwas klappt nicht, oder Du brauchst Hilfe?</h3><p>Die <a href="/forum/board/27-netbiker-intern/">internen Foren</a> sind auch mit Werbeblocker nutzbar, dort kannst Du v.a. im <a href="/forum/board/11-netbiker-support-mitglieder-helfen-mitgliedern/">Mitglieder helfen Mitglieder-Forum</a> nach Unterstützung fragen.</p><h3>Probleme beim Hinzufügen einer Ausnahme zum Adblocker?</h3><p>Nachfolgend haben wir Dir für den vermutlich beliebtesten Adblocker angeführt, wie man eine Ausnahme hinzufügt.<br/><br/><strong>Werbeblocker "Adblock Plus"</strong><br><br/>Bitte gehe in die Einstellung deiner Adblock-Erweiterung und deaktiviere den Regler für netbiker.de vollständig:</p><img src="/grafik/adblock_adblockplus.png"/></div>');
				}
			}
		}, 1500);
	</script>
{/if}

Ergebnis bei Aufruf der Website mit Werbeblocker

Ruft ein Besucher nun die Website auf, dann verschwindet nach knapp 2 Sekunden der Inhaltsbereich und wird durch folgenden Inhalt ersetzt:

Möglich, dass das Script nicht das Beste ist, aber ich denke für die meisten Werbeblocker sollte es reichen. Aufwand (wenig) und Kosten (keine) hielten sich zudem in Grenzen…

Wer möchte, dass der Hinweis nur oberhalb des eigentlichen Inhalts eingeblendet wird, möge anstatt .html() die jQuery-Methode .prepend() verwenden.

Vielleicht konnte ich ja dem ein oder anderen Woltlab-Nutzer hier einen Impuls mitgeben. Viel Spaß damit!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.