Dokumentationen / CapBooking PRO

Google Tag Manager Integration

CapBooking PRO – Anleitung für Hotels und Agenturen

Version 2, Stand 30.09.2026

Zweck und Zielgruppe

Die CapCorn Buchungsmaschine (CapBooking PRO) bindet auf Wunsch Ihren Google Tag Manager (GTM) ein und übergibt fünf E-Commerce-Events an den dataLayer. Diese Anleitung richtet sich an Hotels und an die betreuende Online-Agentur, die den GTM-Container konfiguriert.

Neu gegenüber Version 1:

Aktivierung im CapCorn-Wartungsportal

Die Aktivierung erfolgt im Wartungsportal und wirkt nach dem nächsten Datenabgleich.

  1. Im Wartungsportal den Menüpunkt Allgemein → Google Analytics Einstellungen öffnen.
  2. Die Option Google Tag Manager verwenden wählen.
  3. Die Container-ID im Format GTM-XXXXXXX eintragen und speichern.
  4. Einen Datenabgleich durchführen, damit die Änderung freigegeben wird.
Wartungsportal: Google Analytics Einstellungen mit aktivierter Option Google Tag Manager
Wartungsportal, Allgemein → Google Analytics Einstellungen

Das Feld Domain für Cross Domain Tracking wirkt nur bei Google Analytics 4 direkt. Im GTM-Modus wird Cross-Domain-Tracking im Container eingerichtet (siehe nächster Abschnitt).

Danach bindet die Buchungsmaschine auf jeder Seite automatisch ein:

Wichtig: GA4 direkt und GTM schließen sich aus. Beide Varianten nutzen dasselbe ID-Feld. Wer den Tag Manager verwendet, richtet Google Analytics 4 und alle weiteren Dienste (Google Ads, Meta Pixel usw.) im GTM-Container ein. Eine zusätzliche GA4-Mess-ID kann in der Buchungsmaschine nicht hinterlegt werden.

Auf welcher Domain läuft die Buchungsstrecke?

Die Buchungsmaschine läuft standardmäßig auf einer CapCorn-Domain (z. B. www.capcorn.net), nicht auf der Hotel-Website. Je nach Einbindung gilt:

BetriebsartDomain im BrowserWas die Agentur beachten muss
Standard (Link auf die Buchungsmaschine)capcorn.netCross-Domain-Tracking zwischen Hotel-Website und capcorn.net einrichten; eigenes Consent-Tool im GTM-Container nötig
Unter eigener Domain via Reverse-Proxy, z. B. www.hotel.at/booking/ (ab Winter 26/27 verfügbar)Hotel-DomainKein Cross-Domain-Tracking nötig; das Consent-Tool der Hotel-Website kann weiterverwendet werden. Einrichtung in Abstimmung mit CapCorn

Cross-Domain: Im GA4-Tag (bzw. in der GA4-Verwaltung unter Datenstreams → Tag-Einstellungen → Domains konfigurieren) die Hotel-Domain und capcorn.net eintragen. Nur dann wird der Linker-Parameter _gl beim Wechsel auf die Buchungsmaschine übergeben und die Session bleibt erhalten. Im GTM-Modus setzt die Buchungsmaschine selbst keine Linker-Einstellungen.

Welche Seite löst welches Event aus?

Vier Seiten senden Events: Ergebnisliste, Buchungsübersicht, Buchungsbestätigung und die Bestätigungsseite des Anfrageformulars.

Online-Buchung Anfrageformular (unverbindliche Zimmeranfrage) Suche und Kalenderkein EventCode-Position 1 Ergebnislisteadd_to_cart, remove_from_cartCode-Position 2 Zusatzleistungenkein EventCode-Position 3 Übersicht und Gastdatenbegin_checkoutCode-Position 4 Online-Zahlung (optional)kein Eventexterne Zahlseite Datatrans BuchungsbestätigungpurchaseCode-Position 5 Anfrageformularkein EventCode-Position 6 Anfrage gesendetgenerate_leadCode-Position 7
Buchungsstrecke mit Seiten, Events und Code-Positionen. Blau hinterlegte Seiten senden Events.

