콘텐츠로 이동

GTM 애널리틱스 통합

Wink 포털에 GTM 컨테이너 ID를 입력하여 어떤 Google Tag Manager(GTM) 컨테이너든 Wink에 연결할 수 있습니다. 연결되면 해당 컨테이너가 귀하의 숙소에 자동으로 로드되어 Wink의 예약 이벤트를 직접 읽습니다 — 검색부터 예약 완료까지 전체 고객 여정을 포괄합니다. 일반적인 사용 사례는 리타겟팅 및 광고를 위한 Sojern 컨테이너이지만, 모든 GTM 컨테이너가 동일하게 작동합니다.


  1. GTM 컨테이너 ID 받기

    GTM 컨테이너 ID(형식 GTM-XXXXXXX)를 받으세요. Sojern과 같은 파트너에서 제공된 경우, 픽셀 또는 태그 ID와 다르므로 GTM 컨테이너 ID를 구체적으로 요청하세요.

  2. Wink 포털에 입력하기

    app.wink.travel에 로그인하여 계정을 선택한 후 Customizations 탭으로 이동하세요. GTM 필드에 GTM 컨테이너 ID를 붙여넣고 저장하세요. 통합이 활성화됩니다.

  3. (선택 사항) 서버 측 구매를 위한 GA4 측정 ID + API 비밀 추가

    GTM 컨테이너는 전적으로 고객의 브라우저에서 실행되므로, 결제 리디렉션 중 탭을 닫으면 완료된 예약이 누락될 수 있습니다. 컨테이너가 GA4 속성을 로드하고 완료된 예약을 신뢰성 있게 기록하려면, GTM 섹션에 해당 GA4의 측정 ID측정 프로토콜 API 비밀도 입력하세요. 그러면 Wink가 GA4 애널리틱스 통합 가이드에 설명된 대로 purchase 이벤트를 서버 측으로 전송합니다. 브라우저 내 추적만 필요하면 이 항목은 비워 두세요.

  4. 제공자에게 확인 요청

    컨테이너가 Sojern과 같은 파트너에서 제공된 경우, 계정 관리자에게 통합이 활성화되었음을 알리세요. 그들은 귀하의 숙소에 대해 wink.travel에서 태그가 올바르게 작동하는지 확인하고 데이터가 계정으로 흐르는지 검증할 수 있습니다.


투명성을 위해 Wink가 이 통합을 위해 구성하는 내용을 안내합니다:

  • GTM 컨테이너 ID 필드가 Wink 포털의 Customizations 탭에 제공됩니다. 컨테이너 ID를 입력하면 Wink가 형식(GTM-XXXXXXX)을 검증하고 귀하의 숙소에 안전하게 저장합니다.
  • 귀하의 숙소가 활성화된 모든 페이지에서 Wink는 귀하의 컨테이너를 페이지에 직접 삽입하며, Wink 자체의 window.dataLayer를 공유하여 Wink 자체 컨테이너와 함께 추가 설정 없이 자동으로 로드됩니다. 이 작업은 Wink 팀의 별도 작업 없이 자동으로 이루어집니다.
  • 컨테이너는 비동기적으로 로드되어 고객의 페이지 로드 성능에 영향을 주지 않습니다.
  • Wink의 자체 추적과 귀하의 컨테이너가 병행 실행되며, 동일한 공유 dataLayer를 읽습니다. Wink가 추적하는 모든 예약 이벤트가 동시에 귀하의 컨테이너에 제공됩니다.
  • 숙소가 조회되지 않을 때 — 예를 들어 고객이 Wink에서 다른 호텔을 탐색할 때 — 귀하의 컨테이너는 로드되지 않아 해당 숙소 관련 데이터만 수신합니다.
  • GA4 측정 ID + API 비밀을 제공한 경우(위 3단계), 완료된 예약의 purchase 이벤트가 GA4 측정 프로토콜을 통해 서버 측으로 추가 전송되어, 고객이 확인 페이지로 돌아오지 않아도 판매가 기록됩니다.

Wink는 고객 여정 전반에 걸쳐 GA4 호환 이벤트를 dataLayer에 푸시합니다. 귀하의 GTM 컨테이너는 동일한 공유 dataLayer를 읽으므로, 구성하는 모든 트리거나 변수는 아래 설명된 모든 속성에 접근할 수 있습니다.

각 이벤트는 표준 GA4 향상된 전자상거래 구조를 따릅니다: 최상위 event 문자열과 ecommerce 객체. 푸시하기 전에 Wink는 이전 전자상거래 페이로드를 지워 이전 데이터가 새 트리거에 섞이지 않도록 합니다.


고객이 예약 퍼널을 진행할 때 자동으로 발생하는 이벤트입니다. GTM 트리거를 아래 이벤트 이름과 일치하는 사용자 정의 이벤트 트리거로 구성하세요.

단계이벤트발생 시점
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은 할인 코드가 적용된 경우에만 포함됩니다.


고객이 싱글 사인온(SSO)으로 인증할 때 발생합니다.

{
"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에서 기본적으로 인식하며 추가 구성 없이 표준 전자상거래 보고서에 나타납니다.

속성유형필수설명
item_idstring객실 또는 상품의 고유 식별자
item_namestring객실 또는 상품 이름
affiliationstring제휴사 또는 판매자 이름
couponstring아이템에 적용된 쿠폰 코드
currencystringISO 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 속성에서 각 매개변수를 아이템 범위 맞춤 측정기준으로 등록해야 합니다. 설정 방법은 아래 GA4 맞춤 측정기준 참조.

속성유형설명
property_idstringWink 숙소 식별자
property_namestring숙소 표시 이름
property_brandstring숙소가 속한 브랜드
property_chainstring숙소가 속한 체인
property_url_namestring숙소 URL 친화적 슬러그
city_namestring숙소가 위치한 도시
country_codestringISO 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. 맞춤 정의 열기

    GA4에서 관리자(왼쪽 하단 톱니바퀴 아이콘) → 속성 선택 → 데이터 표시맞춤 정의로 이동합니다.

  2. 새 맞춤 측정기준 생성

    맞춤 측정기준 생성을 클릭합니다.

  3. 측정기준 세부정보 입력

    • 측정기준 이름 — GA4 보고서에 표시될 사람이 읽기 쉬운 이름 (아래 표 참조)
    • 범위아이템 선택
    • 이벤트 매개변수 — dataLayer에 나타나는 정확한 매개변수 이름 (아래 표 참조)
    • 설명 — 선택 사항이지만 권장
  4. 저장 및 반복

    저장을 클릭한 후 추적할 각 매개변수에 대해 반복합니다.

맞춤 측정기준 생성 시 아래 표를 참조하세요. 이벤트 매개변수 값은 대소문자까지 정확히 일치해야 합니다.

측정기준 이름이벤트 매개변수유형
숙소 IDproperty_id텍스트
숙소 이름property_name텍스트
숙소 브랜드property_brand텍스트
숙소 체인property_chain텍스트
숙소 URL 이름property_url_name텍스트
도시 이름city_name텍스트
국가 코드country_code텍스트
체크인 날짜start_date텍스트
체크아웃 날짜end_date텍스트
성인 수num_adults숫자
아동 수num_children숫자
취소 정책cancellation_policy텍스트
요금제 IDrate_plan_id텍스트
객실 요금 IDroom_rate_id텍스트
객실 요금 이름room_rate_name텍스트
혜택 수num_perks숫자
객실 위치room_location텍스트
객실 전망room_view텍스트
객실 분류room_classification텍스트
침대 유형bed_type텍스트

아래 이벤트들은 Wink dataLayer에 존재하지만 표준 예약 퍼널에는 포함되지 않습니다. 플랫폼 내 다른 상호작용에 의해 발생할 수 있습니다.

{
"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원시 사용자 에이전트 문자열
os감지된 운영체제 — Windows, MacOS, Linux, UNIX
path현재 페이지 경로
title현재 페이지 제목
userId인증된 사용자 식별자 (로그인하지 않은 경우 생략)
startDate현재 검색 세션의 체크인 날짜
endDate현재 검색 세션의 체크아웃 날짜
guests현재 검색 세션의 투숙객 수
rooms현재 검색 세션의 객실 수