Hafenstudios Ads is an ad manager for WordPress: place banner ads, AdSense units and any ad code exactly where you want them, rotate them, target who sees them, and keep an eye on impressions, clicks and CTR — without sending any analytics to an external server. Create multiple ad blocks, insert the
PricingFree downloadThe WordPress.org download is free. Pro versions, add-ons or external services may cost extra.
CompatibilityRequires WordPress 6.2 and PHP 7.4.
SourceWordPress plugins · Oct 18, 2026
01 / Source details
About this tool.
Hafenstudios Ads is an ad manager for WordPress: place banner ads, AdSense units and any ad code exactly where you want them, rotate them, target who sees them, and keep an eye on impressions, clicks and CTR — without sending any analytics to an external server.
Create multiple ad blocks, insert them automatically before or after the content, after paragraph N or by shortcode, widget and Gutenberg block. Weighted ad rotation, split testing, device and post-type targeting, campaign scheduling and consent gating are built in.
Sonar , cookieless analytics for the numbers Google Analytics never shows you. It counts the people who decline your cookie banner, detects AI crawler visits from GPTBot, ClaudeBot, PerplexityBot and 36 more, sorted by purpose and kept apart from classic search engines, lists the visits that AI assistants like ChatGPT and Perplexity send you, and runs a consent audit that tells you whether your own site fires tracking requests before visitors have decided. No cookies, no cloud, nothing leaves your server.
New in 2.7.0: Sonar is honest about its own numbers. It says since when it has been counting, compares page views with GA4 over exactly the same seven days, recognises ChatGPT visits that arrive without a referrer, and no longer counts headless browsers as people.
Highlights
Sonar: cookieless visitor counting, AI crawler detection, AI referral tracking and a consent audit, all in your own database. See what GA4 does not.
Split test two ad variants against each other: every variant with impressions, clicks and CTR, a data progress gauge, and a mark on the one that is ahead.
Weighted ad rotation, cache-proof: blocks sharing a group name rotate in automatic placements and via [adjet_ad_group name="header"] ; the winner is picked in the visitor’s browser, so page caches cannot freeze the choice.
AdSense Wizard: Publisher-ID + Slot-ID are enough for responsive AdSense units, including in-article and multiplex formats.
Nothing leaves your server: no external calls, no phoning home, statistics stay in your own database.
Template gallery with 27 free templates: banners, native cards, testimonial, book/course card, seasonal deals, events, sponsor logo wall, notification bars, popups and a cookie consent banner with selectable cookie images.
Automatic placements before content, after content, after paragraph N, in the middle of the content, before the last paragraph, after heading N or after the first image.
Manual placement via shortcode [adjet_ad id="1"] , widget or Gutenberg block.
Clean, focused admin interface with brand bar, weekly summary and clear navigation tabs.
Device targeting for desktop, tablet and mobile.
Post type targeting plus exclusions for posts, categories, tags and custom terms.
Optional “Advertisement” label with editable text.
Lazy loading via IntersectionObserver.
Consent-cookie gating for common consent tools.
Optional anonymous local impression and click statistics.
Campaign scheduling with optional start and end time.
One-click duplicate and pause/activate actions for faster workflow.
Code editor and admin-side live preview that does not execute scripts.
AdSense Wizard: Publisher-ID + Slot-ID are enough for responsive AdSense units.
Optional AdSense Auto Ads script loader with clear settings.
30-day statistics chart (impressions and clicks) rendered inline, no external libraries.
Weekly summary above the ad block list: impressions, clicks and CTR since Monday, compared with the same weekday span of the previous week.
Least-privilege capability manage_adjet with an optional editor-access toggle.
Premium templates and features unlock with Pro.
REST API ( adjet/v1 ) for ad blocks, stats and settings via Application Passwords.
Guided assistant with optional AI copy suggestions (bring your own Anthropic Claude key).
Built-in cookie-consent banner template with Google Consent Mode v2 support.
Native newsletter opt-in for SendFox, MailerLite, Brevo, Mailchimp and Kit (ConvertKit), bring your own token, with double opt-in.
First-run onboarding that routes you to AdSense, a template or your own HTML.
JSON import and export with file-size/type checks.
Uninstall routine that keeps your data unless you explicitly ask for it to be deleted.
Privacy
The plugin does not contact hafenstudios servers from the WordPress admin area or frontend. Optional statistics are stored locally in your own WordPress database. Third-party ad code pasted into an ad block may contact external services; configure your consent solution accordingly.
External services
The plugin works fully without any external service. Every integration below is optional and only ever runs when you explicitly enable it:
Google AdSense (frontend): if you configure an AdSense ad unit or enable Auto Ads, the frontend loads Google’s adsbygoogle.js from pagead2.googlesyndication.com to display ads. Terms: https://www.google.com/adsense/localized-terms — Privacy: https://policies.google.com/privacy
Anthropic Claude (admin only, bring-your-own-key): the optional AI buttons send data to the Anthropic API ( api.anthropic.com ), each only after you enter your own Anthropic API key in the settings and click that button; no key, no request, never automatic. What each button sends: the “AI suggestions” button in the ad assistant sends the template’s field labels, your site name/description and any brief you type to generate draft ad copy; the “Suggest alt text” button sends the selected ad image (from your media library as encoded image data, otherwise as its URL) to describe it; the “Let the AI read the numbers” button on the statistics page sends aggregated daily totals, weekly totals and per-block impression/click counts. No visitor data, IP addresses or e-mail addresses are ever sent. The key is stored encrypted and used server-side only. Terms: https://www.anthropic.com/legal/commercial-terms — Privacy: https://www.anthropic.com/legal/privacy
SendFox (bring-your-own-token): if you connect SendFox in the settings and use the “Newsletter (SendFox)” template, visitor email addresses submitted through that form are sent to the SendFox API ( api.sendfox.com ) to be added to your list. This happens only when you have connected a SendFox access token. The token is stored encrypted and used server-side only. Terms: https://sendfox.com/tos — Privacy: https://sendfox.com/privacy
MailerLite (bring-your-own-token): if you connect MailerLite in the settings and use the “Newsletter (MailerLite)” template, visitor email addresses submitted through that form are sent to the MailerLite API ( connect.mailerlite.com ) to be added to your group. This happens only when you have connected a MailerLite API token. The token is stored encrypted and used server-side only. Terms: https://www.mailerlite.com/legal/terms-of-service — Privacy: https://www.mailerlite.com/legal/privacy-policy
Brevo (bring-your-own-token): if you connect Brevo in the settings and use the “Newsletter (Brevo)” template, visitor email addresses submitted through that form are sent to the Brevo API ( api.brevo.com ). With a double opt-in template and redirect URL configured in the settings, the signup uses Brevo’s double opt-in endpoint ( /contacts/doubleOptinConfirmation ) and Brevo sends the confirmation mail; without them the contact is created directly and no confirmation mail is sent, which the form’s success message states honestly. This happens only when you have connected a Brevo API key. The key is stored encrypted and used server-side only. Terms: https://www.brevo.com/legal/termsofuse/ — Privacy: https://www.brevo.com/legal/privacypolicy/
Mailchimp (bring-your-own-token): if you connect Mailchimp in the settings and use the “Newsletter (Mailchimp)” template, visitor email addresses submitted through that form are sent to the Mailchimp API ( <dc>.api.mailchimp.com , the data center encoded in your API key) to be added to your audience with status “pending”, which triggers Mailchimp’s double opt-in. This happens only when you have connected a Mailchimp API key. The key is stored encrypted and used server-side only. Terms: https://mailchimp.com/legal/terms/ — Privacy: https://www.intuit.com/privacy/statement/
Kit, formerly ConvertKit (bring-your-own-token): if you connect Kit in the settings and use the “Newsletter (Kit)” template, visitor email addresses submitted through that form are sent to the Kit API ( api.kit.com ) to create or update the subscriber and add them to your chosen Kit form; if the form has double opt-in enabled, Kit sends its confirmation email. This happens only when you have connected a Kit v4 API key. The key is stored encrypted and used server-side only. Terms: https://kit.com/terms — Privacy: https://kit.com/privacy
Security
The plugin uses capability checks, nonces for form actions, sanitization on save and escaping on output. Raw ad code is only stored unchanged for users with the unfiltered_html capability.
Localization
Source language: English.
Included translations: German, Spanish, French and Dutch — complete and shipped with the plugin.
Support
This plugin is developed and maintained by hafenstudios. For direct support you can reach us by e-mail at moin@hafenstudios.com or by phone at +49 174 3935796. You are also welcome to use the plugin support forum on WordPress.org.
See it in action
Screenshots & previews.
Sonar: real visitors, AI crawler hits and AI referrals, plus a consent audit that says whether your site sends tracking data before visitors decide.Every ad block at a glance: impressions, clicks and click rate, sortable by any column.Hold back third-party scripts until visitors consent. Every rule starts in trial mode and only logs what it would block, so you see what runs on your site before anything changes.The consent banner assistant: text, cookie image, animation and Google Consent Mode v2, without touching any code.The template gallery with filter and search: pick a purpose, fill in the fields, no HTML needed.Split test two variants against each other, free of charge, with an honest data gauge instead of a made-up winner.Local statistics: 30 days, rendered on your own server, including the clicks that click protection did not count.The AdSense assistant: publisher ID, slot and format, nothing else.
02 / Source details
Getting started.
01Upload the ZIP via Plugins > Add New > Upload Plugin.
02Activate the plugin.
03Open the new “Hafenstudios Ads” menu and create your first ad block.
04Optional: configure the ad label, consent-cookie settings and local statistics.
Upgrading from “AdEngine – Free Ad Inserter & Manager”? Just install this plugin — your ad blocks, settings and statistics are migrated automatically on first load.
03 / Source details
Frequently asked questions.
Does this plugin work with AdSense?
Yes. You can either paste original AdSense code as custom code or use the AdSense Wizard with your Publisher-ID and Slot-ID. The plugin then generates a responsive ad unit and loads the AdSense script on the frontend when needed.
Can I use it manually?
Yes. Use the shortcode [adjet_ad id="1"] , the shortcode [adjet_ad_group name="header"] , the included widget or the Gutenberg block.
Does it replace a consent tool?
No. The plugin can wait for a configured consent cookie, but it does not provide legal advice or a cookie banner.
Does this plugin track users externally?
No. The optional statistics feature stores anonymous aggregated counts locally in your WordPress database.
Does the AI feature send data anywhere?
Only when you use it. The AI is the one deliberate exception to “no external calls”: it runs only after you store your own Anthropic API key and click a button – one click, one request, never automatic. Depending on the button, the request carries the template’s field labels, your site name and description, the brief you type, the selected ad image (alt-text suggestion) or aggregated statistics totals (statistics summary). It never sends visitor data, IP addresses, e-mail addresses or page content, and your key is stored encrypted and never leaves your server.
Can editors manage ads without being administrators?
Yes. Enable “Editor access” in Settings to grant the manage_adjet capability to the editor role. Administrators always have access.
What happens to my data when I uninstall the plugin?
Nothing is deleted unless you ask for it. The setting “Delete all data on uninstall” is off by default, so removing the plugin leaves your ad blocks, settings and the statistics table in place and a later reinstall picks them up again. Switch the setting on before uninstalling if you want the options, the statistics table and the manage_adjet capability removed for good.
Is there a REST API?
Yes. The adjet/v1 namespace exposes ad blocks ( /blocks , CRUD), statistics ( /stats ) and settings ( /settings ). Authenticate with an Application Password; access requires the manage_adjet capability.
Website LLMs.txt and LLMs-Full.txt Generator is an LLMs.txt generator and llms-full.txt generator for WordPress. It helps site owners generate, manage, preview, validate, and serve AI discovery files from published public content. Use it to create structured /llms.txt and optional /llms-full.txt end
EngageDock AI is a customizable floating contact widget for WordPress websites that want more leads and faster visitor communication. It helps small businesses turn website traffic into calls, texts, emails, and callback requests from one clean contact panel. Key Features: Click-to-Call – One tap ca
Altify AI is an auto ALT text and AI ALT text plugin for WordPress images. It helps generate descriptive image ALT text for accessibility and image SEO. Use bulk image ALT text tools for your Media Library, generate featured image ALT text automatically, and scale WooCommerce image ALT updates with
The Accepted Payment Methods plugin is a straightforward, lightweight solution that enhances your website by displaying visually appealing icons of the payment methods you accept. This plugin is ideal for a variety of websites, including e-commerce platforms, service-oriented websites, and informati