DGTLFACE – Dijital Teknoloji Ortağı

Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.

Otel Rezervasyon Motoru İçin Cross-Domain Takip ve Thank You Event Kurulumu

Otel Rezervasyon Motoru İçin Cross-Domain Takip ve Thank You Event Kurulumu

9 dk okuma13 Şubat 2026DGTLFACE Editorial

Rezervasyon motorunuz ana sitenizden farklı bir domain/subdomain’de çalışıyorsa, “dönüşüm takibi yaptım” demek çoğu zaman yanıltıcıdır. Çünkü kullanıcı ana siteden rezervasyon motoruna geçtiği anda oturum bölünür, kaynak/medium bozulur, hatta dönüşüm “direct/other” altında şişebilir. Sonuç: kampanyalar yanlış ödüllendirilir, bütçe yanlış kanala kayar, raporlar güven vermez. Bu rehberin hedefi çok net: 1. GA4’te cross-domain ölçümü doğru şekilde kurmak, 2. GTM ile thank you (rezervasyon tamamlandı) event’ini güvenilir tetiklemek, 3. mümkünse gelir (value/currency/transaction_id) ve ek rezervasyon parametrelerini GA4’e taşımak, 4. en önemlisi: test ederek doğrulamak.

Öne Çıkan Cevap

Otel rezervasyon motoru çoğu zaman ana siteden farklı bir domain/subdomain’de çalışır; bu durumda cross-domain ölçüm kurulmazsa kullanıcı oturumu bölünür ve dönüşümün kaynağı bozulur. GA4’te cross-domain ölçümü tanımlayıp (doğru domain listesi ve gerekli hariç tutmalar), GTM ile thank you sayfasında veya rezervasyon tamamlanma event’inde tetikleme yaparak rezervasyon sayısını ve geliri doğru kaydedebilirsiniz. En kritik adım: kurulum sonrası test ve doğrulama.

Özet

GA4’te cross-domain’i domain listesiyle tanımla, self-referral riskini azalt, GTM ile thank you event’i tetikle, revenue parametrelerini ekle ve DebugView + raporlarla doğrula.

Maddeler

  • Hedef kitle: Otel dev + pazarlama/performance + ajans ölçüm ekipleri
  • KPI: Rezervasyon sayısı, gelir (value/currency), attribution doğruluğu, direct/other şişmesi
  • Entity: cross-domain, linker, booking engine, thank you event, dataLayer, GA4, GTM
  • Funnel: Consideration → Conversion (ölçüm zemini)
  • Risk: Yanlış kurulum → self-referral/attribution sapması → Ads optimizasyon hatası
  • Çıktı: Kurulum adımları + örnek dataLayer şablonu + test checklist’i
  • SERP hedefi: Featured Snippet + PAA (net soru-cevap blokları)

Kısa Cevap

GA4’te cross-domain’i aç, GTM’de thank you event’i kur, geliri parametrelerle gönder ve test et.

Hızlı Özet

  • 1) Domain topolojinizi çıkarın (ana site + rezervasyon motoru + ödeme)
  • 2) GA4’te cross-domain domain listesini planlayın
  • 3) Thank you sinyalini (sayfa/event) netleştirin
  • 4) GTM tetik + GA4 event tag’i kurun
  • 5) transaction_id + value + currency ile doğrulayın ve test edin

1. Görsel Paket (Hero + Context)

Otel sitesi ve rezervasyon motoru arasında oturum akışını gösteren bağlam görseli
Otel sitesi ve rezervasyon motoru arasında oturum akışını gösteren bağlam görseli

2. Cross-domain takip nedir, otellerde neden gerekli?

Kısa cevap : Cross-domain takip; kullanıcı bir domainden diğerine geçtiğinde (ör. otelsite.com → bookingengine.com) aynı kullanıcı/oturumun tek yolculuk gibi izlenmesini sağlar. Otellerde rezervasyon motoru ayrı domaindeyse, cross-domain olmadan dönüşüm genellikle “yanlış kaynak” ile raporlanır ve self-referral sorunları oluşur.

