Przejdź do głównej zawartości

Integracja GTM Analytics

Możesz połączyć dowolny kontener Google Tag Manager (GTM) z Wink, wpisując jego ID kontenera GTM w portalu Wink. Po połączeniu kontener ładuje się automatycznie dla Twojej nieruchomości i odczytuje zdarzenia rezerwacji Wink bezpośrednio — obejmując pełną podróż gościa od wyszukiwania aż do zakończonej rezerwacji. Typowym zastosowaniem jest kontener Sojern do remarketingu i reklam, ale każdy kontener GTM działa tak samo.


  1. Uzyskaj swoje ID kontenera GTM

    Pozyskaj swoje ID kontenera GTM (format GTM-XXXXXXX). Jeśli pochodzi od partnera takiego jak Sojern, poproś konkretnie o ID kontenera GTM — różni się ono od ID piksela lub taga.

  2. Wprowadź je w portalu Wink

    Zaloguj się na app.wink.travel, wybierz swoje konto i otwórz ustawienia personalizacji. W sekcji Analytics & integrations wklej swoje ID kontenera GTM w pole GTM Container ID i zapisz. Twoja integracja jest teraz aktywna.

  3. Potwierdź z dostawcą

    Jeśli Twój kontener pochodzi od partnera takiego jak Sojern, poinformuj swojego opiekuna konta, że integracja jest aktywna. On może zweryfikować po swojej stronie, czy tagi poprawnie uruchamiają się na wink.travel dla Twojej nieruchomości i czy dane płyną do Twojego konta.


Dla przejrzystości, oto co Wink konfiguruje, aby ta integracja działała:

  • Pole ID kontenera GTM jest dostępne w sekcji Analytics & integrations w ustawieniach personalizacji. Po wpisaniu ID kontenera, Wink weryfikuje format (GTM-XXXXXXX) i bezpiecznie przechowuje je przypisane do Twojej nieruchomości.
  • Na każdej stronie, gdzie Twoja nieruchomość jest aktywna na Wink, Twój kontener jest wstrzykiwany bezpośrednio do strony — współdzieląc własny window.dataLayer Wink — więc ładuje się równolegle z kontenerem Wink bez potrzeby dodatkowej konfiguracji. Dzieje się to automatycznie, bez pracy zespołu Wink dla każdej nieruchomości.
  • Twój kontener ładuje się asynchronicznie, więc nie wpływa na wydajność ładowania strony dla gości.
  • Własne śledzenie Wink i Twój kontener działają równolegle, odczytując ten sam współdzielony dataLayer. Każde zdarzenie rezerwacji śledzone przez Wink jest jednocześnie dostępne dla Twojego kontenera.
  • Gdy Twoja nieruchomość nie jest oglądana — np. gdy gość przegląda inny hotel na Wink — Twój kontener nie jest ładowany, więc otrzymuje tylko dane dotyczące Twojej nieruchomości.
  • Zdarzenie zakończonej rezerwacji (purchase) wyzwalane jest w przeglądarce na stronie podziękowania. ID kontenera GTM to czarna skrzynka — Wink nie zakłada, jakie tagi są w środku — więc Wink nigdy nie wywołuje Google w Twoim imieniu ze swoich serwerów. Zamiast tego, dowolny tag GA4 lub konwersji w Twoim kontenerze otrzymuje purchase po stronie klienta, dokładnie tak jak każde inne zdarzenie rezerwacji. Ponieważ dostawca płatności przekierowuje przeglądarkę gościa z dala i z powrotem, Wink ponownie łączy sesję analityczną przerwaną przez przekierowanie przed wyzwoleniem purchase, więc sprzedaż jest przypisana do oryginalnej wizyty gościa, a nie liczona jako nowa sesja.

Wink wysyła zdarzenia kompatybilne z GA4 do dataLayer przez całą podróż gościa. Twój kontener GTM odczytuje z tego samego współdzielonego dataLayer, więc każdy wyzwalacz lub zmienna, które skonfigurujesz, mają dostęp do wszystkich poniższych właściwości.

Każde zdarzenie ma standardową strukturę GA4 Enhanced Ecommerce: łańcuch event na najwyższym poziomie oraz obiekt ecommerce. Przed każdym push, Wink czyści poprzedni ładunek ecommerce, aby zapobiec przenikaniu przestarzałych danych do nowych wyzwalaczy.


