Game : 게임
게임 앱에서 측정을 권장하는 인앱 이벤트 API와 적용 예시를 안내합니다.
Last updated
게임 앱에서 측정을 권장하는 인앱 이벤트 API와 적용 예시를 안내합니다.
Last updated
속성 중 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가 완료된 시점에 아래 코드를 추가합니다.
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"
}
}));
// .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);
유저를 초대 완료한 시점에 아래 코드를 추가합니다.
Key
Value 예시
Type
설명
invite_type
kakao
string
초대를 전송한 미디어
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);
공유를 완료한 시점 또는 공유 버튼이 클릭된 시점에 아래 코드를 추가합니다.
Key
Value 예시
Type
설명
share_type
line
string
공유한 미디어
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);
인앱 광고가 클릭된 시점에 아래 코드를 추가합니다.
Key
Value 예시
Type
설명
ad_name
cr337203984
string
클릭된 광고 ID 또는 명칭
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);
인앱 광고가 스킵된 시점에 아래 코드를 추가합니다.
Key
Value 예시
Type
설명
ad_name
cr337203984
string
스킵된 광고 ID 또는 명칭
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);