Wisetracker Docs
웹사이트블로그콘솔 바로가기도입 문의이용 문의
🧑‍💻 개발자 가이드
🧑‍💻 개발자 가이드
  • 와이즈트래커 개발자 가이드
  • quick start
    • 앱 광고 트래킹을 위한 필수 지식
    • SDK 설정 전 기초 진단
    • SDK 설정 후 체크리스트
      • Android
      • iOS
      • ReactNative
      • Flutter
      • Unity
      • Cordova
      • Cocos2d-x
      • Web
    • SDK 데이터 검증
    • 이벤트 발생 현황
  • SDK 연동
    • Android
      • SDK 삽입
      • 필수 이벤트 설정
      • App Link 설정
      • Android 12 ADID 변경사항
    • iOS
      • SDK 삽입
      • 필수 이벤트 설정
      • App Store '개인정보 세부 사항' 가이드
      • Universal Link 설정
    • HybridApp WebView
      • SDK 삽입
      • 필수 이벤트 설정
    • React Native
      • React Native 플러그인 연동
      • 인앱 분석 API
      • AOS 데이터 검증
      • iOS 데이터 검증
    • Flutter
      • Flutter 플러그인 연동
      • AOS 데이터 검증
      • iOS 데이터 검증
    • Unity
      • Unity 플러그인 연동
      • 인앱 이벤트 API
      • AOS 데이터 검증
      • iOS 데이터 검증
    • Website
      • Javascript SDK Integration
      • 웹사이트 이벤트 분석하기
    • CPC 광고 분석 연동
      • Web-To-App SDK 적용
      • App 으로 이동시키기
  • 앱심사 개인정보 처리 가이드
    • SDK 개인정보 처리 가이드
  • SDK 데이터 검증
    • Android 데이터 검증
    • iOS 데이터 검증
    • 웹사이트 데이터 검증
  • In-App Event
    • 인앱 이벤트 설정
      • 페이지 분석
      • 커스텀 차원(Custom Dimension)
    • 인앱 이벤트 리스트
      • Basic : 공통 이벤트
      • Messaging : 푸시/인앱 메시지
      • e-Commerce : 이커머스
      • Education : 교육
      • Travel : 여행 및 레저
      • Entertainment : 엔터테인먼트
      • Game : 게임
      • Fintech : 금융
      • Mobility : 모빌리티
    • 인앱 이벤트 태깅(Tagging)
  • Google Tag Manager 연동
    • 연동 방법
  • Server-to-Server 연동
    • 연동 방법
    • 연동 이벤트
    • 연동 데이터 요약
  • 푸시메세지 가이드
    • 앱 푸시메시지 연동
      • Android
        • FCM 인증서 설정
        • 대시보드 설정
        • SDK 설치 및 API 적용
        • 푸시 알림 데이터 이용
      • iOS
        • APNS 설정
        • 대시보드 설정
        • SDK 설치 및 API 적용
        • 푸시 알림 데이터 이용
      • React Native
        • 준비 사항 안내
        • Android 기초 설정
        • iOS 기초 설정
        • ReactNative 푸시메세지 설정
      • Flutter
        • 준비 사항 안내
        • Android 기초 설정
        • iOS 기초 설정
        • Flutter 푸시메세지 설정
    • 푸시 알림 데이터 이용
Powered by GitBook
On this page
  • 캐릭터 생성
  • 튜토리얼 시작
  • 튜토리얼 스킵
  • 튜토리얼 완료
  • 게임 시작
  • 레벨 달성
  • 스테이지 완료
  • 레이드 시작
  • 레이드 완료
  • PvP 완료
  • 크레딧 사용
  • 선물하기
  • 초대
  • 공유
  • 인앱 광고 클릭
  • 인앱 광고 스킵

Was this helpful?

  1. In-App Event
  2. 인앱 이벤트 리스트

Game : 게임

게임 앱에서 측정을 권장하는 인앱 이벤트 API와 적용 예시를 안내합니다.

PreviousEntertainment : 엔터테인먼트NextFintech : 금융

Last updated 16 days ago

Was this helpful?

속성 중 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 에서 호출 할 때
window.flutter_inappwebview.callHandler("DotFlutterDataBridge",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 에서 호출 할 때
window.flutter_inappwebview.callHandler("DotFlutterDataBridge",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 에서 호출 할 때
window.flutter_inappwebview.callHandler("DotFlutterDataBridge",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 에서 호출 할 때
window.flutter_inappwebview.callHandler("DotFlutterDataBridge",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 에서 호출 할 때
window.flutter_inappwebview.callHandler("DotFlutterDataBridge",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 에서 호출 할 때
window.flutter_inappwebview.callHandler("DotFlutterDataBridge",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 에서 호출 할 때
window.flutter_inappwebview.callHandler("DotFlutterDataBridge",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 에서 호출 할 때
window.flutter_inappwebview.callHandler("DotFlutterDataBridge",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 에서 호출 할 때
window.flutter_inappwebview.callHandler("DotFlutterDataBridge",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 에서 호출 할 때
window.flutter_inappwebview.callHandler("DotFlutterDataBridge",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 에서 호출 할 때
window.flutter_inappwebview.callHandler("DotFlutterDataBridge",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 에서 호출 할 때
window.flutter_inappwebview.callHandler("DotFlutterDataBridge",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 에서 호출 할 때
window.flutter_inappwebview.callHandler("DotFlutterDataBridge",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 에서 호출 할 때
window.flutter_inappwebview.callHandler("DotFlutterDataBridge",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 에서 호출 할 때
window.flutter_inappwebview.callHandler("DotFlutterDataBridge",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 에서 호출 할 때
window.flutter_inappwebview.callHandler("DotFlutterDataBridge",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);
☑️