Das Pro-AdBlock-Plugin, v1.0
Sonntag, 1.11.2015, 10:05 > daMaxHurra, es ist soweit. Sergej hat in diversen Nachtschichten das von mir so sehnlich herbei gewünschte Plugin Pro Ad-Block für WordPress entwickelt und nach einigen Iterationsschritten steht nun Version 1.0 zum Download bereit.
Es zeigt Besuchern, die keinen AdBlocker installiert haben, einen Overlay-Text an, der darauf hinweisen kann/soll/darf, dass AdBlocker eine gute Sache sind (warum das so ist, lässt sich u.a. hier nachlesen). Darüber hinaus verfügt das Plugin inzwischen über folgende Optionen:
- frei einstellbarer Text auf dem Overlay
- frei definierbare Farben (Text, Hintergrund, Links usw.)
- Die Standard-Styles können mit eigenen Styles "überschrieben" werden falls nötig
- Mehrsprachigkeit
An dieser Stelle möchte ich ein dickes DANKESCHÖN in Richtung Sergej rufen, denn ohne seine unermüdliche Arbeit wäre dieses Plugin niemals zu dem geworden, was es heute ist. Mein bescheidener Anteil bestand aus ein paar Ideen und Anregungen und darin, mir von meinen Lesern für diese bescheuerte Idee an den Karren fahren zu lassen. Letzteres perlt bekanntlich spurlos an mir ab kenne ich ja inzwischen und mecker' einfach zurück
Aber zurück zum Thema: ladet das Ding runter, installiert es und macht fleißig Werbung (hihi) dafür. Lasst uns den Springers dieser Welt zeigen, was wir von ihrer Werbung halten. Auf sie mit Gebrüll!
https://github.com/crxproject/pro-adblock
PS: es gibt auch eine Variante für Joomla, allerdings bisher noch ohne die ganzen Optionen. Vielleicht hat LUCiDdev (oder jemand anders) ja Lust, die aktuelle Version auch für Joomla zu adaptieren?
PPS: und ja, liebe|r LostInTranslation, ich bin dir noch eine Antwort schuldig. Das habe ich nicht vergessen, nur wird diese Antwort etwas länger und ich will darüber ausnahmsweise mal in Ruhe nachdenken
Update 1: das Plugin ist inzwischen in Version 1.0.1 und die Joomla-Variante wurde auch cleverer.
Hi daMax,
also hier in meiner lokalen Entwickler-Umgebung läuft das schon, mit der zusätzlichen Möglichkeit die Meldung auch in ner Modalbox anzuzeigen. Der Code ist aber bei weitem noch nicht annähernd optimal und fertig.
Ich entwickle da auch nicht ununterbrochen dran, ich mache auch noch andere Dinge wie z.B. Musik, aber auch Informieren und Recherchieren im Allgemeinen braucht etwas Zeit und wie ich schon sagte, mache ich das auch zur Übung, denn so geübt, gerade bei der JavaScript Hölle bin ich nicht, so wie Du oder wie Sergej
Wem das zu langsam geht, der muss halt mal selbst Hand anlegen.
Die Vorlage von mir ist GPL, das kann sich also jeder selbst anpassen und erweitern, je nach Lust und Laune. Ich denke ich habe das auch ausreichend kommentiert, so dass sich jeder, mehr oder weniger schnell im Code zurechtfinden kann.
Ich werde aber auch hier wieder Bescheid geben, wenn ich ne neue Version fertig habe
Wenn das ne richtig gute Version ist, dann mach ich ggf. auch noch nen Updateserver dazu, damit man das auch aus dem Backend heraus updaten kann und veröffentliche es im offiziellen JED, damit das auch vielleicht etwas Aufmerksamkeit erzeugt. Da muss ich mir aber noch nen englischen Text dazu ausdenken und Englisch kann ich nicht soooooo gut, so dass das auch wieder Zeit kostet - die Leute sollten auch die Intention verstehen können, warum es so etwas gibt.
Greetz
Ist das hier nicht aktiv oder ist das endlich mal ein Plugin, das tatsächlich funktioniert?
@Tux.: letzteres ich sehe hier manchmal für eine halbe Sekunde "OOPS" bevor mein AdBlock zuschägt. Und du NoScriptler siehst das nie.
Very nice post. Und es gibt schon ein Update, dass das Plugin noch weiter vereinfacht. Ich hab vorhin etwas geiles gefunden und direkt eingebaut. Kuck mal hier: wp-includes/js/utils.js
Es gibt jetzt ne neue Zwischenversion, mit der Anzeige in einer SqueezeBox zur Auswahl mit der Vollbild Variante.
http://www.therealsystemerror.de/lucid_downloads/category/6-joomla-3-x.html#pro-adblocker
Optionen gibt es noch nicht viele, aber die Größe, Hintergrundfarbe und eine Verzögerung für die Box kann man schon angeben. Ebenso die Lebensdauer für das Cookie.
Die nächste Version wird dann mehr Optionen haben, wenn ich mir überlegt habe wie ich das am geschicktesten anstelle.
Vom Sergej seiner Variante habe ich jetzt noch nichts direkt übernommen, ich hab dafür selbst das JS vom max etwas erweitert. Aber ich werde mir die neue Version gleich auch mal anschauen
Greetz
@sergej: ach, wie praktisch
@LUCiDdev: ihr Jungs seid einfach spitze.
Ich habe heute die erschreckende Erkenntnis gewonnen, dass Adblockerblocker unter Android nicht zu funktionieren scheinen. Ärgerlich.
@Tux.: immer diese schlecht programmierten Plugins
Ich las gerad die "Gegendarstellungen": ich bin froh das ich mein Happa und mein Heia nicht mit Banner-Ads finanzieren muss. NUff said.
@da]v[ax: Ich habe gerade gemerkt, die Variante der Modal-Box wird bei mir immer angezeigt, sofern das Cookie nicht gefunden wird, auch wenn der Ad-Blocker eingeschaltet ist. Das liegt wohl daran, dass man nen Script-Block nicht einfach so per CSS ausblenden kann.
Da muss ich mir ggf. mal genauer anschauen, wie das der Sergej macht und das nochmal überarbeiten.
@LUCiDdev: jo,deshalb habe ich in meiner rudimentären Version den Overlay PER JS sichtbar gemacht und für Screens < 1024px generell versteckt. So brauche ich a) keine komplizierte Geräteerkennung und b) wird das Ding sicher nicht bei Leuten ohne Script angezeigt.
@da]v[ax: Danke für die Erklärung!
Ich habe nun vor den Script Block ein leeres div ad-space gemacht und jetzt funktioniert es manchmal, aber oft auch nicht. Kann es sein, dass die Erkennung irgendwie mit der Laufzeit korreliert? Wenn ich in das JS nen einfachen Alert mit rein mache und so den Ablauf unterbreche, dann funktioniert es immer und die Box wird nicht angezeigt, wenn das uBlock aktiviert ist. Scheint so, als wenn das uBlock ne längere Zeit braucht, um das div ad-space auszublenden und in der Zeit hat das JS schon die Box aufgerufen. Wenn ich das JS unterbreche passiert das nicht.
Vielleicht muss ich doch die Methode von Sergej nutzen.
@LUCiDdev: komisch... also ich verwende hier auch uBlock und habe keine Probleme damit (weder bei mir noch bei dir)...
@da]v[ax: Das Problem trat nur bei der SqueezeBox auf und bei mir drüben hatte ich ja deine Vollbild Variante aktiv und die funktioniert immer, da das ad-space div bei display standard auf none gesetzt ist. Dein uBlock muss also im Grunde zu Anfang gar nicht reagieren, erst wenn das Script das div einblendet.
Bei der SqueezBox war aber kein solches div, da ich den Code dafür erst im JavaScript zusammenbaue und ich in PHP nur diese benötigte Werte im Script-Block Ausgebe.
Naja lange Rede.
Die Ursache war echt die Laufzeit. Da scheint der Javascript Parser schneller zu sein, als das Plugin im Browser.
Man kann nun für die SqueezeBox Variante im Backend eine Verzögerung einstellen, um den Adblockern etwas zeit zu geben, das entsprechende div zu filtern. Standard hab ich auf 500 Millisekunden eingestellt. So ist das nicht zu lang und funktioniert auch bei mir nun immer. Kleinere Werte erhöhen die Gefahr, dass die SqueezeBox immer angezeigt wird, weil dann der Adblocker zu wenig Zeit hat.
So nun ist das auch stabil und fertig. Jetzt kann ich an das Aufhübchen gehen und mir etwas zum Styling Gedanken machen.
@da]v[ax: Ich denke dass es ein Fehler meinerseits war, das generieren der SqueezeBox in das externe Javascript auszulagern und nicht im PHP inline, so wie dein Overlay, dann würde das mit dem Delay auch wegfallen. Naja es funzt jetzt erst mal und zur Zeit kennt das auch noch "niemand" der das mit Joomla einsetzen wollte.
D.H. also weiter basteln. Mit mehr Übung wird das schon Nächstes Jahr ist es dann vielleicht fertig
@LUCiDdev:
Sry @da]v[ax: wenn ich Dir die Kommentare verspamme Aber ich hab das Problem jetzt endgültig gelößt, in dem ich einfach für die SqueezeBox noch die Erkennung von Sergej, bei mir angepasst eingebaut habe. Vielleicht hätte ich mich, schon von Anfang, besser an Sergejs Variante orientieren sollen HaHa
Danke! Das funktioniert prima
Jetz kann man das delay nutzen wenn man will, aber es kann auch auf 0 stehen und ist jetzt als Standard eingestellt.
@LUCiDdev: ja, ich habe auch das dumpfe Gefühl, der Sergej hat da mehr Erfahrung als ich... Trotzdem funktioniert meine Version des Plugins zumindest bei mir genau wie gewünscht
@da]v[ax: In der Tat, es funktioniert und gerade diese simple Art hat mich gleich angemacht
Jetzt hab ich beide Varianten zur Auswahl drin
Bei dem Plugin von Sergej kann man einiges lernen und bekommt tolle Ideen dazu. Nicht nur für WordPress - klasse! Sein Detector ist auch so simple wie effektiv. Thx
Der Artikel zum Plugin ist jetzt soweit fertig - bis zum nächsten Update.
Greetz q:D
Langsam wird es. Vielleicht ist die 1.1 dann soweit fertig. Jetzt ist erst mal Feature freez und es geht ans optimieren, verbessern usw. Die SquezzeBox z.B. scrollt noch mit dem Layer darunter hin und her, das ist nicht so schön. Bei Sergej im Code habe ich da Hinweise gesehen
Vielleicht nehm ich auch die Erzeugung des Popups wieder aus dem externen JS, damit der Header nicht unnötig groß wird und lass da nur die Erkennung drin.
Wie war das, Erfahrung macht den Meister?
Deine Variante @]V[, hab ich wieder raus genommen. Deinen Text behalte ich aber auch bei mir, muss den nur noch in einen Artikel übertragen
Greetz
Funktioniert leider nicht wenn man per DNS Ads blockt. Er zeigt trotzdem eine Warnung, man benutze keinen Adblocker. Cheers!
@foxfoobar: hm... das ist natürlich doof. Du dürfstest damit das 1% sein, das dieses Plugin overblocked. Das tut mir natürlich jetzt leid Musst wohl hin und wieder auf "lass mich einfach rein" klicken. Oder ich geb Dir noch nen Dauercookie, wie wärs damit?
Ganz nette Idee, denn auch ich war zunächst etwas verwirrt als ich denn Einstieg zu lesen bekam. Dass Plugin scheint jedoch nur Adblock Plus zu erkennen. Jedoch gibt es auch andere Möglichkeit Add´s zu unterdrücken. De Facto ist dieses Plugin schon fast als Werbung für Adblock Plus zu werten und Das finde ich nun weniger cool. Denn Adblock Plus stand für mich, auf Grund der zweifelhaften Geschäftspraktiken, bislang nicht zur Debatte. Aber den Sensibilisierungseffekt kann ich nur unterstützen.
@Burkhard: ich verwende uBlock Origin, das killt den OOPS auch zuverlässig, genauso uBlock und auch bei aktiviertem NoScript sollte kein OOPS zu sehen sein (wobei einem dann natürlich Wurli entgeht...). Was benützt du denn um Ads zu blocken?