Game : 게임
게임 앱에서 측정을 권장하는 인앱 이벤트 API와 적용 예시를 안내합니다.
☑️속성 중 Key 이름은 가이드에 나와있는 Key 이름을 그대로 사용 해 주세요. (임의로 변경시 대시보드에서 데이터 확인이 어렵습니다. > level , item_id 등)
캐릭터 생성
캐릭터 생성이 완료되는 시점에 아래 코드를 추가합니다.
선택 속성
Key | Value 예시 | Type | 설명 |
character_type | archer | string | 게임 캐릭터 유형 정보 |
character_name | RAiNFiRE | string | 게임 캐릭터 명칭 정보 |
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);
튜토리얼 시작
튜토리얼이 시작된 시점에 아래 코드를 추가합니다.
선택 속성
Key | Value 예시 | Type | 설명 |
tutorial_name | introduction | string | 튜토리얼 명칭 또는 ID |
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);
튜토리얼 스킵
튜토리얼이 스킵된 시점에 아래 코드를 추가합니다.
선택 속성
Key | Value 예시 | Type | 설명 |
tutorial_name | introduction | string | 튜토리얼 명칭 또는 ID |
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);
튜토리얼 완료
튜토리얼이 완료된 시점에 아래 코드를 추가합니다.
선택 속성
Key | Value 예시 | Type | 설명 |
tutorial_name | introduction | string | 튜토리얼 명칭 또는 ID |
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);
레벨 달성
레벨이 상승한 시점에 아래 코드를 추가합니다.
선택 속성
Key | Value 예시 | Type | 설명 |
setAttr5 | 86 | string | 도달한 레벨 |
level | 86 | string | 도달한 레벨 |
g22 | 1500 | float | 획득한 점수 |
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);
스테이지 완료
스테이지가 완료된 시점에 아래 코드를 추가합니다.
선택 속성
Key | Value 예시 | Type | 설명 |
stage_name | ROUND249 | string | 스테이지 명칭 또는 ID |
credit_name | gold | string | 획득한 크레딧 명칭 |
g4 | 10000 | float | 획득한 크레딧 수치 |
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);
레이드 시작
레이드가 시작된 시점에 아래 코드를 추가합니다.
선택 속성
Key | Value 예시 | Type | 설명 |
boss_name | tha-rev20201207 | string | 보스 명칭 또는 ID |
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);
레이드 완료
레이드가 완료된 시점에 아래 코드를 추가합니다.
선택 속성
Key | Value 예시 | Type | 설명 |
boss_name | tha-rev20201207 | string | 보스 명칭 또는 ID |
item_id | gau9348 | string | 획득한 아이템 ID 또는 명칭 |
item_type | gauntlet | string | 획득한 아이템 유형 |
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 완료
PvP가 완료된 시점에 아래 코드를 추가합니다.
선택 속성
Key | Value 예시 | Type | 설명 |
credit_name | reputation point | string | 획득한 크레딧 명칭 |
g4 | 211 | float | 획득한 크레딧 수치 |
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);
크레딧 사용
보너스나 크레딧 등을 사용 완료한 시점에 아래 코드를 추가합니다.
선택 속성
Key | Value 예시 | Type | 설명 |
credit_name | diamond | string | 사용한 크레딧 명칭 |
g3 | 500 | float | 사용한 크레딧 수치 |
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);
선물하기
선물하기가 완료된 시점에 아래 코드를 추가합니다.
선택 속성
Key | Value 예시 | Type | 설명 |
item_id | newbie pack | string | 선물한 아이템 ID 또는 명칭 |
item_type | promotion | string | 선물한 아이템 유형 |
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"
}