কীভাবে আমার ওয়েবসাইটে অ্যাডব্লক সনাক্ত করবেন?


370

ব্যবহারকারীরা আমার ওয়েবসাইট দেখার সময় ব্যবহারকারী অ্যাডব্লকিং সফ্টওয়্যার ব্যবহার করছে কিনা তা আমি সনাক্ত করতে সক্ষম হতে চাই। যদি তারা এটি ব্যবহার করে থাকে তবে আমি এই ওয়েবসাইটটির মতো প্রকল্পটি সমর্থন করার জন্য তাদের বন্ধ করতে বলার জন্য একটি বার্তা প্রদর্শন করতে চাই ।

আপনি যদি সেই সাইটে প্রবেশ করেন এবং আপনার ব্রাউজারটিতে কোনও ধরণের অ্যাডব্লক সফ্টওয়্যার সক্ষম করা থাকে, তবে সেই সাইটটি প্রকৃত বিজ্ঞাপনগুলি প্রদর্শন করার পরিবর্তে ব্যবহারকারীদের বলার জন্য বিজ্ঞাপনের আয়টি ব্যবহৃত হয় এবং একটি ব্যানার দেখায় এবং তাদের অ্যাডব্লক বন্ধ করার কথা বিবেচনা করা উচিত ।

আমি আমার ওয়েবসাইটে এটি করতে চাই, আমি এটিতে অ্যাডসেন্স বিজ্ঞাপন ব্যবহার করছি, আমি কীভাবে এটি করতে পারি?



5
সর্বশেষ সমাধানের সন্ধানকারী
ইয়াশকে

5
কিছু লোক কেবল ওয়েবে বিশ্লেষণ এবং বিজ্ঞাপন দেওয়া পছন্দ করেন না। কিছু সাইট আমি পরিদর্শন করেছি, আমাদের বলছি যে উপার্জনটি তাদের প্রকল্পকে সমর্থন করে, বিজ্ঞাপনগুলিতে এটি এতটাই হতাশ হয়ে পড়ে যে এটি হাস্যকর হয়ে ওঠে।
পল

7
এখন যে সাইটগুলি এটি আরও বেশি করে করছে (এবং এটিকে গালিগালাজ করছে, এবং তাদের বিজ্ঞাপনগুলি নিরবচ্ছিন্ন বলে আমাদের কাছে মিথ্যা বলছে, এবং কেবল তাদের প্রবেশ করার জন্য তাদের পুরো সাইটটিকে শ্বেত তালিকাতে বাধ্য করছে ...) - আমরা ব্যবহার করতে পারি এমন কোনও এক্সটেনশন বা কৌশল রয়েছে কি? তাদের সনাক্ত করতে বাধা দেওয়ার জন্য আমরা অ্যাডব্লক + ব্যবহার করি? - আমি এখানে বা সেখানে কয়েকটি টার্গেটযুক্ত ব্যানার বিজ্ঞাপনগুলি দেখতে আপত্তি করি না, তবে জ্যাকিং ক্লিক করুন এবং ধ্রুবক পূর্ণ পর্দার ভিডিও পপ-আপগুলি আমার জিনিস নয়।
BrainSlugs83

1
আমার সমাধান দেখুন, এটি সহজ এবং পরিষ্কার। খাঁটি জেএস, কোনও অতিরিক্ত অনুরোধ নেই, কোনও বাহ্যিক গ্রন্থাগার বা প্লাগইন বা অন্য কোনও বিএস নেই।
কামুলো নিম্বাস

উত্তর:


410

আমার সমাধানটি একটি নির্দিষ্ট বিজ্ঞাপন নেটওয়ার্কের সাথে সুনির্দিষ্ট নয় এবং এটি খুব লাইটওয়েট। আমি কয়েক বছর ধরে এটি উত্পাদন চলমান। অ্যাডব্লক "বিজ্ঞাপন" শব্দযুক্ত সমস্ত ইউআরএল ব্লক করে। সুতরাং আমি এই কি করেছি:

আমি নামের সাথে আমার ওয়েবরুটে একটি ছোট জেএস ফাইল যুক্ত করেছি ads.js

এটি এই ফাইলের কোডের একমাত্র লাইন

var canRunAds = true;

তারপরে আমার পৃষ্ঠায় কোথাও:

<html>
  <head>
    <script src="/js/ads.js"></script>
  </head>
  <body>
    <script>
      if( window.canRunAds === undefined ){
        // adblocker detected, show fallback
        showFallbackImage();
      }
    </script>
  </body>
</html>

বিজ্ঞাপন.জেগুলির মতো ফাইলগুলি ক্রোমে অন্তত এই অ্যাডব্লোকারদের দ্বারা অবরুদ্ধ করা হয়েছে:

  • অ্যাডব্লক
  • Adblock Plus
  • অ্যাডব্লক প্রো
  • Ghostery

2019-02-15 এ আপডেট করুন:

উপরের তালিকায় ঘোস্টারি যুক্ত করা হয়েছে কারণ এক্সটেনশানটি এখন বিজ্ঞাপন.জেগুলিতে অনুরোধগুলিও অবরুদ্ধ করে খুব সহজ। এর অর্থ কি এই যে ঘোস্টারি আসলে ডেভসকে তাদের সম্প্রসারণের মাধ্যমে বিজ্ঞাপনগুলির ব্লকিং সনাক্ত করতে সহায়তা করছে?

এর সাথে কাজ করে না:

গোপনীয়তা ব্যাজার


1
আপনি js/ads.jsদয়া করে সম্পূর্ণ লিঙ্ক দিতে পারেন ? আমি যেমন ব্লগারে আছি তেমন আমাকে .jsকোথাও আপলোড করতে হয়েছিল (যেমন: গুগল ড্রাইভ) এবং সেই ক্ষেত্রে লিঙ্কটি অন্তর্ভুক্ত নয় ads। আপনি যদি আপনার ফাইলটির লিঙ্কটি দেন তবে এটি সত্যিই সহায়ক হবে।
দেব

91
ফাইলটিতে কেবল "var canRunAds = true" শব্দ রয়েছে; সুতরাং এটি নিজেই তৈরি করুন।
সময়

5
কিছু অ্যাড ব্লকারগুলি মনে করে যে ক্রোমের জন্য সরল অ্যাডব্লক, আমার মতো বিজ্ঞাপন.js ফাইলটি অবরুদ্ধ করে না।
এমগামেরজ

2
ক্রোমের জন্য এবিপি ভাল প্রতিক্রিয়া দিচ্ছে, তাই সমস্ত সঠিকভাবে কাজ করে!
ম্যাক্সিমি লাফারি

9
আপনি কোনও অ্যাডব্লকারের দ্বারা অবরুদ্ধ ইউআরএলে একটি এজাক্স অনুরোধ চালানোর চেষ্টা করতে পারেন। যদি এটি সফল হয়, কোনও অ্যাডব্লক নেই, যদি এটি ব্যর্থ হয় তবে একটি অ্যাডব্লক রয়েছে।
শেঠহাইট

138

সরাসরি উত্তর নয়, তবে আমি বিজ্ঞাপনটি লোড হওয়ার পিছনে বার্তাটি রেখে দিয়েছিলাম ... বরং এটি সনাক্ত করার চেষ্টা করার পরে, বিজ্ঞাপনটি যখন না হয় তখনই এটি প্রদর্শিত হবে।


5
ব্যবহারকারীরা এখনও এই ব্লক করা বিজ্ঞাপন বিজ্ঞপ্তিগুলিকে অ্যাডব্লক ব্যবহার করে অবরুদ্ধ করতে পারে: এটাই আমার জানা একমাত্র ত্রুটি।
অ্যান্ডারসন সবুজ