Die Code-Positionen beziehen sich auf den Abschnitt „Eigene Tracking-Codes“. Die Online-Zahlung (Datatrans) ist nur Teil der Strecke, wenn der Betrieb eine Anzahlung per Online-Zahlung verlangt; sonst folgt die Bestätigung direkt auf die Übersicht.

Event-Referenz

Alle Events folgen dem GA4-E-Commerce-Schema und werden per dataLayer.push() übergeben. Im GTM reicht je Event ein Trigger vom Typ Benutzerdefiniertes Ereignis mit dem Event-Namen.

EventAusgelöstvalueItems
add_to_cartKlick auf „Buchen“ bei einem Zimmer in der Ergebnisliste (nur beim ersten Hinzufügen)Angezeigter Preis des Zimmers für den gesamten Aufenthalt1 Zimmer
remove_from_cartEntfernen eines Zimmers aus der Auswahl; nur im Mehrzimmer-Modus, in dem mehrere Zimmer gesammelt werdenwie add_to_cart1 Zimmer
begin_checkoutLaden der Buchungsübersicht mit GastdateneingabeGesamtsumme der Buchungalle Zimmer + gewählte Zusatzleistungen
purchaseLaden der Buchungsbestätigung; bei Online-Zahlung erst nach Rückkehr von der ZahlseiteGesamtsumme der Buchungalle Zimmer + gewählte Zusatzleistungen
generate_leadLaden der Bestätigungsseite nach Absenden des Anfrageformulars––

Felder in ecommerce

FeldInhaltBeispiel
currencyimmer EUREUR
valueBetrag in Euro als Zahl, Punkt als Dezimaltrennzeichen, brutto1245.00
transaction_idCapCorn-Reservierungsnummer (nur purchase)4711
items[].item_idZimmer: MB-[Betriebsnr]_KAT-[Kategorienr]; Pauschale: MB-[Betriebsnr]_PAK-[Pauschalennr]; Zusatzleistung: MB-[Betriebsnr]_ZUIDX-[Leistungsnr]. Die ID bleibt von add_to_cart bis purchase gleich, auch wenn bei der Buchung ein anderes Zimmer derselben Kategorie zugeteilt wird.MB-1234_KAT-12
items[].item_nameName, wie er dem Gast in der Buchungsmaschine angezeigt wird (Zimmer, Pauschale bzw. Zusatzleistung), in der Sprache der BuchungDoppelzimmer "Superior"
items[].item_categoryroom (Zimmer und Pauschalen) oder add-on (Zusatzleistungen, Rabatte)room
items[].priceZimmer bzw. Pauschale: Preis für den gesamten Aufenthalt ohne Zu-/Abschläge. Zusatzleistung: Gesamtbetrag; Abschläge/Rabatte sind negativ-50.00
items[].quantityimmer 1 (Preis ist bereits der Gesamtbetrag)1

Zusätzliche Felder auf Event-Ebene

Diese Felder stehen neben event, nicht im ecommerce-Block. Im GTM werden sie über Datenschicht-Variablen ausgelesen und als Ereignisparameter an GA4 übergeben.

FeldEventInhaltBeispiel
booking_typepurchase, generate_leadbooking bei Online-Buchung, request bei Anfrage über das Anfrageformularbooking
arrival_datepurchaseAnreisedatum im Format JJJJ-MM-TT2027-01-12
nightspurchaseAnzahl der Nächte als Zahl5

Vor jedem E-Commerce-Event sendet die Buchungsmaschine { ecommerce: null }. So vermischen sich Items aufeinanderfolgender Events nicht (Empfehlung von Google).

Beispiel purchase

