2011-01-30 40 views
11

Tôi muốn phát hiện phần mềm quảng cáo trên trang web của mình và yêu cầu người dùng vô hiệu hóa adblock bằng cách chuyển hướng. Cách duy nhất tôi tìm thấy là sử dụng Javascript.Phát hiện adblock và javascript

  1. Có cách nào khác để phát hiện không?

  2. Nếu không, làm cách nào để phát hiện xem Javascript có bị tắt hay không và chuyển hướng chúng đến một trang nhất định?

+14

@ Ivo đó là ngựa-shit.Tôi hoàn toàn tự do lựa chọn, nhưng bạn không thể yêu cầu các phần khởi động video nhỏ không sử dụng quảng cáo video. Tôi đoán bạn có thể, nhưng sau đó chúng tôi chỉ yêu cầu bạn F và sử dụng BitTorrent. Tôi muốn bạn tiêu thụ nội dung bất hợp pháp bất hợp pháp ở một nơi khác hơn là trả tiền cho chi phí phát trực tuyến CDN của bạn, trả phí cho bên cấp phép của tôi và sau đó không nhận được gì. – Nuby

+5

Ivo có điểm rất tốt là bạn không thể _force_ người dùng sử dụng dịch vụ của bạn. Nó là tốt hơn để làm cho họ _want_ để sử dụng nó. – Johan

+7

@Johan Những gì bạn bỏ lỡ là tôi không muốn họ sử dụng dịch vụ miễn phí của tôi nếu họ không muốn xem quảng cáo. Tại sao phải là tôi? Tôi không điều hành một tổ chức từ thiện, tôi đang điều hành một doanh nghiệp. Nếu bạn muốn chặn quảng cáo, nhưng đăng ký. Nếu bạn muốn nó miễn phí, sau đó ngừng lãng phí băng thông của tôi – John

Trả lời

5

Bạn thực sự không thể "phát hiện" nếu javascript bị tắt. Vì javascript là một tính năng phía máy khách, máy chủ không thể phát hiện ra nó và "phát hiện" mọi thứ phía máy khách được thực hiện bằng javascript. Bạn thấy bắt 22.

Thẻ có sẵn là thẻ <noscript>, chỉ được trình duyệt hiển thị nếu javascript bị tắt. Đây là cơ chế tiêu chuẩn để hiển thị thông báo cho người dùng nếu javascript bị tắt. Sử dụng noscript và CSS thông minh, bạn có thể làm cho nó bắt buộc rằng người dùng kích hoạt javascript hoặc theo một liên kết chuyển hướng bạn trình bày để sử dụng trang web của bạn.

Không có cách nào để tự động chuyển hướng chỉ người dùng đã tắt javascript. Bạn có thể chuyển hướng người dùng một cách chọn lọc bằng cách sử dụng javascript hoặc bạn có thể chuyển hướng mọi người dựa trên tiêu chí phía máy chủ (tiêu đề HTTP, v.v.). Nhưng bạn không thể bắt được nhóm trung lưu đó.

Đối với việc phát hiện việc chặn quảng cáo, điều này sẽ thay đổi theo phương pháp trình duyệt và adblocking. Không có một lá cờ nhất quán cho nó, nhưng bạn có thể làm những việc như kiểm tra tính khả dụng của máy chủ quảng cáo của bạn thông qua javascript hoặc kiểm tra xem nội dung quảng cáo của bạn có được tải trên trang hay không.

+0

Bạn có thể sử dụng JavaScript để hiển thị nội dung mà người dùng quan tâm. Vì vậy, không có JavaScript, không có nội dung. Thay vào đó, người dùng sẽ nhận được thông báo rằng JavaScript là bắt buộc. Khi JavaScript được bật, bạn có thể sử dụng nó để phát hiện xem quảng cáo của bạn có bị chặn hay không. –

35

Để phát hiện xem người dùng có đang chặn quảng cáo hay không, tất cả những gì bạn phải làm là tìm một hàm trong javascript quảng cáo và thử kiểm tra nó. Việc họ sử dụng phương pháp nào để chặn quảng cáo cũng không quan trọng. Đây là những gì nó trông giống như cho quảng cáo Google Adsense:

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

Phương pháp này được nêu ở đây: http://www.metamorphosite.com/detect-web-popup-blocker-software-adblock-spam

Để chuyển hướng tất cả người dùng với Javascript bị vô hiệu, chỉ cần đặt mã này vào đầu HTML của bạn:

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

+1. Đây là câu trả lời. – nalply

+1

booo! không quảng cáo! .. –

+11

? quảng cáo giữ cho web hoạt động –

1

Tôi không thể nhận được giải pháp của @ Beau để kiểm tra 'window.google_render_ad' nhưng nó hoạt động khi kiểm tra 'window.google_jobrunner'.

Có thể mã Adsense đã thay đổi kể từ khi câu trả lời gốc được đăng, tôi tìm thấy 'google_jobrunner' trong JS được tải xuống từ Adsense nhưng không phải 'google_render_ad'.

+0

cả hai đều hoạt động tốt cho tôi – andufo

+0

Tôi có thể xác minh điều này, 'window.google_render_ad' không hoạt động nhưng' window.google_jobrunner' đã thực hiện thủ thuật. Cảm ơn! – jesal

2

tôi trích dẫn từ bài này về chủ đề này:

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 
} 
Các vấn đề liên quan