Otel dünyasında bu ihtiyaç çok yaygındır çünkü rezervasyon motorları: • ayrı bir domain (tamamen farklı) üzerinde olabilir, • ya da bir subdomain üzerinde çalışabilir (booking.site.com gibi), • bazen ise üçüncü taraf bir sağlayıcıya aittir.

GA4 tarafında amaç şudur: kullanıcı ana siteden rezervasyon motoruna geçerken Client ID / oturum bağlamı korunmalı; aksi halde GA4 bunu “yeni bir oturum” gibi görür ve attribution kayar. Google’ın GA4 cross-domain yaklaşımında önerilen yol, yapılandırmayı mümkün olduğunca Analytics arayüzü (Admin) üzerinden yapmak ve domainleri listelemektir.

Otellerde cross-domain yoksa tipik 4 belirti

  1. Referral/self-referral artışı: booking engine domain’i “referral” kaynak gibi görünür.
  2. Direct/Other şişmesi: dönüşüm direct gibi raporlanır (kanal kredisi kayar).
  3. Dönüşüm yolu kopukluğu: kullanıcı ana site kampanyasından gelir ama dönüşüm başka kaynakta görünür.
  4. Ads optimizasyon hatası: dönüşümler yanlış kampanyaya yazıldığı için teklif stratejileri bozulur.

“Referral Exclusion yeter mi, cross-domain şart mı?”

Kısa mantık: • Referral exclusion, belirli domainlerden gelen trafiği “direct”e iter (bazı sorunları maskeler). • Cross-domain ise kullanıcı yolculuğunu doğru şekilde birleştirmeyi hedefler. Otel rezervasyon motoru senaryolarında genellikle cross-domain + doğru hariç tutmalar + test birlikte düşünülür. (Not: GA4’te arayüz ve isimler zamanla değişebilir; prensip aynı kalır.)

☑ Mini Check (Bu H2 için)

  • Rezervasyon motoru ayrı domain/subdomain mi?
  • Dönüşümler “direct/other” altında şişiyor mu?
  • Booking engine domain’i referral/self-referral olarak görünüyor mu?
  • Kampanya performansı ile gerçek satış arasında tutarsızlık var mı?

Ne yapmalıyım?

  • Önce domain topolojinizi çıkarın (ana site + rezervasyon motoru + ödeme).
  • GA4’te cross-domain domain listesini planlayın.
  • Thank you sinyalini (sayfa/event) netleştirin.
  • Test planını yazmadan canlıya almayın.

3. Otellerde “web site + rezervasyon motoru” ayrımı nasıl çalışır?

Otel tarafında iki sistem vardır: • Pazarlama sitesi: oda/konsept içerikleri, kampanyalar, SEO landing’ler, CTA’lar • Rezervasyon motoru (booking engine): tarih/oda/kişi seçimi, fiyat, ödeme ve onay

Çoğu ekip “web sitesi GA4 kurulu, tamam” der; oysa rezervasyon motoru farklı bir domaindeyse asıl değerli event (purchase/booking_complete) o tarafta gerçekleşir. Bu yüzden ölçüm tasarımını iki parçaya ayırmak gerekir:

Senaryo haritası (pratik)

  • Senaryo A — Aynı domain: • En kolay kurulum: thank you sayfası + GA4 purchase/event
  • Senaryo B — Subdomain: • Çoğu zaman cookie/domain ayarları daha yönetilebilir; yine de test şart
  • Senaryo C — Farklı domain (en yaygın kritik): • Cross-domain + linker mantığı + doğru hariç tutma + event tetikleme entegrasyonu
Rezervasyon motoru ayrımı ve ölçüm sınırlarını otel bağlamında ayıran bölüm görseli
Rezervasyon motoru ayrımı ve ölçüm sınırlarını otel bağlamında ayıran bölüm görseli

Developer + Pazarlama ortak dili (köprü)

Bu konu genelde iki ekip arasında “boşluk” oluşturur: • Pazarlama ekibi “Ads dönüşüm yok” der. • Dev ekip “tag var çalışıyor” der. • Sorun: oturum bütünlüğü + sinyal doğruluğu. Bu rehberin amacı da tam olarak bu boşluğu kapatmak: hem teknik hem pazarlama ekibi aynı akışa bakabilsin.