25
এটি সহজ হতে পারে তবে এটি করার উপযুক্ত উপায় নয়, যদি আপনার লেআউটটি বিকৃত হয়ে যায় বা বিজ্ঞাপন ধীরে ধীরে লোড হয় তবে ব্যবহারকারী তার সাথে সম্পর্কিত নয় এমন ত্রুটির এক ঝলক পেতে পারে। এছাড়াও সচেতন থাকুন যে অ্যাডব্লক এবিপি ব্যবহারকারীদের লক্ষ্যবস্তু অনর্থক বার্তাগুলি ব্লক করার ব্যবস্থা নিচ্ছে। আপনি যদি ব্যবহারকারীকে অবরুদ্ধকরণের জন্য জিজ্ঞাসা করতে চান, তবে সাধারণ আড়ালযোগ্য বার্তার মাধ্যমে এটি করুন যা বাহিরের বিন্যাসে বসে থাকে (অন্য উপাদানগুলিকে দূরে সরিয়ে দেয় না)। এ লুক duckduckgo.com/?q=foo+bar Adblock সঙ্গে সক্ষম করা হয়েছে।
জিভিস

1
@ জিভিস - আমি কী খুঁজছি? - আমি মনে করি অ্যাডব্লক + ডকডাক্ক্কো যা-ই করছে তা ইতিমধ্যে অবরুদ্ধ করে।
BrainSlugs83

101

http://thepcspy.com/read/how_to_block_adblock/

JQuery সহ:

function blockAdblockUser() {
    if ($('.myTestAd').height() == 0) {
        window.location = 'http://example.com/AdblockNotice.html';
    }
}

$(document).ready(function(){
    blockAdblockUser();
});

অবশ্যই, আপনার অ্যাডব্লকনোটাইস html এর জন্য একটি অবতরণ পৃষ্ঠা থাকা দরকার, এবং .myTestAd শ্রেণিতে আপনার আসল বিজ্ঞাপনের ধারকগুলি প্রতিবিম্বিত করা দরকার। তবে এটি কাজ করা উচিত।

সম্পাদনা

যেমন টিডি_নিজবার সুপারিশ করেছেন, নির্বাচককে :hidden(বা :visible, যেমন আমি নীচে ব্যবহার করি) আরও ভাল উপায় display: noneহ'ল এটিও পরীক্ষা করা হয়:

function blockAdblockUser() {
    if ($('.myTestAd').filter(':visible').length == 0) {
        // All are hidden, or "not visible", so:
        // Redirect, show dialog, do something...
    } else if ($('.myTestAd').filter(':hidden').length > 0) {
        // Maybe a different error if only some are hidden?
        // Redirect, show dialog, do something...
    }
}

অবশ্যই, উভয়ই ইচ্ছে করলে একটি ifব্লকে একত্রিত হতে পারে ।

মনে রাখবেন যে visibility: hiddenপাশাপাশি ক্যাপচার করা হবে না (যেখানে লেআউট স্পেস থাকে, কিন্তু বিজ্ঞাপনটি দৃশ্যমান নয়)। এটি পরীক্ষা করতে, অন্য ফিল্টার ব্যবহার করা যেতে পারে:

$('.myTestAd').filter(function fi(){
    return $(this).css('visibility') == 'hidden';
})

যা আপনাকে বিজ্ঞাপনের উপাদানগুলির একটি অ্যারে দেবে যা "অদৃশ্য" ( 0তাত্ত্বিকভাবে কোনও সমস্যা হওয়ার চেয়ে বড় হওয়ার সাথে )।


16
এই ক্ষেত্রে পুনঃনির্দেশ করা একটি খারাপ ধারণা। যদি আপনার বিজ্ঞাপন পরিষেবাটি নিচে চলে যায়, সমস্ত দর্শকদের সেই পৃষ্ঠাতে পুনঃনির্দেশ করা যেতে পারে। আমি ডকুমেন্ট প্রস্তুতের চেয়ে উইন্ডো অনলোড ইভেন্টটি ব্যবহার করার পরামর্শ দেব।
অ্যান্ডি ই

1
সনাক্তকরণের আরও ভাল উপায় হ'ল $ ('। myTestAd')। (": লুকানো"); ম্যানুয়ালটি যেমন নির্দিষ্ট করে তা প্রস্থ / উচ্চতা 0 হয় এবং প্রদর্শন = কোনওটি নয় কিনা তা সনাক্ত করে।
টিডি_নিজবোর

6
Redirecting in this case is a bad idea. If your advertising service goes down, all visitors could be redirected to that page.প্রকৃতপক্ষে. পাল্টা-পরিমাপকে হারাতে তারা সহজ সরল স্ক্রিপ্ট একসাথে ছুঁড়ে মারবে তা উল্লেখ করার দরকার নেই। তদুপরি, আপনি কি সত্যই আক্রমণাত্মক এবং বলবান হয়ে গিয়েছেন যে ব্যবহারকারীরা তাদের বিজ্ঞাপন-ব্লকারকে অক্ষম করতে প্ররোচিত করবে? না, এটি যা কিছু করবে তা হ'ল এগুলি ছেড়ে দেওয়া এবং আপনার সাইটের বিরুদ্ধে এটি টক দেওয়া। বেশিরভাগ সাইটগুলি প্রতিকূল হওয়ার চেয়ে কেবল কোনও বার্তা প্রদর্শন করতে পছন্দ করে।
সিএনটেক

এটি ক্রোমে আমার পক্ষে কাজ করে না। DOMReady ইভেন্টে, বিজ্ঞাপনটি এখনও দৃশ্যমান বলে মনে হচ্ছে।
nwellnhof

3
ব্যবহারকারীদের আপনার সাইটে প্রবেশ করা থেকে বিরত রাখবেন না কারণ তাদের বিজ্ঞাপনগুলিকে অক্ষম করা হয়েছে - এটি কেবল অস্ত্রের প্রতিযোগিতা বাড়িয়ে তোলে। - আপনি যদি দয়া করে আমাদের এগুলি চালু করতে বলেন, আমরা কেবল এটি করতে পারি - আপনি আমাদের জোর করার চেষ্টা করেন, আমরা হয় কেবল আপনার সাইটে যাওয়া বন্ধ করব, অথবা আমাদের অ্যাডব্ল্যাক্টারের উপর একটি বাগ রিপোর্ট করব এবং আমরা পেয়ে যাব এটি আপনার সাইটের জন্য স্থির। - এটি ব্যবহারকারীদের থেকে রক্ষা করার জন্য অ্যাডব্লোকারদের উপস্থিত হরফের আচরণ type
BrainSlugs83

92

কোনও অতিরিক্ত অনুরোধ নেই। বাহ্যিক গ্রন্থাগার নেই। কেবল সরল, সরল জাভাস্ক্রিপ্ট:

var adBlockEnabled = false;
var testAd = document.createElement('div');
testAd.innerHTML = '&nbsp;';
testAd.className = 'adsbox';
document.body.appendChild(testAd);
window.setTimeout(function() {
  if (testAd.offsetHeight === 0) {
    adBlockEnabled = true;
  }
  testAd.remove();
  console.log('AdBlock Enabled? ', adBlockEnabled)
}, 100);

  • আপনি ক্লাস অ্যাডবক্স দিয়ে একটি উপাদান তৈরি করুন (অ্যাডব্লক প্লাসের সংজ্ঞা ফাইলে অপসারণযোগ্য উপাদান হিসাবে সংজ্ঞায়িত)
  • আপনি এটিকে দস্তাবেজে যুক্ত করেন এবং অল্প কিছুক্ষণের পরে আপনি এটির অফসেটহাইটটি পড়েন
  • যদি অ্যাডব্লক ইনস্টল থাকে তবে উপাদানটির কোনও উচ্চতা থাকবে না।

খ্রিস্টান হিলম্যানের পোস্টের কৃতিত্ব , আমি মনে করি এটি অ্যাডব্লক সনাক্তকরণের জন্য সর্বোত্তম সমাধান।


