Zum Inhalt springen

GTM Analytics Integration

Sie können jeden Google Tag Manager (GTM)-Container mit Wink verbinden, indem Sie die GTM Container-ID im Wink-Portal eingeben. Nach der Verbindung wird Ihr Container automatisch für Ihre Unterkunft geladen und liest Wink’s Buchungsereignisse direkt aus – und deckt die gesamte Gästereise von der Suche bis zur abgeschlossenen Buchung ab. Ein häufiger Anwendungsfall ist ein Sojern-Container für Retargeting und Werbung, aber jeder GTM-Container funktioniert auf die gleiche Weise.


  1. Holen Sie sich Ihre GTM Container-ID

    Erhalten Sie Ihre GTM Container-ID (Format GTM-XXXXXXX). Wenn sie von einem Partner wie Sojern stammt, fordern Sie speziell die GTM Container-ID an – sie unterscheidet sich von einer Pixel- oder Tag-ID.

  2. Geben Sie sie im Wink-Portal ein

    Melden Sie sich bei app.wink.travel an, wählen Sie Ihr Konto aus und öffnen Sie Ihre Anpassungseinstellungen. Fügen Sie im Abschnitt Analytics & integrations Ihre GTM Container-ID in das Feld GTM Container ID ein und speichern Sie. Ihre Integration ist jetzt aktiv.

  3. Bestätigen Sie mit Ihrem Anbieter

    Wenn Ihr Container von einem Partner wie Sojern stammt, informieren Sie Ihren Account Manager, dass die Integration aktiv ist. Er kann von seiner Seite aus überprüfen, ob die Tags auf wink.travel für Ihre Unterkunft korrekt ausgelöst werden und ob Daten in Ihr Konto fließen.


Zur Transparenz hier, was Wink konfiguriert, um diese Integration zu ermöglichen:

  • Ein GTM Container-ID-Feld ist im Abschnitt Analytics & integrations Ihrer Anpassungseinstellungen verfügbar. Wenn Sie Ihre Container-ID eingeben, validiert Wink das Format (GTM-XXXXXXX) und speichert es sicher für Ihre Unterkunft.
  • Auf jeder Seite, auf der Ihre Unterkunft bei Wink aktiv ist, wird Ihr Container direkt in die Seite eingebunden – er teilt sich Wink’s eigenes window.dataLayer – so wird er parallel zu Wink’s eigenem Container geladen, ohne dass eine zusätzliche Konfiguration erforderlich ist. Dies geschieht automatisch, ohne dass das Wink-Team pro Unterkunft eingreifen muss.
  • Ihr Container wird asynchron geladen, sodass die Ladezeit der Seite für Ihre Gäste nicht beeinträchtigt wird.
  • Wink’s eigenes Tracking und Ihr Container laufen parallel und lesen aus demselben gemeinsamen dataLayer. Jedes Buchungsereignis, das Wink verfolgt, steht Ihrem Container gleichzeitig zur Verfügung.
  • Wenn Ihre Unterkunft nicht angezeigt wird – z. B. wenn ein Gast ein anderes Hotel bei Wink durchsucht – wird Ihr Container nicht geladen und erhält somit nur für Ihre Unterkunft relevante Daten.
  • Die abgeschlossene Buchung (purchase) wird im Browser auf der Dankeseite ausgelöst. Eine GTM Container-ID ist eine Blackbox – Wink kann nicht wissen, welche Tags darin enthalten sind – daher ruft Wink Google nie von seinen Servern aus auf. Stattdessen erhält jeder GA4- oder Conversion-Tag in Ihrem Container das purchase clientseitig, genau wie jedes andere Buchungsereignis. Da der Zahlungsanbieter den Browser des Gastes weg- und zurückleitet, stellt Wink die durch die Weiterleitung unterbrochene Analytics-Sitzung vor dem Auslösen von purchase wieder her, sodass der Verkauf dem ursprünglichen Besuch des Gastes zugeordnet wird und nicht als neue Sitzung zählt.

Wink pusht GA4-kompatible Ereignisse während der gesamten Gästereise in den dataLayer. Ihr GTM-Container liest aus demselben gemeinsamen dataLayer, sodass jeder Trigger oder jede Variable, die Sie konfigurieren, Zugriff auf alle unten beschriebenen Eigenschaften hat.

Jedes Ereignis folgt der Standard-GA4 Enhanced Ecommerce-Struktur: ein oberstes event-String und ein ecommerce-Objekt. Vor jedem Push löscht Wink die vorherigen Ecommerce-Daten, um zu verhindern, dass veraltete Daten in neue Trigger gelangen.