☑ Mini Check (Bu H2 için)

  • Rezervasyon motoru URL yapısı (domain/subdomain) belirlendi mi?
  • Thank you sayfası var mı, URL deseni net mi?
  • “Rezervasyon tamamlandı” sinyali dataLayer/event olarak üretilebiliyor mu?
  • Test ortamı (staging) var mı?

Ne yapmalıyım?

  • Rezervasyon motorunda “tamamlanma” noktasını tek cümleyle tanımlayın.
  • Thank you sayfası yoksa “event tabanlı” sinyal planlayın.
  • Gelir parametrelerini (value/currency) kaynak sistemden alıp taşıma planı yapın.
  • Pazarlama ekibinin raporda görmek istediği KPI’yı netleştirin (rezervasyon + gelir).

4. GA4’te Cross-Domain kurulumu (domain listesi + temel prensip)

Kısa cevap : GA4 cross-domain ölçümü için, birlikte ölçmek istediğiniz domainlerde aynı GA4 tag ID (G-… aynı web stream) çalışmalı ve GA4 Admin’de cross-domain domain listesi tanımlanmalıdır.

GA4 tarafında cross-domain’in “çekirdeği” şudur: ana site ve rezervasyon motoru aynı property/web stream ile ölçülür ve GA4, domainler arası geçişi ilişkilendirir. Google’ın dokümantasyonunda da vurgulanan kritik nokta: cross-domain kapsamına alacağınız domainlerdeki tag’lerin aynı tag ID’yi kullanmasıdır.

Kurulum mantığı (arayüz değişebilir, prensip sabit)

Genel akış: 1. GA4 property → Data streams (Web) → ilgili stream 2. Tag/measurement ayarları içinde cross-domain bölümünde domainleri ekleme 3. Domain listesi: ana site + booking engine domain’i (ve gerekiyorsa ödeme adımı) 4. Kurulum sonrası test: geçişte attribution kopuyor mu?

Not: GA4’te “up to 100 conditions” gibi limitler ve ayar detayları olabilir; büyük portföylerde kural sayısını yönetmek gerekebilir.

Subdomain için her zaman cross-domain gerekir mi?

Genel prensip: subdomain’ler bazen aynı cookie domain yapısıyla daha kolay ölçülür; ama otel rezervasyon motoru “teknik olarak” ayrı bir uygulama olduğunda yine de self-referral benzeri davranışlar görülebilir. Burada doğru karar, “teoride gerekmez” değil, test sonucuna göre gerek var/yok demektir.

Linker mantığı (neden URL’ye parametre eklenir?)

Cross-domain çalıştığında bazı senaryolarda URL’lerde _gl gibi parametreler görebilirsiniz. Bu, domainler arası kimlik bilgisinin taşınmasına yardımcı olan “linker” mekanizmasının bir parçasıdır. Google Tag Platform dokümantasyonu, GA4 kullanıcılarının çoğunlukla yapılandırmayı Admin üzerinden yapmasını önerirken, cross-domain’in temelinde bu linker yaklaşımının olduğunu da açıklar.

Teknik not (kritik)

Sheet’teki teknik notla uyumlu şekilde: yanlış cross-domain kurulumu direct/other trafik şişmesine ve attribution sapmasına yol açabilir—bu yüzden test süreci “opsiyonel” değil, zorunludur.

GA4 cross-domain kurulum adımlarını otel ölçümü için bölümlere ayıran görsel
GA4 cross-domain kurulum adımlarını otel ölçümü için bölümlere ayıran görsel

☑ Mini Check (Bu H2 için)

  • Ana site ve rezervasyon motoru aynı GA4 stream/tag ID ile ölçülüyor mu?
  • Cross-domain domain listesi yazıldı mı (tam domainler)?
  • Geçişte URL parametreleri ve oturum devamlılığı test edildi mi?
  • “Self-referral” veya direct şişmesi kontrol edildi mi?

Ne yapmalıyım?

  • Önce “tek GA4 stream / tek tag ID” standardını doğrulayın.
  • Domain listesini minimal tutun (gereken domainler).
  • Kurulum sonrası 3 test yapın: kampanyalı giriş → booking → thank you.
  • Raporlarda source/medium değişiyor mu kontrol edin.

