Detecteren of AdBlock aan staat.

Door - Raoul -, 15 jaar geleden, 18.066x bekeken

Je hebt vast wel een advertentie op je site, en sommige bezoekers gebruiken wel AdBlock, maar hoe detecteer je dat?

In deze tutorial gaan we door middel van JavaScript dit controleren.

Gesponsorde koppelingen

Inhoudsopgave

  1. AdBlock controleren

 

Er zijn 20 reacties op 'Detecteren of adblock aan staat'

PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
Wouter J
Wouter J
15 jaar geleden
 
1 +1 -0 -1
Misschien handig om je zeer simpele scriptje zonder jQuery te maken?
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
function detectAdBlock()
{
     if (~(document.getElementsByClassName('advert')[0].css.height) == 0) {
           alert('AdBlock staat ingeschakeld!');
     }
}
window.onload = detectAdBlock;
- Raoul -
- Raoul -
15 jaar geleden
 
0 +1 -0 -1
Zoiets kan ook.
Eddy E
Eddy E
15 jaar geleden
 
1 +1 -0 -1
En dan? Krijg je nog een irritante ALERT ook.
Ik gebruik dat programma toch niet voor niets?

Trouwens eigen stijlblad met visibility:hidden; transparancy: 0; text-indent: -9999px; height: 0.0001px; display: none; z-index: -9999px; etc werken ook.

Beetje een dooddoener dit.
't Detecteert alleen maar dat een bepaald element 0px hoog is.
Wouter J
Wouter J
15 jaar geleden
 
0 +1 -0 -1
Raoul, ik zou op zijn minst er even bijzetten dat deze code jQuery vereist.

Tevens vraag ik me inderdaad, net zoals Eddy, af wat nou eigenlijk het nut van dit alles is?
Jeroen VD
Jeroen VD
15 jaar geleden
 
1 +1 -0 -1
Ik slui me bij de rest van de reacties aan, maar ik heb nog een opmerking: je stijl is, vind ik, slecht. Grammaticaal/spelling geen storende fouten (goed zo!), maar door de hele korte paginas krijgt het echt het idee dat je middinin een zin afbreekt. Schrijf elke pagina of een heel stuk langer (dus niet: kort gezegd...), of stop alles in 1 pagina.
Bas  van de Steeg
Bas van de Steeg
15 jaar geleden
 
Dit heeft toch alleen zin als je daarna de hoogte ook weer terug zet?

Tevens heb je zelf eigenlijk niks geschreven, want je hebt de code van wouter gewoon gekopieerd die hier in een reactie gegeven wordt.
Niels K
Niels K
15 jaar geleden
 
Hoi Raoul,

Kan je inderdaad een 'normale javascript' versie toevoegen? (Even twee kopjes: JQuery, Zonder JQuery)

Tot slot, kan dit beter onder snippets worden gezet. Niet echt een tutorial dit.

Wat moet je doen:

- Alles even op 1 pagina zetten
- Een JQuery variant schrijven (is al gebeurd)
- Een variant zonder JQuery schrijven
- Deze tutorial naar de scripts verplaatsen.

Kan je dit voor mij bewerkstelligen?

Alvast bedankt,

Niels
- Raoul -
- Raoul -
15 jaar geleden
 
0 +1 -0 -1
Hoi allemaal,
Allereerst bedankt voor jullie commentaar. Ik heb even de tijd genomen om alles correct te zetten.
Als er nog opmerkingen zijn dan hoor ik die graag.

Raoul
- Raoul -
- Raoul -
15 jaar geleden
 
0 +1 -0 -1
Eddy,

Even een reactie op je comment over de alert, ik heb in de tutorial al eerder gezegd: "Gebruik natuurlijk iets anders dan een alert(), bijvoorbeeld een div die tevoorschijn komt of iets dergelijks.".

Graag dus even alles doornemen voor je reageert.
- Raoul -
- Raoul -
15 jaar geleden
 
0 +1 -0 -1
Bas alsjeblieft, die code heeft Wouter er gezet omdat hij geen jQuery versie wou, die met jQuery is van mij.
Bas  van de Steeg
Bas van de Steeg
15 jaar geleden
 
0 +1 -0 -1
Raoul,
Sorry zie het nu pas. Had gewoon even snel gezien. En ze leken op elkaar, misschien een idee om een jQuery en een js erin te zetten?
- Raoul -
- Raoul -
15 jaar geleden
 
0 +1 -0 -1
Dat staat er al. Als je nogmaals even keek.
Wouter J
Wouter J
15 jaar geleden
 
0 +1 -0 -1
Even een sidenote:
Mijn code zal niet werken. Je moet ~(document.getElements...height) veranderen in document.getElements...height.toFloat() en .css naar .style.
- Raoul -
- Raoul -
15 jaar geleden
 
0 +1 -0 -1
Verbeterd.
Niels K
Niels K
15 jaar geleden
 
0 +1 -0 -1
Bedankt voor de aanpassingen.
ScrapZz nl
ScrapZz nl
15 jaar geleden
 
0 +1 -0 -1
Leuk dat je zo iets kan detecteren alleen om dan een alert te laten verschijnen lijkt me een beetje raar
denk dat je daardoor juist bezoekers verliest,
Het mooist zal zijn dat je dan als je het gedetecteerd heb hem dan weer terug zien te krijgen.
(Ik ga er in elk geval is naar kijken.)
Wouter J
Wouter J
15 jaar geleden
 
0 +1 -0 -1
@ScrapZZ, dat is niet heel moeilijk:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
$('.advert').css('height', 'auto');

Daar hoef je ook niet voor te detecteren of AdBlock aanstaat.

Of natuurlijk met Raw JS:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
var elems = document.getElementsByClassName('.advert');
for (i=-1; elem = elems[++i]; ) {
    elem.style.height = 'auto !important';
}


Al zou ik dit niet willen, de bezoeker heeft niet voor niks adblock..
Whinger de PHPer
Whinger de PHPer
15 jaar geleden
 
0 +1 -0 -1
In plaats van de hoogte terug te zetten zou je er natuurlijk ook voor kunnen kiezen om er een bericht in te plaatsen met zoiets als: "Deze website is mogelijk gemaakt door het weergeven van advertenties, wij vragen u vriendelijk ons toe te voegen aan uw wittelijst. Alvast bedankt."
No One
No One
14 jaar geleden
 
0 +1 -0 -1
Wat als een addblocker de elementen er uitsloopt?
PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen


14 jaar geleden
 
0 +1 -0 -1
Vind het nu wel opzich goed uitgebreid. Met en/of zonder jQuery.
Het idee erachter is mooi, zo kan je een melding ergens geven dat adBlock aanstaat en dat inkosten nu weggehaald worden waardoor het bestaan van de website in gevaar kan komen.

Tis misschien niet de mooiste code maar dat hoeft ook niet, gaat om de werking en die werkt gewoon.
Goed werk hoor en leuk dat je het met ons deelt.

Om te reageren heb je een account nodig en je moet ingelogd zijn.

Inhoudsopgave

  1. AdBlock controleren

Labels

PHP tutorial opties

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.