GTM Analytics Entegrasyonu
Herhangi bir Google Tag Manager (GTM) konteynerini, Wink portalına GTM Konteyner ID’si girerek Wink ile bağlayabilirsiniz. Bağlandıktan sonra, konteyneriniz mülkünüz için otomatik olarak yüklenir ve Wink’in rezervasyon etkinliklerini doğrudan okur — aramadan tamamlanmış rezervasyona kadar tüm misafir yolculuğunu kapsar. Yaygın bir kullanım örneği, yeniden hedefleme ve reklam için Sojern konteyneridir, ancak herhangi bir GTM konteyneri aynı şekilde çalışır.
Yapmanız Gerekenler
Bölüm başlığı “Yapmanız Gerekenler”-
GTM Konteyner ID’nizi Alın
GTM Konteyner ID’nizi (format
GTM-XXXXXXX) edinin. Eğer bir iş ortağından, örneğin Sojern’den geliyorsa, GTM Konteyner ID’sini özellikle talep edin — bu, piksel veya etiket ID’sinden farklıdır. -
Wink Portalına Girin
app.wink.travel adresine giriş yapın, hesabınızı seçin ve Özelleştirmeler sekmesine gidin. GTM Konteyner ID’nizi GTM alanına yapıştırın ve kaydedin. Entegrasyonunuz artık aktif.
-
(İsteğe Bağlı) Sunucu Tarafı Satın Alma için GA4 Ölçüm ID’si + API Sırrı Ekleyin
GTM konteynerleri tamamen misafirin tarayıcısında çalışır, bu yüzden ödeme yönlendirmesi sırasında misafir sekmeyi kapatırsa tamamlanmış rezervasyon kaçabilir. Konteyneriniz bir GA4 mülkü yüklüyorsa ve tamamlanmış rezervasyonların güvenilir şekilde kaydedilmesini istiyorsanız, GTM bölümüne o GA4’ün Ölçüm ID’si ve Ölçüm Protokolü API sırrını da girin. Wink, ardından
purchaseolayını sunucu tarafında gönderir; bu, GA4 Analytics Entegrasyonu rehberinde açıklandığı gibidir. Sadece tarayıcı içi izleme gerekiyorsa bunları boş bırakın. -
Sağlayıcınızla Onaylayın
Konteyneriniz Sojern gibi bir iş ortağından geliyorsa, hesap yöneticinize entegrasyonun aktif olduğunu bildirin. Onlar, mülkünüz için
wink.travelüzerinde etiketlerin doğru şekilde tetiklendiğini ve verilerin hesabınıza aktığını doğrulayabilirler.
Wink Tarafında Neler Yapılır
Bölüm başlığı “Wink Tarafında Neler Yapılır”Şeffaflık için, bu entegrasyonun çalışması için Wink’in yapılandırdıkları:
- Wink portalınızın Özelleştirmeler sekmesinde bir GTM Konteyner ID alanı bulunur. Konteyner ID’nizi girdiğinizde, Wink formatı (
GTM-XXXXXXX) doğrular ve mülkünüze güvenli şekilde kaydeder. - Mülkünüzün aktif olduğu her Wink sayfasında, konteyneriniz doğrudan sayfaya enjekte edilir — Wink’in kendi
window.dataLayer’ını paylaşır — böylece ekstra bir yapılandırmaya gerek kalmadan Wink’in kendi konteyneriyle birlikte yüklenir. Bu otomatik olarak gerçekleşir, Wink ekibinden mülk başına ekstra bir işlem gerekmez. - Konteyneriniz asenkron olarak yüklenir, böylece misafirlerinizin sayfa yükleme performansını etkilemez.
- Wink’in kendi izleme sistemi ile konteyneriniz paralel çalışır, aynı paylaşılan
dataLayer’dan okur. Wink’in takip ettiği her rezervasyon olayı konteyneriniz tarafından da anında erişilebilir. - Mülkünüz görüntülenmediğinde — örneğin misafir Wink’te başka bir oteli incelerken — konteyneriniz yüklenmez, böylece sadece mülkünüze ait verileri alır.
- GA4 Ölçüm ID’si + API sırrı sağladıysanız (yukarıdaki 3. adım), tamamlanmış rezervasyonlar için
purchaseolayı ayrıca GA4 Ölçüm Protokolü aracılığıyla sunucu tarafında gönderilir; böylece misafir onay sayfasına geri dönmese bile satış kaydedilir.
DataLayer Referansı
Bölüm başlığı “DataLayer Referansı”Wink, misafir yolculuğu boyunca GA4 uyumlu olayları dataLayer’a iter. GTM konteyneriniz aynı paylaşılan dataLayer’dan okur, böylece yapılandırdığınız herhangi bir tetikleyici veya değişken aşağıda açıklanan tüm özelliklere erişebilir.
Her olay standart GA4 Gelişmiş E-Ticaret yapısını takip eder: üst düzey bir event dizesi ve bir ecommerce nesnesi. Her push öncesinde, Wink eski e-ticaret yükünü temizler, böylece eski veriler yeni tetikleyicilere sızmaz.
Rezervasyon Yolculuğu Olayları
Bölüm başlığı “Rezervasyon Yolculuğu Olayları”Bu olaylar, misafir rezervasyon hunisinde ilerledikçe otomatik tetiklenir. GTM tetikleyicilerinizi aşağıdaki olay isimleriyle eşleşen Özel Olay tetikleyicileri olarak yapılandırın.
| Adım | Olay | Ne Zaman Tetiklenir |
|---|---|---|
| 1 | view_item_list | Otel envanter ızgarası veya listesi yüklendiğinde |
| 2 | view_item | Misafir belirli bir mülk sayfasını görüntülediğinde |
| 3 | add_to_cart | Misafir sepete oda eklediğinde |
| 4 | begin_checkout | Ödeme sayfası yüklendiğinde |
| 5 | add_payment_info | Misafir ödeme yöntemi seçtiğinde |
| 6 | login | Misafir SSO ile kimlik doğruladığında |
| 7 | purchase | Rezervasyon onaylandığında |
| 8 | refund | Rezervasyon iptal edildiğinde |
view_item_list
Bölüm başlığı “view_item_list”Bir otel envanter ızgarası veya listesi oluşturulduğunda tetiklenir.
{ "event": "view_item_list", "ecommerce": { "item_list_id": "featured_hotels", "item_list_name": "Featured Hotels", "items": [ ] }}view_item
Bölüm başlığı “view_item”Misafir belirli bir mülkü görüntülediğinde tetiklenir.
{ "event": "view_item", "ecommerce": { "currency": "USD", "value": 299.00, "items": [ ] }}add_to_cart
Bölüm başlığı “add_to_cart”Misafir sepete bir oda eklediğinde tetiklenir.
{ "event": "add_to_cart", "ecommerce": { "currency": "USD", "value": 299.00, "items": [ ] }}begin_checkout
Bölüm başlığı “begin_checkout”Ödeme sayfası yüklendiğinde tetiklenir.
{ "event": "begin_checkout", "ecommerce": { "currency": "USD", "value": 299.00, "coupon": "SUMMER10", "items": [ ] }}coupon sadece indirim kodu uygulandığında bulunur.
add_payment_info
Bölüm başlığı “add_payment_info”Misafir bir ödeme yöntemi seçtiğinde veya onayladığında tetiklenir.
{ "event": "add_payment_info", "ecommerce": { "currency": "USD", "value": 299.00, "coupon": "SUMMER10", "payment_type": "STRIPE", "items": [ ] }}payment_type ödeme sağlayıcı türünden doldurulur. coupon sadece indirim kodu uygulandığında bulunur.
Misafir tek oturum açma (SSO) ile kimlik doğruladığında tetiklenir.
{ "event": "login", "ecommerce": { "method": "IAM" }}purchase
Bölüm başlığı “purchase”Rezervasyon onaylandığında tetiklenir.
{ "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 benzersiz rezervasyon sözleşme tanımlayıcısıdır. coupon, shipping ve tax sadece geçerliyse bulunur.
refund
Bölüm başlığı “refund”Rezervasyon iptal edildiğinde tetiklenir.
{ "event": "refund", "ecommerce": { "currency": "USD", "transaction_id": "bc-a1b2c3d4", "value": 299.00, "coupon": "SUMMER10", "shipping": 0.00, "tax": 0.00, "items": [ ] }}transaction_id, aynı rezervasyon için purchase olayıyla eşleşir. coupon, shipping ve tax sadece geçerliyse bulunur.
Ürün Özellikleri
Bölüm başlığı “Ürün Özellikleri”items dizisi içeren tüm olaylar aynı ürün şemasını paylaşır. Her özellik isteğe bağlıdır, zorunlu olanlar belirtilmiştir.
Standart GA4 alanları
Bölüm başlığı “Standart GA4 alanları”Bu alanlar GA4 tarafından doğal olarak anlaşılır ve standart e-ticaret raporlarında ek yapılandırma olmadan görünür.
| Özellik | Tür | Zorunlu | Açıklama |
|---|---|---|---|
item_id | string | Evet | Oda veya ürün için benzersiz tanımlayıcı |
item_name | string | — | Oda veya ürünün adı |
affiliation | string | — | Satıcı veya bağlı kuruluş adı |
coupon | string | — | Ürüne uygulanan kupon kodu |
currency | string | — | ISO 4217 para birimi kodu (ör. USD) |
creative_name | string | — | Promosyonda kullanılan yaratıcı adı |
creative_slot | string | — | Promosyon yaratıcı slot pozisyonu |
discount | number | — | Uygulanan indirim tutarı |
index | number | — | Listede pozisyonu (1 tabanlı) |
item_brand | string | — | Otel veya marka adı |
item_category | string | — | Ürün türü — örn. GUEST_ROOM, ACTIVITY, ATTRACTION, MEETING_ROOM, RESTAURANT, SPA |
item_list_id | string | — | Ürünün ait olduğu liste tanımlayıcısı |
item_list_name | string | — | Listenin görüntü adı |
location_id | string | — | Mülkün coğrafi koordinatları |
price | number | — | Birim fiyat |
promotion_id | string | — | Promosyon tanımlayıcısı |
promotion_name | string | — | Promosyonun görüntü adı |
quantity | number | — | Miktar (varsayılan 1) |
Özel ürün kapsamlı parametreler
Bölüm başlığı “Özel ürün kapsamlı parametreler”Bu parametreler Wink’e özgü rezervasyon bağlamını taşır. GA4 bunları raporlarda otomatik göstermez — görünmeleri için her birini GA4 mülkünüzde ürün kapsamlı özel boyut olarak kaydetmeniz gerekir. Kurulum için aşağıdaki GA4’te Özel Boyutlar bölümüne bakın.
| Özellik | Tür | Açıklama |
|---|---|---|
property_id | string | Wink mülk tanımlayıcısı |
property_name | string | Mülkün görüntü adı |
property_brand | string | Mülkün ait olduğu marka |
property_chain | string | Mülkün ait olduğu zincir |
property_url_name | string | Mülkün URL dostu kısa adı |
city_name | string | Mülkün bulunduğu şehir |
country_code | string | ISO 3166-1 alfa-2 ülke kodu |
start_date | string | Giriş tarihi, YYYY-MM-DD formatında |
end_date | string | Çıkış tarihi, YYYY-MM-DD formatında |
num_adults | number | Rezervasyondaki yetişkin sayısı |
num_children | number | Rezervasyondaki çocuk sayısı |
cancellation_policy | string | Şunlardan biri: Refundable, Non-Refundable, Refundable-With-Restrictions, Non-Refundable-With-Restrictions |
rate_plan_id | string | Fiyat planı tanımlayıcısı |
room_rate_id | string | Belirli oda fiyatı tanımlayıcısı |
room_rate_name | string | Oda fiyatının görüntü adı |
num_perks | number | Fiyata dahil avantaj sayısı |
room_location | string | Odanın konum tanımı (ör. Overwater, Garden) |
room_view | string | Oda manzarası tanımı (ör. Ocean, City) |
room_classification | string | Oda sınıflandırması veya seviyesi (ör. Suite, Standard) |
bed_type | string | Oda yatak konfigürasyonu (ör. King, Twin) |
GA4’te Özel Boyutlar
Bölüm başlığı “GA4’te Özel Boyutlar”GA4, özel ürün parametrelerini raporlarda görmezden gelir; bunları açıkça ürün kapsamlı özel boyut olarak kaydetmeniz gerekir. Raporlarda kullanmayı planladığınız parametreleri kaydetmeniz yeterlidir — tüm 20 parametreyi kaydetmeniz gerekmez.
-
Özel Tanımları Açın
GA4’te, Yönetici (sol alt dişli simgesi) → mülkünüzü seçin → Veri Görüntüleme → Özel tanımlar yolunu izleyin.
-
Yeni özel boyut oluşturun
Özel boyut oluştur butonuna tıklayın.
-
Boyut detaylarını doldurun
- Boyut adı — GA4 raporlarında görünen okunabilir etiket (aşağıdaki tabloya bakın)
- Kapsam — Ürün seçin
- Olay parametresi — dataLayer’da göründüğü tam parametre adı (aşağıdaki tabloya bakın)
- Açıklama — isteğe bağlı ama önerilir
-
Kaydedin ve tekrarlayın
Kaydet butonuna tıklayın, ardından takip etmek istediğiniz her parametre için tekrarlayın.
Aşağıdaki tablo, özel boyut oluştururken referansınız olsun. Olay parametresi tam olarak eşleşmelidir — GA4 büyük/küçük harfe duyarlıdır.
| Boyut adı | Olay parametresi | Tür |
|---|---|---|
| Mülk ID | property_id | Metin |
| Mülk adı | property_name | Metin |
| Mülk markası | property_brand | Metin |
| Mülk zinciri | property_chain | Metin |
| Mülk URL adı | property_url_name | Metin |
| Şehir adı | city_name | Metin |
| Ülke kodu | country_code | Metin |
| Giriş tarihi | start_date | Metin |
| Çıkış tarihi | end_date | Metin |
| Yetişkin sayısı | num_adults | Sayı |
| Çocuk sayısı | num_children | Sayı |
| İptal politikası | cancellation_policy | Metin |
| Fiyat planı ID | rate_plan_id | Metin |
| Oda fiyatı ID | room_rate_id | Metin |
| Oda fiyatı adı | room_rate_name | Metin |
| Avantaj sayısı | num_perks | Sayı |
| Oda konumu | room_location | Metin |
| Oda manzarası | room_view | Metin |
| Oda sınıflandırması | room_classification | Metin |
| Yatak tipi | bed_type | Metin |
Ek Mevcut Olaylar
Bölüm başlığı “Ek Mevcut Olaylar”Aşağıdaki olaylar Wink dataLayer’ında mevcuttur ancak standart rezervasyon hunisinin parçası değildir. Platformdaki diğer etkileşimlerle tetiklenebilirler.
add_to_wishlist
Bölüm başlığı “add_to_wishlist”{ "event": "add_to_wishlist", "ecommerce": { "currency": "USD", "value": 299.00, "items": [ ] }}remove_from_cart
Bölüm başlığı “remove_from_cart”{ "event": "remove_from_cart", "ecommerce": { "currency": "USD", "value": 299.00, "items": [ ] }}select_item
Bölüm başlığı “select_item”{ "event": "select_item", "ecommerce": { "item_list_id": "featured_hotels", "item_list_name": "Featured Hotels", "items": [ ] }}view_cart
Bölüm başlığı “view_cart”{ "event": "view_cart"}Bu olayla birlikte ecommerce yükü yoktur.
view_promotion
Bölüm başlığı “view_promotion”{ "event": "view_promotion", "ecommerce": { "creative_name": "Summer Banner", "creative_slot": "hero", "promotion_id": "promo_001", "promotion_name": "Summer Sale", "items": [ ] }}select_promotion
Bölüm başlığı “select_promotion”{ "event": "select_promotion", "ecommerce": { "creative_name": "Summer Banner", "creative_slot": "hero", "promotion_id": "promo_001", "promotion_name": "Summer Sale", "items": [ ] }}search
Bölüm başlığı “search”{ "event": "search", "ecommerce": { "search_term": "beachfront resort" }}select_content
Bölüm başlığı “select_content”{ "event": "select_content", "ecommerce": { "content_type": "hotel", "content_id": "prop_12345" }}{ "event": "share", "ecommerce": { "method": "copy_link", "content_type": "hotel", "item_id": "prop_12345" }}sign_up
Bölüm başlığı “sign_up”{ "event": "sign_up", "ecommerce": { "method": "email" }}generate_lead
Bölüm başlığı “generate_lead”{ "event": "generate_lead", "ecommerce": { "currency": "USD", "value": 0.00 }}join_group
Bölüm başlığı “join_group”{ "event": "join_group", "ecommerce": { "group_id": "group_abc" }}earn_virtual_currency
Bölüm başlığı “earn_virtual_currency”{ "event": "earn_virtual_currency", "ecommerce": { "virtual_currency_name": "WinkPoints", "value": 100 }}spend_virtual_currency
Bölüm başlığı “spend_virtual_currency”{ "event": "spend_virtual_currency", "ecommerce": { "virtual_currency_name": "WinkPoints", "value": 50, "item_name": "Room Upgrade" }}level_start
Bölüm başlığı “level_start”{ "event": "level_start", "ecommerce": { "level_name": "Gold" }}level_end
Bölüm başlığı “level_end”{ "event": "level_end", "ecommerce": { "level_name": "Gold", "success": true }}level_up
Bölüm başlığı “level_up”{ "event": "level_up", "ecommerce": { "level": 2, "character": "traveler" }}post_score
Bölüm başlığı “post_score”{ "event": "post_score", "ecommerce": { "score": 980, "level": 2, "character": "traveler" }}unlock_achievement
Bölüm başlığı “unlock_achievement”{ "event": "unlock_achievement", "ecommerce": { "achievement_id": "first_booking" }}tutorial_begin
Bölüm başlığı “tutorial_begin”{ "event": "tutorial_begin", "ecommerce": {}}tutorial_complete
Bölüm başlığı “tutorial_complete”{ "event": "tutorial_complete", "ecommerce": {}}virtualPageView
Bölüm başlığı “virtualPageView”Bu, standart GA4 olay setinin parçası olmayan özel bir Wink olayıdır. Her sayfa gezinmesinde itilir ve cihaz ile oturum bağlamını taşır. ecommerce nesnesi içermez.
{ "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"}| Özellik | Açıklama |
|---|---|
device | Algılanan cihaz türü — Desktop, Android, iPhone, iPad veya benzeri |
deviceAgent | Ham kullanıcı ajanı dizisi |
os | Algılanan işletim sistemi — Windows, MacOS, Linux, UNIX |
path | Geçerli sayfa yolu |
title | Geçerli sayfa başlığı |
userId | Kimliği doğrulanmış kullanıcı tanımlayıcısı (giriş yapılmadıysa yok) |
startDate | Geçerli arama oturumundan giriş tarihi |
endDate | Geçerli arama oturumundan çıkış tarihi |
guests | Geçerli arama oturumundan misafir sayısı |
rooms | Geçerli arama oturumundan oda sayısı |