5. GTM ile Thank You Page veya “booking_complete” event tetiklemesi

Bu bölüm, pratikte iki yöntemle ilerler:

Yöntem 1 — Thank you sayfası (page_view tabanlı) tetikleme

Eğer rezervasyon tamamlandığında kullanıcı belirli bir URL’ye düşüyorsa (ör. /confirmation veya /thank-you), GTM’de şu mantık çalışır: • Trigger: Page View (URL contains / equals …) • Tag: GA4 Event (ör. booking_complete veya GA4 recommended purchase) GTM’de GA4 event tag’leri ve tetikleyici seçimi, Tag Manager’ın resmi yardım akışına uygun şekilde yapılır: GA4 Event tag → Triggering alanı → uygun trigger seçimi → test (Preview) → GA4 DebugView kontrolü.

Avantaj: Basit, hızlı, çoğu tesiste yeterli. Risk: Thank you URL değişirse ölçüm kırılır; ayrıca bazı motorlar SPA/AJAX akış kullanabilir.

Yöntem 2 — Event tabanlı tetikleme (dataLayer / custom event)

Thank you sayfası yoksa veya sayfa değişmeden “modal/step” ile tamamlanıyorsa, daha sağlıklı yöntem: • Rezervasyon motoru “tamamlandı” anında dataLayer.push({ event: "booking_complete", ... }) gönderir • GTM: Custom Event trigger (booking_complete) • GA4 Event tag: parametrelerle birlikte gönderilir Bu yöntem, gelir (value/currency), transaction_id gibi verilerin taşınması için de daha uygundur.

Cross-domain akışı ve thank you event tetiklenmesini otel ölçümü için gösteren diyagram
Cross-domain akışı ve thank you event tetiklenmesini otel ölçümü için gösteren diyagram

Örnek dataLayer şablonu (otel rezervasyon odaklı)

Aşağıdaki örnek “şablondur”; alan isimleri rezervasyon motorunuza göre uyarlanır: window.dataLayer = window.dataLayer || []; window.dataLayer.push({ event: "booking_complete", transaction_id: "RZV-123456", value: 1250.00, currency: "TRY", nights: 4, adults: 2, children: 0, room_type: "Deluxe Sea View", rate_plan: "Early Booking", booking_engine_domain: "booking.example.com" }); Neden bu alanlar? • GA4 gelir raporlaması için çoğu senaryoda transaction_id + value + currency gibi temel parametreler kritik kabul edilir. • Ek alanlar (nights, room_type, rate_plan) pazarlama analizi için güçlü segmentler üretir; ama önce “temel doğruluk” sağlanmalıdır.

Test (en kritik adım)

Kurulumdan sonra 3 aşama test yapmadan canlıya geçmeyin: 1. GTM Preview: Trigger çalıştı mı, tag ateşledi mi? 2. GA4 DebugView: Event GA4’e düştü mü? 3. Rapor testi: “booking_complete/purchase” event’i normal kullanıcı akışında doğru sayılıyor mu?

☑ Mini Check (Bu H2 için)

  • Thank you URL deseni net mi? (yöntem 1)
  • SPA/AJAX akış var mı? (yöntem 2 gerekir mi?)
  • dataLayer event’i booking_complete anında kesin tetikleniyor mu?
  • DebugView’de parametreler (value/currency/transaction_id) geliyor mu?

Ne yapmalıyım?

  • Önce en sağlam “tamamlandı” sinyalini seçin (URL mi event mi).
  • Gelir parametrelerini eklemeden önce event’in tekil ateşlendiğini doğrulayın.
  • DebugView’de parametreleri kontrol edin, sonra Ads import’a geçin.
  • Değişiklikleri dokümante edin (hangi URL/event, hangi alanlar).

6. Parametreler ve rezervasyon gelirini event’e eklemek

Kısa cevap : Geliri doğru raporlamak için event’inizde en azından transaction_id, value ve currency alanlarını taşıyın; bunlar eksikse GA4’te “revenue yok” veya eksik görünebilir.

Bu noktada iki yaklaşım var:

