Travel : 여행 및 레저

여행 앱에서 측정을 권장하는 인앱 이벤트 API와 적용 예시를 안내합니다.
속성 중 Key 이름은 가이드에 나와있는 Key 이름을 그대로 사용 해 주세요. (임의로 변경시 대시보드에서 데이터 확인이 어렵습니다. > payment_name , payment_type 등)

결제 수단 등록

결제 수단이 등록 완료된 시점에 아래 코드를 추가합니다.

선택 속성

Key
Value 예시
Type
설명
payment_name
카카오페이
string
결제수단 명칭
payment_type
간편결제
string
결제수단 유형
Java
Kotlin
Swift
Objective-C
Mobile Webview
Website
Flutter
ReactNative
C#
Map<String, Object> eventMap = new HashMap<>();
eventMap.put("event", "w_add_payment_info");
eventMap.put("payment_name", "카카오페이");
eventMap.put("payment_type", "간편결제");
DOT.logEvent(eventMap);
val eventMap = mutableMapOf<String,Any>()
eventMap["event"] = "w_add_payment_info"
eventMap["payment_name"] = "카카오페이"
eventMap["payment_type"] = "간편결제"
DOT.logEvent(eventMap)
let event = NSMutableDictionary()
event["event"] = "w_add_payment_info"
event["payment_name"] = "카카오페이"
event["payment_type"] = "간편결제"
DOT.logEvent(event)
NSMutableDictionary *event = [[NSMutableDictionary alloc] init];
[event setValue:@"w_add_payment_info" forKey:@"event"];
[event setValue:@"카카오페이" forKey:@"payment_name"];
[event setValue:@"간편결제" forKey:@"payment_type"];
[DOT logEvent:event];
<script type="wisetracker/text" id="wiseTracker2">
var event = new Object();
event["event"] = "w_add_payment_info";
event["payment_name"] = "카카오페이";
event["payment_type"] = "간편결제";
DOT.logEvent(event);
</script>
<script type="text/javascript">
var event = new Object();
event["event"] = "w_add_payment_info";
event["payment_name"] = "카카오페이";
event["payment_type"] = "간편결제";
WDOT.logEvent(event);
</script>
// .dart 에서 호출 할 때
Map event = {};
event["event"] = "w_add_payment_info";
event["payment_name"] = "카카오페이";
event["payment_type"] = "간편결제";
DOT.logEvent(event);
// webview 에서 호출 할 때
DotFlutterDataBridge.postMessage(JSON.stringify({
method : "logEvent",
data: {
event : "w_add_payment_info",
payment_name : "카카오페이",
payment_type : "간편결제"
}
}));
// .js 에서 호출 할 때
NativeModules.DotReactBridge.logEvent(JSON.stringify({
event : "w_search",
date_a : "2020-11-01",
date_b : "2020-11-03",
city : "Seoul",
country : "Korea",
hotel_class : "all",
g20 : 412
}));
// webview 에서 호출 할 때
window.ReactNativeWebView.postMessage(JSON.stringify({
method:"logEvent",
data : {
event : "w_search",
date_a : "2020-11-01",
date_b : "2020-11-03",
city : "Seoul",
country : "Korea",
hotel_class : "all",
g20 : 412
}
}));
Dictionary<string, object> eventDic = new Dictionary<string, object>();
eventDic.Add("event", "w_add_payment_info");
eventDic.Add("payment_name", "카카오페이");
eventDic.Add("paynment_type", "간편결제");
DOT.logEvent(eventDic);

검색 - 호텔

검색 완료 화면에 아래 코드를 추가합니다.

선택 속성

