Przejdź do głównej zawartości

Integracja Sojern Pixel

Jeśli prowadzisz kampanie reklamowe za pośrednictwem Sojern, możesz połączyć swoje konto Sojern z Wink, wpisując swój Sojern GTM Container ID 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 GTM Container ID od Sojern

    Skontaktuj się ze swoim menedżerem konta Sojern i poproś o GTM Container ID. Ma on format GTM-XXXXXXX. Jest to inne niż Twój Sojern Pixel ID — upewnij się, że prosisz konkretnie o GTM Container ID.

  2. Wprowadź go w portalu Wink

    Zaloguj się na app.wink.travel, wybierz swoje konto i przejdź do zakładki Customizations. Wklej swój Sojern GTM Container ID 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, że piksel działa poprawnie na wink.travel dla Twojej nieruchomości i że dane płyną do Twojego konta Sojern.


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

  • Pole Sojern GTM Container ID jest dostępne w zakładce Customizations w portalu Wink. Po wpisaniu Container ID, Wink weryfikuje format i bezpiecznie przechowuje go powiązanego z Twoją nieruchomością.
  • Na każdej stronie, gdzie Twoja nieruchomość jest aktywna w Wink, Twój Sojern GTM Container ID 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 Twój 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 oglądana — 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 poniżej opisanych właściwości.

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 poniższych nazw zdarzeń.

KrokZdarzenieKiedy się uruchamia
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

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


Wszystkie zdarzenia zawierające tablicę items korzystają z tego samego schematu przedmiotu. Każda właściwość jest opcjonalna, chyba że oznaczona jako wymagana.

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 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 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 alpha-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 wliczonych w stawkę
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 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

    • Nazwa wymiaru — czytelna nazwa, która pojawi się w raportach GA4 (patrz tabela poniżej)
    • Zakres — wybierz Item
    • 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 Save, 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
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ć 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 jest 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 agent
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