dataLayer.push({ ecommerce: null });
dataLayer.push({
  event: 'purchase',
  booking_type: 'booking',
  arrival_date: '2027-01-12',
  nights: 5,
  ecommerce: {
    transaction_id: '4711',
    value: 1245.00,
    currency: 'EUR',
    items: [
      { item_id: 'MB-1234_KAT-12', item_name: 'Doppelzimmer "Superior"', item_category: 'room', price: 1180.00, quantity: 1 },
      { item_id: 'MB-1234_ZUIDX-3', item_name: 'Stellplatz in Tiefgarage', item_category: 'add-on', price: 115.00, quantity: 1 },
      { item_id: 'MB-1234_ZUIDX-34', item_name: 'Frühbucherbonus', item_category: 'add-on', price: -50.00, quantity: 1 }
    ]
  }
});

generate_lead hat keinen ecommerce-Block, sondern nur lead_type: 'room_request' und booking_type: 'request'.

Besonderheiten, die Auswertungen beeinflussen

Cookie-Einwilligung und DSGVO

Im GTM-Modus zeigt die Buchungsmaschine keinen eigenen Cookie-Banner und setzt keine Consent-Voreinstellung. Der GTM-Container wird sofort geladen, die Events werden immer in den dataLayer geschrieben. Ob und wann Tags feuern, steuert allein die Konfiguration im Container.

Die Einhaltung der DSGVO liegt beim Hotel bzw. der betreuenden Agentur. Konkret heißt das:

  1. Ein Consent-Tool (CMP) im GTM-Container ausspielen, z. B. über die GTM-Vorlagen von Cookiebot, Usercentrics oder consentmanager, mit Trigger Consent Initialization – All Pages.
  2. Google Consent Mode v2 verwenden: Voreinstellung denied für ad_storage, ad_user_data, ad_personalization, analytics_storage; Update erst nach Einwilligung.
  3. Alle nicht-Google-Tags (Meta Pixel usw.) nur mit Einwilligung feuern lassen (zusätzliche Einwilligungsprüfung im Tag oder eigener Trigger).
  4. Die Datenschutzerklärung des Hotels um die eingesetzten Dienste ergänzen.

Warum der Banner der Hotel-Website nicht reicht: Die Buchungsmaschine läuft auf capcorn.net. Eine auf der Hotel-Website erteilte Einwilligung ist dort nicht bekannt. Der Gast muss auf der Buchungsmaschine erneut gefragt werden, außer das CMP unterstützt domainübergreifende Einwilligung oder die Buchungsmaschine läuft per Reverse-Proxy unter der Hotel-Domain (ab Winter 26/27 verfügbar).

Einrichtungs-Checkliste für Agenturen

Mit diesen Schritten ist das E-Commerce-Tracking in GA4 vollständig eingerichtet.

Eigene Tracking-Codes und Snippets

Zusätzlich zum GTM können eigene JavaScript- oder HTML-Codes an 7 Seiten und je 3 Stellen eingebaut werden. Meist ist das nicht nötig: Tags im GTM-Container sind einfacher zu pflegen und unterliegen der Einwilligungssteuerung.

PositionSeiteHinweis
1Suche und Kalender
2Ergebnislistewird auch auf der Fehlerseite ausgegeben
3Zusatzleistungen
4Buchungsübersicht mit Gastdaten
5BuchungsbestätigungConversion-Seite für Online-Buchungen
6Anfrageformular
7Anfrage gesendetConversion-Seite für Anfragen

Je Position stehen drei Stellen zur Verfügung: a im <head>, b direkt nach dem öffnenden <body>-Tag, c direkt vor dem schließenden </body>-Tag.

Eigene Codes werden nicht automatisch von der Cookie-Einwilligung gesteuert. Der Code muss die Einwilligung selbst prüfen.

Aus Sicherheitsgründen bauen wir eigene Codes ein. Bitte senden Sie den Code mit Angabe von Position und Stelle (z. B. „5c“) an office@capcorn.at.