Key
Value 예시
Type
설명
date_a
2020-11-01
string
체크인 날짜
date_b
2020-11-03
string
체크아웃 날짜
city
Seoul
string
호텔 소재 도시
country
Korea
string
호텔 소재 국가
hotel_class
all
string
호텔 성급
g20
412
float
검색 결과로 출력된 아이템 개수
Java
Kotlin
Swift
Objective-C
Mobile Webview
Website
Flutter
ReactNative
C#
Map<String, Object> eventMap = new HashMap<>();
eventMap.put("event", "w_search");
eventMap.put("date_a", "2020-11-01");
eventMap.put("date_b", "2020-11-03");
eventMap.put("city", "Seoul");
eventMap.put("country", "Korea");
eventMap.put("hotel_class", "all");
eventMap.put("g20", 412);
DOT.logEvent(eventMap);
val eventMap = mutableMapOf<String,Any>()
eventMap["event"] = "w_search"
eventMap["date_a"] = "2020-11-01"
eventMap["date_b"] = "2020-11-03"
eventMap["city"] = "Seoul"
eventMap["country"] = "Korea"
eventMap["hotel_class"] = "all"
eventMap["g20"] = "412"
DOT.logEvent(eventMap)
let event = NSMutableDictionary()
event["event"] = "w_search"
event["date_a"] = "2020-11-01"
event["date_b"] = "2020-11-03"
event["city"] = "Seoul"
event["country"] = "Korea"
event["hotel_class"] = "all"
event["g20"] = 412
DOT.logEvent(event)
NSMutableDictionary *event = [[NSMutableDictionary alloc] init];
[event setValue:@"w_search" forKey:@"event"];
[event setValue:@"2020-11-01" forKey:@"date_a"];
[event setValue:@"2020-11-03" forKey:@"date_b"];
[event setValue:@"Seoul" forKey:@"city"];
[event setValue:@"Korea" forKey:@"country"];
[event setValue:@"all" forKey:@"hotel_class"];
[event setValue:[NSNumber numberWithInt:412] forKey:@"g20"];
[DOT logEvent:event];
<script type="wisetracker/text" id="wiseTracker2">
var event = new Object();
event["event"] = "w_search";
event["date_a"] = "2020-11-01";
event["date_b"] = "2020-11-03";
event["city"] = "Seoul";
event["country"] = "Korea";
event["hotel_class"] = "all";
event["g20"] = 412;
DOT.logEvent(event);
</script>
<script type="text/javascript">
var event = new Object();
event["event"] = "w_search";
event["date_a"] = "2020-11-01";
event["date_b"] = "2020-11-03";
event["city"] = "Seoul";
event["country"] = "Korea";
event["hotel_class"] = "all";
event["g20"] = 412;
WDOT.logEvent(event);
</script>
// .dart 에서 호출 할 때
Map event = {};
event["event"] = "w_search";
event["date_a"] = "2020-11-01";
event["date_b"] = "2020-11-03";
event["city"] = "Seoul";
event["country"] = "Korea";
event["hotel_class"] = "all";
event["g20"] = 412;
DOT.logEvent(event);
// webview 에서 호출 할 때
DotFlutterDataBridge.postMessage(JSON.stringify({
method : "logEvent",
data: {
event : "w_search",
date_a : "2020-11-01",
date_b : "2020-11-03",
city : "Seoul",
country : "Korea",
hotel_class : "all",
g20 : 412
}
}));
// .js 에서 호출 할 때
NativeModules.DotReactBridge.logEvent(JSON.stringify({
event : "w_search",
date_a : "2020-11-01",
date_b : "2020-11-03",
city : "Seoul",
country : "Korea",
hotel_class : "all",
g20 : 412
}));
// webview 에서 호출 할 때
window.ReactNativeWebView.postMessage(JSON.stringify({
method:"logEvent",
data : {
event : "w_search",
date_a : "2020-11-01",
date_b : "2020-11-03",
city : "Seoul",
country : "Korea",
hotel_class : "all",
g20 : 412
}
}));
Dictionary<string, object> eventDic = new Dictionary<string, object>();
eventDic.Add("event", "w_search");
eventDic.Add("date_a", "2020-11-01");
eventDic.Add("date_b", "2020-11-03");
eventDic.Add("city", "Seoul");
eventDic.Add("country", "Korea");
eventDic.Add("hotel_class", "all");
eventDic.Add("g20", 412);
DOT.logEvent(eventDic);

검색 - 항공권

검색 완료 화면에 아래 코드를 추가합니다.

선택 속성