Diese Ereignisse werden automatisch ausgelöst, wenn ein Gast den Buchungstrichter durchläuft. Konfigurieren Sie Ihre GTM-Trigger als Custom Event-Trigger, die den untenstehenden Ereignisnamen entsprechen.

SchrittEreignisWann es ausgelöst wird
1view_item_listHotel-Inventar-Gitter oder Liste wird geladen
2view_itemGast sieht eine bestimmte Unterkunftsseite
3add_to_cartGast legt ein Zimmer in den Warenkorb
4begin_checkoutCheckout-/Zahlungsseite wird geladen
5add_payment_infoGast wählt eine Zahlungsmethode aus
6loginGast authentifiziert sich via SSO
7purchaseBuchung wird bestätigt
8refundBuchung wird storniert

Wird ausgelöst, wenn ein Hotel-Inventar-Gitter oder eine Liste angezeigt wird.

{
"event": "view_item_list",
"ecommerce": {
"item_list_id": "featured_hotels",
"item_list_name": "Featured Hotels",
"items": [ ]
}
}

Wird ausgelöst, wenn ein Gast eine bestimmte Unterkunft ansieht.

{
"event": "view_item",
"ecommerce": {
"currency": "USD",
"value": 299.00,
"items": [ ]
}
}

Wird ausgelöst, wenn ein Gast ein Zimmer in den Warenkorb legt.

{
"event": "add_to_cart",
"ecommerce": {
"currency": "USD",
"value": 299.00,
"items": [ ]
}
}

Wird ausgelöst, wenn die Checkout-/Zahlungsseite geladen wird.

{
"event": "begin_checkout",
"ecommerce": {
"currency": "USD",
"value": 299.00,
"coupon": "SUMMER10",
"items": [ ]
}
}

coupon ist nur vorhanden, wenn ein Rabattcode angewendet wurde.


Wird ausgelöst, wenn der Gast eine Zahlungsmethode auswählt oder bestätigt.

{
"event": "add_payment_info",
"ecommerce": {
"currency": "USD",
"value": 299.00,
"coupon": "SUMMER10",
"payment_type": "STRIPE",
"items": [ ]
}
}

payment_type wird vom Typ des Zahlungsanbieters übernommen. coupon ist nur vorhanden, wenn ein Rabattcode angewendet wurde.


Wird ausgelöst, wenn sich ein Gast über Single Sign-On authentifiziert.

{
"event": "login",
"ecommerce": {
"method": "IAM"
}
}

Wird ausgelöst, wenn eine Buchung bestätigt wird.

{
"event": "purchase",
"ecommerce": {
"currency": "USD",
"transaction_id": "bc-a1b2c3d4",
"value": 299.00,
"coupon": "SUMMER10",
"shipping": 0.00,
"tax": 0.00,
"items": [
{
"item_id": "rr-xyz789",
"item_name": "Deluxe Ocean Suite",
"item_brand": "Grand Resort",
"item_category": "GUEST_ROOM",
"price": 299.00,
"quantity": 1,
"property_id": "prop-abc123",
"property_name": "Grand Resort Maldives",
"property_brand": "Grand Collection",
"property_chain": "Luxury Hotels International",
"city_name": "Malé",
"country_code": "MV",
"start_date": "2026-06-01",
"end_date": "2026-06-05",
"num_adults": 2,
"num_children": 0,
"cancellation_policy": "Refundable",
"rate_plan_id": "rp-summer2026",
"room_rate_id": "rr-xyz789",
"room_rate_name": "Summer Escape — Bed & Breakfast",
"num_perks": 2,
"room_location": "Overwater",
"room_view": "Ocean",
"room_classification": "Suite"
}
]
}
}

transaction_id ist die eindeutige Buchungsvertrags-ID. coupon, shipping und tax sind nur vorhanden, wenn zutreffend.


Wird ausgelöst, wenn eine Buchung storniert wird.

{
"event": "refund",
"ecommerce": {
"currency": "USD",
"transaction_id": "bc-a1b2c3d4",
"value": 299.00,
"coupon": "SUMMER10",
"shipping": 0.00,
"tax": 0.00,
"items": [ ]
}
}

transaction_id entspricht dem purchase-Ereignis derselben Buchung. coupon, shipping und tax sind nur vorhanden, wenn zutreffend.


Alle Ereignisse, die ein items-Array enthalten, verwenden dasselbe Artikelschema. Jede Eigenschaft ist optional, sofern nicht als erforderlich markiert.

Diese Felder werden von GA4 nativ verstanden und erscheinen in Standard-Ecommerce-Berichten ohne zusätzliche Konfiguration.

