Jak zjistit blokovač reklam

Jedním z nevyřčených pravidel internetu je, že většina obsahu je „zdarma“... za cenu toho, že webové stránky budou posety reklamami a sledovači. V prvních dnech internetu to nebyl velký problém, ale sledovače a reklamy se staly tak rušivými a neomluvitelně agresivními, že téměř musíte použít rozšíření prohlížeče pro blokování reklam.

Ad Blocker Plus je velmi populární a prohlížeč jako Brave se může pochlubit tím, že je zaměřen na blokování reklam. Často půjdu na web a uvidím způsob, jak deaktivovat blokování reklam, což mě přivedlo k přemýšlení o nejlepším způsobu, jak blokování reklam zjistit. Po různých testech a experimentech jsem našel opravdu jednoduchý způsob, jak detekovat blokovač reklam!

Moje metoda se v podstatě pokouší načíst soubor JavaScript reklamní služby Google, a pokud se požadavek nezdaří, je to pravděpodobně způsobeno tím, že uživatel má blokovač reklam:

// Determines if the user is likely using an ad block extension
async function checkAdBlocker() {
  // Used to cache the result
  let isBlocked;

  async function tryRequest() {
    try {
      return fetch(
        new Request("https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js", {
          method: 'HEAD',
          mode: 'no-cors'
        }))
        .then(function(response) {
          // Google Ads request succeeded, so likely no ad blocker
          isBlocked = false;
          return isBlocked;
        }).catch(function(e) {
          // Request failed, likely due to ad blocker
          isBlocked = true;
          return isBlocked;
        });
    } catch (error) {
      // fetch API error; possible fetch not supported (old browser)
      // Marking as a blocker since there was an error and so
      // we can prevent continued requests when this function is run
      console.log(error);
      isBlocked = true;
      return isBlocked;
    }
  }

  return isBlocked !== undefined ? isBlocked : await tryRequest();
}

// Using the ad block checker
const usingBlocker = await checkAdBlocker();

Logika za tím je následující:

  • Soubor reklamy Google, adsbygoogle.js , je perfektní ukázkový soubor, protože je považován za nepřítele číslo 1 – první soubor, který by chtěl blokovač reklam zablokovat kvůli popularitě reklamních služeb Google
  • Soubor je také prvořadý pro podnikání společnosti Google, takže je prakticky zaručena 99,999999999% dostupnost
  • Je malá šance, že by do hry vstoupil problém se sítí; falešné poplachy mohou pocházet z problémů s připojením k síti nebo ze špatného servisního pracovníka
  • Pokud neuvažujete adsbygoogle.js váš nejlepší ukázkový soubor, můžete jej snadno přepnout na jakoukoli jinou adresu URL

Z pohledu tvůrce obsahu navigator vlastnost, která by vám dala vědět, zda byl použit blokovač reklam, by byla ideální...ale to se v dohledné době nestane (...nikdy, opravdu). Použití jednoduchých úryvků, jako je tento, však poskytuje rozumnou nápovědu k tomu, aby uživatel aktivoval blokování reklam!