5
গ্ল্যাচগুলি প্রতিরোধ করতে আপনি testAd.style.display = 'absolute'এটিকে স্ক্রিন থেকে
জেরাল্ড

4
ভাল সমাধান, তবে যারা 100 মিমি দেরিতে ভুগছেন তাদের জন্য আমি ডক বডিতে এই জাতীয় কিছু যুক্ত করার পরামর্শ দিচ্ছি: <div id="detect" class="ads ad adsbox doubleclick ad-placement carbon-ads" style="background-color:red;height:300px;width:300px;position: absolute;left:0;top:0;">&nbsp;</div>(অবশ্যই টেস্টের পরে সিএসএস পরিবর্তন করা উচিত <div id="detect" class="ads ad adsbox doubleclick ad-placement carbon-ads" style="height:1px;width:1px;position: absolute;left:-999px;top:-999px;">&nbsp;</div>)
Godblessstrawberry

2
@ জেরাল্ড ভাল পয়েন্ট তবে আফাইক, absoluteএকটি positionমান।
এম সেভেন

আমি কি যুক্ত করতে পারি, আমি কেবল তখনই এই সমাধানটি কাজ করতে window.onload
পিটার কালেন

নোট করুন যে এটি ফায়ারফক্সের জন্য অ্যাডব্লকের জন্য কাজ করে না
Eda190

42

বেশিরভাগ বিজ্ঞাপন গতিশীলভাবে জাভাস্ক্রিপ্টে লোড হয়। বিজ্ঞাপন স্ক্রিপ্টটি লোড করা যায় কি না তা সনাক্ত করতে আমি সবেমাত্র অনরআর ইভেন্টটি ব্যবহার করেছি। কাজ মনে হচ্ছে।

গুগলএডস সহ উদাহরণ:

<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js" onerror="adBlockFunction();"></script>

এটি অন্য উপাদানগুলিতেও ব্যবহার করা যেতে পারে কোনও বিজ্ঞাপন ব্লকার সামগ্রীটি ব্লক করছে কিনা তা দেখার জন্য। দূরবর্তী উপাদান উপস্থিত না থাকলে বা পৌঁছানো না গেলে এই পদ্ধতিটি মিথ্যা ইতিবাচক উত্পাদন করতে পারে।


1
এটি বিজ্ঞাপনটি লোড হয়েছে কিনা তা যাচাই করার অন্যতম সেরা উপায়..কারন নিজেই স্ক্রিপ্টটি ব্লকারের উপর নির্ভর করে নিজের স্ক্রিপ্টটি লোড করে কারণ এটি একবারে ব্যর্থ হতে চলেছে ..
MaZZly

এটি গতিশীল লোড হওয়া স্ক্রিপ্টগুলির জন্য সেরা সমাধান বলে মনে হচ্ছে।
কারকা

এটি লিখিত হওয়ার পরে কিছু পরিবর্তন হয়েছে কিনা জানেন না তবে স্ট্যান্ড ক্রোম প্লাগ-ইন দ্বারা ফেয়ার অ্যাডব্লক দিয়ে আমি আগুনের সূত্রপাত করতে পারি না।
মেলচেস্টার

মার্চ 2018 হিসাবে, এখনও সেরা, সহজ এবং সুনির্দিষ্ট সমাধান
ড্যানিয়েল ভুকাসোভিচ

মত ন্যায্য adblocker সঙ্গে তার কাজ নয় উপরে বলেন, এটা ভাল চেক করতেoffsetHeight
cieunteung

17

ব্যবহারকারী বিজ্ঞাপনগুলি ব্লক করছে কিনা তা সনাক্ত করতে আপনাকে যা করতে হবে তা হল বিজ্ঞাপন জাভাস্ক্রিপ্টে কোনও ফাংশন সন্ধান করা এবং এটির জন্য পরীক্ষার চেষ্টা করা। তারা বিজ্ঞাপনটি ব্লক করতে কোন পদ্ধতি ব্যবহার করছে তা বিবেচ্য নয়। গুগল অ্যাডসেন্স বিজ্ঞাপনগুলির জন্য এটি দেখতে দেখতে এখানে কী:

if(!window.hasOwnProperty('google_render_ad') || window.google_render_ad === undefined) { 
    //They're blocking ads, display your banner
}

এই পদ্ধতিটি এখানে বর্ণিত হয়েছে: http://www.metamorphosite.com/detect-web-popup- blocker-software-ad block- spam


8
google_render_ad এখন যে কোনও সময় অপরিজ্ঞাত, টাইপফ (উইন্ডো.google_jobrunner)! = 'অবজেক্ট' আমার পক্ষে কাজ করে।
দিমিত্রি কোরোটোভস্কিই

4
যেহেতু এটি আপনার নিয়ন্ত্রণের কোড নয়, তাই আমি মনে করি এটির উপর নির্ভর করা এটি একটি খারাপ ধারণা since
প্যাট্রিক

1
typeofযদি আপনি কোনও জিনিসের সম্পত্তি পরীক্ষা করেন তবে এটি একটি ওভারহেড। সহজ ব্যবহার করুন === undefined
রোবো রোবক

12

Jquery সহ আমার সহজ সমাধানটি হ'ল:

$.ajax({
    url: "/scripts/advertisement.js", // this is just an empty js file
    dataType: "script"
}).fail(function () {
    // redirect or display message here
});

বিজ্ঞাপন.js ঠিক কিছু নেই। যখন কেউ অ্যাডব্লক ব্যবহার করে, এটি ব্যর্থ হয় এবং ফাংশনটি কল হয়ে যায়।


10

আমি জানি ইতিমধ্যে যথেষ্ট উত্তর রয়েছে, তবে যেহেতু এই প্রশ্নটি গুগলে এই বিষয়টিতে "অ্যাডব্লক সনাক্তকরণ" অনুসন্ধান করেছে, তাই আপনি অ্যাডসেন্স ব্যবহার করছেন না সে ক্ষেত্রে আমি কিছুটা অন্তর্দৃষ্টি দিতে চাই ।

বিশেষত, এই উদাহরণের সাহায্যে আপনি সনাক্ত করতে পারবেন যে ফায়ারফক্স অ্যাডব্লক দ্বারা সরবরাহিত ডিফল্ট অ্যাডব্লক-তালিকা ব্যবহার করা হয়। এটি সুবিধা গ্রহণ করে যে এই ব্লকলিস্টে সিএসএস আইডি সহ একটি উপাদান অবরুদ্ধ রয়েছে #bottomAd। যদি আমি পৃষ্ঠাতে এই জাতীয় উপাদান অন্তর্ভুক্ত করি এবং এর উচ্চতার জন্য পরীক্ষা করি তবে আমি জানি যে অ্যাডব্লকিং সক্রিয় রয়েছে কি না:

<!-- some code before -->
<div id="bottomAd" style="font-size: 2px;">&nbsp;</div>
<!-- some code after -->

বাকিটি সাধারণ জিক্যুরি সন্দেহভাজনের মাধ্যমে করা হয়:

