Frage

Ich möchte Adblocking -Software auf meiner Website erkennen und Benutzer bitten, Adblock durch Umleitung zu deaktivieren. Der einzige Weg, den ich fand, war JavaScript zu verwenden.

  1. Gibt es eine andere Art der Erkennung?

  2. Wenn nicht, wie erfasse ich, ob JavaScript deaktiviert ist, und leiten Sie sie zu einer bestimmten Seite um?

War es hilfreich?

Lösung

Sie können nicht tatsächlich "erkennen", ob JavaScript deaktiviert ist. Da JavaScript eine clientseitige Funktion ist, kann der Server es nicht erkennen und das "Erkennen" der Client-Seite erfolgt mit JavaScript. Sie sehen den Fang 22.

Was verfügbar ist, ist die <noscript> Tag, das nur vom Browser gerendert wird, wenn JavaScript ausgeschaltet wird. Dies ist der Standardmechanismus zum Anzeigen einer Nachricht an einen Benutzer, wenn JavaScript deaktiviert ist. Mithilfe von NoScript und cleverem CSS können Sie es im Notfall machen, dass Benutzer JavaScript entweder aktivieren oder einem Weiterleitungslink folgen, den Sie vorstellen, um Ihre Website zu verwenden.

Es gibt keine Möglichkeit, automatisch umzuleiten nur Benutzer, die JavaScript deaktiviert haben. Sie können Benutzer mit JavaScript selektiv umleiten oder Personen basierend auf den serverseitigen Kriterien (HTTP-Header usw.) umleiten. Aber Sie können diese mittlere Gruppe nicht fangen.

Das Erkennen von AdBlocking wird nach der Browser- und Adblocking -Methode variieren. Es gibt kein konsistentes Flag, aber Sie können Dinge wie die Überprüfung der Verfügbarkeit Ihres Anzeigenservers über JavaScript tun oder überprüfen, ob Ihr Anzeigeninhalt auf der Seite geladen wird.

Andere Tipps

Um festzustellen, ob der Benutzer Anzeigen blockiert, müssen Sie lediglich eine Funktion im AD -JavaScript finden und versuchen, dies zu testen. Es spielt keine Rolle, mit welcher Methode sie die Anzeige blockieren. So sieht es für Google Adsense -Anzeigen aus:

if(typeof(window.google_render_ad)=="undefined") 
{ 
    //They're blocking ads, do something else.
}

Diese Methode wird hier beschrieben: http://www.metamorphosit.com/detect-web-popup-blocker-software-adblock-spam

Um alle Benutzer mit deaktiviertem JavaScript umzuleiten, legen Sie diesen Code einfach in den Kopf Ihres HTML:

<noscript>
    <meta http-equiv="refresh" content="5;url=http://newsite.com/">
</noscript>

Ich zitiere aus diesem Beitrag zu diesem Thema:

http://w3guy.com/detecting-adblock/

Html

<div class="myTestAd">
    <!-- Adsense Ad code goes here -->
</div>

JS:

if ($('.myTestAd').height() == 0) {
    // stuff to do if adBlock is active
} 

Ich konnte die Lösung von @Beau nicht dazu bringen, nach "window.google_render_ad" zu prüfen, aber es hat funktioniert, wenn ich 'window.google_jobrunner' überprüfte.

Vielleicht hat sich der Adsense -Code geändert, seit die ursprüngliche Antwort veröffentlicht wurde. Ich fand 'Google_jobrunner' in den von Adsense heruntergeladenen JS, aber nicht 'google_render_ad'.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top