EigenschaftTypErforderlichBeschreibung
item_idstringJaEindeutige Kennung für das Zimmer oder Produkt
item_namestringName des Zimmers oder Produkts
affiliationstringAffiliate- oder Verkäufername
couponstringAuf den Artikel angewendeter Gutscheincode
currencystringISO 4217 Währungscode (z. B. USD)
creative_namestringKreativname, der in einer Promotion verwendet wird
creative_slotstringSlot-Position der Promotion-Kreativ
discountnumberAngewendeter Rabattbetrag
indexnumberPosition in der Liste (1-basiert)
item_brandstringHotel- oder Markenname
item_categorystringProdukttyp – z. B. GUEST_ROOM, ACTIVITY, ATTRACTION, MEETING_ROOM, RESTAURANT, SPA
item_list_idstringKennung der Liste, zu der dieser Artikel gehört
item_list_namestringAnzeigename der Liste
location_idstringGeokoordinaten der Unterkunft
pricenumberEinzelpreis
promotion_idstringKennung der Promotion
promotion_namestringAnzeigename der Promotion
quantitynumberMenge (Standard ist 1)

Diese Parameter enthalten Wink-spezifischen Buchungskontext. GA4 zeigt sie nicht automatisch in Berichten an – Sie müssen jeden als artikelbezogene benutzerdefinierte Dimension in Ihrer GA4-Property registrieren, bevor er in Explorations oder Standardberichten erscheint. Siehe Benutzerdefinierte Dimensionen in GA4 weiter unten für Anweisungen.

EigenschaftTypBeschreibung
property_idstringWink-Unterkunftskennung
property_namestringAnzeigename der Unterkunft
property_brandstringMarke, zu der die Unterkunft gehört
property_chainstringKette, zu der die Unterkunft gehört
property_url_namestringURL-freundlicher Slug für die Unterkunft
city_namestringStadt, in der sich die Unterkunft befindet
country_codestringISO 3166-1 alpha-2 Ländercode
start_datestringCheck-in-Datum im Format YYYY-MM-DD
end_datestringCheck-out-Datum im Format YYYY-MM-DD
num_adultsnumberAnzahl der Erwachsenen in der Buchung
num_childrennumberAnzahl der Kinder in der Buchung
cancellation_policystringEiner von: Refundable, Non-Refundable, Refundable-With-Restrictions, Non-Refundable-With-Restrictions
rate_plan_idstringKennung des Tarifplans
room_rate_idstringKennung des spezifischen Zimmerpreises
room_rate_namestringAnzeigename des Zimmerpreises
num_perksnumberAnzahl der im Tarif enthaltenen Extras
room_locationstringOrtsbeschreibung des Zimmers (z. B. Overwater, Garden)
room_viewstringAusblickbeschreibung des Zimmers (z. B. Ocean, City)
room_classificationstringZimmerklassifikation oder Kategorie (z. B. Suite, Standard)
bed_typestringBettenkonfiguration des Zimmers (z. B. King, Twin)

GA4 ignoriert benutzerdefinierte Artikelparameter in Berichten, bis Sie sie explizit als artikelbezogene benutzerdefinierte Dimensionen registrieren. Sie müssen nur die Parameter registrieren, die Sie in Berichten verwenden möchten – nicht alle 20.

  1. Öffnen Sie benutzerdefinierte Definitionen

    Gehen Sie in GA4 zu Admin (Zahnrad-Symbol unten links) → wählen Sie Ihre Property → DatenanzeigeBenutzerdefinierte Definitionen.

  2. Erstellen Sie eine neue benutzerdefinierte Dimension

    Klicken Sie auf Benutzerdefinierte Dimensionen erstellen.

  3. Füllen Sie die Details der Dimension aus

    • Dimensionsname — die menschenlesbare Bezeichnung, die in GA4-Berichten erscheint (siehe Tabelle unten)
    • Bereich — wählen Sie Artikel
    • Ereignisparameter — der genaue Parametername, wie er im dataLayer erscheint (siehe Tabelle unten)
    • Beschreibung — optional, aber empfohlen
  4. Speichern und wiederholen

    Klicken Sie auf Speichern und wiederholen Sie den Vorgang für jeden Parameter, den Sie verfolgen möchten.

Verwenden Sie die folgende Tabelle als Referenz beim Erstellen benutzerdefinierter Dimensionen. Der Wert für Ereignisparameter muss exakt übereinstimmen – GA4 ist case-sensitiv.

