ข้ามไปยังเนื้อหา

การผสานรวม GTM Analytics

คุณสามารถเชื่อมต่อ คอนเทนเนอร์ Google Tag Manager (GTM) ใดก็ได้ กับ Wink โดยการป้อน GTM Container ID ในพอร์ทัล Wink เมื่อเชื่อมต่อแล้ว คอนเทนเนอร์ของคุณจะโหลดโดยอัตโนมัติสำหรับที่พักของคุณและอ่านเหตุการณ์การจองของ Wink โดยตรง — ครอบคลุมเส้นทางของแขกตั้งแต่การค้นหาจนถึงการจองที่เสร็จสมบูรณ์ กรณีการใช้งานทั่วไปคือคอนเทนเนอร์ Sojern สำหรับรีทาร์เก็ตติ้งและโฆษณา แต่คอนเทนเนอร์ GTM ใด ๆ ก็ทำงานในลักษณะเดียวกัน


  1. รับ GTM Container ID ของคุณ

    รับ GTM Container ID ของคุณ (รูปแบบ GTM-XXXXXXX) หากมาจากพันธมิตร เช่น Sojern โปรดขอ GTM Container ID โดยเฉพาะ — ซึ่งแตกต่างจากพิกเซลหรือรหัสแท็ก

  2. ป้อนในพอร์ทัล Wink

    เข้าสู่ระบบที่ app.wink.travel เลือกบัญชีของคุณ และไปที่แท็บ Customizations วาง GTM Container ID ของคุณในช่อง GTM แล้วบันทึก การผสานรวมของคุณจะเริ่มทำงานทันที

  3. (ไม่บังคับ) เพิ่ม GA4 Measurement ID + API Secret สำหรับการซื้อแบบฝั่งเซิร์ฟเวอร์

    คอนเทนเนอร์ GTM ทำงานทั้งหมดในเบราว์เซอร์ของแขก ดังนั้นการจองที่เสร็จสมบูรณ์อาจพลาดได้หากแขกปิดแท็บระหว่างการเปลี่ยนเส้นทางการชำระเงิน หากคอนเทนเนอร์ของคุณโหลด ทรัพย์สิน GA4 และคุณต้องการบันทึกการจองที่เสร็จสมบูรณ์อย่างน่าเชื่อถือ ให้ป้อน Measurement ID และ Measurement Protocol API secret ของ GA4 นั้นในส่วน GTM ด้วย Wink จะส่งเหตุการณ์ purchase สำหรับทรัพย์สินนั้น แบบฝั่งเซิร์ฟเวอร์ ตามที่อธิบายไว้ในคู่มือ GA4 Analytics Integration หากคุณต้องการเพียงการติดตามในเบราว์เซอร์ ให้เว้นว่างไว้

  4. ยืนยันกับผู้ให้บริการของคุณ

    หากคอนเทนเนอร์ของคุณมาจากพันธมิตร เช่น Sojern แจ้งผู้จัดการบัญชีของคุณว่าการผสานรวมเปิดใช้งานแล้ว พวกเขาสามารถตรวจสอบจากฝั่งของตนว่าแท็กทำงานถูกต้องบน wink.travel สำหรับที่พักของคุณและข้อมูลไหลเข้าสู่บัญชีของคุณ