Key
Value 예시
Type
설명
date_a
2020-11-01
string
출국 날짜
date_b
2020-11-20
string
귀국 날짜
airport_a
인천
string
출발 공항 명칭 또는 코드
airport_b
바르셀로나
string
도착 공항 명칭 또는 코드
g20
72
float
검색 결과로 출력된 아이템 개수
Java
Kotlin
Swift
Objective-C
Mobile Webview
Website
Flutter
ReactNative
C#
Map<String, Object> eventMap = new HashMap<>();
eventMap.put("event", "w_search");
eventMap.put("date_a", "2020-11-01");
eventMap.put("date_b", "2020-11-20");
eventMap.put("airport_a", "인천");
eventMap.put("airport_b", "바르셀로나");
eventMap.put("g20", 72);
DOT.logEvent(eventMap);
val eventMap = mutableMapOf<String,Any>()
eventMap["event"] = "w_search"
eventMap["date_a"] = "2020-11-01"
eventMap["date_b"] = "2020-11-03"
eventMap["airport_a"] = "인천"
eventMap["airport_b"] = "바르셀로나"
eventMap["g20"] = "412"
DOT.logEvent(eventMap)
let event = NSMutableDictionary()
event["event"] = "w_search"
event["date_a"] = "2020-11-01"
event["date_b"] = "2020-11-20"
event["airport_a"] = "인천"
event["airport_b"] = "바르셀로나"
event["g20"] = 72
DOT.logEvent(event)
NSMutableDictionary *event = [[NSMutableDictionary alloc] init];
[event setValue:@"w_search" forKey:@"event"];
[event setValue:@"2020-11-01" forKey:@"date_a"];
[event setValue:@"2020-11-20" forKey:@"date_b"];
[event setValue:@"인천" forKey:@"airport_a"];
[event setValue:@"바르셀로나" forKey:@"airport_b"];
[event setValue:[NSNumber numberWithInt:72] forKey:@"g20"];
[DOT logEvent:event];
<script type="wisetracker/text" id="wiseTracker2">
var event = new Object();
event["event"] = "w_search";
event["date_a"] = "2020-11-01";
event["date_b"] = "2020-11-20";
event["airport_a"] = "인천";
event["airport_b"] = "바르셀로나";
event["g20"] = 72;
DOT.logEvent(event);
</script>
<script type="text/javascript">
var event = new Object();
event["event"] = "w_search";
event["date_a"] = "2020-11-01";
event["date_b"] = "2020-11-20";
event["airport_a"] = "인천";
event["airport_b"] = "바르셀로나";
event["g20"] = 72;
WDOT.logEvent(event);
</script>
// .dart 에서 호출 할 때
Map event = {};
event["event"] = "w_search";
event["date_a"] = "2020-11-01";
event["date_b"] = "2020-11-20";
event["airport_a"] = "인천";
event["airport_b"] = "바르셀로나";
event["g20"] = 72;
DOT.logEvent(event);
// webview 에서 호출 할 때
DotFlutterDataBridge.postMessage(JSON.stringify({
method : "logEvent",
data: {
event : "w_search",
date_a : "2020-11-01",
date_b : "2020-11-20",
city : "인천",
country : "바르셀로나",
g20 : 72
}
}));
// .js 에서 호출 할 때
NativeModules.DotReactBridge.logEvent(JSON.stringify({
event : "w_search",
date_a : "2020-11-01",
date_b : "2020-11-20",
airport_a : "인천",
airport_b : "바르셀로나",
g20 : 72
}));
// webview 에서 호출 할 때
window.ReactNativeWebView.postMessage(JSON.stringify({
method:"logEvent",
data : {
event : "w_search",
date_a : "2020-11-01",
date_b : "2020-11-20",
airport_a : "인천",
airport_b : "바르셀로나",
g20 : 72
}
}));
Dictionary<string, object> eventDic = new Dictionary<string, object>();
eventDic.Add("event", "w_search");
eventDic.Add("date_a", "2020-11-01");
eventDic.Add("date_b", "2020-11-20");
eventDic.Add("airport_a", "인천");
eventDic.Add("airport_b", "바르셀로나");
eventDic.Add("g20", 72);
DOT.logEvent(eventDic);

상품 조회 - 호텔

상품 상세 화면에 아래 코드를 추가합니다.

선택 속성

