CHP Adblock

A multi-platform adblock detection toolkit shipping as a WordPress plugin, a React npm package, and a drop-in script for static sites. Detects most adblock extensions and surfaces a fully customizable prompt to recover lost ad impressions.

Visit live site ↗chpadblock.com
chpadblock.com
Screenshot of CHP Adblock

Overview

Adblock usage erodes a meaningful slice of revenue for any ad-supported site. Publishers either lose the impression silently, or bolt on heavy third-party services that lock them into a vendor and a recurring bill. CHP Adblock was built to give developers a lightweight, customizable detection layer they can drop into any stack and own outright.

The detection engine identifies popular ad blockers such as uBlock, uBlock Origin, AdBlock Plus, and most filter-list variants. When a block is detected, the plugin surfaces a fully theme-able modal that prompts the visitor to whitelist the site, optionally blurs the article body until they comply, and tracks the outcome in an analytics dashboard.

Key features

  • Detects most adblock extensions across modern browsers
  • Fully customizable modal: title, message, theme, buttons, overlay effect
  • Auto-blur article content when adblock is detected
  • Timer to auto-hide the message after a configurable delay
  • Disable on specific URLs or per WordPress post
  • Disable per country / region
  • Built-in analytics for blocked vs allowed sessions
  • Random class generator that makes the detection harder for adblock lists to target
  • Clean, well-documented codebase

Where it ships

How it was built

I designed, built, and maintain every distribution channel as the sole developer. The WordPress version is built in PHP against the WP plugin APIs, with jQuery for the detection and modal layer and MySQL for the analytics store. The React package is a small TypeScript-friendly hook + component published to npm, sharing the same detection heuristics as the WP plugin. The static-site version ships as a single ES module with no dependencies, so it can be dropped onto any HTML page.

Tech Stack

PHPWordPressjQueryMySQLJavaScriptReactnpm