เพื่อความโปร่งใส นี่คือสิ่งที่ Wink กำหนดค่าเพื่อให้การผสานรวมนี้ทำงาน:

  • มีช่อง GTM Container ID ในแท็บ Customizations ของพอร์ทัล Wink ของคุณ เมื่อคุณป้อน Container ID Wink จะตรวจสอบรูปแบบ (GTM-XXXXXXX) และจัดเก็บอย่างปลอดภัยกับที่พักของคุณ
  • ในทุกหน้าที่ที่ที่พักของคุณเปิดใช้งาน บน Wink คอนเทนเนอร์ของคุณจะถูกฝังโดยตรงในหน้า — ใช้ window.dataLayer ของ Wink ร่วมกัน — เพื่อให้โหลดพร้อมกับคอนเทนเนอร์ของ Wink โดยไม่มีการพึ่งพาการกำหนดค่าเพิ่มเติมใด ๆ สิ่งนี้เกิดขึ้นโดยอัตโนมัติ โดยไม่ต้องมีงานเฉพาะสำหรับแต่ละที่พักจากทีม Wink
  • คอนเทนเนอร์ของคุณโหลดแบบอะซิงโครนัส ดังนั้นจึงไม่ส่งผลกระทบต่อประสิทธิภาพการโหลดหน้าสำหรับแขกของคุณ
  • การติดตามของ Wink และคอนเทนเนอร์ของคุณทำงานคู่ขนานกัน โดยอ่านจาก dataLayer ร่วมกันเดียวกัน เหตุการณ์การจองทุกเหตุการณ์ที่ Wink ติดตามจะพร้อมใช้งานสำหรับคอนเทนเนอร์ของคุณในเวลาเดียวกัน
  • เมื่อที่พักของคุณไม่ได้ถูกดู — เช่น เมื่อแขกกำลังเรียกดูโรงแรมอื่นบน Wink — คอนเทนเนอร์ของคุณจะไม่ถูกโหลด ดังนั้นจะได้รับข้อมูลที่เกี่ยวข้องกับที่พักของคุณเท่านั้น
  • หากคุณให้ GA4 Measurement ID + API secret (ขั้นตอนที่ 3 ข้างต้น) เหตุการณ์ purchase สำหรับการจองที่เสร็จสมบูรณ์จะถูกส่งเพิ่มเติม แบบฝั่งเซิร์ฟเวอร์ ผ่าน GA4 Measurement Protocol ดังนั้นการขายจะถูกบันทึกแม้แขกจะไม่กลับไปยังหน้าการยืนยัน

Wink ดันเหตุการณ์ที่เข้ากันได้กับ GA4 ไปยัง dataLayer ตลอดเส้นทางของแขก คอนเทนเนอร์ GTM ของคุณอ่านจาก dataLayer ร่วมกันนี้ ดังนั้นทริกเกอร์หรือค่าตัวแปรใด ๆ ที่คุณกำหนดค่าจะเข้าถึงคุณสมบัติทั้งหมดที่อธิบายไว้ด้านล่าง

แต่ละเหตุการณ์เป็นไปตามโครงสร้าง GA4 Enhanced Ecommerce มาตรฐาน: สตริง event ระดับบนสุดและอ็อบเจ็กต์ ecommerce ก่อนการดันแต่ละครั้ง Wink จะล้างข้อมูล ecommerce ก่อนหน้าเพื่อป้องกันข้อมูลเก่ารั่วไหลไปยังทริกเกอร์ใหม่


เหตุการณ์เหล่านี้จะทำงานโดยอัตโนมัติเมื่อแขกเคลื่อนผ่านช่องทางการจอง กำหนดค่าทริกเกอร์ GTM ของคุณเป็นทริกเกอร์ Custom Event ที่ตรงกับชื่อเหตุการณ์ด้านล่าง

ขั้นตอนเหตุการณ์เมื่อทำงาน
1view_item_listโหลดกริดหรือรายการสินค้าของโรงแรม
2view_itemแขกดูหน้าที่พักเฉพาะ
3add_to_cartแขกเพิ่มห้องพักลงในรถเข็น
4begin_checkoutโหลดหน้าชำระเงิน/เช็คเอาต์
5add_payment_infoแขกเลือกวิธีชำระเงิน
6loginแขกยืนยันตัวตนผ่าน SSO
7purchaseการจองได้รับการยืนยัน
8refundการจองถูกยกเลิก

ทำงานเมื่อกริดหรือรายการสินค้าของโรงแรมถูกแสดงผล

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

ทำงานเมื่อแขกดูที่พักเฉพาะ

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

ทำงานเมื่อแขกเพิ่มห้องพักลงในรถเข็น

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

ทำงานเมื่อโหลดหน้าชำระเงิน/เช็คเอาต์

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

coupon จะมีเฉพาะเมื่อมีการใช้รหัสส่วนลด


ทำงานเมื่อแขกเลือกหรือยืนยันวิธีชำระเงิน

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

payment_type จะถูกเติมจากประเภทผู้รับชำระเงิน coupon จะมีเฉพาะเมื่อมีการใช้รหัสส่วนลด


ทำงานเมื่อแขกยืนยันตัวตนผ่าน single sign-on

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

ทำงานเมื่อการจองได้รับการยืนยัน

