แม้อายุของคำถามนี้ฉันเพิ่งพบว่ามีประโยชน์มากและสามารถคาดเดาได้เท่านั้นที่มีคนอื่นยังคงดูอยู่ หลังจากดูที่นี่และที่อื่น ๆ ฉันคิดว่าหลักสามด้านลูกค้าตรวจสอบทางอ้อมตรวจพบ ad blocker คือการตรวจสอบถูกบล็อก div
/ img
บล็อกiframe
และทรัพยากรที่ถูกบล็อก (ไฟล์จาวาสคริปต์)
อาจจะอยู่ด้านบนหรือหวาดระแวง แต่ครอบคลุมสำหรับระบบปิดกั้นโฆษณาที่ปิดกั้นการเลือกเพียงหนึ่งหรือสองครั้งดังนั้นจึงอาจไม่ได้รับการคุ้มครองหากคุณทำการตรวจสอบเพียงครั้งเดียว
ในหน้าของคุณกำลังเรียกใช้การตรวจสอบเพิ่ม: (ฉันใช้ jQuery)
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="advertisement.js"></script>
<script type="text/javascript" src="abds.js"></script>
และเพิ่มรายการต่อไปนี้จากที่อื่นในหน้า:
<div id="myTestAd"><img src="http://placehold.it/300x250/000000/ffffff.png&text=Advert" /></div>
ฉันใช้ div ที่มีชื่อเหยื่อรวมถึงรูปภาพที่โฮสต์ภายนอกด้วยข้อความ "Advert" และขนาดที่ AdSense ใช้ (ขอบคุณ placehold.it!)
ในadvertisement.js
คุณควรผนวกบางสิ่งลงในเอกสารซึ่งเราสามารถตรวจสอบได้ในภายหลัง แม้ว่าดูเหมือนว่าคุณจะเคยทำมาก่อน แต่คุณกำลังตรวจสอบไฟล์ ( advertisement.js
) ตัวเองกำลังโหลดอยู่ไม่ใช่เอาท์พุท
$(document).ready(
{
$("body").append("<div id=\"myTestAd2\">check</div>");
});
จากนั้นสคริปต์ตรวจจับตัวบล็อกโฆษณาซึ่งรวมทุกอย่างเข้าด้วยกัน
$(document).ready(function()
{
var ifr = '<iframe id="adServer" src="http://ads.google.com/adserver/adlogger_tracker.php" width="300" height="300"></iframe>';
$("body").append(ifr);
});
$(window).on("load",function()
{
var atb = $("#myTestAd");
var atb2= $("#myTestAd2");
var ifr = $("#adServer");
setTimeout(function()
{
if( (atb.height()==0) ||
(atb.filter(":visible").length==0) ||
(atb.filter(":hidden").length>0) ||
(atb.is("hidden")) ||
(atb.css("visibility")=="hidden") ||
(atb.css("display")=="none") ||
(atb2.html()!="check") ||
(ifr.height()!=300) ||
(ifr.width()!=300) )
{
alert("You're using ad blocker you normal person, you!");
}
},500);
});
เมื่อเอกสารพร้อมเช่นโหลดมาร์กอัปเราจะเพิ่ม iframe ลงในเอกสารด้วย จากนั้นเมื่อโหลดหน้าต่างเช่นเนื้อหารวม โหลดภาพ ฯลฯ แล้วเราตรวจสอบ:
- ขนาดและการมองเห็นของ div การทดสอบครั้งแรก
- ว่าเนื้อหาของ div ทดสอบที่สองคือ "การตรวจสอบ" ในขณะที่มันจะได้รับถ้า
advertimsent.js
ถูกไม่ถูกปิดกั้น
- ขนาด (และฉันคิดว่าการมองเห็นเป็นวัตถุที่ซ่อนอยู่ไม่มีความสูงหรือความกว้าง?) ของ iframe
และรูปแบบ:
div#myTestAd, iframe#adServer
{
display: block;
position: absolute;
left: -9999px;
top: -9999px;
}
div#myTestAd2
{
display: none;
}
หวังว่านี่จะช่วยได้