$(document).ready( function() {
  window.setTimeout( function() {
    var bottomad = $('#bottomAd');
    if (bottomad.length == 1) {
      if (bottomad.height() == 0) {
        // adblocker active
      } else {
        // no adblocker
      }
    }      
  }, 1);
}

দেখা যাবে, আমি setTimeoutকমপক্ষে 1 মিমি টাইমআউট ব্যবহার করছি । আমি এটি বিভিন্ন ব্রাউজারে এবং বেশিরভাগ সময় পরীক্ষা করে দেখেছি, readyসর্বদা 0 এ ফিরে আসার উপাদানটি সরাসরি পরীক্ষা করে দেখছি ; অ্যাডব্ল্যাকার সক্রিয় ছিল কি না তা বিবেচ্য নয়। আমার এ সম্পর্কে দুটি ধারণা ছিল: হয় রেন্ডারিং এখনও করা হয়নি বা অ্যাডব্লক এখনও কিক ইন করেনি। আমি আরও তদন্ত করতে বিরক্ত করিনি।


আমি সত্যিই এই উত্তরটি পছন্দ করি কারণ এতে জাল বিজ্ঞাপন.জেএস অনুরোধের পরিবর্তে অতিরিক্ত অনুরোধ করা জড়িত না?
জেরোইনভিডিবি

দৈর্ঘ্য এবং উচ্চতা পরীক্ষা করার পরিবর্তে, আপনি কি কেবলমাত্র (# ("# নীচেআড") ব্যবহার করতে পারবেন না? (': লুকানো')) ...?
ইভান ল্যাংলোইস

@ ইভানল্যাংলোইস, আমি জানি আপনি দু'বছর আগে জিজ্ঞাসা করেছিলেন, তবে আপনার প্রশ্নটি আসলেই আমাকে আগ্রহী তাই আমি এ সম্পর্কিত তথ্যের জন্য ডাইভিংয়ে গেলাম। স্পষ্টতই, এটি .is(":hidden")চেকটি উচ্চতা এবং প্রস্থ উভয়ই শূন্য কিনা তার উপর নির্ভরশীল। যদি আপনি কেবল উচ্চতা 0 তে সেট করেন তবে ডিভটি এখনও একটি প্রস্থ দখল করে থাকে, তবে এটি jQuery দ্বারা "লুকানো" হিসাবে বিবেচিত হবে না। সুতরাং, আপনি বলতে পারেন কি না, .is(":hidden")অ্যাডব্লোকার কীভাবে সামগ্রীর আকার পরিবর্তন / আড়াল করার সিদ্ধান্ত নেন তার উপর কিছুটা নির্ভরশীল।
স্পেনসার ডি

10

আমার পরামর্শ: এটি করবেন না!

আপনি যে কোনও দৃশ্যের সাথে লোককে "অন্যায়কারী" বলে মনে করেন তার ফলাফলগুলি তাদের লড়াইয়ে ফিরবে।

আমার প্রস্তাব এখানে।

পাঠ্য সহ (নির্বিশেষে কিনা বিজ্ঞাপন অবরুদ্ধ হচ্ছে) পৃষ্ঠার উপরের একটি ছোট বিচক্ষণ বার্তা রাখুন I *totally* respect your right to block adsএবং অন্য পৃষ্ঠায় একটি লিঙ্ক / পপ-আপ এনটাইটেলমেন্টসহ Read more ...

অন্য পৃষ্ঠায়, এটি পরিষ্কার করুন যে আপনি বুঝতে পারছেন যে এটি তাদের কম্পিউটার এবং তারা অ্যাড ব্লকিং ব্যবহার করতে মুক্ত।

অযৌক্তিক উপায়ে এটিকেও পরিষ্কার করুন যে এই ব্লকারগুলির ব্যবহার আপনার পক্ষে দুর্দান্ত সামগ্রী সরবরাহ করা আরও জটিল করে তোলে (কেন বিশদভাবে তা ব্যাখ্যা করে) এবং যখন আপনি বিজ্ঞাপনটি আপনার সাইটে না ঘটতে পছন্দ করেন, এটা সম্পূর্ণ তাদের সিদ্ধান্ত। অবরুদ্ধকরণ বন্ধ করার ইতিবাচক উপর ফোকাস করুন।

যারা বিজ্ঞাপনগুলির তীব্র বিরোধিতা করছেন তারা এটিকে এড়িয়ে যাবেন তবে আপনি কখনই এগুলি নিশ্চিত করার সুযোগ পান নি। যারা উদাসীন তারা আপনার আপিলের দ্বারা প্রভাবিত হতে পারে যেহেতু আপনি পুরোটা করছেন না "আমাকে যেতে দিন বা আমি আমার বল নিয়ে চলে যাব" এমন বিষয় যা সত্যই পাঁচ বছরের বাচ্চাদের একচেটিয়া ডোমেন হওয়া উচিত।

মনে রাখবেন, কেউ আপনার মাথায় একটি বন্দুক ধরে না এবং আপনাকে আপনার জিনিস নেটে জোর করতে বাধ্য করে। আপনার পাঠক / ব্যবহারকারীদের শ্রদ্ধার সাথে আচরণ করুন এবং আপনি সম্ভবত তাদের মধ্যে একটি ভাল সংখ্যার প্রতিদান দেবেন find


1
কীভাবে "এটি দেখে মনে হচ্ছে আপনি কোনও বিজ্ঞাপন ব্লকার ব্যবহার করেছেন That's এটি দুর্দান্ত! তাই আমরা :) দয়া করে এক্সকে সমর্থন করুন আপনার বন্ধুদের সম্পর্কে আমাদের সম্পর্কে জানান!"
ADTC

3
হি

অ্যাডব্লক চালু হয়ে গেলে আমার বিন্যাসটি কী ভাঙবে?
Godblessstrawberry

5
যদি কোনও ওয়েবসাইট আমাকে আমার বিজ্ঞাপন ব্লকারকে অক্ষম করতে বাধ্য করে, তবে আমি এগিয়ে যাই। তারা হেরে গেছে, এবং আমি যত্ন করি না। আমি গুগল থেকে কেবল একটি ক্যাশেড অনুলিপি টানছি।
রায়ফেনওয়াইন্ডস্পিয়ার

1
@ ট্যালবয়, আমার উত্তরে কোনও নীতি নেই। আপনি যে শ্রোতাদের লক্ষ্য করার চেষ্টা করছেন সেখানে কেবলমাত্র তার বাস্তবতা রয়েছে। এবং যদিও আপনার উদ্দেশ্যগুলি বর্ণিত হিসাবে বর্ণিত হতে পারে তবে এই প্রশ্নের পুনরায় পাঠ আপনাকে দেখায় যে এটি বিশেষত ব্যবহারকারীকে বিজ্ঞাপনের অনুমতি দেওয়ার জন্য বলা হয়েছে, বিন্যাস বা এ জাতীয় কিছু পরিষ্কার না করে। সেই প্রশ্নেরই আমি উত্তর দিচ্ছিলাম, অর্ধ দশক পরে অন্য কোনও প্রশ্নের কল্পনাও করা হয়নি :-)
প্যাক্সিডিয়াবল

9

তারা এই সত্যটি ব্যবহার করছে যে গুগলের বিজ্ঞাপন কোডটি "iframe" আইডি সহ একটি আইফ্রেম তৈরি করে। সুতরাং যতক্ষণ না আপনার আইডি সহ আপনার পৃষ্ঠায় ইতিমধ্যে কিছু না থাকে, এটি আপনার পক্ষেও কাজ করবে।

<p id="ads">
<script type="text/javascript"><!--
google_ad_client = "their-ad-code-here";
/* 160x600, droite */
google_ad_slot = "their-ad-code-here";
google_ad_width = 160;
google_ad_height = 600;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>

</p>

<script type="text/javascript"><!--
if(document.getElementsByTagName("iframe").item(0) == null)
{
    document.write("<div style='width:160px; height:600px; padding-top: 280px; margin-left:5px;border:1px solid #000000; text-align:center; font-family:century gothic, arial, helvetica, sans serif;padding-left:5px;padding-right:5px;'>Advertising seems to be blocked by your browser.<br /><br /><span style='font-size:10px'>Please notice that advertising helps us to host the project.<br /><br />If you find these ads intrusive or inappropriate, please contact me.</span><img src='http://www.playonlinux.com/images/abp.jpg' alt='Adblock Plus' /></div>");
}
--></script>

9

আপনার সাইটে কেবল ছোট স্ক্রিপ্ট যুক্ত করুন:

var isAdsDisplayed = true;

নামের সাথে বিজ্ঞাপনবিগল.জেএস

তারপরে নিম্নলিখিতটি করুন:

<script src="/js/adsbygoogle.js"></script>
<script>
if(window.isAdsDisplayed === undefined ) {
  // AdBlock is enabled. Show message or track custom data here
}
</script>

এই সমাধানটি এখানে পেয়েছি


এই দুর্দান্ত মানুষ, আপনাকে অনেক ধন্যবাদ 💓
Jodyshop

8

আমি লক্ষ্য করেছি যে পূর্ববর্তী মন্তব্যগুলি পরীক্ষার জন্য গুগল অ্যাডসেন্স ব্যবহার করে। কিছু পৃষ্ঠা অ্যাডসেন্স ব্যবহার করে না এবং পরীক্ষার হিসাবে অ্যাডসেন্স ব্লক ব্যবহার করা আসলেই ভাল ধারণা নয় good কারণ অ্যাডসেন্স ব্লক আপনার এসইওর ক্ষতি করতে পারে। এখানে আমি অ্যাডব্লককারী সাধারণ অবরুদ্ধ শ্রেণীর দ্বারা কীভাবে সনাক্ত করব তা উদাহরণ রয়েছে:

এইচটিএমএল:

<div class="ad-placement" id="ablockercheck"></div>
<div id="ablockermsg" style="display: none"></div>

jQuery:

$(document).ready(function()
{
   if(!$("#ablockercheck").is(":visible"))
   {
     $("#ablockermsg").text("Please disable adblocker.").show();
   }
});

"অ্যাবলোকেরেক" একটি আইডি যা অ্যাডব্লককারীকে ব্লক করে। সুতরাং এটি যদি দৃশ্যমান হয় তা পরীক্ষা করে দেখানো হচ্ছে যে আপনি অ্যাডব্লবারটি চালু আছে কিনা তা সনাক্ত করতে সক্ষম।


7

অ্যাডব্লক অ্যাডসেন্স (ইত্যাদি) জাভাস্ক্রিপ্ট ফাইল লোড করা অবরুদ্ধ বলে মনে হচ্ছে। সুতরাং, আপনি যদি অ্যাডসেন্স বিজ্ঞাপনগুলির অ্যাসিঙ্ক্রোনাস সংস্করণ ব্যবহার করছেন তবে আপনি এটি কিনা adsbygoogleতা পরীক্ষা করতে পারেন Array। অ্যাসিঙ্ক্রোনাস লিপি ... অ্যাসিনক্রোনাস হওয়ায় এটি কয়েক সেকেন্ড পরে অবশ্যই পরীক্ষা করা উচিত। এখানে একটি মোটামুটি রূপরেখা :

window.setTimeout(function(){
    if(adsbygoogle instanceof Array) {
        // adsbygoogle.js did not execute; probably blocked by an ad blocker
    } else {
        // adsbygoogle.js executed
    }
}, 2000);

স্পষ্ট করার জন্য, এখানে অ্যাডসেন্স অ্যাসিঙ্ক্রোনাস বিজ্ঞাপন কোড দেখতে কেমন তার একটি উদাহরণ:

<!-- this can go anywhere -->
<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>

<!-- this is where the ads display -->
<ins class="adsbygoogle" ...></ins>
<script>
(adsbygoogle = window.adsbygoogle || []).push({});
</script>

adsbygoogleঅ্যারে হিসাবে আরম্ভ করা লক্ষ্য করুন । adsbygoogle.jsগ্রন্থাগার মধ্যে এই অ্যারের পরিবর্তন Object {push: ...}হলে তা সঞ্চালন করে। নির্দিষ্ট সময়ের পরে ভেরিয়েবলের ধরণটি পরীক্ষা করা আপনাকে স্ক্রিপ্টটি লোড করা হয়েছে কিনা তা বলতে পারে।


এটি বেশিরভাগ সময় কাজ করবে তবে যদি কোনও ব্যবহারকারীর মন্থর সংযোগ থাকে (মোবাইল ডিভাইসগুলি ভাবেন) তবে কী হবে?
লুকা স্টেব

6

এই পদ্ধতিটি আমি আমার সাইটে ব্যবহার করি, সম্ভবত আপনি এটি সহায়ক বলে মনে করবেন। আমার মতে, এটি সবচেয়ে সহজ সমাধান।

অ্যাডব্লकर নির্দিষ্ট বর্গ এবং এইচটিএমএল উপাদানগুলিকে অবরুদ্ধ করে, বিকাশকারী কনসোলের যে কোনও অবরুদ্ধ বিজ্ঞাপনগুলির এই নির্বাচকদের পর্যবেক্ষণ করে (তারা সমস্ত তালিকাভুক্ত রয়েছে) আপনি দেখতে পাচ্ছেন কোন উপাদানগুলি সর্বদা অবরুদ্ধ থাকবে।

উদাহরণস্বরূপ স্ট্যাকওভারফ্লোতে এই প্রশ্ন পৃষ্ঠাটি পরিদর্শন করুন এবং আপনি ব্লক করা বিজ্ঞাপনগুলির গোছা দেখতে পাবেন।

উদাহরণস্বরূপ, bottom-adশ্রেণি সহ যে কোনও উপাদান স্বয়ংক্রিয়ভাবে অবরুদ্ধ।

  1. আমি bottom-adশ্রেণি সহ একটি খালি খালি ডিভ উপাদান তৈরি করেছি : <div class="bottom-ad" style="width: 1px; height: 1px;">HI</div>
  2. পৃষ্ঠা লোড হওয়ার পরে এই উপাদানটি লুকানো আছে কিনা তা পরীক্ষা করে দেখুন। আমি jQuery ব্যবহার করেছি, তবে জাভাস্ক্রিপ্ট ব্যবহার করতে নির্দ্বিধায়: $('.bottom-ad').css('display') == "none"বা আরও ভাল ব্যবহার করে$('.bottom-ad').is(':visible')

মানটি যদি হয় trueতবে অ্যাডব্ল্যাকার সক্রিয়।


6

আপনার অতিরিক্ত HTTP অনুরোধের দরকার নেই, আপনি কেবল একটি জাল অ্যাডের উচ্চতা গণনা করতে পারেন।

যাইহোক, অ্যাডব্লকরা রেন্ডারিং এড়ানোর উপাদানগুলির সাথে মেলে এখানে একটি সম্পূর্ণ তালিকা

window.adBlockRunning = function() {
    return (getComputedStyle(document.getElementById("detect"))["display"] == "none") ? true : false;
  }()

console.log(window.adBlockRunning);
#detect {
  height: 1px;
  width: 1px;
  position: absolute;
  left: -999em;
  top: -999em
}
<div id="detect" class="ads ad adsbox doubleclick ad-placement carbon-ads"></div>