Te zdarzenia wyzwalają się automatycznie, gdy gość przechodzi przez lejek rezerwacji. Skonfiguruj swoje wyzwalacze GTM jako wyzwalacze Custom Event dopasowujące się do nazw zdarzeń poniżej.

KrokZdarzenieKiedy się wyzwala
1view_item_listŁaduje się siatka lub lista hoteli
2view_itemGość ogląda stronę konkretnej nieruchomości
3add_to_cartGość dodaje pokój do koszyka
4begin_checkoutŁaduje się strona realizacji płatności
5add_payment_infoGość wybiera metodę płatności
6loginGość loguje się przez SSO
7purchaseRezerwacja jest potwierdzona
8refundRezerwacja jest anulowana

Wyzwala się, gdy renderowana jest siatka lub lista hoteli.

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

Wyzwala się, gdy gość ogląda konkretną nieruchomość.

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

Wyzwala się, gdy gość dodaje pokój do koszyka.

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

Wyzwala się, gdy ładuje się strona realizacji płatności.

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

coupon jest obecny tylko, gdy zastosowano kod rabatowy.


Wyzwala się, gdy gość wybiera lub potwierdza metodę płatności.

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

payment_type pochodzi od typu akwizytora płatności. coupon jest obecny tylko, gdy zastosowano kod rabatowy.


Wyzwala się, gdy gość loguje się przez pojedyncze logowanie (SSO).

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

Wyzwala się, gdy rezerwacja jest potwierdzona.

