Title: Hafenstudios Ads – Anzeigen-Manager, AdSense &amp; Werbebanner
Author: hafenstudios
Published: <strong>30. Juli 2026</strong>
Last modified: 15. September 2026

---

Plugins suchen

![](https://ps.w.org/hafenstudios-ads/assets/banner-772x250.png?rev=3650300)

![](https://ps.w.org/hafenstudios-ads/assets/icon-256x256.png?rev=3628546)

# Hafenstudios Ads – Anzeigen-Manager, AdSense & Werbebanner

 Von [hafenstudios](https://profiles.wordpress.org/hafenstudios/)

[Herunterladen](https://downloads.wordpress.org/plugin/hafenstudios-ads.2.6.0.zip)

 * [Details](https://de.wordpress.org/plugins/hafenstudios-ads/#description)
 * [Rezensionen](https://de.wordpress.org/plugins/hafenstudios-ads/#reviews)
 *  [Installation](https://de.wordpress.org/plugins/hafenstudios-ads/#installation)
 * [Entwicklung](https://de.wordpress.org/plugins/hafenstudios-ads/#developers)

 [Support](https://wordpress.org/support/plugin/hafenstudios-ads/)

## Beschreibung

Hafenstudios Ads ist ein Anzeigen-Manager für WordPress: Platziere Werbebanner, 
AdSense-Einheiten und beliebigen Anzeigencode genau dort, wo du sie haben willst,
rotiere sie, steuere wer sie sieht, und behalte Impressionen, Klicks und Klickrate
im Blick — ohne dass Analysedaten an einen externen Server gehen.

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.

New in 2.6.0: **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 40 more, 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.

#### 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.
 * Zwei Anzeigen-Varianten im Split-Test gegeneinander laufen lassen: jede Variante
   mit Impressionen, Klicks und Klickrate, dazu eine Skala für den Datenfortschritt
   und eine Markierung bei der Variante, die vorn liegt.
 * Gewichtete Anzeigen-Rotation, cache-fest: Blöcke mit gleichem Gruppennamen rotieren
   in automatischen Platzierungen und über `[adjet_ad_group name="header"]`; der
   Gewinner wird im Browser der Besucher gewählt, ein Page-Cache kann die Auswahl
   also nicht einfrieren.
 * AdSense-Assistent: Publisher-ID und Slot-ID genügen für responsive AdSense-Einheiten,
   inklusive der Formate In-Article und Multiplex.
 * Nichts verlässt deinen Server: keine externen Aufrufe, kein Nachhause-Telefonieren,
   die Statistik bleibt in deiner eigenen Datenbank.
 * Vorlagen-Galerie mit 27 kostenlosen Vorlagen: Banner, Native-Karten, Testimonial,
   Buch-/Kurs-Karte, Saison-Deals, Events, Sponsoren-Logowand, Notification-Bars,
   Popups und ein Cookie-Consent-Banner mit auswählbaren Cookie-Bildern.
 * Automatische Platzierungen vor dem Inhalt, nach dem Inhalt, nach Absatz N, in
   der Mitte des Inhalts, vor dem letzten Absatz, nach Überschrift N oder nach dem
   ersten Bild.
 * Manuelle Platzierung per Shortcode `[adjet_ad id="1"]`, Widget oder Gutenberg-
   Block.
 * Aufgeräumtes, fokussiertes Backend mit Markenleiste, Wochenübersicht und klaren
   Navigationsreitern.
 * Geräte-Targeting für Desktop, Tablet und Mobilgeräte.
 * Beitragstyp-Targeting plus Ausschlüsse für Beiträge, Kategorien, Schlagwörter
   und eigene Taxonomien.
 * Optionale Kennzeichnung „Anzeige“ mit anpassbarem Text.
 * Lazy Loading über den IntersectionObserver.
 * Consent-Cookie-Gating für gängige Consent-Tools.
 * Optionale anonyme lokale Statistik für Impressionen und Klicks.
 * Kampagnen-Zeitsteuerung mit optionalem Start- und Endzeitpunkt.
 * Duplizieren sowie Pausieren und Aktivieren mit einem Klick, für schnelleres Arbeiten.
 * Code-Editor und Live-Vorschau im Backend, die keine Skripte ausführt.
 * AdSense-Assistent: Publisher-ID und Slot-ID genügen für responsive AdSense-Einheiten.
 * Optionaler Loader für AdSense Auto Ads mit klaren Einstellungen.
 * 30-Tage-Statistikdiagramm (Impressionen und Klicks), inline gerendert und ohne
   externe Bibliotheken.
 * Wochenübersicht über der Anzeigenblock-Liste: Impressionen, Klicks und Klickrate
   seit Montag, verglichen mit demselben Wochentagszeitraum der Vorwoche.
 * Sparsame Berechtigung `manage_adjet` mit optionalem Schalter für Redakteurs-Zugriff.
 * Premium-Vorlagen und Premium-Funktionen schaltest du mit Pro frei.
 * REST-API (`adjet/v1`) für Anzeigenblöcke, Statistik und Einstellungen über Anwendungspasswörter.
 * Geführter Assistent mit optionalen KI-Textvorschlägen (mit deinem eigenen Anthropic-
   Claude-Key).
 * Eingebaute Vorlage für einen Cookie-Consent-Banner mit Unterstützung für Google
   Consent Mode v2.
 * Eingebautes Newsletter-Opt-in für SendFox, MailerLite, Brevo, Mailchimp und Kit(
   ConvertKit), mit eigenem Token und Double-Opt-in.
 * Einstiegshilfe beim ersten Start, die dich zu AdSense, einer Vorlage oder deinem
   eigenen HTML führt.
 * JSON-Import und -Export mit Prüfung von Dateigröße und Dateityp.
 * Deinstallations-Routine, die deine Daten behält, sofern du die Löschung nicht
   ausdrücklich verlangst.

#### Datenschutz

Das Plugin kontaktiert weder aus dem WordPress-Backend noch im Frontend Server von
hafenstudios. Die optionale Statistik wird lokal in deiner eigenen WordPress-Datenbank
gespeichert. Anzeigencode von Dritten, den du in einen Anzeigenblock einfügst, kann
externe Dienste kontaktieren — richte deine Consent-Lösung entsprechend ein.

#### Externe Dienste

Das Plugin funktioniert vollständig ohne jeden externen Dienst. Jede der folgenden
Anbindungen ist optional und läuft nur, wenn du sie ausdrücklich aktivierst:

 * Google AdSense (Frontend): Wenn du eine AdSense-Anzeigeneinheit einrichtest oder
   Auto Ads aktivierst, lädt das Frontend Googles `adsbygoogle.js` von `pagead2.
   googlesyndication.com`, um Anzeigen auszuspielen. Nutzungsbedingungen: https://
   www.google.com/adsense/localized-terms — Datenschutz: https://policies.google.
   com/privacy
 * Anthropic Claude (nur im Backend, eigener Key): Die optionalen KI-Buttons senden
   Daten an die Anthropic-API (`api.anthropic.com`), jeder erst, nachdem du deinen
   eigenen Anthropic-API-Key in den Einstellungen eingetragen und genau diesen Button
   geklickt hast; kein Key, keine Anfrage, nie automatisch. Was die einzelnen Buttons
   senden: Der Button „KI-Vorschläge“ im Anzeigen-Assistenten sendet die Feldnamen
   der Vorlage, deinen Website-Namen samt Beschreibung und deinen getippten Hinweis,
   um Textentwürfe für die Anzeige zu erzeugen; der Button „Alt-Text vorschlagen“
   sendet das ausgewählte Anzeigenbild (aus deiner Mediathek als kodierte Bilddaten,
   sonst als URL), damit es beschrieben wird; der Button „Die KI auf die Zahlen 
   schauen lassen“ auf der Statistik-Seite sendet aggregierte Tages- und Wochensummen
   sowie Impressionen und Klicks je Block. Besucherdaten, IP-Adressen oder E-Mail-
   Adressen werden nie gesendet. Der Key wird verschlüsselt gespeichert und ausschließlich
   serverseitig verwendet. Nutzungsbedingungen: https://www.anthropic.com/legal/
   commercial-terms. Datenschutz: https://www.anthropic.com/legal/privacy
 * SendFox (eigener Token): Wenn du SendFox in den Einstellungen verbindest und 
   die Vorlage „Newsletter (SendFox)“ nutzt, werden die E-Mail-Adressen, die Besucher
   über dieses Formular abschicken, an die SendFox-API (`api.sendfox.com`) gesendet
   und in deine Liste eingetragen. Das passiert nur, wenn du einen SendFox-Access-
   Token hinterlegt hast. Der Token wird verschlüsselt gespeichert und ausschließlich
   serverseitig verwendet. Nutzungsbedingungen: https://sendfox.com/tos — Datenschutz:
   https://sendfox.com/privacy
 * MailerLite (eigener Token): Wenn du MailerLite in den Einstellungen verbindest
   und die Vorlage „Newsletter (MailerLite)“ nutzt, werden die E-Mail-Adressen, 
   die Besucher über dieses Formular abschicken, an die MailerLite-API (`connect.
   mailerlite.com`) gesendet und in deine Gruppe eingetragen. Das passiert nur, 
   wenn du einen MailerLite-API-Token hinterlegt hast. Der Token wird verschlüsselt
   gespeichert und ausschließlich serverseitig verwendet. Nutzungsbedingungen: https://
   www.mailerlite.com/legal/terms-of-service — Datenschutz: https://www.mailerlite.
   com/legal/privacy-policy
 * Brevo (eigener Token): Wenn du Brevo in den Einstellungen verbindest und die 
   Vorlage „Newsletter (Brevo)“ nutzt, werden die E-Mail-Adressen, die Besucher 
   über dieses Formular abschicken, an die Brevo-API (`api.brevo.com`) gesendet.
   Sind in den Einstellungen eine Double-Opt-in-Vorlage und eine Weiterleitungs-
   URL hinterlegt, läuft die Anmeldung über Brevos Double-Opt-in-Endpunkt (`/contacts/
   doubleOptinConfirmation`) und Brevo verschickt die Bestätigungsmail; ohne diese
   Angaben wird der Kontakt direkt angelegt und es geht keine Bestätigungsmail raus,
   was die Erfolgsmeldung des Formulars auch ehrlich so sagt. Das passiert nur, 
   wenn du einen Brevo-API-Key hinterlegt hast. Der Key wird verschlüsselt gespeichert
   und ausschließlich serverseitig verwendet. Nutzungsbedingungen: https://www.brevo.
   com/legal/termsofuse/. Datenschutz: https://www.brevo.com/legal/privacypolicy/
 * Mailchimp (eigener Token): Wenn du Mailchimp in den Einstellungen verbindest 
   und die Vorlage „Newsletter (Mailchimp)“ nutzt, werden die E-Mail-Adressen, die
   Besucher über dieses Formular abschicken, an die Mailchimp-API (`<dc>.api.mailchimp.
   com`, das Rechenzentrum steckt in deinem API-Key) gesendet und mit Status „pending“
   in deine Audience eingetragen — das löst Mailchimps Double-Opt-in aus. Das passiert
   nur, wenn du einen Mailchimp-API-Key hinterlegt hast. Der Key wird verschlüsselt
   gespeichert und ausschließlich serverseitig verwendet. Nutzungsbedingungen: https://
   mailchimp.com/legal/terms/ — Datenschutz: https://www.intuit.com/privacy/statement/
 * Kit, früher ConvertKit (eigener Token): Wenn du Kit in den Einstellungen verbindest
   und die Vorlage „Newsletter (Kit)“ nutzt, werden die E-Mail-Adressen, die Besucher
   über dieses Formular abschicken, an die Kit-API (`api.kit.com`) gesendet, um 
   den Kontakt anzulegen oder zu aktualisieren und ihn dem von dir gewählten Kit-
   Formular hinzuzufügen; ist für dieses Formular Double-Opt-in aktiviert, verschickt
   Kit seine Bestätigungsmail. Das passiert nur, wenn du einen Kit-v4-API-Key hinterlegt
   hast. Der Key wird verschlüsselt gespeichert und ausschließlich serverseitig 
   verwendet. Nutzungsbedingungen: https://kit.com/terms. Datenschutz: https://kit.
   com/privacy

#### Sicherheit

Das Plugin nutzt Berechtigungsprüfungen, Nonces für Formularaktionen, Bereinigung
beim Speichern und Escaping bei der Ausgabe. Roher Anzeigencode wird nur für Nutzer
mit der Berechtigung `unfiltered_html` unverändert gespeichert.

#### Lokalisierung

 * Quellsprache: Englisch.
 * Enthaltene Übersetzungen: Deutsch, Spanisch, Französisch und Niederländisch —
   vollständig und im Plugin mitgeliefert.

#### Support

Dieses Plugin wird von hafenstudios entwickelt und gepflegt. Für direkten Support
erreichst du uns per E-Mail unter moin@hafenstudios.com oder telefonisch unter +
49 174 3935796. Du kannst auch gerne das Plugin-Supportforum auf WordPress.org nutzen.

## Screenshots

[⌊Sonar: real visitors, AI crawler hits and AI referrals, plus a consent audit that
says whether your site sends tracking data before visitors decide.⌉⌊Sonar: real 
visitors, AI crawler hits and AI referrals, plus a consent audit that says whether
your site sends tracking data before visitors decide.⌉[

Sonar: real visitors, AI crawler hits and AI referrals, plus a consent audit that
says whether your site sends tracking data before visitors decide.

[⌊Jeder Anzeigenblock auf einen Blick: Impressionen, Klicks und Klickrate, sortierbar
nach jeder Spalte.⌉⌊Jeder Anzeigenblock auf einen Blick: Impressionen, Klicks und
Klickrate, sortierbar nach jeder Spalte.⌉[

Jeder Anzeigenblock auf einen Blick: Impressionen, Klicks und Klickrate, sortierbar
nach jeder Spalte.

[⌊Fremde Skripte zurückhalten, bis Besucher einwilligen. Jede Regel startet im Probelauf
und protokolliert erst einmal nur, was sie blockieren würde. So siehst du, was auf
deiner Website läuft, bevor sich etwas ändert.⌉⌊Fremde Skripte zurückhalten, bis
Besucher einwilligen. Jede Regel startet im Probelauf und protokolliert erst einmal
nur, was sie blockieren würde. So siehst du, was auf deiner Website läuft, bevor
sich etwas ändert.⌉[

Fremde Skripte zurückhalten, bis Besucher einwilligen. Jede Regel startet im Probelauf
und protokolliert erst einmal nur, was sie blockieren würde. So siehst du, was auf
deiner Website läuft, bevor sich etwas ändert.

[⌊Der Assistent für den Consent-Banner: Text, Cookie-Bild, Animation und Google 
Consent Mode v2, ohne eine Zeile Code.⌉⌊Der Assistent für den Consent-Banner: Text,
Cookie-Bild, Animation und Google Consent Mode v2, ohne eine Zeile Code.⌉[

Der Assistent für den Consent-Banner: Text, Cookie-Bild, Animation und Google Consent
Mode v2, ohne eine Zeile Code.

[⌊Die Vorlagen-Galerie mit Filter und Suche: Zweck auswählen, Felder ausfüllen, 
kein HTML nötig.⌉⌊Die Vorlagen-Galerie mit Filter und Suche: Zweck auswählen, Felder
ausfüllen, kein HTML nötig.⌉[

Die Vorlagen-Galerie mit Filter und Suche: Zweck auswählen, Felder ausfüllen, kein
HTML nötig.

[⌊Zwei Varianten kostenlos im Split-Test gegeneinander laufen lassen, mit einer 
ehrlichen Skala für den Datenfortschritt statt eines erfundenen Gewinners.⌉⌊Zwei
Varianten kostenlos im Split-Test gegeneinander laufen lassen, mit einer ehrlichen
Skala für den Datenfortschritt statt eines erfundenen Gewinners.⌉[

Zwei Varianten kostenlos im Split-Test gegeneinander laufen lassen, mit einer ehrlichen
Skala für den Datenfortschritt statt eines erfundenen Gewinners.

[⌊Lokale Statistik: 30 Tage, auf deinem eigenen Server gerendert, inklusive der 
Klicks, die der Klick-Schutz nicht gezählt hat.⌉⌊Lokale Statistik: 30 Tage, auf 
deinem eigenen Server gerendert, inklusive der Klicks, die der Klick-Schutz nicht
gezählt hat.⌉[

Lokale Statistik: 30 Tage, auf deinem eigenen Server gerendert, inklusive der Klicks,
die der Klick-Schutz nicht gezählt hat.

[⌊The AdSense assistant: publisher ID, slot and format, nothing else.⌉⌊The AdSense
assistant: publisher ID, slot and format, nothing else.⌉[

The AdSense assistant: publisher ID, slot and format, nothing else.

## Blöcke

Dieses Plugin bietet 1 Block.

 *   Hafenstudios Ads

## Installation

 1. Lade die ZIP-Datei über Plugins > Installieren > Plugin hochladen hoch.
 2. Aktiviere das Plugin.
 3. Öffne das neue Menü „Hafenstudios Ads“ und lege deinen ersten Anzeigenblock an.
 4. Optional: Anzeigen-Kennzeichnung, Consent-Cookie-Einstellungen und lokale Statistik
    konfigurieren.

Du wechselst von „AdEngine – Free Ad Inserter & Manager“? Installiere einfach dieses
Plugin — deine Anzeigenblöcke, Einstellungen und Statistiken werden beim ersten 
Laden automatisch übernommen.

## FAQ

### Funktioniert dieses Plugin mit AdSense?

Ja. Du kannst entweder originalen AdSense-Code als eigenen Code einfügen oder den
AdSense-Assistenten mit deiner Publisher-ID und Slot-ID nutzen. Das Plugin erzeugt
dann eine responsive Anzeigeneinheit und lädt das AdSense-Skript im Frontend, wenn
es gebraucht wird.

### Kann ich es manuell einsetzen?

Ja. Nutze den Shortcode `[adjet_ad id="1"]`, den Shortcode `[adjet_ad_group name
="header"]`, das mitgelieferte Widget oder den Gutenberg-Block.

### Ersetzt es ein Consent-Tool?

Nein. Das Plugin kann auf ein konfiguriertes Consent-Cookie warten, liefert aber
weder Rechtsberatung noch einen Cookie-Banner.

### Trackt dieses Plugin Nutzer extern?

Nein. Die optionale Statistik speichert anonyme, aggregierte Zählwerte lokal in 
deiner WordPress-Datenbank.

### Sendet die KI-Funktion Daten irgendwohin?

Nur wenn du sie nutzt. Die KI ist die eine bewusste Ausnahme von „keine externen
Aufrufe“: Sie läuft erst, wenn du deinen eigenen Anthropic-API-Key hinterlegt und
einen Button geklickt hast, ein Klick, eine Anfrage, nie automatisch. Je nach Button
enthält die Anfrage die Feldnamen der Vorlage, deinen Website-Namen samt Beschreibung,
deinen getippten Hinweis, das ausgewählte Anzeigenbild (Alt-Text-Vorschlag) oder
aggregierte Statistik-Summen (Statistik-Zusammenfassung). Besucherdaten, IP-Adressen,
E-Mail-Adressen oder Seiteninhalte werden nie gesendet, und dein Key wird verschlüsselt
gespeichert und verlässt deinen Server nie.

### Können Redakteure Anzeigen verwalten, ohne Administrator zu sein?

Ja. Aktiviere „Redakteurs-Zugriff“ in den Einstellungen, um der Redakteurs-Rolle
die Berechtigung `manage_adjet` zu geben. Administratoren haben immer Zugriff.

### Was passiert mit meinen Daten, wenn ich das Plugin deinstalliere?

Es wird nichts gelöscht, solange du es nicht verlangst. Die Einstellung „Beim Deinstallieren
alle Daten löschen“ ist standardmäßig aus. Entfernst du das Plugin, bleiben deine
Anzeigenblöcke, Einstellungen und die Statistik-Tabelle also erhalten, und eine 
spätere Neuinstallation greift sie wieder auf. Schalte die Einstellung vor dem Deinstallieren
ein, wenn Optionen, Statistik-Tabelle und die Berechtigung `manage_adjet` endgültig
verschwinden sollen.

### Gibt es eine REST-API?

Ja. Der Namensraum `adjet/v1` stellt Anzeigenblöcke (`/blocks`, CRUD), Statistik(`/
stats`) und Einstellungen (`/settings`) bereit. Die Authentifizierung läuft über
ein Anwendungspasswort; der Zugriff setzt die Berechtigung `manage_adjet` voraus.

## Rezensionen

![](https://secure.gravatar.com/avatar/12eb206f8b6eee390a264921c9e1c3a0312be1c3dab1976c97c8dea5a549d7a6?
s=60&d=retro&r=g)

### 󠀁[Muito bom!](https://wordpress.org/support/topic/muito-bom-2006/)󠁿

 [jotasilva](https://profiles.wordpress.org/jotasilva/) 18. August 2026

Descobri o plugin agora, estou achando excelente

![](https://secure.gravatar.com/avatar/6bba3442f737b8cf2cdab61d90bc2877ea5177391ca1b529d865477947aa85fd?
s=60&d=retro&r=g)

### 󠀁[Super tool](https://wordpress.org/support/topic/super-tool-85/)󠁿

 [kfschuppo](https://profiles.wordpress.org/kfschuppo/) 17. August 2026

Ein tolles tool

![](https://secure.gravatar.com/avatar/e8710c8b31ac5e463842065a3b11e3d2a2a00d37fe20db22e7b07644b8cdbb22?
s=60&d=retro&r=g)

### 󠀁[Great Stuff](https://wordpress.org/support/topic/great-stuff-464/)󠁿

 [marceliriecker](https://profiles.wordpress.org/marceliriecker/) 14. August 2026

Automatic A-B Splittesting caught my attention. Really helpful and great stuff.

![](https://secure.gravatar.com/avatar/248c06251cfbf3bfd0e23312a9cd9b5301827f3ee764c82d609173ff879f4188?
s=60&d=retro&r=g)

### 󠀁[Top PlugIns+kostengünstig+effizient-Ein Muss!](https://wordpress.org/support/topic/top-pluginskostengunstigeffizient-ein-muss/)󠁿

 [pintemuc](https://profiles.wordpress.org/pintemuc/) 14. August 2026

hervorragende effiziente und hilfreiche PlugIns. Selbst die Pro Version ist unfassbar
kostengünstig und wirklich super einfache und verständliche Handhabung. Kann ich
nur empfehlen. Mein spart Zeit und Geld und erhält direkt einen Mehrwert.

![](https://secure.gravatar.com/avatar/45fa9321a4607ec572da81465c67f4c663ef7690d3ced50abd4e248f522ebc49?
s=60&d=retro&r=g)

### 󠀁[Powerful free ad tool](https://wordpress.org/support/topic/powerful-free-ad-tool/)󠁿

 [rokrking](https://profiles.wordpress.org/rokrking/) 14. August 2026

An excellent experience using this plugin for my niche site. Setting up Adsense 
is too simple.

![](https://secure.gravatar.com/avatar/36bd255c7dd04fd1b37b20c995d716f330f4e96e36507259d5f54cbf897ac6f6?
s=60&d=retro&r=g)

### 󠀁[Nice 4 managing ads](https://wordpress.org/support/topic/nice-4-managing-ads/)󠁿

 [papkeconsulting](https://profiles.wordpress.org/papkeconsulting/) 13. August 2026

This Plugin ist Nice for managing ads in wordpress

 [ Alle 14 Rezensionen lesen ](https://wordpress.org/support/plugin/hafenstudios-ads/reviews/)

## Mitwirkende und Entwickler

„Hafenstudios Ads – Anzeigen-Manager, AdSense & Werbebanner“ ist Open-Source-Software.
Folgende Menschen haben an diesem Plugin mitgewirkt:

Mitwirkende

 *   [ hafenstudios ](https://profiles.wordpress.org/hafenstudios/)

„Hafenstudios Ads – Anzeigen-Manager, AdSense & Werbebanner“ wurde in 1 Sprache 
übersetzt. Danke an [die Übersetzer](https://translate.wordpress.org/projects/wp-plugins/hafenstudios-ads/contributors)
für ihre Mitwirkung.

[Übersetze „Hafenstudios Ads – Anzeigen-Manager, AdSense & Werbebanner“ in deine Sprache.](https://translate.wordpress.org/projects/wp-plugins/hafenstudios-ads)

### Interessiert an der Entwicklung?

[Durchstöbere den Code](https://plugins.trac.wordpress.org/browser/hafenstudios-ads/),
sieh dir das [SVN-Repository](https://plugins.svn.wordpress.org/hafenstudios-ads/)
an oder abonniere das [Entwicklungsprotokoll](https://plugins.trac.wordpress.org/log/hafenstudios-ads/)
per [RSS](https://plugins.trac.wordpress.org/log/hafenstudios-ads/?limit=100&mode=stop_on_copy&format=rss).

## Änderungsprotokoll

#### 2.6.0

 * New: Sonar, a tab of its own for the numbers Google Analytics never shows you.
   Three counters and one audit, all cookieless, all in your own database: the people
   who actually visited, the AI crawlers that read your pages, the visits AI assistants
   sent you, and an answer to the question whether your site tracks before visitors
   have decided.
 * Sonar counts people with a script of under 2 KB that runs after the page has 
   loaded, so pages served from a cache count too. Unique visitors come from a hash
   of address and browser with a salt that is thrown away at midnight, which means
   yesterday’s visitors can no longer be recognised, by us or by anyone else. The
   address itself is never written down, and visitors who block scripts are simply
   missing rather than estimated. The tab says so, next to every number.
 * New: AI crawler detection, server-side, for 44 agents from OpenAI, Anthropic,
   Perplexity, Google, Microsoft, Meta, Apple, ByteDance, Amazon, Common Crawl, 
   Mistral and others, grouped by vendor and by the pages they fetched. A visitor
   who is not a crawler causes no database work at all. Behind a page cache the 
   server only sees the requests that miss the cache, and the tab says that too.
 * New: AI referrals as a channel of their own. Visits arriving from ChatGPT, Perplexity,
   Claude, Copilot, Gemini and six more are counted per day and per landing page.
   In Google Analytics those sit somewhere between Pinterest and a forum link; here
   they have a name. No other referrer is stored.
 * New: the consent audit. On first-time visitors who have not decided yet, Sonar
   checks whether a full analytics or pixel request went out before they clicked
   your banner, and names the host it went to. Red means a full hit, yellow means
   a cookieless consent mode ping, green means nothing was sent. On many sites this
   is the first honest answer to a question everyone assumes they already know.
 * New: the dark figure. Enter the number of users Google Analytics reports for 
   the last seven days and Sonar puts its own count next to it, with the factor 
   between them. Below roughly 1,000 events per day Google models nothing, so everyone
   who declines or blocks is missing from that report without a trace. Without your
   input nothing is estimated.
 * Changed: consent decisions are now counted in the free edition as well, including
   decisions made at a banner from another plugin via the WP Consent API or an IAB
   TCF banner. Only the evaluation, the acceptance rate with its trend and the A/
   B test of banners, stays with Pro, so upgrading later starts with a history instead
   of an empty chart.
 * Fixed, and this one is on us: the link that asked for a review pointed at the
   review form with five stars already selected. The plugin directory considers 
   that misleading, and rightly so. Both places now link to the plain review page,
   and the link text no longer shows stars.
 * Changed: the book and course card no longer arrives with five stars filled in.
   A rating nobody gave does not belong in an ad; the field starts empty and offers
   one to five stars when you pick one.
 * Uninstalling removes Sonar’s two tables along with everything else.

#### 2.5.0

 * Behoben: Die Vorlagen sprechen jetzt die Sprache deiner Website. Der Schließen-
   Button, der Screenreader-Name des Consent-Banners und der E-Mail-Platzhalter 
   standen auf Deutsch im Markup, deshalb zeigte eine französische Website trotz
   sieben mitgelieferter Übersetzungen eine deutsche Beispieladresse in ihrem Anmeldeformular.
 * Neu: Overlays lassen sich per Tastatur bedienen. Escape schließt ein Popup- oder
   Exit-Overlay, der Fokus bleibt darin, solange es offen ist, und kehrt danach 
   dorthin zurück, wo er herkam. Beide werden als Dialog angekündigt. Der Consent-
   Banner ist bewusst ausgenommen: Eine Einwilligungs-Entscheidung darf nicht aus
   Versehen weggeklickt werden.
 * Neu: Klick-Schutz. Das Plugin deckelt, wie oft ein Browser deine Anzeigen anklicken
   kann: ab Werk höchstens 3 Klicks auf denselben Block und 10 insgesamt je Besucher
   und 24 Stunden, beides einstellbar. Über dem Limit wird der Klick entweder nicht
   mehr gezählt oder der Block bleibt für diesen Besucher weg, deine Entscheidung.
   Die Statistik zeigt, wie viele Klicks der Schutz nicht gezählt hat, damit es 
   nie nach einem Zählfehler aussieht.
 * Über deine Besucher wird dafür nichts gespeichert: keine IP-Adresse, weder im
   Klartext noch anders, nur ein gekürzter und gesalzener Hash, höchstens 24 Stunden
   lang, in deiner eigenen Installation. Es geht nichts nach außen, es wird keine
   Liste bekannter Bots von außen geholt, und die Entscheidung fällt beim Zählen
   des Klicks, Page-Caches bekommen davon also nichts mit. Beim Deinstallieren gehen
   diese Daten ohnehin mit.
 * Behoben: Zwei ältere Statistik-Helfer haben Besucheradressen ohne Salt gehasht.
   Sie nutzen jetzt denselben gesalzenen, gekürzten Hash wie alles andere.
 * Die freie Fassung zeigt den internen Arbeitsnamen nirgends mehr in der Oberfläche.
 * Neu: ein Schalter „Keine automatischen Anzeigen auf diesem Beitrag“ direkt im
   Editor, in der Seitenleiste oder als Metabox. Er nimmt nur die automatischen 
   Platzierungen weg: Shortcode, Widget und Block bleiben, weil die jemand mit Absicht
   gesetzt hat.
 * Neu: Mit WooCommerce kannst du jetzt Produktseiten und die Shop-Seite direkt 
   ansteuern. Warenkorb und Kasse bleiben werbefrei, bis du sie selbst anhakst, 
   auch bei Blöcken, die sonst überall laufen.
 * Neu: zwei Schalter unter „Erweitert“ für jede Anzeige mit Link. „Als Werbung 
   kennzeichnen“ (rel=“sponsored nofollow“) ist standardmäßig an, weil Google das
   für bezahlte Links verlangt, und „In neuem Tab öffnen“ ergänzt immer rel=“noopener“.
 * Neu: Für einen leeren AdSense-Slot kann jetzt eine ganze Rotationsgruppe einspringen,
   nicht nur eine einzelne Anzeige. Der Browser wählt die Variante, gezählt wird
   genau eine.
 * Neu: Je Anzeige wählst du, was passiert, wenn ein Adblocker sie verhindert: still
   einen anderen Block zeigen statt gar nichts. Keine Aufforderung, den Adblocker
   abzuschalten, und die Voreinstellung bleibt „Nichts zeigen“.
 * Neu: Die Anzeigenliste ist sortierbar. Klick auf Name, Status, Platzierung, Impressionen,
   Klicks oder Klickrate, um die Tabelle zu ordnen, und noch einmal, um die Richtung
   zu drehen. Ausgangspunkt sind immer die Impressionen absteigend, und die Auswahl
   wird nie gemerkt. Namen mit Umlaut oder Akzent stehen dort, wo du sie suchst.
 * Ersatzanzeigen folgen denselben Regeln wie jede andere Anzeige: Zeitsteuerung,
   Geräteauswahl und „Nur eingeloggte Nutzer“ gelten auch für sie, eine abgelaufene
   Kampagne läuft also nicht länger als Ersatz weiter. Ein Skript in einer Ersatzanzeige
   läuft nach dem Tausch wirklich.
 * Verbessert: Bei Platzierungen im Inhalt bietet der Editor nur noch die Seitentypen
   an, die dort überhaupt greifen. Keine Checkboxen mehr, die nichts bewirken.
 * Verbessert: Die Diagnose-Ansicht (?adjet_debug=1) erklärt jetzt auch die neuen
   Fälle: den Schalter je Beitrag, Warenkorb und Kasse, und warum kein Ersatz gezeigt
   werden konnte.
 * Verbessert: Consent-Banner bleiben aus dem Anzeigen-Ranking heraus, und die Skala
   für den Datenfortschritt im Split-Test sagt „Datenhürde erreicht“ statt „442 
   der 100 Impressionen, die sie braucht“.
 * Hinweis: Bestehende Anzeigen behalten ihren Anzeigencode unverändert, die beiden
   Link-Schalter greifen also, sobald du die Anzeige speicherst. Der Assistent sagt
   das, sobald du ihn öffnest.
 * Neu: fremde Skripte wie Tracking-Pixel zurückhalten, bis deine Besucher eingewilligt
   haben. Jede Regel schreibst du selbst, jede startet im Probelauf und protokolliert
   zunächst nur, was sie blockieren würde. Scharf schaltest du jede Regel einzeln.
   Skripte deiner eigenen Domain und WordPress-Kernskripte bleiben ausgenommen, 
   und eine Notbremse gibt alles wieder frei.
 * Neu: eine Consent-Ampel auf dem Dashboard. Sie sagt dir, wenn Anzeigen ohne Banner
   laufen oder wenn es zwar einen Banner gibt, aber Consent Mode v2 fehlt, und ein
   Button daneben legt den Banner aus der Vorlage an.
 * Neu: Einwilligungs-Quellen. Das Plugin kann Entscheidungen mit der WP Consent
   API austauschen und die Signale eines IAB-TCF-2.x-Banners übernehmen, damit ein
   Banner, den du ohnehin betreibst, wie der eingebaute zählt.
 * Neu für fortgeschrittene Einrichtungen, standardmäßig aus: „Google-Tags vorladen“(
   Advanced Consent Mode). Der Schalter geht nur zusammen mit einer ausdrücklichen
   Bestätigung an und trägt einen klaren Hinweis auf § 25 TDDDG. Nur reine Google-
   Tags laden früher; jedes andere einwilligungspflichtige Skript wartet weiter.
 * Consent-Banner: Der Ablehnen-Button ist jetzt genauso prominent wie der Zustimmen-
   Button, gleiche Größe, gleiches Gewicht, nur die Farbe unterscheidet sich. Bereits
   gespeicherte Banner werden ebenfalls korrigiert.
 * Consent-Banner: optionale Einblend-Animation (bei reduzierter Bewegung automatisch
   aus), vier mitgelieferte Cookie-Bilder und vier Textvorschläge von knapp bis 
   elegant.
 * Das Skript für den Consent-Grundzustand kann von Optimierungs-Plugins nicht mehr
   hinter deine Tracking-Tags geschoben werden, und eine neue Prüfung meldet es,
   wenn trotzdem ein anderes Snippet zuerst lädt.
 * Ohne JavaScript verschwindet der Consent-Banner jetzt, statt unbedienbar stehen
   zu bleiben.
 * Overlays: Die Einstellung zur Frequenz (einmal pro Sitzung, einmal pro Tag) gehört
   jetzt zur freien Fassung.
 * Blöcke mit einem gespeicherten Pro-Auslöser scheitern nicht mehr stillschweigend:
   Die Blockliste und der Editor sagen jetzt, dass stattdessen der Standard-Auslöser
   der Vorlage gilt.
 * Das Kurzdatum in der Statistik richtet sich jetzt nach der Sprache deiner Website;
   vorher stand dort immer das deutsche Format.

#### 2.4.1

 * Aufgeräumte Plugin-Seiten: Werbe- und Hinweisbanner anderer Plugins (etwa von
   Sicherheits- oder Shop-Plugins) erscheinen nicht mehr mitten in den Verwaltungsseiten
   des Plugins, weder über dem Formular noch in den Einstellungen oder auf der Split-
   Test-Seite. Die eigenen Meldungen des Plugins wie „Gespeichert“ bleiben natürlich
   sichtbar. Alle anderen WordPress-Verwaltungsseiten bleiben unangetastet.
 * URL-Felder im Assistenten und in den Einstellungen akzeptieren jetzt relative
   Pfade (z. B. /privacy/) und „#“. Vorher hat der Browser das Speichern stillschweigend
   blockiert, sogar beim eigenen Standardwert der Consent-Vorlage. Blockiert ein
   ungültiges Feld doch einmal das Absenden, erscheint jetzt ein roter Hinweis direkt
   unter dem Feld und die Seite scrollt dorthin. Die Aktiv-Checkbox des Cookie-Consent-
   Banners heißt jetzt „Banner aktiv schalten“ statt „Anzeige sofort ausspielen (
   aktiv)“.
 * Vorlagen-Galerie: Die 38 Vorlagen-Karten lassen sich jetzt filtern. Eine Chip-
   Leiste mit allen Kategorien (dynamisch aus dem Katalog gesammelt, „Alle“ vorausgewählt),
   eine Live-Suche über Name und Beschreibung sowie ein Chip „Nur Free“. Alle Filter
   lassen sich kombinieren, laufen vollständig im Browser und sind barrierefrei (
   die Chips sind echte Buttons mit aria-pressed); ohne Treffer erscheint ein freundlicher
   Hinweis statt einer leeren Wand.
 * Aufgeräumt: Das Anzeigen-CSS (rund 3 KB) lädt nur noch, wenn deine Installation
   überhaupt etwas ausspielen kann. Seiten einer Installation ohne einen einzigen
   aktiven Block, ohne Auto Ads und außerhalb der Diagnose-Ansicht überspringen 
   es vollständig. Schneller: Lädt AdSense ohne Consent-Gate, verbindet sich der
   Browser jetzt vorab mit Googles Anzeigenserver (preconnect + dns-prefetch), damit
   Anzeigen früher erscheinen; hinter einem Consent-Banner bleibt der frühe Google-
   Kontakt bewusst aus. Schlanker: Interne Verwaltungsoptionen reisen nicht mehr
   bei jedem Seitenaufruf mit (autoload aus, mit einer automatischen einmaligen 
   Migration für bestehende Installationen). In Pro zusätzlich: Die Empfehlungskarte
   und die Produktbox blenden leere Bildplatzhalter jetzt genauso aus wie die anderen
   Vorlagen.

#### 2.4.0

 * Sechs neue Vorlagen, alle kostenlos: eine Testimonial-Anzeige, eine In-Feed-Native-
   Karte für Beitragslisten, eine Buch-/Kurs-Karte mit Sternebewertung und Preisnotiz,
   ein Saison-Deal-Banner (Black Friday, Weihnachten, Ostern, Sommer) mit Gutscheincode
   zum Kopieren und optionalem Countdown, eine Event-Ankündigung, die sich nach 
   dem Start selbst ausblendet, und eine Sponsoren-Logowand. Alle nutzen die Assistenten-
   Felder, die Mediathek-Auswahl und das Datumsfeld; leere optionale Bilder, Codes
   und Timer werden automatisch ausgeblendet.
 * Neu: ads.txt. Trag deine ads.txt-Zeilen in die Einstellungen ein, dann liefert
   das Plugin sie unter /ads.txt aus (eine echte Datei im Web-Root gewinnt immer).
   Ein Vorschlag für die Zeile wird aus deiner AdSense-Publisher-ID gebaut. AdSense
   warnt in deinem Konto, wenn die ads.txt fehlt; jetzt ist sie ein Textfeld.
 * Neu: Platz reservieren gegen Layout-Sprünge. Jeder Block kann eine Mindesthöhe
   reservieren, bevor die Anzeige lädt, und der AdSense-Assistent schlägt die üblichen
   Höhen je Format vor. Lazy Loading kostet dich damit keine Core Web Vitals mehr.
 * Neu: Anzeigen ohne Einwilligung, deine Entscheidung. Eine AdSense-Einstellung
   liefert nicht-personalisierte Anzeigen aus, solange die Einwilligung fehlt oder
   abgelehnt wurde (Googles NPA-Flag, Consent Mode v2 bleibt, wie er ist). Standardmäßig
   aus; der Text der Einstellung sagt, was das in der EU bedeutet.
 * Neu: Ersatz für leere AdSense-Slots. Wähle einen anderen Block, der erscheint,
   wenn Google den Slot nicht füllt; der Tausch passiert im Browser, sobald AdSense
   das meldet.
 * Neu: Anzeigen-Skripte bei der ersten Interaktion laden (Scrollen, Tippen, Tastendruck,
   spätestens nach 5 Sekunden). Standardmäßig aus.
 * Neu: Seitentyp-Targeting für Overlays, manuelle Platzierungen und In-Feed-Anzeigen:
   Startseite, Blog-Übersicht, Archive, Suche, 404, Autorenseiten. Leer heißt wie
   bisher überall.
 * Neu: Sichtbarkeit nach Login-Status und Rolle. „Alle“, „Nur ausgeloggte Besucher“
   oder „Nur eingeloggte Nutzer“, dazu eine Liste von Rollen, für die der Block 
   ausgeblendet wird. Der alte Schalter „nur ausgeloggt“ wird übernommen.
 * Neu: drei Positionen im Inhalt, in der Mitte des Inhalts, vor dem letzten Absatz
   und nach Überschrift N.
 * Neu: Option „Mitlaufend“ für manuelle Platzierungen (Widget, Shortcode, Block):
   Die Anzeige behält ihre Position, während der Besucher scrollt, mit einstellbarem
   Abstand nach oben.
 * Neu: „Warum erscheint die Anzeige hier nicht?“ Ruf als eingeloggter Nutzer eine
   beliebige Seite deiner Website mit ?adjet_debug=1 auf: Überall, wo ein Block 
   nicht erscheint, siehst du (und nur du) einen Hinweis mit dem ersten Grund: Beitragstyp,
   Seitentyp, Zeitsteuerung, Wortzahl, Consent, Gerät und so weiter. Nichts davon
   erreicht Besucher oder Page-Caches.
 * Neu: Statistik-Export als CSV (semikolongetrennt, Excel-freundlich) für den gewählten
   Zeitraum.
 * Neu: Import aus Ad Inserter und Advanced Ads auf der Seite „Import / Export“.
   Blöcke, Namen und Platzierungen werden übernommen; Regeln ohne Entsprechung werden
   nach dem Import aufgelistet; alles kommt pausiert an; ein zweiter Import legt
   keine Duplikate an.

#### 2.3.2

 * Neu: Bilder aus der Mediathek wählen. Das Bildfeld der Vorlage „Bild-Banner“ 
   bekommt einen Button „Aus der Mediathek wählen“ mit Vorschaubild und Entfernen-
   Link; das URL-Feld bleibt für externe Bilder, und der Alt-Text aus der Mediathek
   füllt das Alt-Feld, solange es leer ist. Angeregt durch das Video-Review von 
   WordPress 103.
 * Neu: echte Datumsfelder. Das Zieldatum des Countdowns ist jetzt ein Datums- und
   Zeitfeld statt eines Textfelds mit Formathinweis, und die Zeitsteuerung (Start
   und Ende) gibt es jetzt auch im Vorlagen-Assistenten unter „Erweitert“, samt 
   ausgeschriebener Zeitzone der Website; das Ende lässt sich nicht mehr vor den
   Start legen. Gespeicherte Werte behalten ihr Format, bestehende Anzeigen bleiben
   unberührt.
 * Neu: mehr Gestaltung, ohne die Vorlage zu verlassen. Unter „Erweitert“ liegen
   im Assistenten jetzt Ausrichtung, maximale Breite, Abstand und ein optionales
   Feld „Eigenes CSS“, dessen Selektoren automatisch auf genau diesen einen Block
   begrenzt werden, Media Queries eingeschlossen, damit sich sonst nichts auf der
   Website ändert. Dieselben Felder gibt es im vollen Editor.
 * Geändert: der Weg von einer Vorlage zu deinem eigenen HTML. Der alte Link „HTML
   selbst bearbeiten“ hat die Vorlage samt ihren Feldern endgültig verworfen. Jetzt
   ist es eine sichtbare Karte, die eine Kopie der Anzeige im HTML-Editor öffnet(
   bei AdSense im Experten-Editor); die Vorlagen-Anzeige bleibt genau so, wie sie
   ist, und die Kopie startet pausiert. Der Kopfbereich des Assistenten sagt das
   vorab.
 * Geändert: Die Ausrichtung „Links“ und „Rechts“ schiebt jetzt auch das zentrierte
   Wurzelelement einer Vorlage auf diese Seite; vorher hat sie nur die Textausrichtung
   darin verändert.
 * Behoben: Das Abzeichen „Empfohlen“ auf der Karte des AdSense-Assistenten steckte
   als deutsches Wort fest im Stylesheet und erschien deshalb auf jeder Website 
   auf Deutsch. Es ist jetzt übersetzbares Markup und in allen sieben mitgelieferten
   Sprachen übersetzt.
 * Aufräumen: Das Changelog war über die 5.000 Wörter hinausgewachsen, die WordPress.
   org anzeigt. Einträge bis 2.1.1 sind in die changelog.txt im Plugin-Ordner umgezogen.

#### 2.3.1

 * Behoben: Der Cookie-Consent-Banner blitzte bei jedem Seitenaufruf auf, auch bei
   Besuchern, die längst entschieden hatten. Das Banner-Markup geht absichtlich 
   mit jeder Seite raus (ein Page-Cache liefert allen dasselbe HTML, der Server 
   kann das Cookie also nicht kennen), und frontend.js entfernt es im Browser. Der
   Ausgangszustand war allerdings verkehrt herum: Das Banner trägt ein inline gesetztes
   display:flex und steht weit vor dem Skript, das es wegnimmt (auf einem Live-Shop
   gemessen: Banner bei 69 % des Dokuments, frontend.js bei 94 %, ohne defer, dazwischen
   rund 100 KB HTML und mehrere Hundert KB Skripte). Hafenstudios Ads schreibt jetzt
   ganz oben im Head ein winziges Inline-Snippet, das das Banner sofort ausblendet,
   wenn bereits eine Entscheidung gespeichert ist. Das Banner selbst bleibt bewusst
   standardmäßig sichtbar: Es in der Vorlage zu verstecken und per Skript einzublenden,
   sähe kürzer aus, aber frontend.js liegt unter plugins/hafenstudios-ads/, und 
   Werbeblocker sperren diesen Pfad zuverlässig. Das Banner würde also ausgerechnet
   den Besuchern nie erscheinen, denen Datenschutz am wichtigsten ist, und sie hätten
   überhaupt keine Möglichkeit einzuwilligen.
 * Behoben: Das Aufblitzen traf auch Installationen, die die Consent-Vorlage gar
   nicht nutzen. Ein Banner kann genauso gut als reiner HTML-Block laufen: einmal
   aus der Vorlage kopiert, seitdem von Hand gepflegt, oder in mehreren Fassungen,
   die im Split-Test gegeneinander laufen. Hafenstudios Ads erkennt Banner-Markup
   jetzt auch im Block-Code, deshalb bekommen diese Installationen die Korrektur
   ebenfalls.

#### 2.3.0

 * Behoben, und das hier verändert deine Zahlen: Für Overlays, die niemand gesehen
   hat, werden keine Impressionen mehr gebucht. Die Sichtbarkeitsprüfung fiel bisher
   auf den unsichtbaren Wrapper des Blocks mit Höhe null zurück, sobald Overlay-
   Code mit einem style-Tag beginnt. In 2.1.x buchte das Tausende Impressionen für
   Popups, die sich nie geöffnet haben; seit 2.2.0 buchte es gar keine mehr, auch
   bei geöffneten Popups, weshalb Overlay-Blöcke mehr Klicks als Impressionen zeigen
   konnten. Der Observer findet jetzt das fixierte Overlay-Element selbst und zählt
   nie ein Ziel ohne sichtbare Fläche. Rechne damit, dass die Impressionszahlen 
   von Overlays dort sinken, wo es Phantomzahlen waren, und dort zurückkommen, wo
   sie verschwunden waren; ab jetzt bedeuten sie „das Overlay war tatsächlich auf
   dem Bildschirm“.
 * Behoben: Ein Klick in das E-Mail-Feld eines Opt-in-Formulars, das Korrigieren
   eines Tippfehlers oder das Schließen eines Popups zählt nicht mehr als Anzeigen-
   Klick. Es zählen nur Links, Buttons und Absende-Elemente, und höchstens ein Klick
   je Block und Seitenaufruf. Opt-in-Blöcke kamen auf diesem Weg auf eine „Klickrate“
   über 100 Prozent; rechne mit sinkenden Klickzahlen und einer Quote, die etwas
   aussagt.
 * Behoben: Ein Split-Test weiß jetzt, wann er begonnen hat. Jede Rotationsgruppe
   bekommt an dem Tag ein Startdatum, an dem sie entsteht, und die Split-Test-Seite
   zählt ab diesem Tag, nie früher. Zahlen, die ein Block gesammelt hat, bevor er
   zur Variante wurde, verzerren den Vergleich damit nicht mehr. Bereits bestehende
   Tests bekommen beim ersten Öffnen der Seite das heutige Datum, und die Seite 
   nennt das Datum, ab dem sie zählt.
 * Sicherheitsnetz für Rotationsgruppen: Eine unentschiedene Gruppe kann auf keinem
   Weg mehr eine Impression buchen; es zählt nur die Variante, die der Browser gewählt
   hat.
 * Neu auf der Split-Test-Seite: eine Skala für den Datenfortschritt. Die Nadel 
   zeigt, wie viele Daten der Test gesammelt hat, gemessen an der schwächsten laufenden
   Variante gegen die Schwelle von 100 Impressionen. Die Konfidenzzonen bleiben 
   ausgegraut und verschlossen; ob der Vorsprung belastbar ist, rechnet Hafenstudios
   Ads Pro aus, und die freie Fassung weigert sich weiterhin, eine Signifikanz zu
   behaupten, die sie nicht prüfen kann.
 * Geändert: Consent-Banner sind aus der Anzeigen-Statistik in einen eigenen Bereich„
   System“ auf der Anzeigenliste und der Statistik-Seite umgezogen, mit den Spalten„
   Entscheidungen“ und „Entscheidungsquote“. Ein Banner wird beantwortet, nicht 
   geklickt: Seine „Klickrate“ von 27 Prozent war eine Zustimmungsquote mit falschem
   Etikett, und als einziger seitenweiter Block beherrschte er jede Summe. Die Wochenübersicht
   und der Top-Block zählen jetzt nur noch echte Anzeigen. Die freie Fassung zählt
   Zustimmen und Ablehnen als dieselbe Entscheidung; die tatsächliche Zustimmungsquote
   bleibt Teil der Consent-Statistik von Pro.
 * Neu: eine ehrliche Warnung bei Overlay-Blöcken, die nie erscheinen können. Eigener
   Overlay-Code, der versteckt startet und keinen der freien Trigger trägt, lief
   bisher wochenlang unsichtbar, ohne ein Wort. Die Blockliste und der Editor sagen
   es jetzt, samt den beiden Attributen (data-adjet-popup, data-adjet-exit), die
   das beheben. Popup- und Exit-Vorlagen behalten ihr Trigger-Attribut am Wurzelelement,
   auch über „HTML selbst bearbeiten“.
 * Neu: eine Frequenzgrenze für Overlays, im Browser des Besuchers pro Tag gemerkt.
   Ein Popup oder Exit-Overlay erscheint höchstens einmal am Tag, und ein geschlossenes
   Overlay, Leisten eingeschlossen, bleibt den Rest des Tages weg. Der Schließen-
   Button funktioniert jetzt auch in Overlays aus eigenem Code.
 * Neu: zwei Karten im Momente-System. Wenn zwei oder mehr aktive Blöcke dieselbe
   Platzierung ohne Rotationsgruppe belegen, lässt ein Klick sie gegeneinander antreten,
   und mehr braucht es für einen Split-Test nicht. Und wenn der ausgewertete Test
   genug Daten gesammelt hat, nennt eine Karte die führende Variante, den Abstand
   und das, was der Pro-Autopilot jetzt tun würde.
 * Behoben für Google Consent Mode v2: Solange der eingebaute Consent-Banner aktiv
   ist, wird der Consent-Grundzustand (denied) jetzt früh im Head ausgegeben, vor
   jedem gtag.js, und eine bereits gespeicherte Entscheidung wird bei jedem Seitenaufruf
   wieder eingespielt. Bisher war das einzige Signal das Update, das die Buttons
   des Banners auslösen: GA4 lief ab dem Seitenaufruf ungebremst, Googles Tag Assistant
   meldete das Update als vor dem Grundzustand eingetroffen, und die Entscheidung
   eines Besuchers hielt genau einen Seitenaufruf.
 * Brevo-Anmeldungen können jetzt Brevos echtes Double-Opt-in nutzen: Hinterlege
   in den Einstellungen die ID einer Brevo-Double-Opt-in-Vorlage samt Weiterleitungs-
   URL, dann laufen Anmeldungen über Brevos DOI-Ablauf, Bestätigungsmail inklusive.
   Ohne diese Felder wird der Kontakt direkt angelegt, genau wie bisher, aber das
   Formular antwortet jetzt „Du bist eingetragen.“ statt eine Bestätigungsmail zu
   versprechen, die es nie gab. Beide Wege behalten die Regel aus 2.2.0, dass die
   Antwort nie verrät, ob eine Adresse schon auf deiner Liste steht.

#### 2.2.0

 * Neu: eine Seite „Split-Tests“, die eine deiner Rotationsgruppen als A/B-Test 
   liest. Anzeigenblöcke mit gleichem Gruppennamen rotieren und zählen schon länger
   je Block, aber nirgends konntest du die Varianten nebeneinander sehen. Die Seite
   listet jede Variante der Gruppe mit Status, Gewichtung, Impressionen, Klicks 
   und Klickrate und markiert die Variante, die vorn liegt. Es wird nichts Neues
   gemessen, nichts irgendwohin gesendet, und kein API-Key irgendeiner Art ist im
   Spiel.
 * „Führt gerade“ erscheint erst, wenn zwei laufende Varianten im gewählten Zeitraum
   je mindestens 100 Impressionen haben und ihre Quoten sich tatsächlich unterscheiden.
   Eine Variante über der Schwelle, während die andere drei Impressionen hat, nennt
   niemanden, und ein Gleichstand ebenso wenig. Die Größe des Vorsprungs steht in
   Prozentpunkten darunter, weil ein Vorsprung von einem einzigen Klick sonst genauso
   aussieht wie einer von fünf Punkten. Ob dieser Vorsprung hält, ist eine Frage
   der Signifikanz, und die beantwortet Pro, zusammen mit dem Uplift, der Gewinnerübernahme
   mit einem Klick und einem KI-Vorschlag für die nächste Variante.
 * Eine Gruppe gilt als Test, wenn ihre Blöcke denselben Gruppennamen UND dieselbe
   Platzierung haben. So funktioniert die Rotation: In automatischen Platzierungen
   wechseln sich nur Blöcke mit derselben Platzierung ab, alles andere erscheint
   gleichzeitig auf der Seite. Zwei Blöcke einer Gruppe in verschiedenen Platzierungen
   konkurrieren deshalb nicht, und sie als Varianten nebeneinanderzustellen würde
   Positionen vergleichen statt Varianten. Der Shortcode `[adjet_ad_group name="
   header"]` ist davon nicht betroffen, er rotiert die ganze Gruppe, und diese Blöcke
   tragen alle die Platzierung „manuell“.
 * Du kannst wie immer so viele Rotationsgruppen betreiben, wie du willst. Eine 
   davon wird auf der Seite ausgewertet, und du wählst sie mit einem einzigen Klick.
   Ohne Auswahl ist es der Test, den du zuerst angelegt hast, und der kann dir beim
   Umbenennen einer Gruppe nicht unter den Füßen wegrutschen.
 * Rotationsgruppen, die einen Cookie-Banner enthalten, werden gezeigt, aber nicht
   bewertet: Die Buttons des Banners setzen ein Cookie, statt als Klick zu zählen,
   seine Klickrate würde einen völlig guten Banner also zum Verlierer erklären. 
   Die Seite sagt das, statt so zu tun, als wäre es anders.
 * Pausierte Varianten bleiben mit ihren Zahlen in der Gruppe, eine Pause löscht
   also nicht den halben Test aus der Ansicht. Die Markierung „Führt gerade“ bekommen
   sie aber nicht: Eine Variante, die nicht ausgeliefert wird, läuft gegen nichts
   an, und ihre Zahlen stehen still, während die anderen weiterzählen.
 * Geändert, bitte lies das hier: Eine Adresse, die schon auf deiner Newsletter-
   Liste steht, bekommt jetzt genau dieselbe Bestätigung wie eine ganz neue. Bisher
   gab das Formular die Antwort deines Newsletter-Anbieters Wort für Wort aus, und
   diese Antwort sagt laut, ob eine Adresse bereits Mitglied ist. Jeder hätte nacheinander
   Adressen in dein Formular tippen und ablesen können, wer auf deiner Liste steht.
   Das Formular unterscheidet die beiden Fälle jetzt gar nicht mehr, und mehr verrät
   ein Anbieter mit Double-Opt-in nach außen auch nicht. Was dich das kostet: Wer
   sich vertippt und dabei die Adresse einer anderen Person trifft, liest weiterhin„
   bitte bestätige deine Anmeldung“. Die Meldung bedeutet jetzt „wir haben das an
   deinen Anbieter übergeben“, nicht „diese Adresse ist neu“.
 * Behoben: Das Anmeldeformular zeigt kein einziges Wort mehr, das dein Newsletter-
   Anbieter geschrieben hat. Was SendFox, MailerLite, Brevo, Mailchimp oder Kit 
   antwortet, bleibt auf deinem Server. Besucher lesen deinen eigenen Satz in der
   Sprache deiner Website statt einer englischen Entwicklermeldung wie „is already
   a list member. Use PUT to insert or update list members.“
 * Behoben: Verbindungsprobleme stellen Besuchern keine technischen Details mehr
   vor die Nase. Eine fehlgeschlagene Abfrage zeigte bisher den cURL-Fehler und 
   den Hostnamen deines Anbieters im Formular.
 * Geändert: Dieselbe neutrale Antwort deckt jede Ablehnung ab, die dein Anbieter
   zu einer Einsendung zurückmeldet, nicht nur die zwei Statuscodes, die Mailchimp
   zufällig für eine Dublette nutzt. Eine Regel, die allein 400 und 422 neutralisiert,
   reißt dieselbe Lücke an dem Tag wieder auf, an dem ein Anbieter „already a member“
   mit 409 beantwortet. Der bewusste Preis: Eine wirklich kaputte Einrichtung, etwa
   ein Pflicht-Merge-Feld, das dein Formular nicht mitschickt, oder eine beim Anbieter
   gelöschte Liste, sieht von vorn jetzt ebenfalls wie ein Erfolg aus. Deshalb landet
   jeder dieser Fälle im unten beschriebenen Protokoll und erscheint als Warnung
   in der Übersicht der Anzeigenblöcke. Drosselung durch deinen Anbieter (429), 
   ein Ausfall beim Anbieter und ein abgelehnter Token bleiben Fehler, weil keiner
   davon von der eingegebenen Adresse abhängt.
 * Behoben: Der Statuscode des Anmelde-Endpunkts sagt jetzt, was tatsächlich passiert
   ist. Alles, was der Anbieter zu einer Einsendung antwortet, ist eine normale 
   200. Es gibt drei Fehlerzustände, und sie bedeuten, was sie sagen: 503 der Anbieter
   hat geantwortet, kann gerade aber nicht zustellen, 502 die Anfrage hat den Anbieter
   überhaupt nicht erreicht, und 500 in deiner eigenen Einrichtung stimmt etwas 
   nicht (kein Token, keine Liste gewählt, Token abgelehnt), und das löst sich durch
   Warten nicht von selbst. Wenn du 502-Antworten überwachst: Sie werden fast verschwinden.
 * Neu: Die Übersicht der Anzeigenblöcke zeigt die letzte Anmeldung, die nicht durchgegangen
   ist, mit Datum, Anbieter, Statuscode und den eigenen Worten des Anbieters. Dorthin
   ist das Detail gewandert, das Besucher nicht mehr sehen, damit eine kaputte Verbindung
   nicht hinter einer freundlichen Bestätigung verborgen bleibt. E-Mail-Adressen
   sind in dieser Meldung maskiert. Der Fall der Dublette steht dort bewusst nicht:
   Er ist kein Fehler, sondern das Häufigste, was einem öffentlichen Formular passiert,
   und er würde den seltenen Konfigurationsfehler aus diesem einen Platz verdrängen.
 * Behoben: Bei Kit konnte eine bereits bekannte Adresse die Anmeldung auf halbem
   Weg beenden. Kit erfährt zuerst vom Kontakt und erst dann vom Formular, und erst
   dieser zweite Schritt verschickt die Bestätigungsmail. Eine bekannte Adresse 
   stoppte den ersten Schritt, der Besucher bekam also einen Fehler und keine Mail.
   Beide Schritte laufen jetzt, und ein echtes Problem im ersten Schritt landet 
   im Protokoll, statt zu verschwinden. Kits eigene Formulierung kommt dort ebenfalls
   an: Kit nennt seine Gründe in einem Feld, das das Plugin nicht gelesen hat, deshalb
   wurde bisher jedes Kit-Problem als nackter Statuscode protokolliert.
 * Behoben für Brevo: Eine Anmeldung mit einer Adresse, die Brevo schon kannte, 
   hat diese Person stillschweigend in die von dir eingestellte Liste eingetragen,
   auch jemanden, der sich aus genau dieser Liste abgemeldet hatte, und Brevo verschickt
   bei diesem Schritt keine Bestätigungsmail. Das Plugin aktualisiert bestehende
   Kontakte nicht mehr. Neue Kontakte werden wie bisher angelegt, und eine bekannte
   Adresse beantwortet Brevo mit einem Fehler, der gegenüber dem Besucher als Erfolg
   zählt, für ihn ändert sich also nichts.
 * Behoben: die Antwort auf den Honeypot. Eine Einsendung, die das versteckte Anti-
   Bot-Feld abgefangen hat, wurde mit einem leicht anderen Body beantwortet als 
   eine echte Anmeldung, dadurch ließ sich die Falle mit einer einzigen Anfrage 
   erkennen. Beide Antworten sind jetzt Byte für Byte identisch.
 * Behoben: Die drei Ersatztexte des Anmeldeformulars („Danke!“, „Da ist etwas schiefgelaufen.“,„
   Verbindung fehlgeschlagen. Bitte versuche es später erneut.“) steckten fest in
   der JavaScript-Datei und ließen sich nie übersetzen. Sie kommen jetzt vom Server
   und sind übersetzt wie jeder andere Text.

Ältere Einträge (2.1.1 und früher) stehen in der changelog.txt im Plugin-Ordner.

## Meta

 *  Version **2.6.0**
 *  Zuletzt aktualisiert **vor 3 Wochen**
 *  Aktive Installationen **100+**
 *  WordPress-Version ** 6.2 oder höher **
 *  Getestet bis **7.1.3**
 *  PHP-Version ** 7.4 oder höher **
 *  Sprachen
 * [English (US)](https://wordpress.org/plugins/hafenstudios-ads/) und [German](https://de.wordpress.org/plugins/hafenstudios-ads/).
 *  [Übersetze in deine Sprache](https://translate.wordpress.org/projects/wp-plugins/hafenstudios-ads)
 * Schlagwörter
 * [ad manager](https://de.wordpress.org/plugins/tags/ad-manager/)[ads](https://de.wordpress.org/plugins/tags/ads/)
   [adsense](https://de.wordpress.org/plugins/tags/adsense/)[advertising](https://de.wordpress.org/plugins/tags/advertising/)
   [banner ads](https://de.wordpress.org/plugins/tags/banner-ads/)
 *  [Erweiterte Ansicht](https://de.wordpress.org/plugins/hafenstudios-ads/advanced/)

## Bewertungen

 5 von 5 Sternen.

 *  [  14 5-Sterne-Rezensionen     ](https://wordpress.org/support/plugin/hafenstudios-ads/reviews/?filter=5)
 *  [  0 4-Sterne-Rezensionen     ](https://wordpress.org/support/plugin/hafenstudios-ads/reviews/?filter=4)
 *  [  0 3-Sterne-Rezensionen     ](https://wordpress.org/support/plugin/hafenstudios-ads/reviews/?filter=3)
 *  [  0 2-Sterne-Rezensionen     ](https://wordpress.org/support/plugin/hafenstudios-ads/reviews/?filter=2)
 *  [  0 1-Sterne-Rezensionen     ](https://wordpress.org/support/plugin/hafenstudios-ads/reviews/?filter=1)

[Deine Rezension](https://wordpress.org/support/plugin/hafenstudios-ads/reviews/#new-post)

[Alle Rezensionen anzeigen](https://wordpress.org/support/plugin/hafenstudios-ads/reviews/)

## Mitwirkende

 *   [ hafenstudios ](https://profiles.wordpress.org/hafenstudios/)

## Support

Möchtest du etwas mitteilen? Brauchst du Unterstützung?

 [Support-Forum anzeigen](https://wordpress.org/support/plugin/hafenstudios-ads/)