6

নিরাপদ উপায় হ'ল আপনার বিজ্ঞাপনগুলি ভিতরে rapেকে রাখা <div>এবং উচ্চতা পরীক্ষা করা

<div id="check-ab">
/* your ads code */
</div>

setTimeout(function(){
  if(document.getElementById("check-ab").offsetHeight === 0){
    console.log("ads blocked");
  }
  else{
    console.log("ads running");
  }
}, 100);

এটি অ্যাডব্লক প্লাস এবং ব্লুহেল ফায়ারওয়ালের সাথে কাজ করে।


6

অ্যাডব্লক আছে কিনা তা যাচাই করার একটি কার্যকর উপায়: গুগল বিজ্ঞাপনের URL টি ট্রিগার করার চেষ্টা করে অ্যাডব্লক সক্ষম আছে কিনা তা খতিয়ে দেখুন। যদি হ্যাঁ হয় তবে কলব্যাক_হ_ডব্লকটি চালান, তা না হলে কলব্যাক_নো_ডব্লকটি চালান। এই সমাধানটির জন্য আরও একটি অনুরোধ ব্যয় করা হলেও কমপক্ষে এটি কার্যকর হয়:

var hasAdBlock = function (callback_has_adblock, callback_no_adblock) {

    $.getScript( "https://pagead2.googlesyndication.com/pagead/show_ads.js" )
        .done(function( script, textStatus ) {
            callback_no_adblock();
        })
        .fail(function( jqxhr, settings, exception ) {
            callback_has_adblock();
    });
};

