AdSense¶
Voraussetzung
Modul AdSense muss unter Theme → Module aktiv sein. Es ist standardmäßig aus. Zusätzlich braucht es Cookiebot — siehe den Kasten unter Verhalten.
Wozu¶
Google-Anzeigen im Inhalt oder im Template ausgeben, ohne die IDs in jede Seite zu schreiben. Jede Anzeigefläche wird einmal in den Theme-Optionen angelegt und danach über einen kurzen Namen aufgerufen.
Einstellungen¶
Unter Theme → Einstellungen → AdSense.

| Feld | Wofür |
|---|---|
| Client ID | die Kontonummer aus AdSense, beginnt mit ca-pub |
| Inhaltsblocker | ohne Wirkung, siehe unten |
Darunter steht die Liste Ads. Jeder Eintrag ist eine Anzeigefläche:
| Feld | Wofür |
|---|---|
| Shortcode ID | der Name, unter dem du die Fläche aufrufst; muss eindeutig sein |
| Slot ID | die Slot-ID derselben Fläche aus AdSense |
| Lazy Loading | ohne Wirkung, siehe unten |
Einträge lassen sich am Griff links umsortieren. Die Reihenfolge hat keine Wirkung, sie hilft nur beim Wiederfinden.
Zwei Felder tun nichts
Inhaltsblocker und Lazy Loading werden gespeichert, aber nicht gelesen. Die Freigabe lief früher über den gewählten Blocker; heute prüft das Modul fest die Cookiebot-Kategorie marketing. Was in der Auswahlliste steht, ändert daran nichts. Ebenso wertet weder PHP noch das Skript das Lazy-Loading-Häkchen aus — jede Anzeige wird gleich behandelt.
Die Felder stehen noch im Formular. Verlass dich nicht darauf, dass sie das
tun, was ihr Name sagt.
Anzeige einfügen¶
Als Shortcode, mit der Shortcode ID als id:
class landet am umgebenden Element und ist für Abstände gedacht.
Im Template über twtheme_ad('sidebar').
Verhalten¶
Der Shortcode gibt zunächst nur eine leere Hülle aus:
<div data-tw-adslot> mit Client- und Slot-ID als data-Attribute. Ein Skript im
Footer füllt sie — aber erst, wenn Cookiebot eine Einwilligung für die Kategorie
marketing meldet. Das prüft es zweimal: beim Laden der Seite und erneut, sobald
die Einwilligung gegeben wird. Dann erst wird das Skript von Google geholt und je
Fläche ein <ins class="adsbygoogle"> eingesetzt.
Ohne Cookiebot erscheint keine Anzeige
Das Footer-Skript fragt window.Cookiebot ab. Fehlt dieses Objekt, wird nie
gerendert — die Hülle bleibt leer, ohne Fehlermeldung und ohne Platzhalter.
Wer die Einwilligung über Complianz oder ein anderes Werkzeug regelt, bekommt
mit diesem Modul also gar keine Anzeigen. AdSense setzt hier faktisch das
Cookiebot-Modul und das zugehörige Plugin voraus, auch wenn die
Modulverwaltung diese Abhängigkeit nicht erzwingt.
Fehler erscheinen als Text im Frontend
Statt einer Anzeige gibt der Shortcode in vier Fällen einen englischen Satz zurück, der für Besucher sichtbar auf der Seite steht:
| Text | Ursache |
|---|---|
| `Shortcode ID is missing!` | `id` fehlt am Shortcode |
| `Client ID is missing!` | die *Client ID* ist nicht eingetragen |
| `Ad ID not found!` | keine Anzeigefläche mit dieser *Shortcode ID* |
| `Slot ID is missing!` | die Fläche hat keine *Slot ID* |
Nach dem Einschalten des Moduls gehört die Client ID also als Erstes gesetzt,
und nach dem Umbenennen einer Fläche die Aufrufe geprüft.
Entwicklertipps¶
| Funktion | Zweck | Rückgabe |
|---|---|---|
twtheme_ad($shortcode_id, $class = '', $args = []) |
Anzeige zur Shortcode-ID ausgeben | string |
Der dritte Parameter $args wird von der aktuellen Fassung nicht ausgewertet.
| Filter | Zweck |
|---|---|
twtheme_option_fields |
AdSense-Optionen in die Theme-Optionen einhängen |
twtheme_tinymce_shortcodes |
den Shortcode im Editor anbieten |
Weiter¶
- Einwilligung — die Blocker, aus denen die Auswahlliste stammt
- Shortcodes