The First Contextual Inline Ad Plugin for WordPress

Ads that live inside
the story itself

Banner ads get ignored. Popups get closed. ContextAd is different — it finds the most relevant phrase in your post and wraps it in a glowing animated ad that readers actually notice.

↓ Download Free See How It Works
↓ Live demo — hover the highlighted phrase
Technology & Environment

For GIS professionals working in fields like environmental monitoring and urban planning, the ability to run change detection and vector export ES has rewritten the daily workflow entirely.

Tasks that once required expensive proprietary software can now be accomplished in a browser tab.

Three steps.
Zero manual markup.

Install the plugin, add your ads, and ContextAd does the rest — automatically, on every post, every time.

01
You define the ad
Add your brand, tagline, description, URL, and a comma-separated keyword list in the Settings page. Takes two minutes.
02
ContextAd finds the phrase
On every page load, the plugin scans the post's paragraphs, scores each one against your keywords, and picks the highest-matching phrase automatically.
03
The animation fires
As the reader scrolls to the phrase, a glowing streak traces it, a comet orbits it permanently, and a logo badge appears on hover. Click opens the ad card.

Built for people who
care how their site reads.

ContextAd is not for every WordPress site. It's for publishers who treat their content seriously and want their advertising to reflect that.

Niche Blogger
You write in-depth content and sell direct sponsorships
You've worked hard to build an audience that trusts you. A banner ad in the sidebar feels like a betrayal of that trust. ContextAd puts your sponsor's message inside the article — exactly where it belongs.
  • Sponsors want placement that readers actually see
  • Banner blindness has killed sidebar CTRs
  • You don't want to manually wrap phrases in every post
  • Your content and the ad should feel related
Affiliate Publisher
You drive product sales through long-form reviews and guides
Affiliate links buried in text get clicks. Affiliate links in banners get ignored. ContextAd turns your highest-relevance keyword into an animated, attention-capturing anchor — right where the reader is already engaged.
  • Affiliate CTR from generic banners is below 0.1%
  • In-text placement converts 3–5x better
  • You write dozens of posts — manual markup doesn't scale
  • The product being advertised should match what's being discussed
Content Site Owner
You run a multi-author publication and manage several ad deals
You don't have time to edit every post manually to insert ad placements. You need a system that runs on its own — reading each post, finding the right moment, and placing the ad without you touching it.
  • Managing ad placements across 50+ posts is not scalable
  • Your writers shouldn't need to think about ad markup
  • Different posts need different ads based on topic
  • Ad quality matters — irrelevant ads damage reader trust

Every other ad solution
sits outside your content.

AdSense, banner plugins, and sponsored widgets all share the same flaw — they live in a completely different visual layer from the article. Readers have trained themselves to ignore them. ContextAd is the only solution that places the ad inside the reading experience itself.

Criteria
AdSense / Banners
ContextAd
Ad placement
Outside the content — sidebar, header, between paragraphs
Inside the article — anchored to a relevant phrase
Contextual relevance
Algorithmic — often unrelated to the article topic
Keyword-matched — ad is always relevant to what's being read
Reader attention
Ad blindness — readers habitually ignore peripheral zones
Unavoidable — the animation is inside the text the reader is already reading
Setup per post
Automatic placement, but no editorial control
Fully automatic — no markup needed, ever
Revenue model
Google takes 32–49% of every click
Direct deals only — 100% of revenue goes to you
Reader experience
Disruptive — layout shifts, flashing graphics, popups
Non-disruptive — zero layout shift, no popups, pure reading flow

Built for publishers,
not engineers.

Auto keyword matching
The matcher scores every 2–6 word phrase in the post against your keyword list. The highest-scoring phrase in the most relevant paragraph wins — no configuration needed per post.
🎯
Inline-tag safe injection
Works on paragraphs containing Gutenberg's inline HTML — bold, links, italics — by targeting text nodes directly instead of string-replacing raw HTML.
Scroll-triggered animation
IntersectionObserver fires the streak draw the moment the phrase enters the viewport. A comet then orbits the highlighted phrase continuously — no CSS keyframe jank.
🛡️
Multiple ads, zero overlap
Run up to 10 ads simultaneously. Each injects into a different paragraph, uses different phrases, and operates independently. Used phrases are excluded from subsequent matches.
🎨
Fully configurable
Streak colour, comet speed, draw duration, and max ads per post are all adjustable from the settings page. No code editing required.
🔌
Drop-in WordPress plugin
Upload the zip, activate, add your first ad, and you're done. PHP 7.2+ compatible. No external dependencies. No API keys. Works on any theme.

Clean PHP.
No bloat.

The plugin is three PHP classes — a settings handler, a phrase matcher, and a content injector. No external HTTP calls. No tracking pixels. No jQuery. The frontend is 5KB of vanilla JS and CSS.

class-contextad-injector.php
// Score each <p> block against keywords
foreach ( $para_matches as $para ) {
  $para_plain = wp_strip_all_tags( $para_html );
  $score = self::score_para(
    $para_plain, $kw_list
  );
  if ( $score > $best_score ) {
    $best_para = $para;
  }
}

// Inject into text nodes only — safe
// regardless of inline HTML tags
$parts = preg_split(
  '(/<[^>]+>/u)',
  $para_inner,
  PREG_SPLIT_DELIM_CAPTURE
);

"Banner ads live on the edges of a page. ContextAd lives inside the sentence your reader is already thinking about."

Why ContextAd works where banners don't

Simple, honest pricing.

Starter
Free
Everything you need to get started on a single site.
  • 1 active ad
  • Up to 3 injections per post
  • All animation features
  • Settings page
  • WordPress.org plugin listing
Download Free

Common questions.

Does it work with any WordPress theme?
Yes. ContextAd hooks into the_content filter and enqueues its own CSS and JS — it doesn't touch your theme files at all. It works with Gutenberg, Classic Editor, and any page builder that uses standard WordPress content output.
What PHP version does it require?
PHP 7.2 or higher. No arrow functions or newer PHP 8 features are used, so it runs on virtually any shared hosting environment.
How does it handle posts with lots of inline HTML?
ContextAd injects at the text node level — it splits paragraph HTML into text segments and tag segments, finds the keyword inside a text segment, and wraps only that. Links, bold text, and inline spans all survive injection untouched.
Can the same ad appear multiple times in one post?
Yes — set "Max Ads Per Post" in the settings to any number. Each injection targets a different paragraph, and used phrases are excluded from subsequent matches so the same word is never highlighted twice.
Is there any tracking or external data collection?
No. ContextAd makes zero external HTTP requests. Everything runs server-side in PHP and client-side in local JS. No pixels, no beacons, no third-party scripts.