Terminbriefing für Tracking und Lead-Erfassung: Google Tag Manager als Tag-Layer, Usercentrics als Consent-Gate, GA4/Google Ads als Analytics-Ziele und Salesforce-Marketing-Cloud-Formulare als consent-pflichtige Lead-Embeds. Kritisch ist der Eventvertrag: nur erfolgreiche Lead-Übergaben zählen als Conversion, keine personenbezogenen Daten in Analytics-Payloads.
gtm ist aktiv, Container GTM-54B6BWQP steht in config/sync/gtm.settings.yml. Usercentrics-App Google Tag Manager ist aktiv und das Inline-GTM-Script wird durch solcom_seo als type="text/plain" mit data-usercentrics="Google Tag Manager" blockiert, bis Consent vorliegt.GTM-ND5SFNH plus client-seitige dataLayer-Events und serverseitige Universal-Analytics-Measurement-Protocol-Calls. Die Drupal-Container-ID weicht davon ab; im Termin muss bestätigt werden, ob der neue Container absichtlich neu ist oder ob ein Legacy-Container migriert werden muss.sdp_enabled: false. Das Projekt nutzt eigene Bridges für GTM und Salesforce statt blindes Auto-Blocking. GA4 ist als Usercentrics-App vorhanden, aber aktuell status: false; im Termin klären, ob GA4 separat oder über GTM consent-seitig geführt werden soll.byte_theme:salesforce-marketing-form rendert einen editor-gepflegten Salesforce-Snippet. Das gemeinsame Host-Script wird als deduplizierte Library geladen; Host- und Inline-Scripts werden für Salesforce Marketing Cloud consent-geblockt und nach Consent per salesforce-consent.js re-injiziert.| Thema | Aktuelle Einordnung | Frage für den Termin |
|---|---|---|
| GTM-Konfiguration | Container-ID ist gesetzt; Consent-Gate für den GTM-Loader existiert im Code. | Welche Tags, Trigger und Variablen sind im GTM-Container bereits final? Wer besitzt den Container und wer macht Preview/Publish? |
| dataLayer | Legacy-Neos hatte konkrete dataLayer-Events; Drupal hat noch keinen neuen verbindlichen Eventvertrag. |
Welche Legacy-Events müssen 1:1 zurückkommen: purchase, begin_checkout, view_item, Projektalert, Registrierung, Login, B2B-Anfrage, Karriere-Lead, Rückruf, Projektsuche? |
| Container-ID | Drupal: GTM-54B6BWQP; Legacy-Kontext: GTM-ND5SFNH. |
Ist der neue Container bereits final befüllt, oder müssen Tags/Trigger/Variablen aus dem Legacy-Container übertragen werden? |
| Formular-Conversions | Conversion darf erst nach erfolgreicher Annahme durch Zielsystem zählen, nicht beim Button-Klick. | Welches technische Signal bestätigt Erfolg pro Formular: Drupal Webform Submit, Salesforce Callback, sichtbare Thank-you-Page oder serverseitiger Status? |
| Salesforce-Formulare | Projekt-Ist ist Marketing-Cloud-Embed per SDC plus Usercentrics-Gating; Web-to-Lead wäre ein anderer Integrationspfad. | Meint der Termin Salesforce Marketing Cloud, Web-to-Lead, Minggo, Lead Xperience oder mehrere Kanäle? Pro Kanal braucht es eigenen Tracking- und Consent-Vertrag. |
| Datenschutz | Personenbezogene Daten dürfen nicht in GA4/GTM-Eventparameter wandern. Consent muss vor Marketing-/Analytics-Ausführung vorliegen. | Welche Consent-Service-Namen sind verbindlich in Usercentrics, und wer prüft nach Consent-Wechsel im Browser die reale Script-Ausführung? |
| Attribution | Legacy-Neos setzte 24h-Cookies für utm_time, utm_measurement, utm_ads, info und den verschlüsselten Ad-Click-ID-Cookie sol_act. |
Welche dieser Cookies braucht Drupal zum Launch wirklich, und wo werden gclid/msclkid nach erfolgreicher Conversion verarbeitet? |
Der dataLayer ist der Übergabekanal von Drupal/Frontend zu GTM:
Die Website pusht ein fachliches Ereignis mit Parametern, GTM liest diese
Werte als Variablen aus und feuert daraus Tags nach GA4, Google Ads oder
weitere Marketing-Ziele. Der wichtigste Schlüssel ist immer
event; ohne stabilen Eventnamen gibt es keinen belastbaren
GTM-Trigger.
| Event | Quelle | Auslöser / Bedeutung | Status |
|---|---|---|---|
Pageview |
Legacy-Neos | Automatischer Seitenaufruf im alten GTM-Setup. | prüfen |
Impression |
Legacy-Neos | Sichtbarkeit von Projekt-/Listen-Elementen. | prüfen |
productClick |
Legacy-Neos | Klick auf Projektdetail-Link oder Projektkarte. | prüfen |
addToCart |
Legacy-Neos | Legacy-E-Commerce-Semantik für Bewerbung/Projektaktion. | nicht blind kopieren |
checkout |
Legacy-Neos | Legacy-E-Commerce-Semantik für Bewerbungsprozess. | nicht blind kopieren |
transaction |
Legacy-Neos | Legacy-Abschluss mit transactionId. |
durch GA4 ersetzen |
purchase |
Legacy-Neos | Legacy-Conversion für Bewerbung/Lead-Abschluss. | durch Lead-Event ersetzen |
begin_checkout |
Legacy / GA4 | Bewerbungsprozess gestartet. | optional |
view_item |
Legacy / GA4 | Projektangebot oder Stelle angesehen. | empfohlen |
project_view |
Drupal-Ziel | Projektangebot angesehen; kann in GTM auf GA4 view_item gemappt werden. |
empfohlen |
project_apply_start |
Drupal-Ziel | Bewerbung gestartet; Interaktion, keine Conversion. | empfohlen |
project_apply_success |
Drupal-Ziel | Bewerbung erfolgreich angenommen. | Conversion |
b2b_form_submit_success |
Drupal-Ziel | B2B-Kontaktformular erfolgreich verarbeitet. | Conversion |
salesforce_form_submit_success |
Drupal-Ziel | Salesforce-Formular erfolgreich angenommen; nur nutzbar, wenn Embed ein Success-Signal liefert. | offen |
project_alert_signup_success |
Drupal-Ziel | Projektalert erfolgreich angelegt oder Double-Opt-In sauber definiert. | Conversion |
registration_success |
Drupal-Ziel | Projektpartner-Registrierung erfolgreich. | empfohlen |
login_success |
Drupal-Ziel | Login erfolgreich. | optional |
project_search |
Drupal-Ziel | Projektsuche ausgeführt, idealerweise mit Trefferzahl. | empfohlen |
| Baustein | Rolle im Tracking | SOLCOM-Beispiel |
|---|---|---|
| Push | Frontend oder Backend-seitig gerenderter JavaScript-Code schreibt ein Ereignis in window.dataLayer. |
dataLayer.push({...}) |
| Event | Name des fachlichen Ereignisses. Darauf hören GTM-Trigger. | lead_submit_success |
| Parameter | Kontextwerte zum Ereignis. Diese Werte werden in GTM als Data-Layer-Variablen ausgelesen. | form_id, lead_type, project_id |
| Trigger | GTM-Regel: Wenn event und ggf. weitere Bedingungen passen, wird ein Tag ausgelöst. |
event == lead_submit_success |
| Tag | Zielsystem-Aufruf, z. B. GA4 Event oder Google Ads Conversion. | GA4 generate_lead |
Minimaler sauberer Push für eine erfolgreiche Lead-Übergabe:
window.dataLayer = window.dataLayer || [];
window.dataLayer.push({
event: 'lead_submit_success',
form_id: 'contact_b2b',
form_provider: 'drupal_webform',
lead_type: 'b2b_contact',
success_state: 'accepted',
consent_category: 'marketing'
});
Nicht als Conversion zählen: Klick auf Absenden, Fokus im Formular, clientseitiger Validierungsversuch. Als Conversion zählen: Zielsystem hat den Lead angenommen, oder Drupal zeigt eine belastbare Success-Route nach erfolgreichem Submit.
| Website-Aktion | dataLayer-Event | Hinweis zur Abnahme |
|---|---|---|
| Projekt angesehen | project_view |
GA4-Ziel kann view_item sein; project_id nur verwenden, wenn kein Personenbezug entsteht. |
| Bewerbung gestartet | project_apply_start |
Interaktions-Event, keine Conversion. Trigger auf echten Startpunkt legen, nicht auf bloße Sichtbarkeit des CTA. |
| Bewerbung erfolgreich | project_apply_success |
Conversion-Kandidat. Erfolgssignal muss aus Webform/Personio/Minggo-Prozess kommen, nicht aus Button-Klick. |
| B2B-Formular erfolgreich | b2b_form_submit_success |
Conversion-Kandidat. Keine Felder wie Name, E-Mail, Telefon oder Nachricht in den Push schreiben. |
| Salesforce-Formular erfolgreich | salesforce_form_submit_success |
Nur möglich, wenn Salesforce-Embed ein belastbares Success-Signal liefert. Sonst nur Form-View oder CTA-Click messen. |
| Projektalert angelegt | project_alert_signup_success |
Erst nach erfolgreicher Anlage beziehungsweise Double-Opt-In-Schritt sauber definieren. |
| Registrierung erfolgreich | registration_success |
GA4-Ziel kann sign_up sein. Keine Account-ID oder E-Mail in Analytics senden. |
| Projektsuche ausgeführt | project_search |
Suchbegriff und Trefferzahl sind fachlich nützlich; Suchbegriff auf personenbezogene Eingaben prüfen. |
email, phone,
name, Freitext, CV-Inhalt oder Salesforce-/Personio-Personen-ID
in dataLayer-Payloads. Auch gehashte E-Mail/Telefonnummern
sind nicht automatisch harmlos; sie brauchen Ads-Zweck, Consent und
fachliche Freigabe.
| Strand | Ref | Inhalt |
|---|---|---|
| context | 0001-it-landscape | Marketing-/Lead-Landschaft: Usercentrics, Salesforceformular, GTM, Google Ads, GA, Lead Xperience, Salesforce Marketing Cloud, Kundendaten aus Leads. |
| context | 0003-traffic-baseline | Traffic-Baseline ~40k Unique Visitors/Monat via GA4 (Stand Snapshot); Größenordnung für Analytics-Setup. |
| context | 0009-neos-projektportal-flow-inventory | Legacy-Vertrag für GTM, dataLayer, Universal-Analytics-Measurement-Protocol-Calls, UTM-/Ads-Cookies, gclid/msclkid und hashed email/phone. Wichtige Basis für Migrationsabgleich. |
| stories | F-200-analytics-konfiguration | GA4-Aktivierung, Conversion-Tracking, Klickpfade; Datenschutz-Kopplung via F-210/F-300. Cross-System-Tracking ist Wunsch, aber nicht als fertige Spezifikation dokumentiert. |
| stories | F-210-data-privacy-cookie-consent | Cookie-Banner und DSGVO-Opt-In; Klaro/Usercentrics-Drift ist dokumentiert. Aktueller Codepfad nutzt Usercentrics-Bridges. |
| stories | F-310-google-tag-manager | GTM-Container via google_tag ≥2.0; Container-ID-Konfiguration; Voraussetzung für Matelso. Status: code only. |
| stories | F-320-calltracking-matelso | Matelso Calltracking via GTM oder direkt im Theme; Nummern-Replacement-Region offen. Status: gap. |
| stories | F-330-minggoformular | Externes Minggo-Formular mit Datenfluss Minggo → Salesforce/Bullhorn; kein Drupal-Datendurchsatz. Tracking muss separat vom Salesforce-Marketing-Cloud-Embed betrachtet werden. |
| stories | F-390-lead-xperience | Externe Lead-Management-Lösung im Karriere-Bereich; Status Gap/abhängig von fachlicher Entscheidung. |
| adr | ADR-0054-salesforce-marketing-form | Ursprüngliche Topologie für Salesforce-Marketing-Cloud-Formulare als Canvas-SDC. Code-Ist hat danach Usercentrics-Gating für Host- und Inline-Scripts ergänzt. |
| external | Google dataLayer | Primärdoku für strukturierte Übergabe von Events und Variablen an GTM. |
| external | Google Consent Mode | Primärdoku für Consent-Signale an Google-Tags. Wichtig: ersetzt kein Consent-Management, sondern verarbeitet dessen Signal. |
| external | GA4 Events | Primärdoku zu GA4-Events und Parametern; Projekt braucht daraus eine konkrete Eventmatrix. |
| external | Google Analytics PII Policy | Personenbezogene Daten wie E-Mail, Name oder Telefonnummer dürfen nicht an Google Analytics gesendet werden. |
Für Termin und Launch-Abnahme: