Tích hợp GTM Analytics
Bạn có thể kết nối bất kỳ container Google Tag Manager (GTM) nào với Wink bằng cách nhập GTM Container ID của nó vào cổng thông tin Wink. Khi đã kết nối, container của bạn sẽ tự động tải cho cơ sở lưu trú của bạn và đọc trực tiếp các sự kiện đặt phòng của Wink — bao phủ toàn bộ hành trình khách từ tìm kiếm đến khi hoàn tất đặt phòng. Một trường hợp sử dụng phổ biến là container Sojern cho tiếp thị lại và quảng cáo, nhưng bất kỳ container GTM nào cũng hoạt động tương tự.
Những việc bạn cần làm
Phần tiêu đề “Những việc bạn cần làm”-
Lấy GTM Container ID của bạn
Lấy GTM Container ID (định dạng
GTM-XXXXXXX). Nếu nó đến từ đối tác như Sojern, hãy yêu cầu GTM Container ID cụ thể — nó khác với pixel hoặc tag ID. -
Nhập vào cổng thông tin Wink
Đăng nhập vào app.wink.travel, chọn tài khoản của bạn và vào tab Customizations. Dán GTM Container ID vào trường GTM và lưu lại. Tích hợp của bạn giờ đã hoạt động.
-
(Tùy chọn) Thêm GA4 Measurement ID + API Secret cho mua hàng phía máy chủ
Container GTM chạy hoàn toàn trong trình duyệt của khách, nên một đặt phòng hoàn tất có thể bị bỏ lỡ nếu khách đóng tab trong lúc chuyển hướng thanh toán. Nếu container của bạn tải một thuộc tính GA4 và bạn muốn ghi nhận đặt phòng hoàn tất một cách đáng tin cậy, hãy nhập thêm Measurement ID và Measurement Protocol API secret của GA4 đó trong phần GTM. Wink sẽ gửi sự kiện
purchasecho thuộc tính đó phía máy chủ, chính xác như mô tả trong hướng dẫn Tích hợp GA4 Analytics. Để trống nếu bạn chỉ cần theo dõi trong trình duyệt. -
Xác nhận với nhà cung cấp của bạn
Nếu container của bạn đến từ đối tác như Sojern, hãy thông báo với quản lý tài khoản rằng tích hợp đã hoạt động. Họ có thể kiểm tra từ phía họ rằng các tag đang kích hoạt đúng trên
wink.travelcho cơ sở lưu trú của bạn và dữ liệu đang chảy vào tài khoản của bạn.
Wink làm gì ở phía chúng tôi
Phần tiêu đề “Wink làm gì ở phía chúng tôi”Để minh bạch, đây là những gì Wink cấu hình để tích hợp này hoạt động:
- Có trường GTM Container ID trong tab Customizations của cổng thông tin Wink. Khi bạn nhập Container ID, Wink kiểm tra định dạng (
GTM-XXXXXXX) và lưu trữ an toàn theo cơ sở lưu trú của bạn. - Trên mọi trang nơi cơ sở lưu trú của bạn hoạt động trên Wink, container của bạn được chèn trực tiếp vào trang — dùng chung
window.dataLayercủa Wink — nên nó tải cùng container của Wink mà không cần cấu hình thêm. Việc này diễn ra tự động, không cần làm việc riêng cho từng cơ sở lưu trú từ đội Wink. - Container của bạn được tải không đồng bộ, nên không ảnh hưởng đến hiệu suất tải trang cho khách.
- Theo dõi của Wink và container của bạn chạy song song, đọc từ cùng
dataLayerchia sẻ. Mỗi sự kiện đặt phòng Wink theo dõi đều có sẵn đồng thời cho container của bạn. - Khi cơ sở lưu trú của bạn không được xem — ví dụ khi khách đang duyệt khách sạn khác trên Wink — container của bạn không được tải, nên chỉ nhận dữ liệu liên quan đến cơ sở lưu trú của bạn.
- Nếu bạn cung cấp GA4 Measurement ID + API secret (bước 3 ở trên), sự kiện
purchasecho các đặt phòng hoàn tất cũng được gửi phía máy chủ qua GA4 Measurement Protocol, nên một giao dịch được ghi nhận ngay cả khi khách không quay lại trang xác nhận.
Tham chiếu DataLayer
Phần tiêu đề “Tham chiếu DataLayer”Wink đẩy các sự kiện tương thích GA4 vào dataLayer xuyên suốt hành trình khách. Container GTM của bạn đọc từ cùng dataLayer chia sẻ này, nên bất kỳ trigger hoặc biến nào bạn cấu hình đều có quyền truy cập vào tất cả thuộc tính mô tả dưới đây.
Mỗi sự kiện theo cấu trúc GA4 Enhanced Ecommerce tiêu chuẩn: một chuỗi event cấp cao và một đối tượng ecommerce. Trước mỗi lần đẩy, Wink xóa payload ecommerce trước đó để tránh dữ liệu cũ ảnh hưởng đến trigger mới.
Sự kiện hành trình đặt phòng
Phần tiêu đề “Sự kiện hành trình đặt phòng”Các sự kiện này tự động kích hoạt khi khách di chuyển qua phễu đặt phòng. Cấu hình trigger GTM của bạn là trigger Custom Event khớp với tên sự kiện bên dưới.
| Bước | Sự kiện | Khi nào kích hoạt |
|---|---|---|
| 1 | view_item_list | Lưới hoặc danh sách kho khách sạn tải |
| 2 | view_item | Khách xem trang cơ sở lưu trú cụ thể |
| 3 | add_to_cart | Khách thêm phòng vào giỏ hàng |
| 4 | begin_checkout | Trang thanh toán / checkout tải |
| 5 | add_payment_info | Khách chọn phương thức thanh toán |
| 6 | login | Khách xác thực qua SSO |
| 7 | purchase | Đặt phòng được xác nhận |
| 8 | refund | Đặt phòng bị hủy |
view_item_list
Phần tiêu đề “view_item_list”Kích hoạt khi lưới hoặc danh sách kho khách sạn được hiển thị.
{ "event": "view_item_list", "ecommerce": { "item_list_id": "featured_hotels", "item_list_name": "Featured Hotels", "items": [ ] }}view_item
Phần tiêu đề “view_item”Kích hoạt khi khách xem một cơ sở lưu trú cụ thể.
{ "event": "view_item", "ecommerce": { "currency": "USD", "value": 299.00, "items": [ ] }}add_to_cart
Phần tiêu đề “add_to_cart”Kích hoạt khi khách thêm phòng vào giỏ hàng.
{ "event": "add_to_cart", "ecommerce": { "currency": "USD", "value": 299.00, "items": [ ] }}begin_checkout
Phần tiêu đề “begin_checkout”Kích hoạt khi trang thanh toán / checkout tải.
{ "event": "begin_checkout", "ecommerce": { "currency": "USD", "value": 299.00, "coupon": "SUMMER10", "items": [ ] }}coupon chỉ xuất hiện khi mã giảm giá được áp dụng.
add_payment_info
Phần tiêu đề “add_payment_info”Kích hoạt khi khách chọn hoặc xác nhận phương thức thanh toán.
{ "event": "add_payment_info", "ecommerce": { "currency": "USD", "value": 299.00, "coupon": "SUMMER10", "payment_type": "STRIPE", "items": [ ] }}payment_type được lấy từ loại nhà cung cấp thanh toán. coupon chỉ xuất hiện khi mã giảm giá được áp dụng.
login
Phần tiêu đề “login”Kích hoạt khi khách xác thực qua đăng nhập một lần (SSO).
{ "event": "login", "ecommerce": { "method": "IAM" }}purchase
Phần tiêu đề “purchase”Kích hoạt khi đặt phòng được xác nhận.
{ "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 là mã định danh hợp đồng đặt phòng duy nhất. coupon, shipping, và tax chỉ xuất hiện khi có áp dụng.
refund
Phần tiêu đề “refund”Kích hoạt khi đặt phòng bị hủy.
{ "event": "refund", "ecommerce": { "currency": "USD", "transaction_id": "bc-a1b2c3d4", "value": 299.00, "coupon": "SUMMER10", "shipping": 0.00, "tax": 0.00, "items": [ ] }}transaction_id trùng với sự kiện purchase của cùng đặt phòng. coupon, shipping, và tax chỉ xuất hiện khi có áp dụng.
Thuộc tính mục
Phần tiêu đề “Thuộc tính mục”Tất cả sự kiện có mảng items dùng chung cấu trúc mục. Mỗi thuộc tính là tùy chọn trừ khi được đánh dấu bắt buộc.
Trường GA4 tiêu chuẩn
Phần tiêu đề “Trường GA4 tiêu chuẩn”Các trường này được GA4 hiểu sẵn và xuất hiện trong báo cáo ecommerce tiêu chuẩn mà không cần cấu hình thêm.
| Thuộc tính | Kiểu | Bắt buộc | Mô tả |
|---|---|---|---|
item_id | chuỗi | Có | Mã định danh duy nhất cho phòng hoặc sản phẩm |
item_name | chuỗi | — | Tên phòng hoặc sản phẩm |
affiliation | chuỗi | — | Tên đối tác hoặc người bán |
coupon | chuỗi | — | Mã giảm giá áp dụng cho mục |
currency | chuỗi | — | Mã tiền tệ ISO 4217 (ví dụ USD) |
creative_name | chuỗi | — | Tên sáng tạo dùng trong khuyến mãi |
creative_slot | chuỗi | — | Vị trí slot của sáng tạo khuyến mãi |
discount | số | — | Số tiền giảm giá áp dụng |
index | số | — | Vị trí trong danh sách (bắt đầu từ 1) |
item_brand | chuỗi | — | Tên khách sạn hoặc thương hiệu |
item_category | chuỗi | — | Loại sản phẩm — ví dụ GUEST_ROOM, ACTIVITY, ATTRACTION, MEETING_ROOM, RESTAURANT, SPA |
item_list_id | chuỗi | — | Mã định danh danh sách chứa mục này |
item_list_name | chuỗi | — | Tên hiển thị danh sách |
location_id | chuỗi | — | Tọa độ địa lý của cơ sở lưu trú |
price | số | — | Giá đơn vị |
promotion_id | chuỗi | — | Mã định danh khuyến mãi |
promotion_name | chuỗi | — | Tên hiển thị khuyến mãi |
quantity | số | — | Số lượng (mặc định 1) |
Tham số tùy chỉnh theo mục
Phần tiêu đề “Tham số tùy chỉnh theo mục”Các tham số này mang ngữ cảnh đặt phòng đặc thù của Wink. GA4 không tự động hiển thị trong báo cáo — bạn phải đăng ký từng tham số này làm custom dimension theo mục trong thuộc tính GA4 của bạn trước khi nó xuất hiện trong báo cáo hoặc phân tích. Xem phần Custom Dimensions in GA4 bên dưới để biết hướng dẫn.
| Thuộc tính | Kiểu | Mô tả |
|---|---|---|
property_id | chuỗi | Mã định danh cơ sở lưu trú Wink |
property_name | chuỗi | Tên hiển thị cơ sở lưu trú |
property_brand | chuỗi | Thương hiệu cơ sở lưu trú thuộc về |
property_chain | chuỗi | Chuỗi khách sạn cơ sở lưu trú thuộc về |
property_url_name | chuỗi | Slug thân thiện URL cho cơ sở lưu trú |
city_name | chuỗi | Thành phố nơi cơ sở lưu trú tọa lạc |
country_code | chuỗi | Mã quốc gia ISO 3166-1 alpha-2 |
start_date | chuỗi | Ngày nhận phòng theo định dạng YYYY-MM-DD |
end_date | chuỗi | Ngày trả phòng theo định dạng YYYY-MM-DD |
num_adults | số | Số người lớn trong đặt phòng |
num_children | số | Số trẻ em trong đặt phòng |
cancellation_policy | chuỗi | Một trong: Refundable, Non-Refundable, Refundable-With-Restrictions, Non-Refundable-With-Restrictions |
rate_plan_id | chuỗi | Mã định danh kế hoạch giá |
room_rate_id | chuỗi | Mã định danh giá phòng cụ thể |
room_rate_name | chuỗi | Tên hiển thị giá phòng |
num_perks | số | Số ưu đãi kèm theo giá |
room_location | chuỗi | Mô tả vị trí phòng (ví dụ Overwater, Garden) |
room_view | chuỗi | Mô tả tầm nhìn phòng (ví dụ Ocean, City) |
room_classification | chuỗi | Phân loại hoặc hạng phòng (ví dụ Suite, Standard) |
bed_type | chuỗi | Cấu hình giường cho phòng (ví dụ King, Twin) |
Custom Dimensions trong GA4
Phần tiêu đề “Custom Dimensions trong GA4”GA4 bỏ qua các tham số tùy chỉnh theo mục trong báo cáo cho đến khi bạn đăng ký chúng làm custom dimension theo mục. Bạn chỉ cần đăng ký các tham số bạn muốn dùng trong báo cáo — không cần đăng ký tất cả 20 tham số.
-
Mở Custom Definitions
Trong GA4, vào Admin (biểu tượng bánh răng dưới cùng bên trái) → chọn thuộc tính của bạn → Data display → Custom definitions.
-
Tạo custom dimension mới
Nhấn Create custom dimensions.
-
Điền thông tin dimension
- Dimension name — nhãn dễ đọc hiển thị trong báo cáo GA4 (xem bảng bên dưới)
- Scope — chọn Item
- Event parameter — tên tham số chính xác như trong dataLayer (xem bảng bên dưới)
- Description — tùy chọn nhưng nên có
-
Lưu và lặp lại
Nhấn Save, rồi lặp lại cho từng tham số bạn muốn theo dõi.
Dùng bảng sau làm tham khảo khi tạo custom dimension. Giá trị Event parameter phải chính xác — GA4 phân biệt chữ hoa chữ thường.
| Tên dimension | Event parameter | Kiểu |
|---|---|---|
| Property ID | property_id | Văn bản |
| Property name | property_name | Văn bản |
| Property brand | property_brand | Văn bản |
| Property chain | property_chain | Văn bản |
| Property URL name | property_url_name | Văn bản |
| City name | city_name | Văn bản |
| Country code | country_code | Văn bản |
| Check-in date | start_date | Văn bản |
| Check-out date | end_date | Văn bản |
| Number of adults | num_adults | Số |
| Number of children | num_children | Số |
| Cancellation policy | cancellation_policy | Văn bản |
| Rate plan ID | rate_plan_id | Văn bản |
| Room rate ID | room_rate_id | Văn bản |
| Room rate name | room_rate_name | Văn bản |
| Number of perks | num_perks | Số |
| Room location | room_location | Văn bản |
| Room view | room_view | Văn bản |
| Room classification | room_classification | Văn bản |
| Bed type | bed_type | Văn bản |
Các sự kiện bổ sung có sẵn
Phần tiêu đề “Các sự kiện bổ sung có sẵn”Các sự kiện sau có trong dataLayer của Wink nhưng không thuộc phễu đặt phòng tiêu chuẩn. Chúng có thể được kích hoạt bởi các tương tác khác trên nền tảng.
add_to_wishlist
Phần tiêu đề “add_to_wishlist”{ "event": "add_to_wishlist", "ecommerce": { "currency": "USD", "value": 299.00, "items": [ ] }}remove_from_cart
Phần tiêu đề “remove_from_cart”{ "event": "remove_from_cart", "ecommerce": { "currency": "USD", "value": 299.00, "items": [ ] }}select_item
Phần tiêu đề “select_item”{ "event": "select_item", "ecommerce": { "item_list_id": "featured_hotels", "item_list_name": "Featured Hotels", "items": [ ] }}view_cart
Phần tiêu đề “view_cart”{ "event": "view_cart"}Sự kiện này không kèm payload ecommerce.
view_promotion
Phần tiêu đề “view_promotion”{ "event": "view_promotion", "ecommerce": { "creative_name": "Summer Banner", "creative_slot": "hero", "promotion_id": "promo_001", "promotion_name": "Summer Sale", "items": [ ] }}select_promotion
Phần tiêu đề “select_promotion”{ "event": "select_promotion", "ecommerce": { "creative_name": "Summer Banner", "creative_slot": "hero", "promotion_id": "promo_001", "promotion_name": "Summer Sale", "items": [ ] }}search
Phần tiêu đề “search”{ "event": "search", "ecommerce": { "search_term": "beachfront resort" }}select_content
Phần tiêu đề “select_content”{ "event": "select_content", "ecommerce": { "content_type": "hotel", "content_id": "prop_12345" }}share
Phần tiêu đề “share”{ "event": "share", "ecommerce": { "method": "copy_link", "content_type": "hotel", "item_id": "prop_12345" }}sign_up
Phần tiêu đề “sign_up”{ "event": "sign_up", "ecommerce": { "method": "email" }}generate_lead
Phần tiêu đề “generate_lead”{ "event": "generate_lead", "ecommerce": { "currency": "USD", "value": 0.00 }}join_group
Phần tiêu đề “join_group”{ "event": "join_group", "ecommerce": { "group_id": "group_abc" }}earn_virtual_currency
Phần tiêu đề “earn_virtual_currency”{ "event": "earn_virtual_currency", "ecommerce": { "virtual_currency_name": "WinkPoints", "value": 100 }}spend_virtual_currency
Phần tiêu đề “spend_virtual_currency”{ "event": "spend_virtual_currency", "ecommerce": { "virtual_currency_name": "WinkPoints", "value": 50, "item_name": "Room Upgrade" }}level_start
Phần tiêu đề “level_start”{ "event": "level_start", "ecommerce": { "level_name": "Gold" }}level_end
Phần tiêu đề “level_end”{ "event": "level_end", "ecommerce": { "level_name": "Gold", "success": true }}level_up
Phần tiêu đề “level_up”{ "event": "level_up", "ecommerce": { "level": 2, "character": "traveler" }}post_score
Phần tiêu đề “post_score”{ "event": "post_score", "ecommerce": { "score": 980, "level": 2, "character": "traveler" }}unlock_achievement
Phần tiêu đề “unlock_achievement”{ "event": "unlock_achievement", "ecommerce": { "achievement_id": "first_booking" }}tutorial_begin
Phần tiêu đề “tutorial_begin”{ "event": "tutorial_begin", "ecommerce": {}}tutorial_complete
Phần tiêu đề “tutorial_complete”{ "event": "tutorial_complete", "ecommerce": {}}virtualPageView
Phần tiêu đề “virtualPageView”Đây là sự kiện tùy chỉnh của Wink — không thuộc bộ sự kiện GA4 tiêu chuẩn. Nó được đẩy trên mỗi lần chuyển trang và mang ngữ cảnh thiết bị và phiên. Nó không bao gồm đối tượng 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"}| Thuộc tính | Mô tả |
|---|---|
device | Loại thiết bị phát hiện — Desktop, Android, iPhone, iPad hoặc tương tự |
deviceAgent | Chuỗi user agent thô |
os | Hệ điều hành phát hiện — Windows, MacOS, Linux, UNIX |
path | Đường dẫn trang hiện tại |
title | Tiêu đề trang hiện tại |
userId | Mã định danh người dùng đã xác thực (bỏ qua nếu chưa đăng nhập) |
startDate | Ngày nhận phòng từ phiên tìm kiếm hiện tại |
endDate | Ngày trả phòng từ phiên tìm kiếm hiện tại |
guests | Số khách từ phiên tìm kiếm hiện tại |
rooms | Số phòng từ phiên tìm kiếm hiện tại |
