Przejdź do głównej zawartości

Integracja piksela Sojern

Jeśli prowadzisz kampanie reklamowe za pośrednictwem Sojern, możesz połączyć swoje konto Sojern z Wink, wpisując swój identyfikator kontenera GTM Sojern w portalu Wink. Po połączeniu piksel śledzący Sojern uruchamia się automatycznie dla Twojej nieruchomości — obejmując pełną podróż gościa od wyszukiwania aż do zakończonej rezerwacji.


  1. Uzyskaj swój identyfikator kontenera GTM od Sojern

    Skontaktuj się ze swoim menedżerem konta Sojern i poproś o identyfikator kontenera GTM. Ma on format GTM-XXXXXXX. Różni się on od identyfikatora piksela Sojern — upewnij się, że prosisz konkretnie o identyfikator kontenera GTM.

  2. Wprowadź go w portalu Wink

    Zaloguj się na my.wink.travel, wybierz swoje konto i przejdź do zakładki Dostosowania. Wklej swój identyfikator kontenera GTM Sojern w pole Sojern i zapisz. Twoja integracja jest teraz aktywna.

  3. Potwierdź z menedżerem konta Sojern

    Poinformuj swojego menedżera konta Sojern, że integracja jest aktywna. Mogą oni zweryfikować po swojej stronie, czy piksel uruchamia się poprawnie na wink.travel dla Twojej nieruchomości i czy dane płyną do Twojego konta Sojern.


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

  • Pole identyfikatora kontenera GTM Sojern jest dostępne w zakładce Dostosowania w portalu Wink. Po wpisaniu identyfikatora kontenera, Wink weryfikuje format i bezpiecznie go przechowuje powiązanego z Twoją nieruchomością.
  • Na każdej stronie, gdzie Twoja nieruchomość jest aktywna w Wink, identyfikator kontenera GTM Sojern jest renderowany na stronie, a system zarządzania tagami Wink dynamicznie ładuje Twój kontener Sojern obok własnego. Dzieje się to automatycznie — nie są wymagane żadne ręczne działania ze strony zespołu Wink dla każdej nieruchomości.
  • Twój kontener Sojern jest ładowany asynchronicznie, co oznacza, że nie wpływa na wydajność ładowania strony dla Twoich gości.
  • Własne śledzenie Wink i piksel Sojern działają równolegle, korzystając z tych samych współdzielonych danych zdarzeń. Każde zdarzenie rezerwacji śledzone przez Wink jest jednocześnie dostępne dla Twojego kontenera Sojern.
  • Gdy Twoja nieruchomość nie jest wyświetlana — na przykład gdy gość przegląda inny hotel w Wink — Twój kontener Sojern nie jest ładowany. Zapewnia to, że Sojern otrzymuje tylko dane istotne dla Twojej nieruchomości.

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 właściwości opisanych poniżej.

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


Te zdarzenia uruchamiają 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ę uruchamia
1view_item_listŁaduje się siatka lub lista dostępnych 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

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

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

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

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

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

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

Uruchamia 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 wtedy, gdy zastosowano kod rabatowy.


Uruchamia 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 jest wypełniany na podstawie typu akwizytora płatności. coupon jest obecny tylko wtedy, gdy zastosowano kod rabatowy.


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

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

Uruchamia 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 wtedy, gdy mają zastosowanie.


Uruchamia 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 wtedy, gdy mają zastosowanie.


Wszystkie zdarzenia zawierające tablicę items korzystają z tego samego schematu 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 slotu 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 wyświetla 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 uzyskać 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 korzyści zawartych w stawce
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 wyraźnie jako niestandardowe wymiary na poziomie przedmiotu. Musisz zarejestrować tylko te parametry, które zamierzasz używać w raportach — nie musisz rejestrować wszystkich 20.

  1. Otwórz Definicje niestandardowe

    W GA4 przejdź do Administrator (ikona koła zębatego w lewym dolnym rogu) → wybierz swoją właściwość → Wyświetlanie danychDefinicje niestandardowe.

  2. Utwórz nowy wymiar niestandardowy

    Kliknij Utwórz wymiary niestandardowe.

  3. Wypełnij szczegóły wymiaru

    • Nazwa wymiaru — czytelna nazwa, która pojawi się w raportach GA4 (patrz tabela poniżej)
    • Zakres — wybierz Przedmiot
    • Parametr zdarzenia — dokładna nazwa parametru, jak pojawia się w dataLayer (patrz tabela poniżej)
    • Opis — opcjonalny, ale zalecany
  4. Zapisz i powtórz

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

Użyj poniższej tabeli jako odniesienia podczas tworzenia niestandardowych wymiarów. Wartość Parametru zdarzenia musi być dokładna — GA4 rozróżnia wielkość liter.

Nazwa wymiaruParametr zdarzeniaTyp
Identyfikator nieruchomościproperty_idTekst
Nazwa nieruchomościproperty_nameTekst
Marka nieruchomościproperty_brandTekst
Sieć nieruchomościproperty_chainTekst
Nazwa URL nieruchomościproperty_url_nameTekst
Nazwa miastacity_nameTekst
Kod krajucountry_codeTekst
Data zameldowaniastart_dateTekst
Data wymeldowaniaend_dateTekst
Liczba dorosłychnum_adultsLiczba
Liczba dziecinum_childrenLiczba
Polityka anulowaniacancellation_policyTekst
Identyfikator planu taryfowegorate_plan_idTekst
Identyfikator stawki pokojuroom_rate_idTekst
Nazwa stawki pokojuroom_rate_nameTekst
Liczba korzyścinum_perksLiczba
Lokalizacja pokojuroom_locationTekst
Widok pokojuroom_viewTekst
Klasyfikacja pokojuroom_classificationTekst
Typ łóżkabed_typeTekst

Poniższe zdarzenia są dostępne w dataLayer Wink, ale nie są częścią standardowego lejka rezerwacji. Mogą być wywoływane 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 uwierzytelnionego 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