Yaklaşım A — GA4 recommended purchase event’i (e-ticaret mantığı)

GA4 e-ticaret ölçümünde purchase ve ilgili parametreler yaygın kullanılır. “Rezervasyon” da sonuçta bir “satın alma” gibi davranabildiği için, booking complete anında purchase event’i göndermek birçok otelde mantıklıdır. Minimum çekirdek: • transaction_id • value • currency

Yaklaşım B — booking_complete custom event + temel parametreler

Bazı ekipler otel özelinde isimlendirme ister: booking_complete. Bu da gayet olabilir; önemli olan tutarlı isim ve parametrelerin doğru taşınmasıdır.

Otel rezervasyonuna özel pratik parametre seti

Aşağıdaki tablo “kapsam + fayda” mantığıyla iyi bir başlangıçtır: Not: Event parametreleri ve raporlanabilirlik GA4’te “event parameters” mantığıyla yönetilir; hangi parametrenin raporda dimension/metric olacağı kurulumunuza bağlıdır.

Tablo: Rezervasyon event parametre seti (çekirdek + otel segmentleri)
ParametreTürÖrnekNeden gerekli?Öncelik
transaction_idstringRZV-123Tekil rezervasyon; çifte sayımı önlerYüksek
valuenumber1250.00Gelir metriğiYüksek
currencystringTRY/EURGelirin doğru para birimiYüksek
nightsnumber4Konaklama uzunluğu analiziOrta
room_typestringDeluxeSegmentlemeOrta
rate_planstringEarly BookingKampanya/teklif analiziOrta
booking_engine_domainstringbooking...Debug/teşhisDüşük

Sık hata listesi (otel özelinde)

  • currency yok: value var ama revenue görünmez/eksik olur.
  • transaction_id yok: duplicate sayım riski artar.
  • İki kez ateşleme: thank you + event aynı anda çalışır, double booking olur.
  • Test yapılmaması: “çalışıyor” sanılır, rapor bozulur.

Competitor gap’i kapatan mini bölüm (fark yaratan)

Çoğu kaynak cross-domain’i teorik anlatır; otel ölçümünde asıl fark şu “mini çerçeve” ile gelir: Otel Rezervasyon Ölçüm Çerçevesi (3 katman): 1. Oturum bütünlüğü: cross-domain + linker mantığı doğru mu? 2. Sinyal doğruluğu: booking_complete tekil mi, doğru anda mı? 3. Değer doğruluğu: value/currency/transaction_id doğru mu? Bu üç katmandan biri bile eksikse, yönetim raporları sapar ve Ads optimizasyonu “yanlış hedef” üzerinde çalışır.

Cross-domain ve gelir parametreleri için otel ölçüm çerçevesini özetleyen checklist kart
Cross-domain ve gelir parametreleri için otel ölçüm çerçevesini özetleyen checklist kart

☑ Mini Check (Bu H2 için)

  • purchase/booking_complete event’i tekil mi (double fire yok)?
  • transaction_id + value + currency geliyor mu?
  • nights/room_type gibi parametreler doğru kaynaktan mı geliyor?
  • DebugView + rapor karşılaştırması yapıldı mı?

Ne yapmalıyım?

  • Önce çekirdeği kur: transaction_id + value + currency.
  • Sonra otel segment parametrelerini ekle (nights, room_type).
  • Double fire riskini “tek yöntem” kuralıyla azalt (URL ya da event).
  • 1 haftalık izleme planı yap (direct/referral anomali var mı?).

7. Uygulama sırası (önerilen) – “Kurulum Sprint’i”

  1. Domain haritası (ana site + booking engine + ödeme)
  2. GA4 cross-domain domain listesi + doğrulama
  3. Thank you sinyali seçimi (URL/event)
  4. GTM tetik + GA4 event tag (Preview test)
  5. Parametreler (transaction_id/value/currency)
  6. DebugView + rapor doğrulama (kapanış)

8. Cross-Domain ve Thank You Event Örnek Kod Şablonu (Download Asset)

TEMPLATEv1.0Checklist + Sprint

Cross-Domain ve Thank You Event Örnek Kod Şablonunu İndir — SEM / Rezervasyon Motoru Takibi (v1.0)