Key
Value 예시
Type
설명
hotel_id
P388299
string
호텔 고유번호
hotel_name
프레이저 플레이스 센트럴 서울
string
호텔 명칭
hotel_class
4
string
호텔 성급
city
Seoul
string
호텔 소재 도시
country
Korea
string
호텔 소재 국가
Java
Kotlin
Swift
Objective-C
Mobile Webview
Website
Flutter
ReactNative
C#
Map<String, Object> pageMap = new HashMap<>();
pageMap.put("event", "w_view_product");
Map<String, Object> productMap = new HashMap<>();
productMap.put("hotel_id", "P388299");
productMap.put("hotel_name", "프레이저 플레이스 센트럴 서울");
productMap.put("hotel_class", "4");
productMap.put("city", "Seoul");
productMap.put("country", "Korea");
pageMap.put("product", productMap);
DOT.logScreen(pageMap);
val pageMap = mutableMapOf<String,Any>()
pageMap["event"] = "w_view_product"
val productMap = mutableMapOf<String,Any>()
productMap["hotel_id"] = "P388299"
productMap["hotel_name"] = "프레이저 플레이스 센트럴 서울"
productMap["hotel_class"] = "4"
productMap["city"] = "Seoul"
productMap["country"] = "Korea"
pageMap["product"] = productMap
DOT.logScreen(pageMap)
let screen = NSMutableDictionary()
screen["event"] = "w_view_product"
var product : [String: Any] = [:]
product["hotel_id"] = "P388299"
product["hotel_name"] = "프레이저 플레이스 센트럴 서울"
product["hotel_class"] = "4"
product["city"] = "Seoul"
product["country"] = "Korea"
screen["product"] = product
DOT.logScreen(screen)
NSMutableDictionary *screen = [[NSMutableDictionary alloc] init];
[screen setValue:@"w_view_product" forKey:@"event"];
NSMutableDictionary *product = [[NSMutableDictionary alloc] init];
[product setValue:@"P388299" forKey:@"hotel_id"];
[product setValue:@"프레이저 플레이스 센트럴 서울" forKey:@"hotel_name"];
[product setValue:@"4" forKey:@"hotel_class"];
[product setValue:@"Seoul" forKey:@"city"];
[product setValue:@"Korea" forKey:@"country"];
[screen setValue:product forKey:@"product"];
[DOT logScreen:screen];
<script type="wisetracker/text" id="wiseTracker2">
var screen = new Object();
screen["event"] = "w_view_product";
var product = new Object();
product["hotel_id"] = "P388299";
product["hotel_name"] = "프레이저 플레이스 센트럴 서울";
product["hotel_class"] = "4";
product["city"] = "Seoul";
product["country"] = "Korea";
screen["product"] = product;
DOT.logScreen(screen);
</script>
<script type="text/javascript">
var screen = new Object();
screen["event"] = "w_view_product";
var product = new Object();
product["hotel_id"] = "P388299";
product["hotel_name"] = "프레이저 플레이스 센트럴 서울";
product["hotel_class"] = "4";
product["city"] = "Seoul";
product["country"] = "Korea";
screen["product"] = product;
WDOT.onStartPage(screen);
</script>
// .dart 에서 호출 할 때
Map screen = {};
screen["event"] = "w_view_product";
Map product = {};
product["hotel_id"] = "P388299";
product["hotel_name"] = "프레이저 플레이스 센트럴 서울";
product["hotel_class"] = "4";
product["city"] = "Seoul";
product["country"] = "Korea";
screen["product"] = product;
DOT.logScreen(screen);
// webview 에서 호출 할 때
DotFlutterDataBridge.postMessage(JSON.stringify({
method : "logScreen",
data: {
event : "w_view_product",
hotel_id : "P388299",
hotel_name : "프레이저 플레이스 센트럴 서울",
hotel_class : "4",
city : "Seoul",
country : "Korea"
}
}));
// .js 에서 호출 할 때
NativeModules.DotReactBridge != null &&
(NativeModules.DotReactBridge.onStartPage(),
NativeModules.DotReactBridge.logScreen(JSON.stringify({
event : "w_view_product",
product : {
hotel_id : "P388299",
hotel_name : "프레이저 플레이스 센트럴 서울",
hotel_class : "4",
city : "Seoul",
country : "Korea"
}
}),
));
// webview 에서 호출 할 때
window.ReactNativeWebView.postMessage(JSON.stringify({
method:"logScreen",
data : {
event : "w_view_product",
product : {
hotel_id : "P388299",
hotel_name : "프레이저 플레이스 센트럴 서울",
hotel_class : "4",
city : "Seoul",
country : "Korea"
}
}
}));
Dictionary<string, object> page = new Dictionary<string, object>();
page.Add("event", "w_view_product");
Dictionary<string, object> product = new Dictionary<string, object>();
product.Add("hotel_id", "P388299");
product.Add("hotel_name", "프레이저 플레이스 센트럴 서울");
product.Add("hotel_class", "4");
product.Add("city", "Seoul");
product.Add("country", "Korea");
page.Add("product", product);
DOT.logScreen(page);

상품 조회 - 투어

상품 상세 화면에 아래 코드를 추가합니다.

선택 속성

Key
Value 예시
Type
설명
product_id
11931
string
상품 고유코드
product_name
뉴질랜드 남섬 4박5일 조인 팩 (4월 - 9월 Only)
string
상품명
city
Christchurch
string
도시 정보
country
New Zealand
string
국가 정보
Java
Kotlin
Swift
Objective-C
Mobile Webview
Website
Flutter
ReactNative