2011-01-30 19 views
11

Desidero rilevare il software di blocco sul mio sito Web e chiedere agli utenti di disabilitare il blocco degli annunci tramite reindirizzamento. L'unico modo che ho trovato era usare Javascript.Rileva adblock e javascript

  1. C'è qualche altro modo di rilevamento?

  2. In caso contrario, come posso rilevare se Javascript è disattivato e reindirizzare a una determinata pagina?

+14

@Ivo che è un cavallo di merda.Sono tutto per la libertà di scelta, ma non puoi chiedere alle piccole startup video di non utilizzare annunci video. Immagino che tu possa, ma poi ti chiediamo semplicemente di F e vai a usare BitTorrent. Preferisco che tu consumi contenuti illegali illegali da qualche altra parte oltre a pagare i tuoi costi di streaming CDN, paghi al mio licenziante la sua commissione e poi non ottenga nulla in cambio. – Nuby

+5

Ivo ha il vantaggio che non è possibile _force_utilizzare l'utente per utilizzare il proprio servizio. È meglio costringerli a _want_ a usarlo. – Johan

+7

@Johan Quello che ti manca è che non voglio che usino il mio servizio gratuito se non vogliono visualizzare gli annunci. Perché dovrei? Non sto gestendo un ente di beneficenza, sto gestendo un'attività. Se si desidera bloccare gli annunci, ma un abbonamento. Se vuoi liberarlo, allora smetti di sprecare la mia larghezza di banda – John

risposta

5

In realtà non è possibile "rilevare" se javascript è disabilitato. Poiché javascript è una funzionalità lato client, il server non può rilevarlo e "rilevare" le cose sul lato client è fatto con javascript. Si vede il fermo 22.

Ciò che è disponibile è il tag <noscript>, che viene visualizzato solo dal browser se javascript è disattivato. Questo è il meccanismo standard per la visualizzazione di un messaggio per un utente se javascript è disabilitato. Usando CSS noscript e intelligente puoi rendere imperativo che gli utenti abilitino javascript o seguano un link di reindirizzamento presente per utilizzare il tuo sito.

Non esiste un modo per reindirizzare automaticamente solo per gli utenti che hanno javascript disabilitato. Puoi reindirizzare gli utenti in modo selettivo utilizzando javascript oppure puoi reindirizzare le persone in base a criteri lato server (intestazioni HTTP, ecc.). Ma non puoi catturare quel gruppo intermedio.

Per quanto riguarda il rilevamento degli annunci, questo potrebbe variare in base al browser e al metodo di blocco. Non c'è un indicatore coerente per questo, ma puoi fare cose come verificare la disponibilità del tuo ad server tramite javascript o controllare se il contenuto dell'annuncio è caricato sulla pagina.

+0

È possibile utilizzare JavaScript per rendere il contenuto a cui l'utente è interessato. Quindi, nessun JavaScript, nessun contenuto. L'utente dovrebbe invece ricevere un messaggio che richiede JavaScript. Una volta attivato JavaScript, puoi utilizzarlo per rilevare se i tuoi annunci vengono bloccati. –

35

Per rilevare se l'utente sta bloccando gli annunci, tutto ciò che devi fare è trovare una funzione nell'annuncio javascript e provare a testarla. Non importa quale metodo stanno usando per bloccare l'annuncio. Ecco come si presenta per gli annunci di Google Adsense:

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

Questo metodo è descritto qui: http://www.metamorphosite.com/detect-web-popup-blocker-software-adblock-spam

Per reindirizzare tutti gli utenti con javascript disabilitato, è sufficiente inserire questo codice nella testa del codice HTML:

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

+1. Questa è la risposta. – nalply

+1

booo! Nessuna pubblicità! .. –

+11

? annunci mantiene il web in esecuzione –

1

Non ho potuto ottenere che la soluzione di Beau funzionasse controllando "window.google_render_ad", ma ha funzionato durante il controllo di "window.google_jobrunner".

Forse il codice AdSense è cambiato da quando è stata pubblicata la risposta originale, ho trovato "google_jobrunner" nel JS scaricato da Adsense ma non "google_render_ad".

+0

entrambi funzionano bene per me – andufo

+0

Posso verificarlo, 'window.google_render_ad' non ha funzionato ma' window.google_jobrunner' ha fatto il trucco. Grazie! – jesal

2

cito a questo post su questo argomento:

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 
} 
Problemi correlati