1.2.1 • Published 1 year ago

multi-adblock-detect v1.2.1

Weekly downloads
-
License
See https://githu...
Repository
github
Last release
1 year ago

Multivalent Adblock Detector (with TypeScript + React Hook support)

This package contains several adblock detection techniques, drawn from different sources on the internet.

Effectivenss

The table below shows the effectiveness level of the several ad blocker detection techniques included here: | Detection Technique | uBO | uB | AB | ABP | Gh. | AG | AL | PB | FA | ABU | ----------------------------- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | | ...FetchOrXhrAdsByGoogle | ❌ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | ✅ | ❌ | ❌ | | ...FetchDoubleClick | ❌ | ❌ | ✅ | ✅ | ✅ | ❌ |✅ | ✅ | ❌ | ✅ | | ...ScriptSailthruJs | ❌ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | ❌ | ❌ | ❌ | | ...BaitElementOrXhrGoogle | ❌ | ❌ | ✅ | ✅ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | | ...ScriptAdsByGoogle | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ | | ...ScriptAdsJs | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |

The presence of uBO and FA cannot be detected, at this time.

The various ad blockers (abbreviated above) are:

You can import one or multiple of these detection techniques for use in your project.

Example Usage

import {
  useDetectAdBlockFetchOrXhrAdsByGoogle,
  useDetectAdBlockFetchDoubleClick,
} from "multi-adblock-detect";

export const useAdBlockDetect = (): boolean =>
  [
    useDetectAdBlockFetchOrXhrAdsByGoogle(),
    useDetectAdBlockFetchDoubleClick(),
  ].some(detected => detected);

Techniques

Each technique is available as a regular function, and as a React hook.

  • Standard JavaScript function: detectAdBlockFetchOrXhrAdsByGoogle

    • React Hook variant: useDetectAdBlockFetchOrXhrAdsByGoogle
  • Standard JavaScript function: detectAdBlockFetchDoubleClick

    • React Hook variant: useDetectAdBlockFetchDoubleClick
  • Standard JavaScript function: detectAdBlockScriptSailthruJsrequires a static asset

    • React Hook variant: useDetectAdBlockScriptSailthruJs
  • Standard JavaScript function: detectAdBlockBaitElementOrXhrGooglerequires a static asset

    • React Hook variant: useDetectAdBlockBaitElementOrXhrGoogle
  • Standard JavaScript function: detectAdBlockScriptAdsByGoogle

    • React Hook variant: useDetectAdBlockScriptAdsByGoogle
  • Standard JavaScript function: detectAdBlockScriptAdsJsrequires a static asset

    • React Hook variant: useDetectAdBlockScriptAdsJs

Usage

The function variant takes a callback (of type () => void), which gets called/triggered if an ad blocker is detected.

The custom hook contains a useState which intially starts out as false, and eventually updates to true if an ad blocker (this state is returned by the custom hook).

Note: there can be false positives (i.e. false detection of an ad blocker when none is present), but it is likely rare (and likely caused by an extension that does ad blocker-like things, like blocking tracking).

LICENSE

This code is derived from several sources. All original code is licensed under the Apache License, Version 2.0, see full text at: https://github.com/arjun-menon/multi-adblock-detect/blob/master/LICENSE.md

The detection code is derived from multiple sources.

The wrapper code here is released under Apache 2.0.

1.2.0

1 year ago

1.1.1

1 year ago

1.1.0

1 year ago

1.2.1

1 year ago

1.1.2

1 year ago

1.0.2

2 years ago

1.0.0

2 years ago