{
"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 คือรหัสสัญญาการจองที่ไม่ซ้ำกัน coupon, shipping และ tax จะมีเฉพาะเมื่อใช้ได้


ทำงานเมื่อการจองถูกยกเลิก

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

transaction_id ตรงกับเหตุการณ์ purchase สำหรับการจองเดียวกัน coupon, shipping และ tax จะมีเฉพาะเมื่อใช้ได้


เหตุการณ์ทั้งหมดที่มีอาร์เรย์ items ใช้สคีมารายการเดียวกัน ทุกคุณสมบัติเป็นทางเลือก ยกเว้นที่ระบุว่าจำเป็น

ฟิลด์เหล่านี้ GA4 เข้าใจโดยตรงและปรากฏในรายงาน ecommerce มาตรฐานโดยไม่ต้องกำหนดค่าเพิ่มเติม

คุณสมบัติประเภทจำเป็นคำอธิบาย
item_idstringใช่ตัวระบุเฉพาะสำหรับห้องพักหรือสินค้า
item_namestringชื่อของห้องพักหรือสินค้า
affiliationstringชื่อพันธมิตรหรือผู้ขาย
couponstringรหัสคูปองที่ใช้กับรายการ
currencystringรหัสสกุลเงิน ISO 4217 (เช่น USD)
creative_namestringชื่อครีเอทีฟที่ใช้ในโปรโมชั่น
creative_slotstringตำแหน่งช่องของครีเอทีฟโปรโมชั่น
discountnumberจำนวนส่วนลดที่ใช้
indexnumberตำแหน่งในรายการ (เริ่มที่ 1)
item_brandstringชื่อโรงแรมหรือแบรนด์
item_categorystringประเภทสินค้า — เช่น GUEST_ROOM, ACTIVITY, ATTRACTION, MEETING_ROOM, RESTAURANT, SPA
item_list_idstringตัวระบุของรายการที่รายการนี้เป็นส่วนหนึ่ง
item_list_namestringชื่อแสดงของรายการ
location_idstringพิกัดทางภูมิศาสตร์ของที่พัก
pricenumberราคาต่อหน่วย
promotion_idstringตัวระบุของโปรโมชั่น
promotion_namestringชื่อแสดงของโปรโมชั่น
quantitynumberจำนวน (ค่าเริ่มต้นเป็น 1)

พารามิเตอร์เหล่านี้บรรจุบริบทการจองเฉพาะของ Wink GA4 จะไม่แสดงโดยอัตโนมัติในรายงาน — คุณต้องลงทะเบียนแต่ละพารามิเตอร์เป็น มิติแบบกำหนดเองที่มีขอบเขตรายการ ในทรัพย์สิน GA4 ของคุณก่อนที่จะปรากฏในรายงานหรือการสำรวจ ดูหัวข้อ Custom Dimensions in GA4 ด้านล่างสำหรับคำแนะนำการตั้งค่า

คุณสมบัติประเภทคำอธิบาย
property_idstringตัวระบุที่พักของ Wink
property_namestringชื่อแสดงของที่พัก
property_brandstringแบรนด์ที่ที่พักเป็นส่วนหนึ่ง
property_chainstringเครือที่ที่พักเป็นส่วนหนึ่ง
property_url_namestringชื่อสลัก URL ที่เป็นมิตรสำหรับที่พัก
city_namestringชื่อเมืองที่ที่พักตั้งอยู่
country_codestringรหัสประเทศ ISO 3166-1 alpha-2
start_datestringวันที่เช็คอินในรูปแบบ YYYY-MM-DD
end_datestringวันที่เช็คเอาต์ในรูปแบบ YYYY-MM-DD
num_adultsnumberจำนวนผู้ใหญ่ในการจอง
num_childrennumberจำนวนเด็กในการจอง
cancellation_policystringหนึ่งใน: Refundable, Non-Refundable, Refundable-With-Restrictions, Non-Refundable-With-Restrictions
rate_plan_idstringตัวระบุแผนราคา
room_rate_idstringตัวระบุราคาห้องเฉพาะ
room_rate_namestringชื่อแสดงของราคาห้อง
num_perksnumberจำนวนสิทธิพิเศษที่รวมกับราคา
room_locationstringคำอธิบายตำแหน่งของห้อง (เช่น Overwater, Garden)
room_viewstringคำอธิบายวิวของห้อง (เช่น Ocean, City)
room_classificationstringการจัดประเภทหรือระดับของห้อง (เช่น Suite, Standard)
bed_typestringการจัดเตียงของห้อง (เช่น King, Twin)

GA4 จะไม่สนใจพารามิเตอร์รายการแบบกำหนดเองในรายงานจนกว่าคุณจะลงทะเบียนอย่างชัดเจนเป็นมิติแบบกำหนดเองที่มีขอบเขตรายการ คุณต้องลงทะเบียนเฉพาะพารามิเตอร์ที่ต้องการใช้ในรายงาน — ไม่จำเป็นต้องลงทะเบียนทั้งหมด 20 รายการ

  1. เปิด Custom Definitions

    ใน GA4 ไปที่ Admin (ไอคอนเฟืองมุมล่างซ้าย) → เลือกทรัพย์สินของคุณ → Data displayCustom definitions

  2. สร้างมิติแบบกำหนดเองใหม่

    คลิก Create custom dimensions

  3. กรอกรายละเอียดมิติ

    • Dimension name — ป้ายชื่อที่อ่านได้สำหรับมนุษย์ที่ปรากฏในรายงาน GA4 (ดูตารางด้านล่าง)
    • Scope — เลือก Item
    • Event parameter — ชื่อพารามิเตอร์ที่ตรงกับใน dataLayer (ดูตารางด้านล่าง)
    • Description — ไม่บังคับแต่แนะนำให้ใส่
  4. บันทึกและทำซ้ำ

    คลิก Save แล้วทำซ้ำสำหรับแต่ละพารามิเตอร์ที่ต้องการติดตาม

ใช้ตารางต่อไปนี้เป็นข้อมูลอ้างอิงเมื่อสร้างมิติแบบกำหนดเอง ค่า Event parameter ต้องตรงกันอย่างแม่นยำ — GA4 แยกแยะตัวพิมพ์ใหญ่/เล็ก

ชื่อมิติEvent parameterประเภท
Property IDproperty_idข้อความ
Property nameproperty_nameข้อความ
Property brandproperty_brandข้อความ
Property chainproperty_chainข้อความ
Property URL nameproperty_url_nameข้อความ
City namecity_nameข้อความ
Country codecountry_codeข้อความ
Check-in datestart_dateข้อความ
Check-out dateend_dateข้อความ
Number of adultsnum_adultsตัวเลข
Number of childrennum_childrenตัวเลข
Cancellation policycancellation_policyข้อความ
Rate plan IDrate_plan_idข้อความ
Room rate IDroom_rate_idข้อความ
Room rate nameroom_rate_nameข้อความ
Number of perksnum_perksตัวเลข
Room locationroom_locationข้อความ
Room viewroom_viewข้อความ
Room classificationroom_classificationข้อความ
Bed typebed_typeข้อความ

เหตุการณ์ต่อไปนี้มีอยู่ใน dataLayer ของ Wink แต่ไม่ใช่ส่วนหนึ่งของช่องทางการจองมาตรฐาน อาจถูกเรียกใช้โดยปฏิสัมพันธ์อื่น ๆ บนแพลตฟอร์ม

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

เหตุการณ์นี้ไม่มีข้อมูล 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": {}
}