এই সমাধানটি কেবল গুগল অ্যাডসেন্স নয়, সমস্ত ধরণের বিজ্ঞাপনের জন্য কাজ করে।


কিছু অ্যাডব্লোকাররা jQuery কে অবরুদ্ধ করে, তখন স্ক্রিপ্টটি চালায় না কারণ "defined সংজ্ঞায়িত করা হয়নি"। খাঁটি জেএস ব্যবহার করা ভাল।
nyx

3

এই প্রশ্নের বয়স সত্ত্বেও, আমি সম্প্রতি এটি খুব দরকারী বলে মনে করেছি এবং তাই এটি এখনও অনুমান করতে পারে যে এখনও কেউ এটি দেখছেন। এখানে এবং অন্য কোথাও দেখার পরে আমি অনুমান করেছি যে কোনও বিজ্ঞাপন ব্লকারকে পরোক্ষভাবে সনাক্ত করার জন্য প্রধান তিনটি ক্লায়েন্টের পক্ষের চেকগুলি ব্লকড 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>

আমি একটি টোপ নামের সাথে একটি ডিভ ব্যবহার করি পাশাপাশি "বিজ্ঞাপন" পাঠ্য সহ অ্যাডসেন্স দ্বারা ব্যবহৃত আকারগুলিতে (প্লেসহোল্ড.িটকে ধন্যবাদ!) পাঠ্য সহ একটি বাহ্যিকভাবে হোস্ট করা চিত্র ব্যবহার করি।

ইন 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 যুক্ত করি। তারপরে, উইন্ডোটি লোড হওয়ার পরে , যেমন সামগ্রী সহ। চিত্র ইত্যাদি লোড করা হয়, আমরা পরীক্ষা করি:

  • প্রথম পরীক্ষার ডিভের মাত্রা এবং দৃশ্যমানতা।
  • দ্বিতীয় পরীক্ষার ডিভের বিষয়বস্তু হ'ল "চেক" হ'ল, যদি এটি অবরুদ্ধ না করা advertimsent.jsহত ।
  • আইফ্রেমের মাত্রাগুলি (এবং আমি দৃশ্যমানতা অনুমান করি, কারণ কোনও লুকানো বস্তুর কোনও উচ্চতা বা প্রস্থ নেই?)

এবং শৈলী:

div#myTestAd, iframe#adServer
{
    display: block;
    position: absolute;
    left: -9999px;
    top: -9999px;
}

div#myTestAd2
{
    display: none;
}

আশাকরি এটা সাহায্য করবে


3

যদি নতুন অ্যাডসেন্স কোড ব্যবহার করা হয় তবে আপনি সামগ্রী বা সিএসএস চেকগুলি অবলম্বন করে একটি সহজ চেক করতে পারেন।

আপনার মার্কআপে আপনার বিজ্ঞাপনগুলি সাধারণ হিসাবে রাখুন:

<ins class="adsbygoogle" style="display: block;"
   data-ad-client="ca-pub-######"
   data-ad-slot="#######"
   data-ad-format="auto"></ins>
<script>(adsbygoogle = window.adsbygoogle || []).push({});</script>

তারপরে আপনি আপনার পৃষ্ঠার নীচে অ্যাডসেন্স কোডটি কল করুন (নোটটি স্ক্রিপ্ট কল করার সময় পতাকা ব্যবহার করবেন না ):"async"adsbygoogle.js

<script src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>

তারপরে নীচের এই ছোট্ট স্নিপিটটি যুক্ত করুন:

<script>
if (!adsbygoogle.loaded) {
   // do something to alert the user
}
</script>

অ্যাডসেন্স সর্বদা বিজ্ঞাপনগুলি লোড adsbygoogle.loadedহওয়ার trueসময় পতাকাটি তৈরি করে / সেট করে , আপনি চেকটি কয়েক সেকেন্ডের মধ্যে বিলম্ব করতে একটি সেটটাইমআউট ফাংশনে চেকটি স্থাপন করতে পারেন।


2
এটি অবশ্যই বিজ্ঞাপনগুলি কীভাবে অবরুদ্ধ করা হয়েছিল তার উপর নির্ভর করে । যদি আপনার অ্যাডব্লকিং সফ্টওয়্যার অ্যাডসেন্সকে পুরোপুরি লোড করা থেকে বিরত রাখে তবে এটি কাজ করবে। তবে যদি আপনার অ্যাডব্লকিং সফ্টওয়্যার সিএসএস প্রদর্শন সম্পত্তিটিকে "কোনও না" হিসাবে সেট করে বা সংশ্লিষ্ট ডিভের উচ্চতা 0 তে সেট করার মতো কিছু করে থাকে, তবে এটি কাজ করতে পারে না।
ব্যাংককিয়ান

সত্য। আমি মনে করি না যে সমস্ত অ্যাডব্লকগুলির 100% ধরার সহজ উপায় আছে তবে কমপক্ষে আপনি সেগুলির কয়েকটি ধরতে পারেন।
ট্রয় মোরহাউস

3

বেশিরভাগ অ্যাডব্লককারী উপাদানটির জন্য এইচটিটিপি অনুরোধ বাতিল করে ads.jsএবং তৈরি 0pxকরে তবে কিছু সময় অ্যাডব্লকটি ডিওএম সরিয়ে দেয় এবং উপরের কিছু উত্তর ব্যর্থ হবে কারণ উপাদানটির অস্তিত্ব পরীক্ষা না করে।

ব্যবহার setTimeout()করা ভাল অনুশীলন কারণ এটি ব্যতীত, অ্যাডব্লকারের সাথে স্ক্রিপ্টের রেস তৈরি করবে।

নীচের স্ক্রিপ্টটি ডোমটি উপস্থিত / অপসারণ করা হয়েছে এবং offsetHeightকোনও উপাদান উপস্থিত থাকলে তা পরীক্ষা করে দেখবে ।

setTimeout(function() {
  var a = document.querySelector('.showads'),
    b = a ? (a.offsetHeight ? false : true) : true;
  console.log('ads blocked?', b)
}, 200); // don't too fast or will make the result wrong.
<div class="ads showads">
  Lorem ipsum dolor sit amet, consectetur adipisicing elit.
</div>


2

উপরের সমস্ত উত্তর বৈধ, তবে বেশিরভাগ ডিএনএস-স্তরের বিজ্ঞাপন ব্লক করার জন্য কাজ করবে না।

