Game : 게임
게임 앱에서 측정을 권장하는 인앱 이벤트 API와 적용 예시를 안내합니다.
Last updated
게임 앱에서 측정을 권장하는 인앱 이벤트 API와 적용 예시를 안내합니다.
Last updated
속성 중 Key 이름은 가이드에 나와있는 Key 이름을 그대로 사용 해 주세요. (임의로 변경시 대시보드에서 데이터 확인이 어렵습니다. > level , item_id 등)
캐릭터 생성이 완료되는 시점에 아래 코드를 추가합니다.
Map<String, Object> eventMap = new HashMap<>();
eventMap.put("event", "w_create_character");
eventMap.put("character_type", "archer");
eventMap.put("character_name", "RAiNFiRE");
DOT.logEvent(eventMap);
val eventMap = mutableMapOf<String,Any>()
eventMap["event"] = "w_create_character"
eventMap["character_type"] = "archer"
eventMap["character_name"] = "RAiNFiRE"
DOT.logEvent(eventMap)
let event = NSMutableDictionary()
event["event"] = "w_create_character"
event["character_type"] = "archer"
event["character_name"] = "RAiNFiRE"
DOT.logEvent(event)
NSMutableDictionary *event = [[NSMutableDictionary alloc] init];
[event setValue:@"w_create_character" forKey:@"event"];
[event setValue:@"archer" forKey:@"character_type"];
[event setValue:@"RAiNFiRE" forKey:@"character_name"];
[DOT logEvent:event];
var event = new Object();
event["event"] = "w_create_character";
event["character_type"] = "archer";
event["character_name"] = "RAiNFiRE";
DOT.logEvent(event);
var event = new Object();
event["event"] = "w_create_character";
event["character_type"] = "archer";
event["character_name"] = "RAiNFiRE";
WDOT.logEvent(event);
// .dart 에서 호출 할 때
Map event = {};
event["event"] = "w_create_character";
event["character_type"] = "archer";
event["character_name"] = "RAiNFiRE";
DOT.logEvent(event);
// webview 에서 호출 할 때
DotFlutterDataBridge.postMessage(JSON.stringify({
method : "logEvent",
data: {
event : "w_create_character",
character_type : "archer",
character_name : "RAiNFiRE"
}
}));
// .js 에서 호출 할 때
NativeModules.DotReactBridge.logEvent(JSON.stringify({
event : "w_create_character",
character_type : "archer",
character_name : "RAiNFiRE"
}));
// webview 에서 호출 할 때
window.ReactNativeWebView.postMessage(JSON.stringify({
method:"logEvent",
data : {
event : "w_create_character",
character_type : "archer",
character_name : "RAiNFiRE"
}
}));
Dictionary<string, object> eventDic = new Dictionary<string, object>();
eventDic.Add("event", "w_create_character");
eventDic.Add("character_type", "archer");
eventDic.Add("character_name", "RAiNFiRE");
DOT.logEvent(eventDic);
튜토리얼이 시작된 시점에 아래 코드를 추가합니다.
Map<String, Object> eventMap = new HashMap<>();
eventMap.put("event", "w_start_tutorial");
eventMap.put("tutorial_name", "introduction");
DOT.logEvent(eventMap);
val eventMap = mutableMapOf<String,Any>()
eventMap["event"] = "w_start_tutorial"
eventMap["tutorial_name"] = "introduction"
DOT.logEvent(eventMap)
let event = NSMutableDictionary()
event["event"] = "w_start_tutorial"
event["tutorial_name"] = "introduction"
DOT.logEvent(event)
NSMutableDictionary *event = [[NSMutableDictionary alloc] init];
[event setValue:@"w_start_tutorial" forKey:@"event"];
[event setValue:@"introduction" forKey:@"tutorial_name"];
[DOT logEvent:event];
var event = new Object();
event["event"] = "w_start_tutorial";
event["tutorial_name"] = "introduction";
DOT.logEvent(event);
var event = new Object();
event["event"] = "w_start_tutorial";
event["tutorial_name"] = "introduction";
WDOT.logEvent(event);
// .dart 에서 호출 할 때
Map event = {};
event["event"] = "w_start_tutorial";
event["tutorial_name"] = "introduction";
DOT.logEvent(event);
// webview 에서 호출 할 때
DotFlutterDataBridge.postMessage(JSON.stringify({
method : "logEvent",
data: {
event : "w_start_tutorial",
tutorial_name : "introduction"
}
}));
// .js 에서 호출 할 때
NativeModules.DotReactBridge.logEvent(JSON.stringify({
event : "w_start_tutorial",
tutorial_name : "introduction"
}));
// webview 에서 호출 할 때
window.ReactNativeWebView.postMessage(JSON.stringify({
method:"logEvent",
data : {
event : "w_start_tutorial",
tutorial_name : "introduction"
}
}));
Dictionary<string, object> eventDic = new Dictionary<string, object>();
eventDic.Add("event", "w_start_tutorial");
eventDic.Add("tutorial_name", "introduction");
DOT.logEvent(eventDic);
튜토리얼이 스킵된 시점에 아래 코드를 추가합니다.
Map<String, Object> eventMap = new HashMap<>();
eventMap.put("event", "w_skip_tutorial");
eventMap.put("tutorial_name", "introduction");
DOT.logEvent(eventMap);
val eventMap = mutableMapOf<String,Any>()
eventMap["event"] = "w_skip_tutorial"
eventMap["tutorial_name"] = "introduction"
DOT.logEvent(eventMap)
let event = NSMutableDictionary()
event["event"] = "w_skip_tutorial"
event["tutorial_name"] = "introduction"
DOT.logEvent(event)
NSMutableDictionary *event = [[NSMutableDictionary alloc] init];
[event setValue:@"w_skip_tutorial" forKey:@"event"];
[event setValue:@"introduction" forKey:@"tutorial_name"];
[DOT logEvent:event];
var event = new Object();
event["event"] = "w_skip_tutorial";
event["tutorial_name"] = "introduction";
DOT.logEvent(event);
var event = new Object();
event["event"] = "w_skip_tutorial";
event["tutorial_name"] = "introduction";
WDOT.logEvent(event);
// .dart 에서 호출 할 때
Map event = {};
event["event"] = "w_skip_tutorial";
event["tutorial_name"] = "introduction";
DOT.logEvent(event);
// webview 에서 호출 할 때
DotFlutterDataBridge.postMessage(JSON.stringify({
method : "logEvent",
data: {
event : "w_skip_tutorial",
tutorial_name : "introduction"
}
}));
// .js 에서 호출 할 때
NativeModules.DotReactBridge.logEvent(JSON.stringify({
event : "w_skip_tutorial",
tutorial_name : "introduction"
}));
// webview 에서 호출 할 때
window.ReactNativeWebView.postMessage(JSON.stringify({
method:"logEvent",
data : {
event : "w_skip_tutorial",
tutorial_name : "introduction"
}
}));
Dictionary<string, object> eventDic = new Dictionary<string, object>();
eventDic.Add("event", "w_skip_tutorial");
eventDic.Add("tutorial_name", "introduction");
DOT.logEvent(eventDic);
튜토리얼이 완료된 시점에 아래 코드를 추가합니다.
Map<String, Object> eventMap = new HashMap<>();
eventMap.put("event", "w_finish_tutorial");
eventMap.put("tutorial_name", "introduction");
DOT.logEvent(eventMap);
val eventMap = mutableMapOf<String,Any>()
eventMap["event"] = "w_finish_tutorial"
eventMap["tutorial_name"] = "introduction"
DOT.logEvent(eventMap)
var event = NSMutableDictionary()
event["event"] = "w_finish_tutorial"
event["tutorial_name"] = "introduction"
DOT.logEvent(event)
NSMutableDictionary *event = [[NSMutableDictionary alloc] init];
[event setValue:@"w_finish_tutorial" forKey:@"event"];
[event setValue:@"introduction" forKey:@"tutorial_name"];
[DOT logEvent:event];
var event = new Object();
event["event"] = "w_finish_tutorial";
event["tutorial_name"] = "introduction";
DOT.logEvent(event);
var event = new Object();
event["event"] = "w_finish_tutorial";
event["tutorial_name"] = "introduction";
WDOT.logEvent(event);
// .dart 에서 호출 할 때
Map event = {};
event["event"] = "w_finish_tutorial";
event["tutorial_name"] = "introduction";
DOT.logEvent(event);
// webview 에서 호출 할 때
DotFlutterDataBridge.postMessage(JSON.stringify({
method : "logEvent",
data: {
event : "w_finish_tutorial",
tutorial_name : "introduction"
}
}));
// .js 에서 호출 할 때
NativeModules.DotReactBridge.logEvent(JSON.stringify({
event : "w_finish_tutorial",
tutorial_name : "introduction"
}));
// webview 에서 호출 할 때
window.ReactNativeWebView.postMessage(JSON.stringify({
method:"logEvent",
data : {
event : "w_finish_tutorial",
tutorial_name : "introduction"
}
}));
Dictionary<string, object> eventDic = new Dictionary<string, object>();
eventDic.Add("event", "w_finish_tutorial");
eventDic.Add("tutorial_name", "introduction");
DOT.logEvent(eventDic);
게임을 시작하는 시점에 아래 코드를 추가합니다.
Map<String, Object> eventMap = new HashMap<>();
eventMap.put("event", "w_start_game");
DOT.logEvent(eventMap);
val eventMap = mutableMapOf<String,Any>()
eventMap["event"] = "w_start_game"
DOT.logEvent(eventMap)
var event = NSMutableDictionary()
event["event"] = "w_start_game"
DOT.logEvent(event)
NSMutableDictionary *event = [[NSMutableDictionary alloc] init];
[event setValue:@"w_start_game" forKey:@"event"];
[DOT logEvent:event];
var event = new Object();
event["event"] = "w_start_game";
DOT.logEvent(event);
var event = new Object();
event["event"] = "w_start_game";
WDOT.logEvent(event);
// .dart 에서 호출 할 때
Map event = {};
event["event"] = "w_start_game";
DOT.logEvent(event);
// webview 에서 호출 할 때
DotFlutterDataBridge.postMessage(JSON.stringify({
method : "logEvent",
data: {
event : "w_start_game"
}
}));
// .js 에서 호출 할 때
NativeModules.DotReactBridge.logEvent(JSON.stringify({
event : "w_start_game"
}));
// webview 에서 호출 할 때
window.ReactNativeWebView.postMessage(JSON.stringify({
method:"logEvent",
data : {
event : "w_start_game"
}
}));
Dictionary<string, object> eventDic = new Dictionary<string, object>();
eventDic.Add("event", "w_start_game");
DOT.logEvent(eventDic);
레벨이 상승한 시점에 아래 코드를 추가합니다.
User user = new User.Builder().setAttr5("86").build();
DOT.setUser(user);
Map<String, Object> eventMap = new HashMap<>();
eventMap.put("event", "w_achive_level");
eventMap.put("level", "86");
eventMap.put("g22", 1500);
DOT.logEvent(eventMap);
val user = User.Builder()
.setAttr5("86")
.build()
DOT.setUser(user)
val eventMap = mutableMapOf<String,Any>()
eventMap["event"] = "w_achive_level"
eventMap["level"] = "86"
eventMap["g22"] = 1500
DOT.logEvent(eventMap)
[DOT setUser:
[User builder:^(User *user) {
[user setAttribute5:@"86"];
}]
];
NSMutableDictionary *event = [[NSMutableDictionary alloc] init];
[event setValue:@"w_achive_level" forKey:@"event"];
[event setValue:@"86" forKey:@"level"];
[event setValue:[NSNumber numberWithInt:1500] forKey:@"g22"];
[DOT logEvent:event];
~~~`}/>
</TabPane>
<TabPane tab="Swift" key='2'>
<WiseMarkDown source={`
~~~swift
DOT.setUser(
User.builder({ (builder) in
let user = builder as! User
user.attribute5 = "86"
})
)
let event = NSMutableDictionary()
event["event"] = "w_achive_level"
event["level"] = "86"
event["g22"] = 1500
DOT.logEvent(event)
DOT.setUser(User.setAttr5("86"));
var event = new Object();
event["event"] = "w_achive_level";
event["level"] = "86";
event["g22"] = 1500;
DOT.logEvent(event);
var event = new Object();
event["event"] = "w_achive_level";
event["level"] = "86";
event["g22"] = 1500;
WDOT.logEvent(event);
// .dart 에서 호출 할 때
Map event = {};
event["event"] = "w_achive_level";
event["level"] = "86";
event["g22"] = 1500;
DOT.logEvent(event);
// webview 에서 호출 할 때
DotFlutterDataBridge.postMessage(JSON.stringify({
method : "logEvent",
data: {
event : "w_achive_level",
level : "86",
g22 : 1500
}
}));
// .js 에서 호출 할 때
NativeModules.DotReactBridge.logEvent(JSON.stringify({
event : "w_achive_level",
level : "86",
g22 : 1500
}));
// webview 에서 호출 할 때
window.ReactNativeWebView.postMessage(JSON.stringify({
method:"logEvent",
data : {
event : "w_achive_level",
level : "86",
g22 : 1500
}
}));
DOT.setUser(
new DOT_Model.User.Builder()
.setAttr5("86")
.build()
);
Dictionary<string, object> eventDic = new Dictionary<string, object>();
eventDic.Add("event", "w_achive_level");
eventDic.Add("level", "86");
eventDic.Add("g22", 1500);
DOT.logEvent(eventDic);
스테이지가 완료된 시점에 아래 코드를 추가합니다.
Map<String, Object> eventMap = new HashMap<>();
eventMap.put("event", "w_finish_stage");
eventMap.put("stage_name", "ROUND249");
eventMap.put("credit_name", "gold");
eventMap.put("g4", 10000);
DOT.logEvent(eventMap);
val eventMap = mutableMapOf<String,Any>()
eventMap["event"] = "w_finish_stage"
eventMap["stage_name"] = "ROUND249"
eventMap["credit_name"] = "gold"
eventMap["g4"] = 10000
DOT.logEvent(eventMap)
let event = NSMutableDictionary()
event["event"] = "w_finish_stage"
event["stage_name"] = "ROUND249"
event["credit_name"] = "gold"
event["g4"] = 10000
DOT.logEvent(event)
NSMutableDictionary *event = [[NSMutableDictionary alloc] init];
[event setValue:@"w_finish_stage" forKey:@"event"];
[event setValue:@"ROUND249" forKey:@"stage_name"];
[event setValue:@"gold" forKey:@"credit_name"];
[event setValue:[NSNumber numberWithInt:10000] forKey:@"g4"];
[DOT logEvent:event];
var event = new Object();
event["event"] = "w_finish_stage";
event["stage_name"] = "ROUND249";
event["credit_name"] = "gold";
event["g4"] = 10000;
DOT.logEvent(event);
var event = new Object();
event["event"] = "w_finish_stage";
event["stage_name"] = "ROUND249";
event["credit_name"] = "gold";
event["g4"] = 10000;
WDOT.logEvent(event);
// .dart 에서 호출 할 때
Map event = {};
event["event"] = "w_finish_stage";
event["stage_name"] = "ROUND249";
event["credit_name"] = "gold";
event["g4"] = 10000;
DOT.logEvent(event);
// webview 에서 호출 할 때
DotFlutterDataBridge.postMessage(JSON.stringify({
method : "logEvent",
data: {
event : "w_finish_stage",
stage_name : "ROUND249",
credit_name : "gold",
g4 : 10000
}
}));
// .js 에서 호출 할 때
NativeModules.DotReactBridge.logEvent(JSON.stringify({
event : "w_finish_stage",
stage_name : "ROUND249",
credit_name : "gold",
g4 : 10000
}));
// webview 에서 호출 할 때
window.ReactNativeWebView.postMessage(JSON.stringify({
method:"logEvent",
data : {
event : "w_finish_stage",
stage_name : "ROUND249",
credit_name : "gold",
g4 : 10000
}
}));
Dictionary<string, object> eventDic = new Dictionary<string, object>();
eventDic.Add("event", "w_finish_stage");
eventDic.Add("stage_name", "ROUND249");
eventDic.Add("credit_name", "gold");
eventDic.Add("g4", 10000);
DOT.logEvent(eventDic);
레이드가 시작된 시점에 아래 코드를 추가합니다.
Map<String, Object> eventMap = new HashMap<>();
eventMap.put("event", "w_start_raid");
eventMap.put("boss_name", "tha-rev20201207");
DOT.logEvent(eventMap);
val eventMap = mutableMapOf<String,Any>()
eventMap["event"] = "w_start_raid"
eventMap["boss_name"] = "tha-rev20201207"
DOT.logEvent(eventMap)
let event = NSMutableDictionary()
event["event"] = "w_start_raid"
event["boss_name"] = "tha-rev20201207"
DOT.logEvent(event)
NSMutableDictionary *event = [[NSMutableDictionary alloc] init];
[event setValue:@"w_start_raid" forKey:@"event"];
[event setValue:@"tha-rev20201207" forKey:@"boss_name"];
[DOT logEvent:event];
var event = new Object();
event["event"] = "w_start_raid";
event["boss_name"] = "tha-rev20201207";
DOT.logEvent(event);
var event = new Object();
event["event"] = "w_start_raid";
event["boss_name"] = "tha-rev20201207";
WDOT.logEvent(event);
// .dart 에서 호출 할 때
Map event = {};
event["event"] = "w_start_raid";
event["boss_name"] = "tha-rev20201207";
DOT.logEvent(event);
// webview 에서 호출 할 때
DotFlutterDataBridge.postMessage(JSON.stringify({
method : "logEvent",
data: {
event : "w_start_raid",
boss_name : "tha-rev20201207"
}
}));
// .js 에서 호출 할 때
NativeModules.DotReactBridge.logEvent(JSON.stringify({
event : "w_start_raid",
boss_name : "tha-rev20201207"
}));
// webview 에서 호출 할 때
window.ReactNativeWebView.postMessage(JSON.stringify({
method:"logEvent",
data : {
event : "w_start_raid",
boss_name : "tha-rev20201207"
}
}));
Dictionary<string, object> eventDic = new Dictionary<string, object>();
eventDic.Add("event", "w_start_raid");
eventDic.Add("boss_name", "tha-rev20201207");
DOT.logEvent(eventDic);
레이드가 완료된 시점에 아래 코드를 추가합니다.
Map<String, Object> eventMap = new HashMap<>();
eventMap.put("event", "w_end_raid");
eventMap.put("boss_name", "tha-rev20201207");
eventMap.put("item_id", "gau9348");
eventMap.put("item_type", "gauntlet");
DOT.logEvent(eventMap);
val eventMap = mutableMapOf<String,Any>()
eventMap["event"] = "w_end_raid"
eventMap["boss_name"] = "tha-rev20201207"
eventMap["item_id"] = "gau9348"
eventMap["item_type"] = "gauntlet"
DOT.logEvent(eventMap)
let event = NSMutableDictionary()
event["event"] = "w_end_raid"
event["boss_name"] = "tha-rev20201207"
event["item_id"] = "gau9348"
event["item_type"] = "gauntlet"
DOT.logEvent(event)
NSMutableDictionary *event = [[NSMutableDictionary alloc] init];
[event setValue:@"w_end_raid" forKey:@"event"];
[event setValue:@"tha-rev20201207" forKey:@"boss_name"];
[event setValue:@"gau9348" forKey:@"item_id"];
[event setValue:@"gauntlet" forKey:@"item_type"];
[DOT logEvent:event];
var event = new Object();
event["event"] = "w_end_raid";
event["boss_name"] = "tha-rev20201207";
event["item_id"] = "gau9348";
event["item_type"] = "gauntlet";
DOT.logEvent(event);
var event = new Object();
event["event"] = "w_end_raid";
event["boss_name"] = "tha-rev20201207";
event["item_id"] = "gau9348";
event["item_type"] = "gauntlet";
WDOT.logEvent(event);
// .dart 에서 호출 할 때
Map event = {};
event["event"] = "w_end_raid";
event["boss_name"] = "tha-rev20201207";
event["item_id"] = "gau9348";
event["item_type"] = "gauntlet";
DOT.logEvent(event);
// webview 에서 호출 할 때
DotFlutterDataBridge.postMessage(JSON.stringify({
method : "logEvent",
data: {
event : "w_end_raid",
boss_name : "tha-rev20201207",
item_id : "gau9348",
item_type : "gauntlet"
}
}));
// .js 에서 호출 할 때
NativeModules.DotReactBridge.logEvent(JSON.stringify({
event : "w_end_raid",
boss_name : "tha-rev20201207",
item_id : "gau9348",
item_type : "gauntlet"
}));
// webview 에서 호출 할 때
window.ReactNativeWebView.postMessage(JSON.stringify({
method:"logEvent",
data : {
event : "w_end_raid",
boss_name : "tha-rev20201207",
item_id : "gau9348",
item_type : "gauntlet"
}
}));
Dictionary<string, object> eventDic = new Dictionary<string, object>();
eventDic.Add("event", "w_end_raid");
eventDic.Add("boss_name", "tha-rev20201207");
eventDic.Add("item_id", "gau9348");
eventDic.Add("item_name", "gauntlet");
DOT.logEvent(eventDic);
PvP가 완료된 시점에 아래 코드를 추가합니다.
Map<String, Object> eventMap = new HashMap<>();
eventMap.put("event", "w_finish_pvp");
eventMap.put("credit_name", "reputation point");
eventMap.put("g4", 211);
DOT.logEvent(eventMap);
val eventMap = mutableMapOf<String,Any>()
eventMap["event"] = "w_finish_pvp"
eventMap["credit_name"] = "reputation point"
eventMap["g4"] = 211
DOT.logEvent(eventMap)
let event = NSMutableDictionary()
event["event"] = "w_finish_pvp"
event["credit_name"] = "reputation point"
event["g4"] = 211
DOT.logEvent(event)
NSMutableDictionary *event = [[NSMutableDictionary alloc] init];
[event setValue:@"w_finish_pvp" forKey:@"event"];
[event setValue:@"reputation point" forKey:@"credit_name"];
[event setValue:[NSNumber numberWithInt:211] forKey:@"g4"];
[DOT logEvent:event];
var event = new Object();
event["event"] = "w_finish_pvp";
event["credit_name"] = "reputation point";
event["g4"] = 211;
DOT.logEvent(event);
var event = new Object();
event["event"] = "w_finish_pvp";
event["credit_name"] = "reputation point";
event["g4"] = 211;
WDOT.logEvent(event);
// .dart 에서 호출 할 때
Map event = {};
event["event"] = "w_finish_pvp";
event["credit_name"] = "reputation point";
event["g4"] = 211;
DOT.logEvent(event);
// webview 에서 호출 할 때
DotFlutterDataBridge.postMessage(JSON.stringify({
method : "logEvent",
data: {
event : "w_finish_pvp",
credit_name : "reputation point",
g4 : 211
}
}));
// .js 에서 호출 할 때
NativeModules.DotReactBridge.logEvent(JSON.stringify({
event : "w_finish_pvp",
credit_name : "reputation point",
g4 : "211"
}));
// webview 에서 호출 할 때
window.ReactNativeWebView.postMessage(JSON.stringify({
method:"logEvent",
data : {
event : "w_finish_pvp",
credit_name : "reputation point",
g4 : "211"
}
}));
Dictionary<string, object> eventDic = new Dictionary<string, object>();
eventDic.Add("event", "w_finish_pvp");
eventDic.Add("credit_name", "reputation point");
eventDic.Add("g4", 211);
DOT.logEvent(eventDic);
보너스나 크레딧 등을 사용 완료한 시점에 아래 코드를 추가합니다.
Map<String, Object> eventMap = new HashMap<>();
eventMap.put("event", "w_credit_spent");
eventMap.put("credit_name", "diamond");
eventMap.put("g4", 500);
DOT.logEvent(eventMap);
val eventMap = mutableMapOf<String,Any>()
eventMap["event"] = "w_credit_spent"
eventMap["credit_name"] = "diamond"
eventMap["g4"] = 500
DOT.logEvent(eventMap)
let event = NSMutableDictionary()
event["event"] = "w_credit_spent"
event["credit_name"] = "diamond"
event["g4"] = 500
DOT.logEvent(event)
NSMutableDictionary *event = [[NSMutableDictionary alloc] init];
[event setValue:@"w_credit_spent" forKey:@"event"];
[event setValue:@"diamond" forKey:@"credit_name"];
[event setValue:[NSNumber numberWithInt:500] forKey:@"g4"];
[DOT logEvent:event];
var event = new Object();
event["event"] = "w_credit_spent";
event["credit_name"] = "diamond";
event["g4"] = 500;
DOT.logEvent(event);
var event = new Object();
event["event"] = "w_credit_spent";
event["credit_name"] = "diamond";
event["g4"] = 500;
WDOT.logEvent(event);
// .dart 에서 호출 할 때
Map event = {};
event["event"] = "w_credit_spent";
event["credit_name"] = "diamond";
event["g4"] = 500;
DOT.logEvent(event);
// webview 에서 호출 할 때
DotFlutterDataBridge.postMessage(JSON.stringify({
method : "logEvent",
data: {
event : "w_credit_spent",
credit_name : "diamond",
g4 : 500
}
}));
// .js 에서 호출 할 때
NativeModules.DotReactBridge.logEvent(JSON.stringify({
event : "w_credit_spent",
credit_name : "diamond",
g4 : 500
}));
// webview 에서 호출 할 때
window.ReactNativeWebView.postMessage(JSON.stringify({
method:"logEvent",
data : {
event : "w_credit_spent",
credit_name : "diamond",
g4 : 500
}
}));
Dictionary<string, object> eventDic = new Dictionary<string, object>();
eventDic.Add("event", "w_credit_spent");
eventDic.Add("credit_name", "diamond");
eventDic.Add("g3", 500);
DOT.logEvent(eventDic);
선물하기가 완료된 시점에 아래 코드를 추가합니다.
Map<String, Object> eventMap = new HashMap<>();
eventMap.put("event", "w_send_gift");
eventMap.put("item_id", "newbie pack");
eventMap.put("item_type", "promotion");
DOT.logEvent(eventMap);
val eventMap = mutableMapOf<String,Any>()
eventMap["event"] = "w_send_gift"
eventMap["item_id"] = "newbie pack"
eventMap["item_type"] = "promotion"
DOT.logEvent(eventMap)
let event = NSMutableDictionary()
event["event"] = "w_send_gift"
event["item_id"] = "newbie pack"
event["item_type"] = "promotion"
DOT.logEvent(event)
NSMutableDictionary *event = [[NSMutableDictionary alloc] init];
[event setValue:@"w_send_gift" forKey:@"event"];
[event setValue:@"newbie pack" forKey:@"item_id"];
[event setValue:@"promotion" forKey:@"item_type"];
[DOT logEvent:event];
var event = new Object();
event["event"] = "w_send_gift";
event["item_id"] = "newbie pack";
event["item_type"] = "promotion";
DOT.logEvent(event);
var event = new Object();
event["event"] = "w_send_gift";
event["item_id"] = "newbie pack";
event["item_type"] = "promotion";
WDOT.logEvent(event);
// .dart 에서 호출 할 때
Map event = {};
event["event"] = "w_send_gift";
event["item_id"] = "newbie pack";
event["item_type"] = "promotion";
DOT.logEvent(event);
// webview 에서 호출 할 때
DotFlutterDataBridge.postMessage(JSON.stringify({
method : "logEvent",
data: {
event : "w_send_gift",
item_id : "newbie pack",
item_type : "promotion"
}
}));
// .js 에서 호출 할 때
NativeModules.DotReactBridge.logEvent(JSON.stringify({
event : "w_send_gift",
item_id : "newbie pack",
item_type : "promotion"
}));
// webview 에서 호출 할 때
window.ReactNativeWebView.postMessage(JSON.stringify({
method:"logEvent",
data : {
event : "w_send_gift",
item_id : "newbie pack",
item_type : "promotion"
}
}));
Dictionary<string, object> eventDic = new Dictionary<string, object>();
eventDic.Add("event", "w_send_gift");
eventDic.Add("item_id", "newbie pack");
eventDic.Add("item_name", "promotion");
DOT.logEvent(eventDic);
유저를 초대 완료한 시점에 아래 코드를 추가합니다.
Map<String, Object> eventMap = new HashMap<>();
eventMap.put("event", "w_invite");
eventMap.put("invite_type", "kakao");
DOT.logEvent(eventMap);
val eventMap = mutableMapOf<String,Any>()
eventMap["event"] = "w_invite"
eventMap["invite_type"] = "kakao"
DOT.logEvent(eventMap)
let event = NSMutableDictionary()
event["event"] = "w_invite"
event["invite_type"] = "kakao"
DOT.logEvent(event)
NSMutableDictionary *event = [[NSMutableDictionary alloc] init];
[event setValue:@"w_invite" forKey:@"event"];
[event setValue:@"kakao" forKey:@"invite_type"];
[DOT logEvent:event];
var event = new Object();
event["event"] = "w_invite";
event["invite_type"] = "kakao";
DOT.logEvent(event);
var event = new Object();
event["event"] = "w_invite";
event["invite_type"] = "kakao";
WDOT.logEvent(event);
// .dart 에서 호출 할 때
Map event = {};
event["event"] = "w_invite";
event["invite_type"] = "kakao";
DOT.logEvent(event);
// webview 에서 호출 할 때
DotFlutterDataBridge.postMessage(JSON.stringify({
method : "logEvent",
data: {
event : "w_invite",
invite_type : "kakao"
}
}));
// .js 에서 호출 할 때
NativeModules.DotReactBridge.logEvent(JSON.stringify({
event : "w_invite",
invite_type : "kakao"
}));
// webview 에서 호출 할 때
window.ReactNativeWebView.postMessage(JSON.stringify({
method:"logEvent",
data : {
event : "w_invite",
invite_type : "kakao"
}
}));
Dictionary<string, object> eventDic = new Dictionary<string, object>();
eventDic.Add("event", "w_invite");
eventDic.Add("invite_type", "kakao");
DOT.logEvent(eventDic);
공유를 완료한 시점 또는 공유 버튼이 클릭된 시점에 아래 코드를 추가합니다.
Map<String, Object> eventMap = new HashMap<>();
eventMap.put("event", "w_share");
eventMap.put("share_type", "line");
DOT.logEvent(eventMap);
val eventMap = mutableMapOf<String,Any>()
eventMap["event"] = "w_share"
eventMap["share_type"] = "line"
DOT.logEvent(eventMap)
let event = NSMutableDictionary()
event["event"] = "w_share"
event["share_type"] = "line"
DOT.logEvent(event)
NSMutableDictionary *event = [[NSMutableDictionary alloc] init];
[event setValue:@"w_share" forKey:@"event"];
[event setValue:@"line" forKey:@"share_type"];
[DOT logEvent:event];
var event = new Object();
event["event"] = "w_share";
event["share_type"] = "line";
DOT.logEvent(event);
var event = new Object();
event["event"] = "w_share";
event["share_type"] = "line";
WDOT.logEvent(event);
// .dart 에서 호출 할 때
Map event = {};
event["event"] = "w_share";
event["share_type"] = "line";
DOT.logEvent(event);
// webview 에서 호출 할 때
DotFlutterDataBridge.postMessage(JSON.stringify({
method : "logEvent",
data: {
event : "w_share",
share_type : "line"
}
}));
// .js 에서 호출 할 때
NativeModules.DotReactBridge.logEvent(JSON.stringify({
event : "w_share",
share_type : "line"
}));
// webview 에서 호출 할 때
window.ReactNativeWebView.postMessage(JSON.stringify({
method:"logEvent",
data : {
event : "w_share",
share_type : "line"
}
}));
Dictionary<string, object> eventDic = new Dictionary<string, object>();
eventDic.Add("event", "w_share");
eventDic.Add("share_type", "line");
DOT.logEvent(eventDic);
인앱 광고가 클릭된 시점에 아래 코드를 추가합니다.
Map<String, Object> eventMap = new HashMap<>();
eventMap.put("event", "w_click_ad");
eventMap.put("ad_name", "cr337203984");
DOT.logEvent(eventMap);
val eventMap = mutableMapOf<String,Any>()
eventMap["event"] = "w_click_ad"
eventMap["ad_name"] = "cr337203984"
DOT.logEvent(eventMap)
let event = NSMutableDictionary()
event["event"] = "w_click_ad"
event["ad_name"] = "cr337203984"
DOT.logEvent(event)
NSMutableDictionary *event = [[NSMutableDictionary alloc] init];
[event setValue:@"w_click_ad" forKey:@"event"];
[event setValue:@"cr337203984" forKey:@"ad_name"];
[DOT logEvent:event];
var event = new Object();
event["event"] = "w_click_ad";
event["ad_name"] = "cr337203984";
DOT.logEvent(event);
var event = new Object();
event["event"] = "w_click_ad";
event["ad_name"] = "cr337203984";
WDOT.logEvent(event);
// .dart 에서 호출 할 때
Map event = {};
event["event"] = "w_click_ad";
event["ad_name"] = "cr337203984";
DOT.logEvent(event);
// webview 에서 호출 할 때
DotFlutterDataBridge.postMessage(JSON.stringify({
method : "logEvent",
data: {
event : "w_click_ad",
ad_name : "cr337203984"
}
}));
// .js 에서 호출 할 때
NativeModules.DotReactBridge.logEvent(JSON.stringify({
event : "w_click_ad",
ad_name : "cr337203984"
}));
// webview 에서 호출 할 때
window.ReactNativeWebView.postMessage(JSON.stringify({
method:"logEvent",
data : {
event : "w_click_ad",
ad_name : "cr337203984"
}
}));
Dictionary<string, object> eventDic = new Dictionary<string, object>();
eventDic.Add("event", "w_click_ad");
eventDic.Add("ad_name", "cr337203984");
DOT.logEvent(eventDic);
인앱 광고가 스킵된 시점에 아래 코드를 추가합니다.
Map<String, Object> eventMap = new HashMap<>();
eventMap.put("event", "w_skip_ad");
eventMap.put("ad_name", "cr337203984");
DOT.logEvent(eventMap);
val eventMap = mutableMapOf<String,Any>()
eventMap["event"] = "w_skip_ad"
eventMap["ad_name"] = "cr337203984"
DOT.logEvent(eventMap)
let event = NSMutableDictionary()
event["event"] = "w_skip_ad"
event["ad_name"] = "cr337203984"
DOT.logEvent(event)
NSMutableDictionary *event = [[NSMutableDictionary alloc] init];
[event setValue:@"w_skip_ad" forKey:@"event"];
[event setValue:@"cr337203984" forKey:@"ad_name"];
[DOT logEvent:event];
var event = new Object();
event["event"] = "w_skip_ad";
event["ad_name"] = "cr337203984";
DOT.logEvent(event);
var event = new Object();
event["event"] = "w_skip_ad";
event["ad_name"] = "cr337203984";
WDOT.logEvent(event);
// .dart 에서 호출 할 때
Map event = {};
event["event"] = "w_skip_ad";
event["ad_name"] = "cr337203984";
DOT.logEvent(event);
// webview 에서 호출 할 때
DotFlutterDataBridge.postMessage(JSON.stringify({
method : "logEvent",
data: {
event : "w_skip_ad",
ad_name : "cr337203984"
}
}));
// .js 에서 호출 할 때
NativeModules.DotReactBridge.logEvent(JSON.stringify({
event : "w_skip_ad",
ad_name : "cr337203984"
}));
// webview 에서 호출 할 때
window.ReactNativeWebView.postMessage(JSON.stringify({
method:"logEvent",
data : {
event : "w_skip_ad",
ad_name : "cr337203984"
}
}));
Dictionary<string, object> eventDic = new Dictionary<string, object>();
eventDic.Add("event", "w_skip_ad");
eventDic.Add("ad_name", "cr337203984");
DOT.logEvent(eventDic);
Key
Value 예시
Type
설명
character_type
archer
string
게임 캐릭터 유형 정보
character_name
RAiNFiRE
string
게임 캐릭터 명칭 정보
Key
Value 예시
Type
설명
tutorial_name
introduction
string
튜토리얼 명칭 또는 ID
Key
Value 예시
Type
설명
tutorial_name
introduction
string
튜토리얼 명칭 또는 ID
Key
Value 예시
Type
설명
tutorial_name
introduction
string
튜토리얼 명칭 또는 ID
Key
Value 예시
Type
설명
setAttr5
86
string
도달한 레벨
level
86
string
도달한 레벨
g22
1500
float
획득한 점수
Key
Value 예시
Type
설명
stage_name
ROUND249
string
스테이지 명칭 또는 ID
credit_name
gold
string
획득한 크레딧 명칭
g4
10000
float
획득한 크레딧 수치
Key
Value 예시
Type
설명
boss_name
tha-rev20201207
string
보스 명칭 또는 ID
Key
Value 예시
Type
설명
boss_name
tha-rev20201207
string
보스 명칭 또는 ID
item_id
gau9348
string
획득한 아이템 ID 또는 명칭
item_type
gauntlet
string
획득한 아이템 유형
Key
Value 예시
Type
설명
credit_name
reputation point
string
획득한 크레딧 명칭
g4
211
float
획득한 크레딧 수치
Key
Value 예시
Type
설명
credit_name
diamond
string
사용한 크레딧 명칭
g3
500
float
사용한 크레딧 수치
Key
Value 예시
Type
설명
item_id
newbie pack
string
선물한 아이템 ID 또는 명칭
item_type
promotion
string
선물한 아이템 유형
Key
Value 예시
Type
설명
invite_type
kakao
string
초대를 전송한 미디어
Key
Value 예시
Type
설명
share_type
line
string
공유한 미디어
Key
Value 예시
Type
설명
ad_name
cr337203984
string
클릭된 광고 ID 또는 명칭
Key
Value 예시
Type
설명
ad_name
cr337203984
string
스킵된 광고 ID 또는 명칭