DimensionsnameEreignisparameterTyp
Property IDproperty_idText
Property Nameproperty_nameText
Property Brandproperty_brandText
Property Chainproperty_chainText
Property URL Nameproperty_url_nameText
City Namecity_nameText
Country Codecountry_codeText
Check-in Datestart_dateText
Check-out Dateend_dateText
Number of Adultsnum_adultsZahl
Number of Childrennum_childrenZahl
Cancellation Policycancellation_policyText
Rate Plan IDrate_plan_idText
Room Rate IDroom_rate_idText
Room Rate Nameroom_rate_nameText
Number of Perksnum_perksZahl
Room Locationroom_locationText
Room Viewroom_viewText
Room Classificationroom_classificationText
Bed Typebed_typeText

Die folgenden Ereignisse sind im Wink dataLayer verfügbar, gehören aber nicht zum Standard-Buchungstrichter. Sie können durch andere Interaktionen auf der Plattform ausgelöst werden.

{
"event": "add_to_wishlist",
"ecommerce": {
"currency": "USD",
"value": 299.00,
"items": [ ]
}
}
{
"event": "remove_from_cart",
"ecommerce": {
"currency": "USD",
"value": 299.00,
"items": [ ]
}
}
{
"event": "select_item",
"ecommerce": {
"item_list_id": "featured_hotels",
"item_list_name": "Featured Hotels",
"items": [ ]
}
}
{
"event": "view_cart"
}

Dieses Ereignis enthält keine ecommerce-Daten.

{
"event": "view_promotion",
"ecommerce": {
"creative_name": "Summer Banner",
"creative_slot": "hero",
"promotion_id": "promo_001",
"promotion_name": "Summer Sale",
"items": [ ]
}
}
{
"event": "select_promotion",
"ecommerce": {
"creative_name": "Summer Banner",
"creative_slot": "hero",
"promotion_id": "promo_001",
"promotion_name": "Summer Sale",
"items": [ ]
}
}
{
"event": "search",
"ecommerce": {
"search_term": "beachfront resort"
}
}
{
"event": "select_content",
"ecommerce": {
"content_type": "hotel",
"content_id": "prop_12345"
}
}
{
"event": "share",
"ecommerce": {
"method": "copy_link",
"content_type": "hotel",
"item_id": "prop_12345"
}
}
{
"event": "sign_up",
"ecommerce": {
"method": "email"
}
}
{
"event": "generate_lead",
"ecommerce": {
"currency": "USD",
"value": 0.00
}
}
{
"event": "join_group",
"ecommerce": {
"group_id": "group_abc"
}
}
{
"event": "earn_virtual_currency",
"ecommerce": {
"virtual_currency_name": "WinkPoints",
"value": 100
}
}
{
"event": "spend_virtual_currency",
"ecommerce": {
"virtual_currency_name": "WinkPoints",
"value": 50,
"item_name": "Room Upgrade"
}
}
{
"event": "level_start",
"ecommerce": {
"level_name": "Gold"
}
}
{
"event": "level_end",
"ecommerce": {
"level_name": "Gold",
"success": true
}
}
{
"event": "level_up",
"ecommerce": {
"level": 2,
"character": "traveler"
}
}
{
"event": "post_score",
"ecommerce": {
"score": 980,
"level": 2,
"character": "traveler"
}
}
{
"event": "unlock_achievement",
"ecommerce": {
"achievement_id": "first_booking"
}
}
{
"event": "tutorial_begin",
"ecommerce": {}
}
{
"event": "tutorial_complete",
"ecommerce": {}
}

Dies ist ein benutzerdefiniertes Wink-Ereignis – kein Teil des Standard-GA4-Ereignissets. Es wird bei jeder Seiten-Navigation gepusht und enthält Geräte- und Sitzungs-Kontext. Es enthält kein ecommerce-Objekt.

{
"event": "virtualPageView",
"device": "Desktop",
"deviceAgent": "Mozilla/5.0 ...",
"os": "MacOS",
"path": "/hotels/grand-resort",
"title": "Grand Resort — Wink",
"userId": "user_abc123",
"startDate": "2026-06-01",
"endDate": "2026-06-05",
"guests": "2",
"rooms": "1"
}
EigenschaftBeschreibung
deviceErkanntes Gerätetyp – Desktop, Android, iPhone, iPad oder ähnlich
deviceAgentRohes User-Agent-String
osErkanntes Betriebssystem – Windows, MacOS, Linux, UNIX
pathAktueller Seitenpfad
titleAktueller Seitentitel
userIdAuthentifizierte Benutzerkennung (wird weggelassen, wenn nicht eingeloggt)
startDateCheck-in-Datum aus der aktuellen Suchsitzung
endDateCheck-out-Datum aus der aktuellen Suchsitzung
guestsAnzahl der Gäste aus der aktuellen Suchsitzung
roomsAnzahl der Zimmer aus der aktuellen Suchsitzung