ডিএনএস-স্তরের অ্যাড ব্লকাররা ( পাই-হোলের মতো ) মূলত অ্যাড ব্লকিং ডোমেনগুলির তালিকার জন্য এনএক্সডিওআরএস (ডোমেনের অস্তিত্ব নেই) ফিরিয়ে দেয় (যেমন টেলিমেট্রি.মাইক্রোসফট.কম যখন তা উপস্থিত থাকে না ")।

এটি রোধ করার কয়েকটি উপায় রয়েছে:

পদ্ধতি একটি : ডোমেন নয়, আইপি ঠিকানার মাধ্যমে বিজ্ঞাপনের জন্য অনুরোধ।

আপনাকে আইপি ঠিকানার ট্র্যাক রাখতে হবে বলে এই পদ্ধতিটি কিছুটা বিরক্তিকর। আপনার কোডটি নিয়মিতভাবে রক্ষণাবেক্ষণ করা বা আপডেট করা না হলে এটি সমস্যাযুক্ত হবে।

পদ্ধতি বি : সমস্ত অনুরোধগুলি ব্যর্থ করুন যা ব্যর্থ হয়- এমনকি ক্লায়েন্টটি এনএক্সডিওআরএজে রিপোর্ট করে।

এটি যদি "বৈধ" এনএক্সডিওআরভি হয় তবে এটি ব্যবহারকারীদের জন্য খুব বিরক্তিকর হবে।


1
<script src="http://code.jquery.com/jquery-latest.js"></script>
<script>var adb=true;</script>
<script src="./getbanner.cfm?"></script>
<script>
$(document).ready(function(){if(adb)alert('AdBlock!');});
</script>

এবং getbanner.cfm ফাইলটিতে:

adb = false;

আমি মনে করি এটি অ্যাডব্লক সনাক্তকরণের সবচেয়ে সহজ উপায়।


অন্যান্য অবরুদ্ধ ফাইল: ইজিস্টলিস্টডাউনলোডস.এডব্লকপ্লাস.আর.ইস.এল.এসটিএসটি এটি ডিফল্ট অ্যাডব্লক ফিল্টার
মিকাস

অ্যাডবি trueসর্বদা বলে মনে হচ্ছে
দেব

1

এটিই আমার পক্ষে কাজ করেছে:

function isAdBlocked() {
     return (typeof(window.google_jobrunner) === "undefined") ? true : false;
}

$(document).ready(function(){
    if(isAdBlocked()) {
       alert('Y U NO LIKE ADS?');
    }
});

শুধু এই চেষ্টা করে; কাজ করে না. কোনও বিজ্ঞাপন ব্লকিং সফ্টওয়্যার ইনস্টল না থাকা অবস্থায় সর্বদা সত্য ফিরে আসে।
এক্নেপসনাই

মনে রাখবেন এটি কেবলমাত্র এমন একটি পৃষ্ঠায় কাজ করবে যেখানে আপনি অ্যাডসেন্স ব্যবহার করছেন। অন্যথায় এটি সর্বদা সত্যই ফিরে আসবে কারণ এটাই সঠিক প্রতিক্রিয়া - উইন্ডো.google_jobrunner কোনও এবং সমস্ত পৃষ্ঠায় সনাক্ত করা যাবে না। কেবলমাত্র যারা গুগল অ্যাডসেন্স ব্যবহার করছে আপনি আসলে এই কোডটি আমার সাইটে কাজ করতে দেখতে পাবেন: ruddl.com
জেসাল

আকর্ষণীয় বিষয় যে আপনার পদ্ধতিটি হুটোগেকের ব্যবহার মতো একই বার্তাটি ব্যবহার করতে ঘটে । রেকর্ডের জন্য, একটি বার্তা বাক্স প্রদর্শন করা আপনার সাইটের বিরুদ্ধে বিরক্ত এবং টক ব্যবহারকারীদের ছাড়া কিছুই করে না; বেশিরভাগ সাইটগুলি একটি পৃষ্ঠাতে বার্তা প্রদর্শন করতে পছন্দ করে (এইচটিজি উভয়ই করার চেষ্টা করে তবে কেবল বিরক্তিকর পপ-আপ কাজ করে)।
Synetech

1

আমি জানি এটি ইতিমধ্যে উত্তর দেওয়া হয়েছে, তবে আমি প্রস্তাবিত নমুনা সাইটের দিকে নজর রেখেছি এবং আমি দেখতে পাচ্ছি যে তারা এটি এরকম করে:

<script type="text/javascript">
if(document.getElementsByTagName("iframe").item(0) == null) {
    document.write("<div style="width: 160px; height: 600px; padding-top: 280px; margin-left: 5px; border: 1px solid #666666; color: #FFF; background-color: #666; text-align:center; font-family: Maven Pro, century gothic, arial, helvetica, sans-serif; padding-left: 5px; padding-right: 5px; border-radius: 7px; font-size: 18px;">Advertising seems to be blocked by your browser.<br><br><span style="font-size: 12px;">Please notice that advertising helps us to host the project.<br><br>If you find these ads intrusive or inappropriate, please contact me.</span><br><img src="http://www.playonlinux.com/images/abp.png" alt="Adblock Plus"></div>");
};
</script>

1

টাইমআউট এবং ডিওএম স্নিফিংয়ের দরকার নেই। সহজভাবে জনপ্রিয় বিজ্ঞাপন নেটওয়ার্কগুলি থেকে কোনও স্ক্রিপ্ট লোড করার চেষ্টা করুন এবং দেখুন অ্যাড ব্লকারটি এইচটিটিপি অনুরোধটিকে বাধা দিয়েছে কিনা।

/**
 * Attempt to load a script from a popular ad network. Ad blockers will intercept the HTTP request.
 *
 * @param {string} url
 * @param {Function} cb
 */
function detectAdBlockerAsync(url, cb){
    var script = document.createElement('script');

    script.onerror = function(){
        script.onerror = null;
        document.body.removeChild(script);
        cb();
    }

    script.src = url;
    document.body.appendChild(script);
}

detectAdBlockerAsync('http://ads.pubmatic.com/AdServer/js/gshowad.js', function(){
    document.body.style.background = '#c00';
});

1

এটি সমাধানের জন্য সবেমাত্র আমার নিজস্ব "প্লাগইন" তৈরি করেছে এবং এটি সত্যিই ভালভাবে কাজ করে:

অ্যাডবডি + জেএসবাডি:

এডিবাডি জেএসবাডি গিটিহাব

আমি অন্যান্য জিনিসের মধ্যে মোবাইলের সামঞ্জস্যতা এবং জেএসব্লকিং সনাক্তকরণ যুক্ত করেছি ... (ব্যবহারকারীদের অ্যাডব্লকিং / জেএসব্লকিং সফ্টওয়্যারটি অক্ষম করতে বলছে এমন একটি ওভারলেয়ের মতো ); এটিকে প্রতিক্রিয়াশীল বান্ধব করে তুলেছে।

এটি কফিওয়্যার লাইসেন্সের অধীনে খোলা হয়েছে


প্রচেষ্টাটির প্রশংসা করুন, তবে অ্যাডব্লক দিয়ে কাজ করছেন বলে মনে হচ্ছে না ... কমপক্ষে এই মন্তব্যটি লেখার ক্ষেত্রে।
অরুনস্ক্রিশ

এটি অ্যাডব্লকের সাথে কাজ করে, এমন একটি সাইট যেখানে আমি এই প্লাগইনটি প্রয়োগ করি তা হ'ল ক্যালিফ্রক্স.এন, যেখানে যে কেউ সত্যিই প্লাগিনের কাজগুলি যাচাই করতে পারে।
জেলেভিক

3
লিঙ্কটি মারা গেছে ... আমরা কি এটি সরাতে পারি?
ইভান ল্যাংলোইস

2
লিঙ্কগুলি আপডেট করুন, এটি এটি একটি খারাপ উত্তর দিচ্ছে।
ইয়াজান রাওয়াসদেহ

0

আমি আপনার উত্তেজনা বুঝতে পেরেছি এবং স্ক্রিপ্ট বা উপাদানটি লুকিয়ে আছে কিনা তা আপনি পরীক্ষা করতে পারেন। এবং আমরা যদি বিজ্ঞাপন-ব্লক করার বিষয়ে কথা বলি তবে আপনি কেবল উপাদান উপস্থিতিতে নয়, উপাদানটির দৃশ্যমানতার উপর নির্ভর করতে পারেন।

তৃতীয় পক্ষের স্ক্রিপ্টের সাথে তৈরি এলিমেন্টটি কখনই উপস্থিত হবে না, যে স্ক্রিপ্টটি যদি এই মুহুর্তে পৌঁছানো না যায় (ডিএনএস ত্রুটি, রিমোট ওয়েব সার্ভার ত্রুটি, অফলাইন ওয়েব পৃষ্ঠা প্রিলোড, ইত্যাদি) এবং আপনি সর্বদা মিথ্যা ধনাত্মক হন।

চেক সহ অন্যান্য সমস্ত উত্তর সঠিক, তবে এটি মনে রাখবেন।


0

timing's উত্তরটি ভাল ভাবা হয়েছে তবে আর কাজ করছে না, তাই আমি জেএস ফাইলটির নামটি 'বিজ্ঞাপনগুলি' থেকে 'অ্যাডসেন্স' এ আপডেট করেছি এবং এটি মনোযোগের মতো ফিরে কাজ করছে!

কোডটি এখানে, সম্ভবত এই উইল কাউকে সহায়তা করবে:

<html>
      <head>
            <script src="/adsense.js"></script>
      </head>
             <body>
                   <script>
                           if( window.adblockDetecter === undefined ){
                           // Do anithing, adblocker detected!
                           alert('Adblocker Detected!');}
                   </script>
            </body>
</html>

জেএস ফাইলটিতে এই লাইনটি লিখুন: var adblockDetecter = true;


0

অ্যাডব্লক ডিটেক্টর নামে একটি সাধারণ জেএস স্ক্রিপ্ট ব্যবহার করে এটি করার আরও ভাল উপায় এখন এটি
কীভাবে ব্যবহার করবেন তা এখানে: এটি
আপনার <head>বিভাগে যুক্ত করুন:

<script type="text/javascript">
window.onload = function() {
var iframe = document.createElement('iframe'),
    randomDomain = Math.floor(Math.random() * (10000 - 100 + 1)) + 100,
    iframeLoaded = true;

iframe.src = "http://"+ randomDomain +".com/ads.html";
iframe.height = ".1px";
iframe.width = ".1px";
iframe.id = 'some-ad';
iframe.onload = function() {iframeLoaded = false;};

document.body.appendChild(iframe);

setTimeout(function() { 
    var someAd = document.getElementById('some-ad');
    if(!iframeLoaded ||
       someAd == null || 
       someAd.style.display == "none" || 
       someAd.style.display == "hidden" || 
       someAd.style.visibility == "hidden" || 
       someAd.offsetHeight == 0)
        document.getElementById('ab-message').style.display = 'block';
    someAd.remove();
}, 500);
};
</script>`<br>

আপনি এখন ab-messageযেখানেই অ্যাডব্লক ব্যবহারকারীদের জন্য কোনও বার্তা প্রদর্শন করতে চান সেখানে আইডিটি ব্যবহার করতে পারেন :

<div id="ab-message" style="display: none">Your message here!</div>

মূলত এটি আড়াল করার জন্য যুক্ত ইনলাইন স্টাইলটি নোট করুন (অবশ্যই, আপনি এটি নিজের নিজস্ব সিএসএস ফাইল থেকেও করতে পারেন)।
এছাড়াও এটি নোট করুন যে এটি 500 মিমি নেয়, কারণ এটি অ্যাডব্লবারটির কাজটি করতে অপেক্ষা করতে হবে বা এটি কাজ করবে না।

এই স্ক্রিপ্টটি কীভাবে কাজ করে তার একটি ছোট্ট ব্যাখ্যা

প্রথমত, এটি এলোমেলোভাবে উত্পন্ন লিঙ্কের উত্স সহ একটি iframe যুক্ত করে। (এটি এলোমেলোভাবে উত্পাদিত হয়েছে কারণ কিছু অ্যাডব্লকগুলি স্মার্ট হয়, কিছু সময় তারা বুঝতে পারে যে একটি লিঙ্কটি নকল)।
তারপরে এটি সেই আইফ্রেমে একাধিক চেক চালায় (যদি এটি সফলভাবে লোড করা হয় বা যদি এর স্টাইলটি সংশোধন করা হয়েছে)। যদি এই পরীক্ষাগুলির মধ্যে একটি সত্য হয়, তবে এটি ab-messageঅ্যাডব্লক ব্যবহারকারীদের কাছে উপাদানটি প্রদর্শন করে ।

এই স্ক্রিপ্টটি বেশিরভাগ (সমস্ত না থাকলে) অ্যাড ব্লকারদের জন্য কাজ করে।

অতিরিক্ত

সত্যিকার অর্থে কোনও বক্তব্য স্রেফ ছদ্মবেশ তৈরি করতে পারত না, পরিবর্তে আমি একটি গিথুব প্রকল্প তৈরি করেছি, তবে তবুও, এটি পরীক্ষা করে দেখুন এবং এটি আপনাকে সহায়তা করে কিনা তা তারকাচিহ্নিত করে।
abDetector: সরল ভ্যানিলা জাভাস্ক্রিপ্ট অ্যাডব্লক সনাক্তকারী।
উপভোগ করুন।


দরিদ্র সমাধান। একটি বাহ্যিক .js ফাইল সহজেই অবরুদ্ধ।
ব্যাংককিয়ান

@ ব্যাঙ্কোকিয়ান কেবল অনুলিপি করুন এবং এটি আপনার বার্তায় জাভাস্ক্রিপ্ট ফাইল বা index.js (বা যাই হোক না কেন) দেখায় এটির (এবং এর লাইসেন্স) উল্লেখ করে।
ব্লু আইটাইটহাইটড্রেগন

1
আপনি নিখুঁত তবে ট্রয়ের আসল উত্তর কী ছিল তা মোটেই নয়। একটি ইনলাইন স্ক্রিপ্ট দেখানোর জন্য এটি এখন 100% সম্পাদিত হয়েছে। আমার মন্তব্য দাঁড়িয়েছে। তাঁর আসল উত্তরটি ছিল বিশেষত একটি বাহ্যিক স্ক্রিপ্ট ব্যবহার করা। stackoverflow.com/posts/34738388/revisions
ব্যাংককিয়ান

@ ব্যাঙ্কোকিয়ান ঠিক তেমনভাবে উল্লেখ করতে ভুলে গেছি যে আপনার মন্তব্যের জন্য ধন্যবাদ আমি এসও নির্দেশিকাগুলি অনুসরণ করতে আমার উত্তরটি সম্পাদনা করে এটিকে একটি ইনলাইন স্ক্রিপ্টে পরিণত করেছি। ধন্যবাদ.
নিক রামাউ

0

আপনি এটি পরীক্ষা করে দেখতে পারেন এটি সনাক্তকরণ-অ্যাডব্লকাকে সহায়তা করতে পারে

এটি সময় উত্তরের একটি বাস্তবায়ন

হেড ট্যাগের কোনও স্ক্রিপ্টের আগে এটি যুক্ত করুন:

<head>
    <title></title>
    <meta/>

    <!--adBlocker detection code - START-->
    <script src="//adblocker.fortiapp.com/ads.js"></script>
    <script>
        (function (i, o, g, r) {
            i[o] = (typeof i[o] == typeof undefined) ? g : r
        })(window, 'adblocker', true, false);
    </script>
    <!--adBlocker detection code - END-->

    // Other scripts

</head>

তারপরে এটি ব্যবহার করুন:

if (adblocker) {
    // the add blocker is enabled
}else{
    // ad blocker is not enabled
}

এটি কাজ করে না। এটি সর্বদা দেখানো হয় যে বিজ্ঞাপনটি অবরুদ্ধ।
হিমাংশু আগরওয়াল

window.adblockerআপনার ব্রাউজার কনসোলে মানটি পরীক্ষা করুন যদি এটি ফিরে আসে trueতবে অ্যাডব্লকর্তার সক্ষম হয় অন্যথায় এটি ফিরে আসবে falseআপনি পুরো ডকুমেন্টেশন সনাক্তকরণ-
অ্যাডব্লওয়ার
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.