{
"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 to unikalny identyfikator umowy rezerwacyjnej. coupon, shipping i tax są obecne tylko, gdy mają zastosowanie.


Wyzwala się, gdy rezerwacja jest anulowana.

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

transaction_id odpowiada zdarzeniu purchase dla tej samej rezerwacji. coupon, shipping i tax są obecne tylko, gdy mają zastosowanie.


Wszystkie zdarzenia zawierające tablicę items mają ten sam schemat przedmiotu. Każda właściwość jest opcjonalna, chyba że oznaczono ją jako wymaganą.

Te pola są natywnie rozumiane przez GA4 i pojawiają się w standardowych raportach ecommerce bez dodatkowej konfiguracji.

WłaściwośćTypWymaganeOpis
item_idstringTakUnikalny identyfikator pokoju lub produktu
item_namestringNazwa pokoju lub produktu
affiliationstringNazwa afilianta lub sprzedawcy
couponstringKod kuponu zastosowany do przedmiotu
currencystringKod waluty ISO 4217 (np. USD)
creative_namestringNazwa kreacji użytej w promocji
creative_slotstringPozycja kreacji promocyjnej
discountnumberKwota rabatu zastosowanego
indexnumberPozycja na liście (liczona od 1)
item_brandstringNazwa hotelu lub marki
item_categorystringTyp produktu — np. GUEST_ROOM, ACTIVITY, ATTRACTION, MEETING_ROOM, RESTAURANT, SPA
item_list_idstringIdentyfikator listy, do której należy przedmiot
item_list_namestringNazwa wyświetlana listy
location_idstringWspółrzędne geograficzne nieruchomości
pricenumberCena jednostkowa
promotion_idstringIdentyfikator promocji
promotion_namestringNazwa wyświetlana promocji
quantitynumberIlość (domyślnie 1)

Te parametry zawierają kontekst rezerwacji specyficzny dla Wink. GA4 nie pokazuje ich automatycznie w raportach — musisz zarejestrować każdy z nich jako niestandardowy wymiar na poziomie przedmiotu w swojej właściwości GA4, zanim pojawi się w eksploracjach lub standardowych raportach. Zobacz Niestandardowe wymiary w GA4 poniżej, aby poznać instrukcje konfiguracji.

WłaściwośćTypOpis
property_idstringIdentyfikator nieruchomości Wink
property_namestringNazwa wyświetlana nieruchomości
property_brandstringMarka, do której należy nieruchomość
property_chainstringSieć, do której należy nieruchomość
property_url_namestringPrzyjazny dla URL slug nieruchomości
city_namestringMiasto, w którym znajduje się nieruchomość
country_codestringKod kraju ISO 3166-1 alfa-2
start_datestringData zameldowania w formacie YYYY-MM-DD
end_datestringData wymeldowania w formacie YYYY-MM-DD
num_adultsnumberLiczba dorosłych w rezerwacji
num_childrennumberLiczba dzieci w rezerwacji
cancellation_policystringJeden z: Refundable, Non-Refundable, Refundable-With-Restrictions, Non-Refundable-With-Restrictions
rate_plan_idstringIdentyfikator planu taryfowego
room_rate_idstringIdentyfikator konkretnej stawki pokoju
room_rate_namestringNazwa wyświetlana stawki pokoju
num_perksnumberLiczba dodatków w cenie stawki
room_locationstringOpis lokalizacji pokoju (np. Overwater, Garden)
room_viewstringOpis widoku z pokoju (np. Ocean, City)
room_classificationstringKlasyfikacja lub kategoria pokoju (np. Suite, Standard)
bed_typestringKonfiguracja łóżka w pokoju (np. King, Twin)

GA4 ignoruje niestandardowe parametry przedmiotów w raportach, dopóki nie zarejestrujesz ich jako niestandardowych wymiarów na poziomie przedmiotu. Musisz zarejestrować tylko te parametry, które chcesz używać w raportach — nie musisz rejestrować wszystkich 20.

  1. Otwórz definicje niestandardowe

    W GA4 przejdź do Admin (ikona koła zębatego w lewym dolnym rogu) → wybierz swoją właściwość → Data displayCustom definitions.

  2. Utwórz nowy wymiar niestandardowy

    Kliknij Create custom dimensions.

  3. Wypełnij szczegóły wymiaru

    • Dimension name — czytelna nazwa, która pojawi się w raportach GA4 (patrz tabela poniżej)
    • Scope — wybierz Item
    • Event parameter — dokładna nazwa parametru, jak pojawia się w dataLayer (patrz tabela poniżej)
    • Description — opcjonalne, ale zalecane
  4. Zapisz i powtórz

    Kliknij Save, a następnie powtórz dla każdego parametru, który chcesz śledzić.

Użyj poniższej tabeli jako odniesienia przy tworzeniu niestandardowych wymiarów. Wartość Event parameter musi być dokładna — GA4 rozróżnia wielkość liter.

Nazwa wymiaruEvent parameterTyp
Property IDproperty_idTekst
Property nameproperty_nameTekst
Property brandproperty_brandTekst
Property chainproperty_chainTekst
Property URL nameproperty_url_nameTekst
City namecity_nameTekst
Country codecountry_codeTekst
Check-in datestart_dateTekst
Check-out dateend_dateTekst
Number of adultsnum_adultsLiczba
Number of childrennum_childrenLiczba
Cancellation policycancellation_policyTekst
Rate plan IDrate_plan_idTekst
Room rate IDroom_rate_idTekst
Room rate nameroom_rate_nameTekst
Number of perksnum_perksLiczba
Room locationroom_locationTekst
Room viewroom_viewTekst
Room classificationroom_classificationTekst
Bed typebed_typeTekst

Poniższe zdarzenia są dostępne w dataLayer Wink, ale nie są częścią standardowego lejka rezerwacji. Mogą być wyzwalane przez inne interakcje na platformie.

{
"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"
}

To zdarzenie nie zawiera ładunku ecommerce.

{
"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": {}
}

To niestandardowe zdarzenie Wink — nie jest częścią standardowego zestawu zdarzeń GA4. Jest wysyłane przy każdej nawigacji strony i zawiera kontekst urządzenia oraz sesji. Nie zawiera obiektu ecommerce.

{
"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"
}
WłaściwośćOpis
deviceWykryty typ urządzenia — Desktop, Android, iPhone, iPad lub podobny
deviceAgentSurowy ciąg user agenta
osWykryty system operacyjny — Windows, MacOS, Linux, UNIX
pathAktualna ścieżka strony
titleAktualny tytuł strony
userIdIdentyfikator zalogowanego użytkownika (pomijany, gdy niezalogowany)
startDateData zameldowania z bieżącej sesji wyszukiwania
endDateData wymeldowania z bieżącej sesji wyszukiwania
guestsLiczba gości z bieżącej sesji wyszukiwania
roomsLiczba pokoi z bieżącej sesji wyszukiwania