นี่คือเหตุการณ์เฉพาะของ Wink — ไม่ใช่ส่วนหนึ่งของชุดเหตุการณ์ GA4 มาตรฐาน ถูกดันทุกครั้งที่มีการนำทางหน้าและบรรจุบริบทของอุปกรณ์และเซสชัน ไม่มีอ็อบเจ็กต์ 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"
}
คุณสมบัติคำอธิบาย
deviceประเภทอุปกรณ์ที่ตรวจจับได้ — Desktop, Android, iPhone, iPad หรืออื่น ๆ
deviceAgentสตริง user agent ดิบ
osระบบปฏิบัติการที่ตรวจจับได้ — Windows, MacOS, Linux, UNIX
pathเส้นทางหน้าปัจจุบัน
titleชื่อหน้าปัจจุบัน
userIdตัวระบุผู้ใช้ที่ยืนยันตัวตน (ไม่แสดงเมื่อไม่ได้เข้าสู่ระบบ)
startDateวันที่เช็คอินจากเซสชันการค้นหาปัจจุบัน
endDateวันที่เช็คเอาต์จากเซสชันการค้นหาปัจจุบัน
guestsจำนวนแขกจากเซสชันการค้นหาปัจจุบัน
roomsจำนวนห้องจากเซสชันการค้นหาปัจจุบัน