Entertainment : 엔터테인먼트
엔터테인먼트 앱에서 측정을 권장하는 인앱 이벤트 API와 적용 예시를 안내합니다.
Last updated
엔터테인먼트 앱에서 측정을 권장하는 인앱 이벤트 API와 적용 예시를 안내합니다.
Last updated
속성 중 Key 이름은 가이드에 나와있는 Key 이름을 그대로 사용 해 주세요. (임의로 변경시 대시보드에서 데이터 확인이 어렵습니다. > product_id , product_name 등)
정식 구독이 아닌 트라이얼 구독이 완료되는 시점에 아래 코드를 추가합니다.
Key
Value 예시
Type
설명
trial_method
SKT 제휴
string
제휴 수단
Map<String, Object> eventMap = new HashMap<>();
eventMap.put("event", "w_trial_complete");
eventMap.put("trial_method", "SKT 제휴");
DOT.logEvent(eventMap);
val eventMap = mutableMapOf<String,Any>()
eventMap["event"] = "w_trial_complete"
eventMap["trial_method"] = "SKT 제휴"
DOT.logEvent(eventMap)
let event = NSMutableDictionary()
event["event"] = "w_trial_complete"
event["trial_method"] = "SKT 제휴"
DOT.logEvent(event)
NSMutableDictionary *event = [[NSMutableDictionary alloc] init];
[event setValue:@"w_trial_complete" forKey:@"event"];
[event setValue:@"SKT 제휴" forKey:@"trial_method"];
[DOT logEvent:event];
var event = new Object();
event["event"] = "w_trial_complete";
event["trial_method"] = "SKT 제휴";
DOT.logEvent(event);
var event = new Object();
event["event"] = "w_trial_complete";
event["trial_method"] = "SKT 제휴";
WDOT.logEvent(event);
// .dart 에서 호출 할 때
Map event = {};
event["event"] = "w_trial_complete";
event["trial_method"] = "SKT 제휴";
DOT.logEvent(event);
// webview 에서 호출 할 때
DotFlutterDataBridge.postMessage(JSON.stringify({
method : "logEvent",
data: {
event : "w_trial_complete",
trial_method : "SKT 제휴"
}
}));
// .js 에서 호출 할 때
NativeModules.DotReactBridge.logEvent(JSON.stringify({
event : "w_trial_complete",
trial_method : "SKT 제휴"
}));
// webview 에서 호출 할 때
window.ReactNativeWebView.postMessage(JSON.stringify({
method:"logEvent",
data : {
event : "w_trial_complete",
trial_method : "SKT 제휴"
}
}));
Dictionary<string, object> eventDic = new Dictionary<string, object>();
eventDic.Add("event", "w_trial_complete");
eventDic.Add("trial_method", "SKT 제휴");
DOT.logEvent(eventDic);
구독이 완료되는 시점에 아래 코드를 추가합니다.
Key
Value 예시
Type
설명
transaction_id
SC87483
string
주문번호
currency
KRW
string
통화코드
subscription_method
신용카드
string
결제 수단 정보
product_id
FL828
string
상품코드
product_name
모바일 무제한 듣기 정기결제
string
상품명칭
quantity
1
integer
구독한 상품 개수
revenue
6900
double
유저가 결제한 금액
Map<String, Object> purchaseMap = new HashMap<>();
purchaseMap.put("transaction_id", "SC87483");
purchaseMap.put("currency", "KRW");
purchaseMap.put("subscription_method", "신용카드");
Map<String, Object> productMap = new HashMap<>();
productMap.put("product_id", "FL828");
productMap.put("product_name", "모바일 무제한 듣기 정기결제");
productMap.put("quantity", 1);
productMap.put("revenue", 6900);
purchaseMap.put("product", productMap);
DOT.logPurchase(purchaseMap);
val purchaseMap = mutableMapOf<String,Any>()
purchaseMap["transaction_id"] = "SC87483"
purchaseMap["currency"] = "KRW"
purchaseMap["subscription_method"] = "신용카드"
val productMap = mutableMapOf<String,Any>()
productMap["product_id"] = "FL828"
productMap["product_name"] = "모바일 무제한 듣기 정기결제"
productMap["quantity"] = 1
productMap["revenue"] = 6900
purchaseMap["product"] = productMap
DOT.logPurchase(purchaseMap)
let purchase = NSMutableDictionary()
purchase["transaction_id"] = "SC87483"
purchase["currency"] = "KRW"
purchase["subscription_method"] = "신용카드"
var product : [String: Any] = [:]
product["product_id"] = "FL828"
product["product_name"] = "모바일 무제한 듣기 정기결제"
product["quantity"] = 1
product["revenue"] = 6900
purchase["product"] = product
DOT.logPurchase(purchase)
NSMutableDictionary *purchase = [[NSMutableDictionary alloc] init];
[purchase setValue:@"SC87483" forKey:@"transaction_id"];
[purchase setValue:@"KRW" forKey:@"currency"];
[purchase setValue:@"신용카드" forKey:@"subscription_method"];
NSMutableDictionary *product = [[NSMutableDictionary alloc] init];
[product setValue:@"FL828" forKey:@"product_id"];
[product setValue:@"모바일 무제한 듣기 정기결제" forKey:@"product_name"];
[product setValue:[NSNumber numberWithInt:1] forKey:@"quantity"];
[product setValue:[NSNumber numberWithInt:6900] forKey:@"revenue"];
[purchase setValue:product forKey:@"product"];
[DOT logPurchase:purchase];
var purchase = new Object();
purchase["transaction_id"] = "SC87483";
purchase["currency"] = "KRW";
purchase["subscription_method"] = "신용카드";
var product = new Object();
product["product_id"] = "FL828";
product["product_name"] = "모바일 무제한 듣기 정기결제";
product["quantity"] = 1;
product["revenue"] = 6900;
purchase["product"] = product;
DOT.logPurchase(purchase);
var purchase = new Object();
purchase["transaction_id"] = "SC87483";
purchase["currency"] = "KRW";
purchase["subscription_method"] = "신용카드";
var product = new Object();
product["product_id"] = "FL828";
product["product_name"] = "모바일 무제한 듣기 정기결제";
product["quantity"] = 1;
product["revenue"] = 6900;
purchase["product"] = product;
WDOT.logPurchase(purchase);
// .dart 에서 호출 할 때
Map purchase = {};
purchase["transaction_id"] = "SC87483";
purchase["currency"] = "KRW";
purchase["subscription_method"] = "신용카드";
Map product = {};
product["product_id"] = "FL828";
product["product_name"] = "모바일 무제한 듣기 정기결제";
product["quantity"] = 1;
product["revenue"] = 6900;
purchase["product"] = product;
DOT.logPurchase(purchase);
// webview 에서 호출 할 때
var purchase = new Object();
purchase["transaction_id"] = "SC87483";
purchase["currency"] = "KRW";
purchase["subscription_method"] = "신용카드";
var productArray = new Array();
for( var inx = 0; inx < purchaselist[구매목록].length; inx++){
var purchaseProduct = purchaselist[inx];
var product = new Object();
product["product_id"] = "FL828";
product["product_name"] = "모바일 무제한 듣기 정기결제";
product["quantity"] = 1;
product["revenue"] = 6900;
productArray.push(product);
purchase["product"] = productArray;
DotFlutterDataBridge.postMessage(JSON.stringify({
method : "logPurchase",
data: purchase
}));
// .js 에서 호출 할 때
NativeModules.DotReactBridge.logPurchase(JSON.stringify({
transaction_id : "SC87483",
currency : "KRW",
subscription_method : "신용카드",
product : {
product_id : "FL828",
product_name : "모바일 무제한 듣기 정기결제",
quantity : 1,
revenue : 6900
}
}));
// webview 에서 호출 할 때
window.ReactNativeWebView.postMessage(JSON.stringify({
method:"logPurchase",
data : {
transaction_id : "SC87483",
currency : "KRW",
subscription_method : "신용카드",
product : {
product_id : "FL828",
product_name : "모바일 무제한 듣기 정기결제",
quantity : 1,
revenue : 6900
}
}
}));
Dictionary<string, object> purchase = new Dictionary<string, object>();
purchase.Add("transaction_id", "SC87483");
purchase.Add("currency", "KRW");
purchase.Add("subscription_method", "신용카드");
Dictionary<string, object> product = new Dictionary<string, object>();
product.Add("product_id", "FL828");
product.Add("product_name", "모바일 무제한 듣기 정기결제");
product.Add("quantity", 1);
product.Add("revenue", 6900);
List<Dictionary<string, object>> productList = new List<Dictionary<string, object>>();
productList.Add(product);
purchase.Add("product", productList);
DOT.logPurchase(purchase);
음악이 재생되는 시점에 아래 코드를 추가합니다.
Key
Value 예시
Type
설명
artist_id
80049126
string
아티스트 고유번호
artist_name
아이유 (IU)
string
아티스트 명칭
media_id
30598121
string
음악 고유번호
media_name
밤편지
string
음악 명칭
album_id
20089092
string
앨범 고유번호
album_name
밤편지
string
앨범 명칭
genre_id
3772
string
장르 고유번호
genre
팝, 발라드
string
장르 명칭
duration
4.16
float
음악의 전체 길이를 분 단위로 입력
Map<String, Object> eventMap = new HashMap<>();
eventMap.put("event", "w_media_played");
eventMap.put("artist_id", "80049126");
eventMap.put("artist_name", "아이유 (IU)");
eventMap.put("media_id", "30598121");
eventMap.put("media_name", "밤편지");
eventMap.put("album_id", "20089092");
eventMap.put("album_name", "밤편지");
eventMap.put("genre_id", "3772");
eventMap.put("genre", "팝, 발라드");
eventMap.put("duration", 4.16);
DOT.logEvent(eventMap);
val eventMap = mutableMapOf<String,Any>()
eventMap["event"] = "w_media_played"
eventMap["artist_id"] = "80049126"
eventMap["artist_name"] = "아이유 (IU)"
eventMap["media_id"] = "30598121"
eventMap["media_name"] = "밤편지"
eventMap["album_id"] = "20089092"
eventMap["album_name"] = "밤편지"
eventMap["genre_id"] = "3772"
eventMap["genre"] = "팝, 발라드"
eventMap["duration"] = 4.16
DOT.logEvent(eventMap)
let event = NSMutableDictionary()
event["event"] = "w_media_played"
event["artist_id"] = "80049126"
event["artist_name"] = "아이유 (IU)"
event["media_id"] = "30598121"
event["media_name"] = "밤편지"
event["album_id"] = "20089092"
event["album_name"] = "밤편지"
event["genre_id"] = "3772"
event["genre"] = "팝, 발라드"
event["duration"] = 4.16
DOT.logEvent(event)
NSMutableDictionary *event = [[NSMutableDictionary alloc] init];
[event setValue:@"w_media_played" forKey:@"event"];
[event setValue:@"80049126" forKey:@"artist_id"];
[event setValue:@"아이유 (IU)" forKey:@"artist_name"];
[event setValue:@"30598121" forKey:@"media_id"];
[event setValue:@"밤편지" forKey:@"media_name"];
[event setValue:@"20089092" forKey:@"album_id"];
[event setValue:@"밤편지" forKey:@"album_name"];
[event setValue:@"3772" forKey:@"genre_id"];
[event setValue:@"팝, 발라드" forKey:@"genre"];
[event setValue:[NSNumber numberWithInt:4.16] forKey:@"duration"];
[DOT logEvent:event];
var event = new Object();
event["event"] = "w_media_played";
event["artist_id"] = "80049126";
event["artist_name"] = "아이유 (IU)";
event["media_id"] = "30598121";
event["media_name"] = "밤편지";
event["album_id"] = "20089092";
event["album_name"] = "밤편지";
event["genre_id"] = "3772";
event["genre"] = "팝, 발라드";
event["duration"] = 4.16;
DOT.logEvent(event);
var event = new Object();
event["event"] = "w_media_played";
event["artist_id"] = "80049126";
event["artist_name"] = "아이유 (IU)";
event["media_id"] = "30598121";
event["media_name"] = "밤편지";
event["album_id"] = "20089092";
event["album_name"] = "밤편지";
event["genre_id"] = "3772";
event["genre"] = "팝, 발라드";
event["duration"] = 4.16;
WDOT.logEvent(event);
// .dart 에서 호출 할 때
Map event = {};
event["event"] = "w_media_played";
event["artist_id"] = "80049126";
event["artist_name"] = "아이유 (IU)";
event["media_id"] = "30598121";
event["media_name"] = "밤편지";
event["album_id"] = "20089092";
event["album_name"] = "밤편지";
event["genre_id"] = "3772";
event["genre"] = "팝, 발라드";
event["duration"] = 4.16;
DOT.logEvent(event);
// webview 에서 호출 할 때
DotFlutterDataBridge.postMessage(JSON.stringify({
method : "logEvent",
data: {
event : "w_media_played",
artist_id : "80049126",
artist_name : "아이유 (IU)",
media_id : "30598121",
media_name : "밤편지",
album_id : "20089092",
album_name : "밤편지",
genre_id : "3772",
genre : "팝, 발라드",
duration : 4.16
}
}));
// .js 에서 호출 할 때
NativeModules.DotReactBridge.logEvent(JSON.stringify({
event : "w_media_played",
artist_id : "80049126",
artist_name : "아이유 (IU)",
media_id : "30598121",
media_name : "밤편지",
album_id : "20089092",
album_name : "밤편지",
genre_id : "3772",
genre : "팝, 발라드",
duration : 4.16
}));
// webview 에서 호출 할 때
window.ReactNativeWebView.postMessage(JSON.stringify({
method:"logEvent",
data : {
event : "w_media_played",
artist_id : "80049126",
artist_name : "아이유 (IU)",
media_id : "30598121",
media_name : "밤편지",
album_id : "20089092",
album_name : "밤편지",
genre_id : "3772",
genre : "팝, 발라드",
duration : 4.16
}
}));
Dictionary<string, object> eventDic = new Dictionary<string, object>();
eventDic.Add("event", "w_media_played");
eventDic.Add("artist_id", "80049126");
eventDic.Add("artist_name", "아이유 (IU)");
eventDic.Add("media_id", "30598121");
eventDic.Add("media_name", "밤편지");
eventDic.Add("album_id", "20089092");
eventDic.Add("album_name", "밤편지");
eventDic.Add("genre_id", "3772");
eventDic.Add("genre", "팝, 발라드");
eventDic.Add("duration", 4.16);
DOT.logEvent(eventDic);
영화가 재생 중 일시정지된 시점에 아래 코드를 추가합니다.
Key
Value 예시
Type
설명
media_id
tt0120737
string
영화 고유번호
media_name
The Lord of the Rings: The Fellowship of the Ring
string
영화 명칭
actor_id
nm0000704
string
배우 고유번호
actor_name
Elijah Wood
string
배우 이름
director_id
nm0001392
string
감독 고유번호
director_name
Peter Jackson
string
감독 이름
genre_id
237
string
장르 고유번호
genre
adventure
string
장르 명칭
language
English
string
영화 언어 정보
duration
178
float
영화의 전체 길이를 분 단위로 입력
time_played
62.4
float
일시정지가 발생한 시점까지의 실제 시청시간
Map<String, Object> eventMap = new HashMap<>();
eventMap.put("event", "w_media_stopped");
eventMap.put("media_id", "tt0120737");
eventMap.put("media_name", "The Lord of the Rings: The Fellowship of the Ring");
eventMap.put("actor_id", "nm0000704");
eventMap.put("actor_name", "Elijah Wood");
eventMap.put("director_id", "nm0001392");
eventMap.put("director_name", "Peter Jackson");
eventMap.put("genre_id", "237");
eventMap.put("genre", "adventure");
eventMap.put("language", "English");
eventMap.put("duration", 178);
eventMap.put("time_played", 62.4);
DOT.logEvent(eventMap);
val eventMap = mutableMapOf<String,Any>()
eventMap["event"] = "w_media_stopped"
eventMap["media_id"] = "tt0120737"
eventMap["media_name"] = "The Lord of the Rings: The Fellowship of the Ring"
eventMap["actor_id"] = "nm0000704"
eventMap["actor_name"] = "Elijah Wood"
eventMap["director_id"] = "nm0001392"
eventMap["director_name"] = "Peter Jackson"
eventMap["genre_id"] = "237"
eventMap["genre"] = "adventure"
eventMap["language"] = "English"
eventMap["duration"] = 178
eventMap["time_played"] = 62.4
DOT.logEvent(eventMap)
let event = NSMutableDictionary()
event["event"] = "w_media_stopped"
event["media_id"] = "tt0120737"
event["media_name"] = "The Lord of the Rings: The Fellowship of the Ring"
event["actor_id"] = "nm0000704"
event["actor_name"] = "Elijah Wood"
event["director_id"] = "nm0001392"
event["director_name"] = "Peter Jackson"
event["genre_id"] = "237"
event["genre"] = "adventure"
event["language"] = "English"
event["duration"] = 178
event["time_played"] = 62.4
DOT.logEvent(event)
NSMutableDictionary *event = [[NSMutableDictionary alloc] init];
[event setValue:@"w_media_stopped" forKey:@"event"];
[event setValue:@"tt0120737" forKey:@"media_id"];
[event setValue:@"The Lord of the Rings: The Fellowship of the Ring" forKey:@"media_name"];
[event setValue:@"nm0000704" forKey:@"actor_id"];
[event setValue:@"Elijah Wood" forKey:@"actor_name"];
[event setValue:@"nm0001392" forKey:@"director_id"];
[event setValue:@"Peter Jackson" forKey:@"director_name"];
[event setValue:@"237" forKey:@"genre_id"];
[event setValue:@"adventure" forKey:@"genre"];
[event setValue:@"English" forKey:@"language"];
[event setValue:[NSNumber numberWithInt:178] forKey:@"duration"];
[event setValue:[NSNumber numberWithInt:62.4] forKey:@"time_played"];
[DOT logEvent:event];
var event = new Object();
event["event"] = "w_media_stopped";
event["media_id"] = "tt0120737";
event["media_name"] = "The Lord of the Rings: The Fellowship of the Ring";
event["actor_id"] = "nm0000704";
event["actor_name"] = "Elijah Wood";
event["director_id"] = "nm0001392";
event["director_name"] = "Peter Jackson";
event["genre_id"] = "237";
event["genre"] = "adventure";
event["language"] = "English";
event["duration"] = 178;
event["time_played"] = 62.4;
DOT.logEvent(event);
var event = new Object();
event["event"] = "w_media_stopped";
event["media_id"] = "tt0120737";
event["media_name"] = "The Lord of the Rings: The Fellowship of the Ring";
event["actor_id"] = "nm0000704";
event["actor_name"] = "Elijah Wood";
event["director_id"] = "nm0001392";
event["director_name"] = "Peter Jackson";
event["genre_id"] = "237";
event["genre"] = "adventure";
event["language"] = "English";
event["duration"] = 178;
event["time_played"] = 62.4;
WDOT.logEvent(event);
// .dart 에서 호출 할 때
Map event = {};
event["event"] = "w_media_stopped";
event["media_id"] = "tt0120737";
event["media_name"] = "The Lord of the Rings: The Fellowship of the Ring";
event["actor_id"] = "nm0000704";
event["actor_name"] = "Elijah Wood";
event["director_id"] = "nm0001392";
event["director_name"] = "Peter Jackson";
event["genre_id"] = "237";
event["genre"] = "adventure";
event["language"] = "English";
event["duration"] = 178;
event["time_played"] = 62.4;
DOT.logEvent(event);
// webview 에서 호출 할 때
DotFlutterDataBridge.postMessage(JSON.stringify({
method : "logEvent",
data: {
event : "w_media_stopped",
media_id : "tt0120737",
media_name : "The Lord of the Rings: The Fellowship of the Ring",
actor_id : "nm0000704",
actor_name : "Elijah Wood",
director_id : "nm0001392",
director_name : "Peter Jackson",
genre_id : "237",
genre : "adventure",
language : "English",
duration : 178,
time_played : 62.4
}
}));
// .js 에서 호출 할 때
NativeModules.DotReactBridge.logEvent(JSON.stringify({
event : "w_media_stopped",
media_id : "tt0120737",
media_name : "The Lord of the Rings: The Fellowship of the Ring",
actor_id : "nm0000704",
actor_name : "Elijah Wood",
director_id : "nm0001392",
director_name : "Peter Jackson",
genre_id : "237",
genre : "adventure",
language : "English",
duration : 178,
time_played : 62.4
}));
// webview 에서 호출 할 때
window.ReactNativeWebView.postMessage(JSON.stringify({
method:"logEvent",
data : {
event : "w_media_stopped",
media_id : "tt0120737",
media_name : "The Lord of the Rings: The Fellowship of the Ring",
actor_id : "nm0000704",
actor_name : "Elijah Wood",
director_id : "nm0001392",
director_name : "Peter Jackson",
genre_id : "237",
genre : "adventure",
language : "English",
duration : 178,
time_played : 62.4
}
}));
Dictionary<string, object> eventDic = new Dictionary<string, object>();
eventDic.Add("event", "w_media_stopped");
eventDic.Add("media_id", "tt0120737");
eventDic.Add("media_name", "The Lord of the Rings: The Fellowship of the Ring");
eventDic.Add("actor_id", "nm0000704");
eventDic.Add("actor_name", "Elijah Wood");
eventDic.Add("director_id", "nm0001392");
eventDic.Add("director_name", "Peter Jackson");
eventDic.Add("genre_id", "237");
eventDic.Add("genre", "adventure");
eventDic.Add("language", "English");
eventDic.Add("duration", 178);
eventDic.Add("time_played", 62.4);
DOT.logEvent(eventDic);
유저가 에피소드를 끝까지 시청한 시점에 아래 코드를 추가합니다.
Key
Value 예시
Type
설명
serise_id
SR3829
string
시리즈 고유번호
serise_name
Game of Thrones: Season 2
string
시리즈 명칭
media_id
EP19823
string
에피소드 고유번호
media_name
04 Garden of Bones
string
에피소드 명칭
director_id
D392892
string
감독 고유번호
director_name
David Petrarca
string
감독 이름
genre_id
182
string
장르 고유번호
genre
action
string
장르 명칭
language
English
string
미디어 언어 정보
duration
51
float
미디어의 전체 길이를 분 단위로 입력
Map<String, Object> eventMap = new HashMap<>();
eventMap.put("event", "w_media_finished");
eventMap.put("serise_id", "SR3829");
eventMap.put("serise_name", "Game of Thrones: Season 2");
eventMap.put("media_id", "EP19823");
eventMap.put("media_name", "04 Garden of Bones");
eventMap.put("director_id", "D392892");
eventMap.put("director_name", "David Petrarca");
eventMap.put("genre_id", "182");
eventMap.put("genre", "action");
eventMap.put("language", "English");
eventMap.put("duration", 51);
DOT.logEvent(eventMap);
val eventMap = mutableMapOf<String,Any>()
eventMap["event"] = "w_media_finished"
eventMap["serise_id"] = "SR3829"
eventMap["serise_name"] = "Game of Thrones: Season 2"
eventMap["media_id"] = "EP19823"
eventMap["media_name"] = "04 Garden of Bones"
eventMap["director_id"] = "D392892"
eventMap["director_name"] = "David Petrarca"
eventMap["genre_id"] = "182"
eventMap["genre"] = "action"
eventMap["language"] = "English"
eventMap["duration"] = 51
DOT.logEvent(eventMap)
let event = NSMutableDictionary()
event["event"] = "w_media_finished"
event["serise_id"] = "SR3829"
event["serise_name"] = "Game of Thrones: Season 2"
event["media_id"] = "EP19823"
event["media_name"] = "04 Garden of Bones"
event["director_id"] = "D392892"
event["director_name"] = "David Petrarca"
event["genre_id"] = "182"
event["genre"] = "action"
event["language"] = "English"
event["duration"] = 51
DOT.logEvent(event)
NSMutableDictionary *event = [[NSMutableDictionary alloc] init];
[event setValue:@"w_media_finished" forKey:@"event"];
[event setValue:@"SR3829" forKey:@"serise_id"];
[event setValue:@"Game of Thrones: Season 2" forKey:@"serise_name"];
[event setValue:@"EP19823" forKey:@"media_id"];
[event setValue:@"04 Garden of Bones" forKey:@"media_name"];
[event setValue:@"D392892" forKey:@"director_id"];
[event setValue:@"David Petrarca" forKey:@"director_name"];
[event setValue:@"182" forKey:@"genre_id"];
[event setValue:@"action" forKey:@"genre"];
[event setValue:@"English" forKey:@"language"];
[event setValue:[NSNumber numberWithInt:51] forKey:@"duration"];
[DOT logEvent:event];
var event = new Object();
event["event"] = "w_media_finished";
event["serise_id"] = "SR3829";
event["serise_name"] = "Game of Thrones: Season 2";
event["media_id"] = "EP19823";
event["media_name"] = "04 Garden of Bones";
event["director_id"] = "D392892";
event["director_name"] = "David Petrarca";
event["genre_id"] = "182";
event["genre"] = "action";
event["language"] = "English";
event["duration"] = 51;
DOT.logEvent(event);
var event = new Object();
event["event"] = "w_media_finished";
event["serise_id"] = "SR3829";
event["serise_name"] = "Game of Thrones: Season 2";
event["media_id"] = "EP19823";
event["media_name"] = "04 Garden of Bones";
event["director_id"] = "D392892";
event["director_name"] = "David Petrarca";
event["genre_id"] = "182";
event["genre"] = "action";
event["language"] = "English";
event["duration"] = 51;
WDOT.logEvent(event);
// .dart 에서 호출 할 때
Map event = {};
event["event"] = "w_media_finished";
event["serise_id"] = "SR3829";
event["serise_name"] = "Game of Thrones: Season 2";
event["media_id"] = "EP19823";
event["media_name"] = "04 Garden of Bones";
event["director_id"] = "D392892";
event["director_name"] = "David Petrarca";
event["genre_id"] = "182";
event["genre"] = "action";
event["language"] = "English";
event["duration"] = 51;
DOT.logEvent(event);
// webview 에서 호출 할 때
DotFlutterDataBridge.postMessage(JSON.stringify({
method : "logEvent",
data: {
event : "w_media_finished",
serise_id : "SR3829",
serise_name : "Game of Thrones: Season 2",
media_id : "EP19823",
media_name : "04 Garden of Bones",
director_id : "D392892",
director_name : "David Petrarca",
genre_id : "182",
genre : "action",
language : "English",
duration : 51
}
}));
// .js 에서 호출 할 때
NativeModules.DotReactBridge.logEvent(JSON.stringify({
event : "w_media_finished",
serise_id : "SR3829",
serise_name : "Game of Thrones: Season 2",
media_id : "EP19823",
media_name : "04 Garden of Bones",
director_id : "D392892",
director_name : "David Petrarca",
genre_id : "182",
genre : "action",
language : "English",
duration : 51
}));
// webview 에서 호출 할 때
window.ReactNativeWebView.postMessage(JSON.stringify({
method:"logEvent",
data : {
event : "w_media_finished",
serise_id : "SR3829",
serise_name : "Game of Thrones: Season 2",
media_id : "EP19823",
media_name : "04 Garden of Bones",
director_id : "D392892",
director_name : "David Petrarca",
genre_id : "182",
genre : "action",
language : "English",
duration : 51
}
}));
Dictionary<string, object> eventDic = new Dictionary<string, object>();
eventDic.Add("event", "w_media_finished");
eventDic.Add("serise_id", "SR3829");
eventDic.Add("serise_name", "Game of Thrones: Season 2");
eventDic.Add("media_id", "EP19823");
eventDic.Add("media_name", "04 Garden of Bones");
eventDic.Add("director_id", "D392892");
eventDic.Add("director_name", "David Petrarca");
eventDic.Add("genre_id", "182");
eventDic.Add("genre", "action");
eventDic.Add("language", "English");
eventDic.Add("duration", 51);
DOT.logEvent(eventDic);
미디어 다운로드가 시작되는 시점에 아래 코드를 추가합니다.
Key
Value 예시
Type
설명
artist_id
80049126
string
아티스트 고유번호
artist_name
아이유 (IU)
string
아티스트 명칭
media_id
30598121
string
음악 고유번호
media_name
밤편지
string
음악 명칭
album_id
20089092
string
앨범 고유번호
album_name
밤편지
string
앨범 명칭
genre_id
3772
string
장르 고유번호
genre
팝, 발라드
string
장르 명칭
Map<String, Object> eventMap = new HashMap<>();
eventMap.put("event", "w_media_downloaded");
eventMap.put("artist_id", "80049126");
eventMap.put("artist_name", "아이유 (IU)");
eventMap.put("media_id", "30598121");
eventMap.put("media_name", "밤편지");
eventMap.put("album_id", "20089092");
eventMap.put("album_name", "밤편지");
eventMap.put("genre_id", "3772");
eventMap.put("genre", "팝, 발라드");
DOT.logEvent(eventMap);
val eventMap = mutableMapOf<String,Any>()
eventMap["event"] = "w_media_downloaded"
eventMap["artist_id"] = "80049126"
eventMap["artist_name"] = "아이유 (IU)"
eventMap["media_id"] = "30598121"
eventMap["media_name"] = "밤편지"
eventMap["album_id"] = "20089092"
eventMap["album_name"] = "밤편지"
eventMap["genre_id"] = "3772"
eventMap["genre"] = "팝, 발라드"
DOT.logEvent(eventMap)
let event = NSMutableDictionary()
event["event"] = "w_media_downloaded"
event["artist_id"] = "80049126"
event["artist_name"] = "아이유 (IU)"
event["media_id"] = "30598121"
event["media_name"] = "밤편지"
event["album_id"] = "20089092"
event["album_name"] = "밤편지"
event["genre_id"] = "3772"
event["genre"] = "팝, 발라드"
DOT.logEvent(event)
NSMutableDictionary *event = [[NSMutableDictionary alloc] init];
[event setValue:@"w_media_downloaded" forKey:@"event"];
[event setValue:@"80049126" forKey:@"artist_id"];
[event setValue:@"아이유 (IU)" forKey:@"artist_name"];
[event setValue:@"30598121" forKey:@"media_id"];
[event setValue:@"밤편지" forKey:@"media_name"];
[event setValue:@"20089092" forKey:@"album_id"];
[event setValue:@"밤편지" forKey:@"album_name"];
[event setValue:@"3772" forKey:@"genre_id"];
[event setValue:@"팝, 발라드" forKey:@"genre"];
[DOT logEvent:event];
var event = new Object();
event["event"] = "w_media_downloaded";
event["artist_id"] = "80049126";
event["artist_name"] = "아이유 (IU)";
event["media_id"] = "30598121";
event["media_name"] = "밤편지";
event["album_id"] = "20089092";
event["album_name"] = "밤편지";
event["genre_id"] = "3772";
event["genre"] = "팝, 발라드";
DOT.logEvent(event);
var event = new Object();
event["event"] = "w_media_downloaded";
event["artist_id"] = "80049126";
event["artist_name"] = "아이유 (IU)";
event["media_id"] = "30598121";
event["media_name"] = "밤편지";
event["album_id"] = "20089092";
event["album_name"] = "밤편지";
event["genre_id"] = "3772";
event["genre"] = "팝, 발라드";
WDOT.logEvent(event);
// .dart 에서 호출 할 때
Map event = {};
event["event"] = "w_media_downloaded";
event["artist_id"] = "80049126";
event["artist_name"] = "아이유 (IU)";
event["media_id"] = "30598121";
event["media_name"] = "밤편지";
event["album_id"] = "20089092";
event["album_name"] = "밤편지";
event["genre_id"] = "3772";
event["genre"] = "팝, 발라드";
DOT.logEvent(event);
// webview 에서 호출 할 때
DotFlutterDataBridge.postMessage(JSON.stringify({
method : "logEvent",
data: {
event : "w_media_downloaded",
artist_id : "80049126",
artist_name : "아이유 (IU)",
media_id : "30598121",
media_name : "밤편지",
album_id : "20089092",
album_name : "밤편지",
genre_id : "3772",
genre : "팝, 발라드"
}
}));
// .js 에서 호출 할 때
NativeModules.DotReactBridge.logEvent(JSON.stringify({
event : "w_media_downloaded",
artist_id : "80049126",
artist_name : "아이유 (IU)",
media_id : "30598121",
media_name : "밤편지",
album_id : "20089092",
album_name : "밤편지",
genre_id : "3772",
genre : "팝, 발라드"
}));
// webview 에서 호출 할 때
window.ReactNativeWebView.postMessage(JSON.stringify({
method:"logEven",
data : {
event : "w_media_downloaded",
artist_id : "80049126",
artist_name : "아이유 (IU)",
media_id : "30598121",
media_name : "밤편지",
album_id : "20089092",
album_name : "밤편지",
genre_id : "3772",
genre : "팝, 발라드"
}
}));
Dictionary<string, object> eventDic = new Dictionary<string, object>();
eventDic.Add("event", "w_media_downloaded");
eventDic.Add("artist_id", "80049126");
eventDic.Add("artist_name", "아이유 (IU)");
eventDic.Add("media_id", "30598121");
eventDic.Add("media_name", "밤편지");
eventDic.Add("album_id", "20089092");
eventDic.Add("album_name", "밤편지");
eventDic.Add("genre_id", "3772");
eventDic.Add("genre", "팝, 발라드");
DOT.logEvent(eventDic);
영화가 보관함 등에 저장되는 시점에 아래 코드를 추가합니다.
Key
Value 예시
Type
설명
media_id
tt0120737
string
영화 고유번호
media_name
The Lord of the Rings: The Fellowship of the Ring
string
영화 명칭
actor_id
nm0000704
string
배우 고유번호
actor_name
Elijah Wood
string
배우 이름
director_id
nm0001392
string
감독 고유번호
director_name
Peter Jackson
string
감독 이름
genre_id
237
string
장르 고유번호
genre
adventure
string
장르 명칭
language
English
string
영화 언어 정보
duration
178
float
영화의 전체 길이를 분 단위로 입력
Map<String, Object> eventMap = new HashMap<>();
eventMap.put("event", "w_media_saved");
eventMap.put("media_id", "tt0120737");
eventMap.put("media_name", "The Lord of the Rings: The Fellowship of the Ring");
eventMap.put("actor_id", "nm0000704");
eventMap.put("actor_name", "Elijah Wood");
eventMap.put("director_id", "nm0001392");
eventMap.put("director_name", "Peter Jackson");
eventMap.put("genre_id", "237");
eventMap.put("genre", "adventure");
eventMap.put("language", "English");
eventMap.put("duration", 178);
DOT.logEvent(eventMap);
val eventMap = mutableMapOf<String,Any>()
eventMap["event"] = "w_media_saved"
eventMap["media_id"] = "tt0120737"
eventMap["media_name"] = "The Lord of the Rings: The Fellowship of the Ring"
eventMap["actor_id"] = "nm0000704"
eventMap["actor_name"] = "Elijah Wood"
eventMap["director_id"] = "nm0001392"
eventMap["director_name"] = "Peter Jackson"
eventMap["genre_id"] = "237"
eventMap["genre"] = "adventure"
eventMap["language"] = "English"
eventMap["duration"] = 178
DOT.logEvent(eventMap)
let event = NSMutableDictionary()
event["event"] = "w_media_saved"
event["media_id"] = "tt0120737"
event["media_name"] = "The Lord of the Rings: The Fellowship of the Ring"
event["actor_id"] = "nm0000704"
event["actor_name"] = "Elijah Wood"
event["director_id"] = "nm0001392"
event["director_name"] = "Peter Jackson"
event["genre_id"] = "237"
event["genre"] = "adventure"
event["language"] = "English"
event["duration"] = 178
DOT.logEvent(event)
NSMutableDictionary *event = [[NSMutableDictionary alloc] init];
[event setValue:@"w_media_saved" forKey:@"event"];
[event setValue:@"tt0120737" forKey:@"media_id"];
[event setValue:@"The Lord of the Rings: The Fellowship of the Ring" forKey:@"media_name"];
[event setValue:@"nm0000704" forKey:@"actor_id"];
[event setValue:@"Elijah Wood" forKey:@"actor_name"];
[event setValue:@"nm0001392" forKey:@"director_id"];
[event setValue:@"Peter Jackson" forKey:@"director_name"];
[event setValue:@"237" forKey:@"genre_id"];
[event setValue:@"adventure" forKey:@"genre"];
[event setValue:@"English" forKey:@"language"];
[event setValue:[NSNumber numberWithInt:178] forKey:@"duration"];
[DOT logEvent:event];
var event = new Object();
event["event"] = "w_media_saved";
event["media_id"] = "tt0120737";
event["media_name"] = "The Lord of the Rings: The Fellowship of the Ring";
event["actor_id"] = "nm0000704";
event["actor_name"] = "Elijah Wood";
event["director_id"] = "nm0001392";
event["director_name"] = "Peter Jackson";
event["genre_id"] = "237";
event["genre"] = "adventure";
event["language"] = "English";
event["duration"] = 178;
DOT.logEvent(event);
var event = new Object();
event["event"] = "w_media_saved";
event["media_id"] = "tt0120737";
event["media_name"] = "The Lord of the Rings: The Fellowship of the Ring";
event["actor_id"] = "nm0000704";
event["actor_name"] = "Elijah Wood";
event["director_id"] = "nm0001392";
event["director_name"] = "Peter Jackson";
event["genre_id"] = "237";
event["genre"] = "adventure";
event["language"] = "English";
event["duration"] = 178;
WDOT.logEvent(event);
// .dart 에서 호출 할 때
Map event = {};
event["event"] = "w_media_saved";
event["media_id"] = "tt0120737";
event["media_name"] = "The Lord of the Rings: The Fellowship of the Ring";
event["actor_id"] = "nm0000704";
event["actor_name"] = "Elijah Wood";
event["director_id"] = "nm0001392";
event["director_name"] = "Peter Jackson";
event["genre_id"] = "237";
event["genre"] = "adventure";
event["language"] = "English";
event["duration"] = 178;
DOT.logEvent(event);
// webview 에서 호출 할 때
DotFlutterDataBridge.postMessage(JSON.stringify({
method : "logEvent",
data: {
event : "w_media_saved",
media_id : "tt0120737",
media_name : "The Lord of the Rings: The Fellowship of the Ring",
actor_id : "nm0000704",
actor_name : "Elijah Wood",
director_id : "nm0001392",
director_name : "Peter Jackson",
genre_id : "237",
genre : "adventure",
language : "English",
duration : 178
}
}));
// .js 에서 호출 할 때
NativeModules.DotReactBridge.logEvent(JSON.stringify({
event : "w_media_saved",
media_id : "tt0120737",
media_name : "The Lord of the Rings: The Fellowship of the Ring",
actor_id : "nm0000704",
actor_name : "Elijah Wood",
director_id : "nm0001392",
director_name : "Peter Jackson",
genre_id : "237",
genre : "adventure",
language : "English",
duration : 178
}));
// webview 에서 호출 할 때
window.ReactNativeWebView.postMessage(JSON.stringify({
method:"logEvent",
data : {
event : "w_media_saved",
media_id : "tt0120737",
media_name : "The Lord of the Rings: The Fellowship of the Ring",
actor_id : "nm0000704",
actor_name : "Elijah Wood",
director_id : "nm0001392",
director_name : "Peter Jackson",
genre_id : "237",
genre : "adventure",
language : "English",
duration : 178
}
}));
Dictionary<string, object> eventDic = new Dictionary<string, object>();
eventDic.Add("event", "w_media_saved");
eventDic.Add("media_id", "tt0120737");
eventDic.Add("media_name", "The Lord of the Rings: The Fellowship of the Ring");
eventDic.Add("actor_id", "nm0000704");
eventDic.Add("actor_name", "Elijah Wood");
eventDic.Add("director_id", "nm0001392");
eventDic.Add("director_name", "Peter Jackson");
eventDic.Add("genre_id", "237");
eventDic.Add("genre", "adventure");
eventDic.Add("language", "English");
eventDic.Add("duration", 178);
DOT.logEvent(eventDic);
유저가 에피소드에 대해서 '좋아요' 또는 호감을 표시한 시점에 아래 코드를 추가합니다.
Key
Value 예시
Type
설명
serise_id
SR3829
string
시리즈 고유번호
serise_name
Game of Thrones: Season 2
string
시리즈 명칭
media_id
EP19823
string
에피소드 고유번호
media_name
04 Garden of Bones
string
에피소드 명칭
director_id
D392892
string
감독 고유번호
director_name
David Petrarca
string
감독 이름
genre_id
182
string
장르 고유번호
genre
action
string
장르 명칭
language
English
string
미디어 언어 정보
duration
51
float
미디어의 전체 길이를 분 단위로 입력
Map<String, Object> eventMap = new HashMap<>();
eventMap.put("event", "w_likes");
eventMap.put("serise_id", "SR3829");
eventMap.put("serise_name", "Game of Thrones: Season 2");
eventMap.put("media_id", "EP19823");
eventMap.put("media_name", "04 Garden of Bones");
eventMap.put("director_id", "D392892");
eventMap.put("director_name", "David Petrarca");
eventMap.put("genre_id", "182");
eventMap.put("genre", "action");
eventMap.put("language", "English");
eventMap.put("duration", 51);
DOT.logEvent(eventMap);
val eventMap = mutableMapOf<String,Any>()
eventMap["event"] = "w_likes"
eventMap["serise_id"] = "SR3829"
eventMap["serise_name"] = "Game of Thrones: Season 2"
eventMap["media_id"] = "EP19823"
eventMap["media_name"] = "04 Garden of Bones"
eventMap["director_id"] = "D392892"
eventMap["director_name"] = "David Petrarca"
eventMap["genre_id"] = "182"
eventMap["genre"] = "action"
eventMap["language"] = "English"
eventMap["duration"] = 51
DOT.logEvent(eventMap)
let event = NSMutableDictionary()
event["event"] = "w_likes"
event["serise_id"] = "SR3829"
event["serise_name"] = "Game of Thrones: Season 2"
event["media_id"] = "EP19823"
event["media_name"] = "04 Garden of Bones"
event["director_id"] = "D392892"
event["director_name"] = "David Petrarca"
event["genre_id"] = "182"
event["genre"] = "action"
event["language"] = "English"
event["duration"] = 51
DOT.logEvent(event)
NSMutableDictionary *event = [[NSMutableDictionary alloc] init];
[event setValue:@"w_likes" forKey:@"event"];
[event setValue:@"SR3829" forKey:@"serise_id"];
[event setValue:@"Game of Thrones: Season 2" forKey:@"serise_name"];
[event setValue:@"EP19823" forKey:@"media_id"];
[event setValue:@"04 Garden of Bones" forKey:@"media_name"];
[event setValue:@"D392892" forKey:@"director_id"];
[event setValue:@"David Petrarca" forKey:@"director_name"];
[event setValue:@"182" forKey:@"genre_id"];
[event setValue:@"action" forKey:@"genre"];
[event setValue:@"English" forKey:@"language"];
[event setValue:[NSNumber numberWithInt:51] forKey:@"duration"];
[DOT logEvent:event];
var event = new Object();
event["event"] = "w_likes";
event["serise_id"] = "SR3829";
event["serise_name"] = "Game of Thrones: Season 2";
event["media_id"] = "EP19823";
event["media_name"] = "04 Garden of Bones";
event["director_id"] = "D392892";
event["director_name"] = "David Petrarca";
event["genre_id"] = "182";
event["genre"] = "action";
event["language"] = "English";
event["duration"] = 51;
DOT.logEvent(event);
var event = new Object();
event["event"] = "w_likes";
event["serise_id"] = "SR3829";
event["serise_name"] = "Game of Thrones: Season 2";
event["media_id"] = "EP19823";
event["media_name"] = "04 Garden of Bones";
event["director_id"] = "D392892";
event["director_name"] = "David Petrarca";
event["genre_id"] = "182";
event["genre"] = "action";
event["language"] = "English";
event["duration"] = 51;
WDOT.logEvent(event);
// .dart 에서 호출 할 때
Map event = {};
event["event"] = "w_likes";
event["serise_id"] = "SR3829";
event["serise_name"] = "Game of Thrones: Season 2";
event["media_id"] = "EP19823";
event["media_name"] = "04 Garden of Bones";
event["director_id"] = "D392892";
event["director_name"] = "David Petrarca";
event["genre_id"] = "182";
event["genre"] = "action";
event["language"] = "English";
event["duration"] = 51;
DOT.logEvent(event);
// webview 에서 호출 할 때
DotFlutterDataBridge.postMessage(JSON.stringify({
method : "logEvent",
data: {
event : "w_likes",
serise_id : "SR3829",
serise_name : "Game of Thrones: Season 2",
media_id : "EP19823",
media_name : "04 Garden of Bones",
director_id : "D392892",
director_name : "David Petrarca",
genre_id : "182",
genre : "action",
language : "English",
duration : 51
}
}));
// .js 에서 호출 할 때
NativeModules.DotReactBridge.logEvent(JSON.stringify({
event : "w_likes",
serise_id : "SR3829",
serise_name : "Game of Thrones: Season 2",
media_id : "EP19823",
media_name : "04 Garden of Bones",
director_id : "D392892",
director_name : "David Petrarca",
genre_id : "182",
genre : "action",
language : "English",
duration : 51
}));
// webview 에서 호출 할 때
window.ReactNativeWebView.postMessage(JSON.stringify({
method:"logEvent",
data : {
event : "w_likes",
serise_id : "SR3829",
serise_name : "Game of Thrones: Season 2",
media_id : "EP19823",
media_name : "04 Garden of Bones",
director_id : "D392892",
director_name : "David Petrarca",
genre_id : "182",
genre : "action",
language : "English",
duration : 51
}
}));
Dictionary<string, object> eventDic = new Dictionary<string, object>();
eventDic.Add("event", "w_likes");
eventDic.Add("serise_id", "SR3829");
eventDic.Add("serise_name", "Game of Thrones: Season 2");
eventDic.Add("media_id", "EP19823");
eventDic.Add("media_name", "04 Garden of Bones");
eventDic.Add("director_id", "D392892");
eventDic.Add("director_name", "David Petrarca");
eventDic.Add("genre_id", "182");
eventDic.Add("genre", "action");
eventDic.Add("language", "English");
eventDic.Add("duration", 51);
DOT.logEvent(eventDic);