Blog
SignalHost für Drupal: Modul installieren, einmal verbinden, und serverseitiges Tracking läuft
Veröffentlicht · 6 Min. Lesezeit
Das SignalHost-Modul bringt serverseitigen Google Tag Manager auf eine Drupal-Website, ohne dass du eine einzige Zeile Code einfügen musst. Es bindet den Tracking-Loader auf jeder Seite ein, die keine Verwaltungsseite ist, hält ihn aktuell, wenn sich auf unserer Seite etwas ändert, und entfernt ihn wieder, wenn du die Verbindung trennst. Diese Anleitung folgt der Reihenfolge, in der du ihm begegnest: das Modul installieren, einen Container verbinden, prüfen, ob es funktioniert, und was du tun kannst, wenn nicht.
Bevor du anfängst
- Drupal 10.3 oder 11 mit PHP 8.1 oder neuer und der Erweiterung sodium, die seit PHP 7.2 zum Lieferumfang gehört.
- Ein SignalHost-Konto. Zum Ausprobieren reicht der kostenlose Tarif: 10.000 Anfragen pro Monat und ein Container. Du kannst das Konto auch beim Verbinden anlegen.
- Ein Konto mit der Berechtigung Administer SignalHost Server-Side Tagging. Nur Benutzer mit dieser Berechtigung können die Website verbinden oder trennen.
1. Das Modul installieren
Installiere es wie jedes Contrib-Modul von seiner Projektseite auf drupal.org: Füge es mit Composer hinzu und aktiviere es dann.
composer require drupal/signalhost_server_side_tagging
drush en signalhost_server_side_taggingOhne Drush aktivierst du es unter Erweitern, wo es als SignalHost Server-Side Tagging in der Gruppe Statistics steht. Es gibt nichts aus, bis die Website verbunden ist.
2. Die Website mit einem Container verbinden
Öffne Konfiguration › Webdienste › SignalHost (/admin/config/services/signalhost) und klicke auf „Connect with SignalHost“. Hast du noch kein Konto, bringt dich „Create a free account“ stattdessen zur Registrierung. Bevor du auf „Connect with SignalHost“ klickst, wird nichts an SignalHost gesendet.
Melde dich auf signalhost.io an. Der nächste Bildschirm zeigt, was das Modul tun kann und was nicht, und fragt, welchen Container die Website verwenden soll. Ein Container ist dein eigener Tagging-Server: ein Web-Container und ein Server-Container in Tag Manager, angelegt in deinem eigenen Google-Konto, damit sie dir gehören.
Wähle einen vorhandenen Container oder klicke auf „Neuer Container für …“ mit der Adresse deiner Website und durchlaufe den kurzen Assistenten. Die Einrichtung eines neuen Containers dauert einige Minuten; du kannst sofort verbinden, und der Code wird eingebunden, sobald er bereit ist. Klicke auf „Verbinden“. Du landest wieder auf der SignalHost-Seite in Drupal mit der Meldung „Connected“. Der Code von SignalHost ist jetzt auf jeder Seite deiner Website eingebunden.
3. Prüfen, ob der Code auf deiner Website ist
Die Seite zeigt jetzt „Tracking is live“ oder, solange ein neuer Container noch eingerichtet wird, „Tracking starts as soon as your container is ready“. Lies dann die Zeile „On your home page“: Direkt nach dem Verbinden ruft das Modul deine Startseite so ab, wie ein Besucher es tun würde, und sucht nach seinem Code. „Code found“ ist die Antwort, die du sehen willst. „Check again“ wiederholt die Prüfung jederzeit, und die anderen Antworten findest du unter „Wenn etwas nicht funktioniert“.
4. Testen
Öffne deine Website in einem privaten Fenster und klicke dich durch ein paar Seiten; ein Besucher, der dein Cookie-Banner ablehnt, wird trotzdem gezählt, als cookieloser Ping von Google. Klicke dann auf „Open statistics & settings“, um deine Container-Seite auf signalhost.io zu öffnen.
Unter „Erweiterte Statistik“ zeigt der Tab „Aktuell“ die Seitenaufrufe der letzten 30 Minuten, deine eigenen eingeschlossen. „Prüfung starten“ unter „Fehlersuche“ unten auf der Seite vergleicht, was dein Tagging-Server empfangen hat, mit dem, was Google Analytics für dieselben 30 Minuten meldet. Weniger in Analytics ist normal: Analytics lässt Besucher weg, die Cookies abgelehnt haben. Ab dem Tarif Growth zeigt „Live-Ereignisse“ jedes Ereignis, sobald es eintrifft.
Was das Modul deiner Website hinzufügt
Ein kleines Skript und eine stündliche Rückmeldung:
- Den Loader von Google Tag Manager im Head-Bereich jeder Seite, die keine Verwaltungsseite ist, ausgerichtet auf deine eigene Tagging-Adresse statt auf googletagmanager.com. Er lädt deinen Tag-Manager-Container von dort. Das Modul baut ihn selbst aus zwei geprüften Werten; nichts, was SignalHost sendet, wird je als Skript ausgegeben. Diese Seiten tragen ein Cache-Tag, sodass der Seiten-Cache sich erneuert, sobald sich der Loader ändert, auch für Seiten, die vor dem Verbinden zwischengespeichert wurden.
- Einmal pro Stunde, nachdem eine Antwort gesendet wurde, meldet sich das Modul bei signalhost.io, um aktuell zu bleiben. Es sendet nur die Versionen des Moduls, von Drupal und PHP, die Adresse deiner Website und ob der Code auf deiner Startseite gefunden wurde: keine Besucherdaten, keine Inhalte, keine Benutzerkonten. Ist signalhost.io nicht erreichbar, behält die Website die letzte funktionierende Konfiguration. Nichts von dem, was das Modul speichert, wandert mit einem Konfigurationsexport mit.
Jede Anfrage verlässt den Browser in einer Form, die Werbeblocker nicht erkennen, und dein Tagging-Server leitet sie an Google Analytics 4 und an die Werbeplattformen weiter, die du auf der Container-Seite eingerichtet hast: Google Ads, Meta, TikTok und andere. Das Tracking folgt deinem Cookie-Banner über Google Consent Mode; setze den Code deines Banners vor den von SignalHost.
Das Modul liest keine Formulare und keine Bestellungen, auch nicht aus Drupal Commerce. Seitenaufrufe kommen von selbst an; ein Kauf oder ein Lead erreicht deinen Container, wenn deine Website ihn in den dataLayer schreibt.
Deine eigene Tracking-Domain
Dein Container startet mit einer Adresse unter signalhost.io. In einem kostenpflichtigen Tarif verlegt ihn „Eigene Domain einrichten“ auf der Container-Seite mit einem einzigen DNS-Eintrag bei deinem Anbieter auf eine Subdomain deiner eigenen Website, etwa sgtm.deine-website.de. Diese Adresse übersteht Filterlisten und hält Klick-Cookies First-Party. Sobald sie live ist, stellt das Modul deine Website bei seiner nächsten Rückmeldung um, meist innerhalb einer Stunde, und das Cache-Tag erneuert deine zwischengespeicherten Seiten. Du musst nichts von Hand ersetzen, und die alte Adresse funktioniert bis dahin weiter.
SignalHost von Hand einbinden
Du kannst den Code auch selbst einfügen. Suche auf der Container-Seite dein Snippet in der Karte „Auf deiner Website einbinden“ und klicke auf „Kopieren“. Füge es in den Head-Bereich jeder Seite ein (in Drupal über dein Theme), direkt nach dem Skript deines Cookie-Banners, und klicke auf „Snippet eingefügt“. „Für KI-Agenten kopieren“ übergibt dieselbe Aufgabe an einen Coding-Agenten.
Beim Einfügen von Hand verzichtest du auf das, was das Modul erledigt: Nichts prüft deine Startseite, nichts entfernt den Code, wenn du trennst, und wenn deine eigene Domain live geht, ersetzt du den Code selbst, aus „Aktualisiere das Snippet auf deiner Website“ in der Karte oder aus der E-Mail, die die Domain ankündigt. Nutze nie beide Wege: Zwei Kopien zählen jeden Besuch doppelt.
Updates, Verwaltung und Trennen
Updates kommen über Composer, und die Update-Statusanzeige von Drupal meldet neue Versionen, wie bei jedem Modul von drupal.org.
„Disconnect“ auf der SignalHost-Seite fragt einmal nach: „Disconnect this site from SignalHost?“ Bestätigst du, wird der Zugriff der Website widerrufen, der Code von jeder Seite entfernt und deine zwischengespeicherten Seiten werden erneuert. Dein Container und seine Statistiken bleiben erhalten, und du kannst jederzeit wieder verbinden.
Auf signalhost.io zeigt die Container-Seite „Vom Drupal-Modul auf … installiert“ mit deiner Website. Ihre Schaltfläche „Verwalten“ führt zu Einstellungen, Verbundene Websites, wo auch „Trennen“ funktioniert: Das Modul lädt SignalHost ab seiner nächsten Rückmeldung nicht mehr, meist innerhalb einer Stunde.
Das Deinstallieren des Moduls widerruft ebenfalls den Zugriff der Website und entfernt alles, was das Modul gespeichert hat.
Wenn etwas nicht funktioniert
- „Could not check (your server refused a request to itself)“: Dein Hoster blockiert Anfragen an die eigene Adresse. Über deine Besucher sagt das nichts aus; suche deine Tagging-Adresse im Quelltext deiner Startseite.
- „An older copy is on the page“ oder „The code is on the page twice“: Eine Kopie wurde von Hand in ein Theme, einen Block oder ein anderes Modul eingefügt. Entferne sie; das Modul bindet die aktuelle ein, und zwei Kopien zählen jeden Besuch doppelt.
- Ein Hinweis, dass deine Website bereits einen Tag-Manager-Container mit dem eigenen Snippet von Google lädt: Entferne dieses Snippet, denn SignalHost lädt den Container jetzt, und beide zusammen zählen jeden Besuch doppelt. Dasselbe gilt für das Modul Google Tag Manager (google_tag): Nutze das eine oder das andere, nicht beide.
- „This site's address has changed since it was connected“: Auf einer Kopie, etwa einer Staging-Umgebung, wird nichts gesendet. Ist die Live-Website umgezogen, trenne die Verbindung und verbinde neu.
- „Last update“ ist alt: Das Modul meldet sich nach Seitenaufrufen, nie über Cron. Auch das Öffnen der SignalHost-Seite löst eine Rückmeldung aus, und „Check again“ erzwingt eine.
- Alles andere: Schreib an hello@signalhost.io und nenne die Adresse deiner Website.
Marken
SignalHost ist ein unabhängiges Produkt der Algorithmo GmbH. Es steht in keiner Verbindung zum Drupal-Projekt, zu Google, Meta oder TikTok und wird von diesen nicht unterstützt. Google Analytics, Google Ads und Google Tag Manager sind Marken der Google LLC; Meta ist eine Marke der Meta Platforms, Inc.; TikTok ist eine Marke der ByteDance Ltd.; Drupal ist eine eingetragene Marke von Dries Buytaert.