Bu şablon, otel rezervasyon motoru farklı domain/subdomain’deyken cross-domain ölçüm + thank you event tetiklemesini “en az sürtünmeyle” hayata geçirmenize yardımcı olur. Developer’ın dataLayer/event üretimini standartlaştırır; pazarlama ekibinin ihtiyaç duyduğu çekirdek gelir parametrelerini (transaction_id, value, currency) net bir formatta taşır.

Kim Kullanır?

Otel web geliştirme ekibi + ölçümden sorumlu pazarlama/performans uzmanı.

Nasıl Kullanılır?

  1. Rezervasyon motorunda “tamamlandı” anında aşağıdaki dataLayer şablonunu üretin.
  2. GTM’de Custom Event trigger + GA4 Event tag kurup parametreleri eşleyin.
  3. GTM Preview + GA4 DebugView ile doğrulayın; sonra rapor/Ads import kontrolüne geçin.

Ölçüm & Önceliklendirme (Kısa sürüm)

  • ▢ ✅ GTM Preview: trigger yakalandı, tag ateşledi
  • ▢ ✅ GA4 DebugView: event göründü
  • ▢ ✅ Parametreler dolu: transaction_id, value, currency
  • ▢ ✅ Double fire yok (tek event)
  • ▢ ✅ Raporlarda booking engine referral/self-referral anomali yok
  • ▢ ✅ Cross-domain geçişte oturum bölünmüyor (test senaryosu)

PDF içinde: Problem→Kök Neden→Çözüm tablosu + 14 gün sprint planı + önce/sonra KPI tablosu

Şablonu İndir Ücretsiz • PDF / Excel

9. Kapanış – “Doğru kurulum yoksa optimizasyon yok”

Yanlış kurgulanmış cross-domain ve thank you event yapıları, gelir ve rezervasyon raporlarında ciddi sapmalara yol açabilir. Bu yüzden hedefiniz “bir event görmek” değil; doğru oturumu doğru değerle ölçmektir (ve bunu testle kanıtlamaktır).

Kurulum çıktıları ve test kanıtlarını otel ölçüm projesi bağlamında özetleyen proof kartı
Kurulum çıktıları ve test kanıtlarını otel ölçüm projesi bağlamında özetleyen proof kartı

Bir Sonraki Adım

Attribution sapması yaşayan oteller ve ölçümden sorumlu ekipler için, doğru domain + event tasarımını netleştirir.

Sık Sorulan Sorular

Cross-domain takip nedir, otellerde neden gerekli?
Cross-domain takip, ana sitenizden rezervasyon motoruna geçişte oturumun bölünmesini engeller. Otellerde rezervasyon motoru ayrı domaindeyse, dönüşümün doğru kaynağa yazılması için kritik bir ölçüm katmanıdır.
Rezervasyon motoru farklı bir domainde ise dönüşüm nasıl ölçülür?
GA4’te cross-domain domain listesini tanımlayıp aynı tag ID ile ölçüm yaptığınızdan emin olursunuz. Ardından thank you sayfasında veya “booking_complete” event’inde tetikleme yaparak dönüşümü GA4’e kaydedersiniz.
Thank you sayfası event’i nasıl kurulur?
Thank you URL’si sabitse GTM’de page view trigger ile GA4 event tag gönderirsiniz. Thank you sayfası yoksa dataLayer custom event ile tetikleyip GA4’e parametrelerle gönderirsiniz.
Rezervasyon tutarı (gelir) event’e nasıl eklenir?
Event içinde en az transaction_id, value ve currency parametrelerini gönderin; aksi halde revenue eksik görünebilir. Daha sonra nights, room_type gibi segment parametrelerini ekleyebilirsiniz.
Cross-domain yanlış kurulursa ne olur?
Oturum bölünmesi ve self-referral sorunları nedeniyle attribution sapar; direct/other trafik şişebilir. Bu da kampanya optimizasyon kararlarını yanlış yönlendirir, bu yüzden test süreci kritiktir.
Otel Rezervasyon Motoru İçin Cross-Domain Takip ve Thank You Event Kurulumu | DGTLFACE