# Game : 게임

:ballot\_box\_with\_check:속성 중 **Key** 이름은 가이드에 나와있는 **Key** 이름을 그대로 사용 해 주세요.\
(임의로 변경시 대시보드에서 데이터 확인이 어렵습니다.  > level , item\_id 등)

## 캐릭터 생성

캐릭터 생성이 완료되는 시점에 아래 코드를 추가합니다.

#### **선택 속성**

<table data-header-hidden><thead><tr><th>Key</th><th width="150">Value 예시</th><th width="150">Type</th><th>설명</th></tr></thead><tbody><tr><td>Key</td><td>Value 예시</td><td>Type</td><td>설명</td></tr><tr><td>character_type</td><td>archer</td><td>string</td><td>게임 캐릭터 유형 정보</td></tr><tr><td>character_name</td><td>RAiNFiRE</td><td>string</td><td>게임 캐릭터 명칭 정보</td></tr></tbody></table>

{% tabs %}
{% tab title="Java" %}

```java
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);
```

{% endtab %}

{% tab title="Kotlin" %}

```kotlin
val eventMap = mutableMapOf<String,Any>()
eventMap["event"] = "w_create_character"
eventMap["character_type"] = "archer"
eventMap["character_name"] = "RAiNFiRE"
DOT.logEvent(eventMap)
```

{% endtab %}

{% tab title="Swift" %}

```swift
let event = NSMutableDictionary()
event["event"] = "w_create_character"
event["character_type"] = "archer"
event["character_name"] = "RAiNFiRE"
DOT.logEvent(event)
```

{% endtab %}

{% tab title="Objective-C" %}

```objectivec
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];
```

{% endtab %}

{% tab title="Mobile Webview" %}

```javascript
    var event = new Object();
    event["event"] = "w_create_character";
    event["character_type"] = "archer";
    event["character_name"] = "RAiNFiRE";
    DOT.logEvent(event);
```

{% endtab %}

{% tab title="Website" %}

```javascript
    var event = new Object();
    event["event"] = "w_create_character";
    event["character_type"] = "archer";
    event["character_name"] = "RAiNFiRE";
    WDOT.logEvent(event);
```

{% endtab %}

{% tab title="Flutter" %}

```javascript
// .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"
      }
}));
```

{% endtab %}

{% tab title="ReactNative" %}

```javascript
// .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"
	}  
})); 
```

{% endtab %}

{% tab title="C#" %}

```csharp
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);
```

{% endtab %}
{% endtabs %}

## 튜토리얼 시작

튜토리얼이 시작된 시점에 아래 코드를 추가합니다.

#### **선택 속성**

<table data-header-hidden><thead><tr><th width="150">Key</th><th width="150">Value 예시</th><th width="150">Type</th><th>설명</th></tr></thead><tbody><tr><td>Key</td><td>Value 예시</td><td>Type</td><td>설명</td></tr><tr><td>tutorial_name</td><td>introduction</td><td>string</td><td>튜토리얼 명칭 또는 ID</td></tr></tbody></table>

{% tabs %}
{% tab title="Java" %}

```java
Map<String, Object> eventMap = new HashMap<>();
eventMap.put("event", "w_start_tutorial");
eventMap.put("tutorial_name", "introduction");
DOT.logEvent(eventMap);
```

{% endtab %}

{% tab title="Kotlin" %}

```kotlin
val eventMap = mutableMapOf<String,Any>()
eventMap["event"] = "w_start_tutorial"
eventMap["tutorial_name"] = "introduction"
DOT.logEvent(eventMap)
```

{% endtab %}

{% tab title="Swift" %}

```swift
let event = NSMutableDictionary()
event["event"] = "w_start_tutorial"
event["tutorial_name"] = "introduction"
DOT.logEvent(event)
```

{% endtab %}

{% tab title="Objective-C" %}

```objectivec
NSMutableDictionary *event = [[NSMutableDictionary alloc] init];
[event setValue:@"w_start_tutorial" forKey:@"event"];
[event setValue:@"introduction" forKey:@"tutorial_name"];
[DOT logEvent:event];
```

{% endtab %}

{% tab title="Mobile Webview" %}

```javascript
    var event = new Object();
    event["event"] = "w_start_tutorial";
    event["tutorial_name"] = "introduction";
    DOT.logEvent(event);
```

{% endtab %}

{% tab title="Website" %}

```javascript
    var event = new Object();
    event["event"] = "w_start_tutorial";
    event["tutorial_name"] = "introduction";
    WDOT.logEvent(event);
```

{% endtab %}

{% tab title="Flutter" %}

```javascript
// .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"
      }
}));

```

{% endtab %}

{% tab title="ReactNative" %}

```javascript
// .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"
	}  
})); 
```

{% endtab %}

{% tab title="C#" %}

```csharp
Dictionary<string, object> eventDic = new Dictionary<string, object>();
eventDic.Add("event", "w_start_tutorial");
eventDic.Add("tutorial_name", "introduction");
DOT.logEvent(eventDic);
```

{% endtab %}
{% endtabs %}

## 튜토리얼 스킵

튜토리얼이 스킵된 시점에 아래 코드를 추가합니다.

#### **선택 속성**

<table data-header-hidden><thead><tr><th width="174">Key</th><th width="150">Value 예시</th><th width="150">Type</th><th>설명</th></tr></thead><tbody><tr><td>Key</td><td>Value 예시</td><td>Type</td><td>설명</td></tr><tr><td>tutorial_name</td><td>introduction</td><td>string</td><td>튜토리얼 명칭 또는 ID</td></tr></tbody></table>

{% tabs %}
{% tab title="Java" %}

```java
Map<String, Object> eventMap = new HashMap<>();
eventMap.put("event", "w_skip_tutorial");
eventMap.put("tutorial_name", "introduction");
DOT.logEvent(eventMap);
```

{% endtab %}

{% tab title="Kotlin" %}

```kotlin
val eventMap = mutableMapOf<String,Any>()
eventMap["event"] = "w_skip_tutorial"
eventMap["tutorial_name"] = "introduction"
DOT.logEvent(eventMap)
```

{% endtab %}

{% tab title="Swift" %}

```swift
let event = NSMutableDictionary()
event["event"] = "w_skip_tutorial"
event["tutorial_name"] = "introduction"
DOT.logEvent(event)
```

{% endtab %}

{% tab title="Objective-C" %}

```objectivec
NSMutableDictionary *event = [[NSMutableDictionary alloc] init];
[event setValue:@"w_skip_tutorial" forKey:@"event"];
[event setValue:@"introduction" forKey:@"tutorial_name"];
[DOT logEvent:event];
```

{% endtab %}

{% tab title="Mobile Webview" %}

```javascript
    var event = new Object();
    event["event"] = "w_skip_tutorial";
    event["tutorial_name"] = "introduction";
    DOT.logEvent(event);
```

{% endtab %}

{% tab title="Website" %}

```javascript
    var event = new Object();
    event["event"] = "w_skip_tutorial";
    event["tutorial_name"] = "introduction";
    WDOT.logEvent(event);
```

{% endtab %}

{% tab title="Flutter" %}

```javascript
// .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"
      }
}));

```

{% endtab %}

{% tab title="ReactNative" %}

```javascript
// .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"
	}  
})); 
```

{% endtab %}

{% tab title="C#" %}

```csharp
Dictionary<string, object> eventDic = new Dictionary<string, object>();
eventDic.Add("event", "w_skip_tutorial");
eventDic.Add("tutorial_name", "introduction");
DOT.logEvent(eventDic);
```

{% endtab %}
{% endtabs %}

## 튜토리얼 완료

튜토리얼이 완료된 시점에 아래 코드를 추가합니다.

#### **선택 속성**

<table data-header-hidden><thead><tr><th width="150">Key</th><th width="150">Value 예시</th><th width="150">Type</th><th>설명</th></tr></thead><tbody><tr><td>Key</td><td>Value 예시</td><td>Type</td><td>설명</td></tr><tr><td>tutorial_name</td><td>introduction</td><td>string</td><td>튜토리얼 명칭 또는 ID</td></tr></tbody></table>

{% tabs %}
{% tab title="Java" %}

```java
Map<String, Object> eventMap = new HashMap<>();
eventMap.put("event", "w_finish_tutorial");
eventMap.put("tutorial_name", "introduction");
DOT.logEvent(eventMap);
```

{% endtab %}

{% tab title="Kotlin" %}

```kotlin
val eventMap = mutableMapOf<String,Any>()
eventMap["event"] = "w_finish_tutorial"
eventMap["tutorial_name"] = "introduction"
DOT.logEvent(eventMap)
```

{% endtab %}

{% tab title="Swift" %}

```swift
var event = NSMutableDictionary()
event["event"] = "w_finish_tutorial"
event["tutorial_name"] = "introduction"
DOT.logEvent(event)
```

{% endtab %}

{% tab title="Objective-C" %}

```objectivec
NSMutableDictionary *event = [[NSMutableDictionary alloc] init];
[event setValue:@"w_finish_tutorial" forKey:@"event"];
[event setValue:@"introduction" forKey:@"tutorial_name"];
[DOT logEvent:event];
```

{% endtab %}

{% tab title="Mobile Webview" %}

```javascript
    var event = new Object();
    event["event"] = "w_finish_tutorial";
    event["tutorial_name"] = "introduction";
    DOT.logEvent(event);
```

{% endtab %}

{% tab title="Website" %}

```javascript
    var event = new Object();
    event["event"] = "w_finish_tutorial";
    event["tutorial_name"] = "introduction";
    WDOT.logEvent(event);
```

{% endtab %}

{% tab title="Flutter" %}

```javascript
// .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"
      }
}));
```

{% endtab %}

{% tab title="ReactNative" %}

```javascript
// .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"
	}  
})); 
```

{% endtab %}

{% tab title="C#" %}

```csharp
Dictionary<string, object> eventDic = new Dictionary<string, object>();
eventDic.Add("event", "w_finish_tutorial");
eventDic.Add("tutorial_name", "introduction");
DOT.logEvent(eventDic);
```

{% endtab %}
{% endtabs %}

## 게임 시작

게임을 시작하는 시점에 아래 코드를 추가합니다.

{% tabs %}
{% tab title="Java" %}

```java
Map<String, Object> eventMap = new HashMap<>();
eventMap.put("event", "w_start_game");
DOT.logEvent(eventMap);
```

{% endtab %}

{% tab title="Kotlin" %}

```kotlin
val eventMap = mutableMapOf<String,Any>()
eventMap["event"] = "w_start_game"
DOT.logEvent(eventMap)
```

{% endtab %}

{% tab title="Swift" %}

```swift
var event = NSMutableDictionary()
event["event"] = "w_start_game"
DOT.logEvent(event)
```

{% endtab %}

{% tab title="Objective-C" %}

```objectivec
NSMutableDictionary *event = [[NSMutableDictionary alloc] init];
[event setValue:@"w_start_game" forKey:@"event"];
[DOT logEvent:event];
```

{% endtab %}

{% tab title="Mobile Webview" %}

```javascript
    var event = new Object();
    event["event"] = "w_start_game";
    DOT.logEvent(event);
```

{% endtab %}

{% tab title="Website" %}

```javascript
    var event = new Object();
    event["event"] = "w_start_game";
    WDOT.logEvent(event);
```

{% endtab %}

{% tab title="Flutter" %}

```javascript
// .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"
      }
}));
```

{% endtab %}

{% tab title="ReactNative" %}

```javascript
// .js 에서 호출 할 때 
NativeModules.DotReactBridge.logEvent(JSON.stringify({
    event : "w_start_game"
}));

// webview 에서 호출 할 때
window.ReactNativeWebView.postMessage(JSON.stringify({
 	method:"logEvent",
	data : {
    	event : "w_start_game"
	}  
})); 
```

{% endtab %}

{% tab title="C#" %}

```csharp
Dictionary<string, object> eventDic = new Dictionary<string, object>();
eventDic.Add("event", "w_start_game");
DOT.logEvent(eventDic);
```

{% endtab %}
{% endtabs %}

## 레벨 달성

레벨이 상승한 시점에 아래 코드를 추가합니다.

#### **선택 속성**

<table data-header-hidden><thead><tr><th>Key</th><th width="150">Value 예시</th><th width="150">Type</th><th>설명</th></tr></thead><tbody><tr><td>Key</td><td>Value 예시</td><td>Type</td><td>설명</td></tr><tr><td>setAttr5</td><td>86</td><td>string</td><td>도달한 레벨</td></tr><tr><td>level</td><td>86</td><td>string</td><td>도달한 레벨</td></tr><tr><td>g22</td><td>1500</td><td>float</td><td>획득한 점수</td></tr></tbody></table>

{% tabs %}
{% tab title="Java" %}

```java
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);
```

{% endtab %}

{% tab title="Kotlin" %}

```kotlin
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)
```

{% endtab %}

{% tab title="Swift" %}

{% endtab %}

{% tab title="Objective-C" %}

```objectivec
[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)
```

{% endtab %}

{% tab title="Mobile Webview" %}

```javascript
    DOT.setUser(User.setAttr5("86"));
    var event = new Object(); 
    event["event"] = "w_achive_level";
    event["level"] = "86";
    event["g22"] = 1500;
    DOT.logEvent(event);
```

{% endtab %}

{% tab title="Website" %}

```javascript
    var event = new Object();
    event["event"] = "w_achive_level";
    event["level"] = "86";
    event["g22"] = 1500;
    WDOT.logEvent(event);
```

{% endtab %}

{% tab title="Flutter" %}

```javascript
// .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
      }
}));
```

{% endtab %}

{% tab title="ReactNative" %}

```javascript
// .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
	}  
})); 
```

{% endtab %}

{% tab title="C#" %}

```csharp
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);
```

{% endtab %}
{% endtabs %}

## 스테이지 완료

스테이지가 완료된 시점에 아래 코드를 추가합니다.

#### **선택 속성**

<table data-header-hidden><thead><tr><th width="150">Key</th><th width="150">Value 예시</th><th width="150">Type</th><th>설명</th></tr></thead><tbody><tr><td>Key</td><td>Value 예시</td><td>Type</td><td>설명</td></tr><tr><td>stage_name</td><td>ROUND249</td><td>string</td><td>스테이지 명칭 또는 ID</td></tr><tr><td>credit_name</td><td>gold</td><td>string</td><td>획득한 크레딧 명칭</td></tr><tr><td>g4</td><td>10000</td><td>float</td><td>획득한 크레딧 수치</td></tr></tbody></table>

{% tabs %}
{% tab title="Java" %}

```java
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);
```

{% endtab %}

{% tab title="Kotlin" %}

```kotlin
val eventMap = mutableMapOf<String,Any>()
eventMap["event"] = "w_finish_stage"
eventMap["stage_name"] = "ROUND249"
eventMap["credit_name"] = "gold"
eventMap["g4"] = 10000
DOT.logEvent(eventMap)
```

{% endtab %}

{% tab title="Swift" %}

```swift
let event = NSMutableDictionary()
event["event"] = "w_finish_stage"
event["stage_name"] = "ROUND249"
event["credit_name"] = "gold"
event["g4"] = 10000
DOT.logEvent(event)
```

{% endtab %}

{% tab title="Objective-C" %}

```objectivec
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];
```

{% endtab %}

{% tab title="Mobile Webview" %}

```javascript
    var event = new Object(); 
    event["event"] = "w_finish_stage";
    event["stage_name"] = "ROUND249";
    event["credit_name"] = "gold";
    event["g4"] = 10000;
    DOT.logEvent(event);
```

{% endtab %}

{% tab title="Website" %}

```javascript
    var event = new Object();
    event["event"] = "w_finish_stage";
    event["stage_name"] = "ROUND249";
    event["credit_name"] = "gold";
    event["g4"] = 10000;
    WDOT.logEvent(event);
```

{% endtab %}

{% tab title="Flutter" %}

```javascript
// .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
      }
}));

```

{% endtab %}

{% tab title="ReactNative" %}

```javascript
// .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
	}  
})); 
```

{% endtab %}

{% tab title="C#" %}

```csharp
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);
```

{% endtab %}
{% endtabs %}

## 레이드 시작

레이드가 시작된 시점에 아래 코드를 추가합니다.

#### **선택 속성**

<table data-header-hidden><thead><tr><th width="150">Key</th><th>Value 예시</th><th width="150">Type</th><th>설명</th></tr></thead><tbody><tr><td>Key</td><td>Value 예시</td><td>Type</td><td>설명</td></tr><tr><td>boss_name</td><td>tha-rev20201207</td><td>string</td><td>보스 명칭 또는 ID</td></tr></tbody></table>

{% tabs %}
{% tab title="Java" %}

```java
Map<String, Object> eventMap = new HashMap<>();
eventMap.put("event", "w_start_raid");
eventMap.put("boss_name", "tha-rev20201207");
DOT.logEvent(eventMap);
```

{% endtab %}

{% tab title="Kotlin" %}

```kotlin
val eventMap = mutableMapOf<String,Any>()
eventMap["event"] = "w_start_raid"
eventMap["boss_name"] = "tha-rev20201207"
DOT.logEvent(eventMap)
```

{% endtab %}

{% tab title="Swift" %}

```swift
let event = NSMutableDictionary()
event["event"] = "w_start_raid"
event["boss_name"] = "tha-rev20201207"
DOT.logEvent(event)
```

{% endtab %}

{% tab title="Objective-C" %}

```objectivec
NSMutableDictionary *event = [[NSMutableDictionary alloc] init];
[event setValue:@"w_start_raid" forKey:@"event"];
[event setValue:@"tha-rev20201207" forKey:@"boss_name"];
[DOT logEvent:event];
```

{% endtab %}

{% tab title="Mobile Webview" %}

```javascript
    var event = new Object();
    event["event"] = "w_start_raid";
    event["boss_name"] = "tha-rev20201207";
    DOT.logEvent(event);
```

{% endtab %}

{% tab title="Website" %}

```javascript
    var event = new Object();
    event["event"] = "w_start_raid";
    event["boss_name"] = "tha-rev20201207";
    WDOT.logEvent(event);
```

{% endtab %}

{% tab title="Flutter" %}

```javascript
// .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"
      }
}));

```

{% endtab %}

{% tab title="ReactNative" %}

```javascript
// .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"
	}  
})); 
```

{% endtab %}

{% tab title="C#" %}

```csharp
Dictionary<string, object> eventDic = new Dictionary<string, object>();
eventDic.Add("event", "w_start_raid");
eventDic.Add("boss_name", "tha-rev20201207");
DOT.logEvent(eventDic);
```

{% endtab %}
{% endtabs %}

## 레이드 완료

레이드가 완료된 시점에 아래 코드를 추가합니다.

#### **선택 속성**

<table data-header-hidden><thead><tr><th width="155.53741496598641">Key</th><th width="185">Value 예시</th><th width="150">Type</th><th>설명</th></tr></thead><tbody><tr><td>Key</td><td>Value 예시</td><td>Type</td><td>설명</td></tr><tr><td>boss_name</td><td>tha-rev20201207</td><td>string</td><td>보스 명칭 또는 ID</td></tr><tr><td>item_id</td><td>gau9348</td><td>string</td><td>획득한 아이템 ID 또는 명칭</td></tr><tr><td>item_type</td><td>gauntlet</td><td>string</td><td>획득한 아이템 유형</td></tr></tbody></table>

{% tabs %}
{% tab title="Java" %}

```java
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);
```

{% endtab %}

{% tab title="Kotlin" %}

```kotlin
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)
```

{% endtab %}

{% tab title="Swift" %}

```swift
let event = NSMutableDictionary()
event["event"] = "w_end_raid"
event["boss_name"] = "tha-rev20201207"
event["item_id"] = "gau9348"
event["item_type"] = "gauntlet"
DOT.logEvent(event)
```

{% endtab %}

{% tab title="Objective-C" %}

```objectivec
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];
```

{% endtab %}

{% tab title="Mobile Webview" %}

```javascript
    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);
```

{% endtab %}

{% tab title="Website" %}

```javascript
    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);
```

{% endtab %}

{% tab title="Flutter" %}

```javascript
// .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"
      }
}));

```

{% endtab %}

{% tab title="ReactNative" %}

```javascript
// .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"
	}  
})); 
```

{% endtab %}

{% tab title="C#" %}

```csharp
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);
```

{% endtab %}
{% endtabs %}

## PvP 완료

PvP가 완료된 시점에 아래 코드를 추가합니다.

#### **선택 속성**

<table data-header-hidden><thead><tr><th width="181">Key</th><th>Value 예시</th><th width="150">Type</th><th>설명</th></tr></thead><tbody><tr><td>Key</td><td>Value 예시</td><td>Type</td><td>설명</td></tr><tr><td>credit_name</td><td>reputation point</td><td>string</td><td>획득한 크레딧 명칭</td></tr><tr><td>g4</td><td>211</td><td>float</td><td>획득한 크레딧 수치</td></tr></tbody></table>

{% tabs %}
{% tab title="Java" %}

```java
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);
```

{% endtab %}

{% tab title="Kotlin" %}

```kotlin
val eventMap = mutableMapOf<String,Any>()
eventMap["event"] = "w_finish_pvp"
eventMap["credit_name"] = "reputation point"
eventMap["g4"] = 211
DOT.logEvent(eventMap)
```

{% endtab %}

{% tab title="Swift" %}

```swift
let event = NSMutableDictionary()
event["event"] = "w_finish_pvp"
event["credit_name"] = "reputation point"
event["g4"] = 211
DOT.logEvent(event)
```

{% endtab %}

{% tab title="Objective-C" %}

```objectivec
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];
```

{% endtab %}

{% tab title="Mobile Webview" %}

```javascript
    var event = new Object();
    event["event"] = "w_finish_pvp";
    event["credit_name"] = "reputation point";
    event["g4"] = 211;
    DOT.logEvent(event);
```

{% endtab %}

{% tab title="Website" %}

```javascript
    var event = new Object();
    event["event"] = "w_finish_pvp";
    event["credit_name"] = "reputation point";
    event["g4"] = 211;
    WDOT.logEvent(event);
```

{% endtab %}

{% tab title="Flutter" %}

```javascript
// .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
      }
}));
```

{% endtab %}

{% tab title="ReactNative" %}

```javascript
// .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"
	}  
})); 
```

{% endtab %}

{% tab title="C#" %}

```csharp
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);
```

{% endtab %}
{% endtabs %}

## 크레딧 사용

보너스나 크레딧 등을 사용 완료한 시점에 아래 코드를 추가합니다.

#### **선택 속성**

<table data-header-hidden><thead><tr><th>Key</th><th width="200">Value 예시</th><th width="150">Type</th><th>설명</th></tr></thead><tbody><tr><td>Key</td><td>Value 예시</td><td>Type</td><td>설명</td></tr><tr><td>credit_name</td><td>diamond</td><td>string</td><td>사용한 크레딧 명칭</td></tr><tr><td>g3</td><td>500</td><td>float</td><td>사용한 크레딧 수치</td></tr></tbody></table>

{% tabs %}
{% tab title="Java" %}

```java
Map<String, Object> eventMap = new HashMap<>();
eventMap.put("event", "w_credit_spent");
eventMap.put("credit_name", "diamond");
eventMap.put("g4", 500);
DOT.logEvent(eventMap);
```

{% endtab %}

{% tab title="Kotlin" %}

```kotlin
val eventMap = mutableMapOf<String,Any>()
eventMap["event"] = "w_credit_spent"
eventMap["credit_name"] = "diamond"
eventMap["g4"] = 500
DOT.logEvent(eventMap)
```

{% endtab %}

{% tab title="Swift" %}

```swift
let event = NSMutableDictionary()
event["event"] = "w_credit_spent"
event["credit_name"] = "diamond"
event["g4"] = 500
DOT.logEvent(event)
```

{% endtab %}

{% tab title="Objective-C" %}

```objectivec
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];
```

{% endtab %}

{% tab title="Mobile Webview" %}

```javascript
    var event = new Object();
    event["event"] = "w_credit_spent";
    event["credit_name"] = "diamond";
    event["g4"] = 500;
    DOT.logEvent(event);
```

{% endtab %}

{% tab title="Website" %}

```javascript
    var event = new Object();
    event["event"] = "w_credit_spent";
    event["credit_name"] = "diamond";
    event["g4"] = 500;
    WDOT.logEvent(event);
```

{% endtab %}

{% tab title="Flutter" %}

```javascript
// .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
      }
}));
```

{% endtab %}

{% tab title="ReactNative" %}

```javascript
// .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
	}  
})); 
```

{% endtab %}

{% tab title="C#" %}

```csharp
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);
```

{% endtab %}
{% endtabs %}

## 선물하기&#x20;

선물하기가 완료된 시점에 아래 코드를 추가합니다.

#### **선택 속성**

<table data-header-hidden><thead><tr><th width="150">Key</th><th width="150">Value 예시</th><th width="150">Type</th><th>설명</th></tr></thead><tbody><tr><td>Key</td><td>Value 예시</td><td>Type</td><td>설명</td></tr><tr><td>item_id</td><td>newbie pack</td><td>string</td><td>선물한 아이템 ID 또는 명칭</td></tr><tr><td>item_type</td><td>promotion</td><td>string</td><td>선물한 아이템 유형</td></tr></tbody></table>

{% tabs %}
{% tab title="Java" %}

```java
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);
```

{% endtab %}

{% tab title="Kotlin" %}

```kotlin
val eventMap = mutableMapOf<String,Any>()
eventMap["event"] = "w_send_gift"
eventMap["item_id"] = "newbie pack"
eventMap["item_type"] = "promotion"
DOT.logEvent(eventMap)
```

{% endtab %}

{% tab title="Swift" %}

```swift
let event = NSMutableDictionary()
event["event"] = "w_send_gift"
event["item_id"] = "newbie pack"
event["item_type"] = "promotion"
DOT.logEvent(event)
```

{% endtab %}

{% tab title="Objective-C" %}

```objectivec
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];
```

{% endtab %}

{% tab title="Mobile Webview" %}

```javascript
    var event = new Object();
    event["event"] = "w_send_gift";
    event["item_id"] = "newbie pack";
    event["item_type"] = "promotion";
    DOT.logEvent(event);
```

{% endtab %}

{% tab title="Website" %}

```javascript
    var event = new Object();
    event["event"] = "w_send_gift";
    event["item_id"] = "newbie pack";
    event["item_type"] = "promotion";
    WDOT.logEvent(event);
```

{% endtab %}

{% tab title="Flutter" %}

```javascript
// .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"
      }
}));

```

{% endtab %}

{% tab title="ReactNative" %}

```javascript
// .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"
	}  
})); 
```

{% endtab %}

{% tab title="C#" %}

```csharp
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);
```

{% endtab %}
{% endtabs %}

## 초대&#x20;

유저를 초대 완료한 시점에 아래 코드를 추가합니다.

#### **선택 속성**

<table data-header-hidden><thead><tr><th width="150">Key</th><th width="150">Value 예시</th><th width="150">Type</th><th>설명</th></tr></thead><tbody><tr><td>Key</td><td>Value 예시</td><td>Type</td><td>설명</td></tr><tr><td>invite_type</td><td>kakao</td><td>string</td><td>초대를 전송한 미디어</td></tr></tbody></table>

{% tabs %}
{% tab title="Java" %}

```java
Map<String, Object> eventMap = new HashMap<>();
eventMap.put("event", "w_invite");
eventMap.put("invite_type", "kakao");
DOT.logEvent(eventMap);
```

{% endtab %}

{% tab title="Kotlin" %}

```kotlin
val eventMap = mutableMapOf<String,Any>()
eventMap["event"] = "w_invite"
eventMap["invite_type"] = "kakao"
DOT.logEvent(eventMap)
```

{% endtab %}

{% tab title="Swift" %}

```swift
let event = NSMutableDictionary()
event["event"] = "w_invite"
event["invite_type"] = "kakao"
DOT.logEvent(event)
```

{% endtab %}

{% tab title="Objective-C" %}

```objectivec
NSMutableDictionary *event = [[NSMutableDictionary alloc] init];
[event setValue:@"w_invite" forKey:@"event"];
[event setValue:@"kakao" forKey:@"invite_type"];
[DOT logEvent:event];
```

{% endtab %}

{% tab title="Mobile Webview" %}

```javascript
    var event = new Object();
    event["event"] = "w_invite";
    event["invite_type"] = "kakao";
    DOT.logEvent(event);
```

{% endtab %}

{% tab title="Website" %}

```javascript
    var event = new Object();
    event["event"] = "w_invite";
    event["invite_type"] = "kakao";
    WDOT.logEvent(event);
```

{% endtab %}

{% tab title="Flutter" %}

```javascript
// .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"
      }
}));
```

{% endtab %}

{% tab title="ReactNative" %}

```javascript
// .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"
	}  
})); 
```

{% endtab %}

{% tab title="C#" %}

```csharp
Dictionary<string, object> eventDic = new Dictionary<string, object>();
eventDic.Add("event", "w_invite");
eventDic.Add("invite_type", "kakao");
DOT.logEvent(eventDic);
```

{% endtab %}
{% endtabs %}

## 공유

공유를 완료한 시점 또는 공유 버튼이 클릭된 시점에 아래 코드를 추가합니다.

#### 선택 속성

<table data-header-hidden><thead><tr><th>Key</th><th width="150">Value 예시</th><th width="150">Type</th><th>설명</th></tr></thead><tbody><tr><td>Key</td><td>Value 예시</td><td>Type</td><td>설명</td></tr><tr><td>share_type</td><td>line</td><td>string</td><td>공유한 미디어</td></tr></tbody></table>

{% tabs %}
{% tab title="Java" %}

```java
Map<String, Object> eventMap = new HashMap<>();
eventMap.put("event", "w_share");
eventMap.put("share_type", "line");
DOT.logEvent(eventMap);
```

{% endtab %}

{% tab title="Kotlin" %}

```kotlin
val eventMap = mutableMapOf<String,Any>()
eventMap["event"] = "w_share"
eventMap["share_type"] = "line"
DOT.logEvent(eventMap)
```

{% endtab %}

{% tab title="Swift" %}

```swift
let event = NSMutableDictionary()
event["event"] = "w_share"
event["share_type"] = "line"
DOT.logEvent(event)
```

{% endtab %}

{% tab title="Objective-C" %}

```objectivec
NSMutableDictionary *event = [[NSMutableDictionary alloc] init];
[event setValue:@"w_share" forKey:@"event"];
[event setValue:@"line" forKey:@"share_type"];
[DOT logEvent:event];
```

{% endtab %}

{% tab title="Mobile Webview" %}

```javascript
    var event = new Object();
    event["event"] = "w_share";
    event["share_type"] = "line";
    DOT.logEvent(event);
```

{% endtab %}

{% tab title="Website" %}

```javascript
    var event = new Object();
    event["event"] = "w_share";
    event["share_type"] = "line";
    WDOT.logEvent(event);
```

{% endtab %}

{% tab title="Flutter" %}

```javascript
// .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"
      }
}));

```

{% endtab %}

{% tab title="ReactNative" %}

```javascript
// .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"
	}  
})); 
```

{% endtab %}

{% tab title="C#" %}

```csharp
Dictionary<string, object> eventDic = new Dictionary<string, object>();
eventDic.Add("event", "w_share");
eventDic.Add("share_type", "line");
DOT.logEvent(eventDic);
```

{% endtab %}
{% endtabs %}

## 인앱 광고 클릭

인앱 광고가 클릭된 시점에 아래 코드를 추가합니다.

#### **선택 속성**

<table data-header-hidden><thead><tr><th width="150">Key</th><th width="155.7142857142857">Value 예시</th><th width="150">Type</th><th>설명</th></tr></thead><tbody><tr><td>Key</td><td>Value 예시</td><td>Type</td><td>설명</td></tr><tr><td>ad_name</td><td>cr337203984</td><td>string</td><td>클릭된 광고 ID 또는 명칭</td></tr></tbody></table>

{% tabs %}
{% tab title="Java" %}

```java
Map<String, Object> eventMap = new HashMap<>();
eventMap.put("event", "w_click_ad");
eventMap.put("ad_name", "cr337203984");
DOT.logEvent(eventMap);
```

{% endtab %}

{% tab title="Kotlin" %}

```kotlin
val eventMap = mutableMapOf<String,Any>()
eventMap["event"] = "w_click_ad"
eventMap["ad_name"] = "cr337203984"
DOT.logEvent(eventMap)
```

{% endtab %}

{% tab title="Swift" %}

```swift
let event = NSMutableDictionary()
event["event"] = "w_click_ad"
event["ad_name"] = "cr337203984"
DOT.logEvent(event)
```

{% endtab %}

{% tab title="Objective-C" %}

```objectivec
NSMutableDictionary *event = [[NSMutableDictionary alloc] init];
[event setValue:@"w_click_ad" forKey:@"event"];
[event setValue:@"cr337203984" forKey:@"ad_name"];
[DOT logEvent:event];
```

{% endtab %}

{% tab title="Mobile Webview" %}

```javascript
    var event = new Object();
    event["event"] = "w_click_ad";
    event["ad_name"] = "cr337203984";
    DOT.logEvent(event);
```

{% endtab %}

{% tab title="Website" %}

```javascript
    var event = new Object();
    event["event"] = "w_click_ad";
    event["ad_name"] = "cr337203984";
    WDOT.logEvent(event);
```

{% endtab %}

{% tab title="Flutter" %}

```javascript
// .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"
      }
}));

```

{% endtab %}

{% tab title="ReactNative" %}

```javascript
// .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"
	}  
})); 
```

{% endtab %}

{% tab title="C#" %}

```csharp
Dictionary<string, object> eventDic = new Dictionary<string, object>();
eventDic.Add("event", "w_click_ad");
eventDic.Add("ad_name", "cr337203984");
DOT.logEvent(eventDic);
```

{% endtab %}
{% endtabs %}

## 인앱 광고 스킵

인앱 광고가 스킵된 시점에 아래 코드를 추가합니다.

#### **선택 속성**

<table data-header-hidden><thead><tr><th width="150">Key</th><th width="150">Value 예시</th><th width="150">Type</th><th>설명</th></tr></thead><tbody><tr><td>Key</td><td>Value 예시</td><td>Type</td><td>설명</td></tr><tr><td>ad_name</td><td>cr337203984</td><td>string</td><td>스킵된 광고 ID 또는 명칭</td></tr></tbody></table>

{% tabs %}
{% tab title="Java" %}

```java
Map<String, Object> eventMap = new HashMap<>();
eventMap.put("event", "w_skip_ad");
eventMap.put("ad_name", "cr337203984");
DOT.logEvent(eventMap);
```

{% endtab %}

{% tab title="Kotlin" %}

```kotlin
val eventMap = mutableMapOf<String,Any>()
eventMap["event"] = "w_skip_ad"
eventMap["ad_name"] = "cr337203984"
DOT.logEvent(eventMap)
```

{% endtab %}

{% tab title="Swift" %}

```swift
let event = NSMutableDictionary()
event["event"] = "w_skip_ad"
event["ad_name"] = "cr337203984"
DOT.logEvent(event)
```

{% endtab %}

{% tab title="Objective-C" %}

```objectivec
NSMutableDictionary *event = [[NSMutableDictionary alloc] init];
[event setValue:@"w_skip_ad" forKey:@"event"];
[event setValue:@"cr337203984" forKey:@"ad_name"];
[DOT logEvent:event];
```

{% endtab %}

{% tab title="Mobile Webview" %}

```javascript
    var event = new Object();
    event["event"] = "w_skip_ad";
    event["ad_name"] = "cr337203984";
    DOT.logEvent(event);
```

{% endtab %}

{% tab title="Website" %}

```javascript
    var event = new Object();
    event["event"] = "w_skip_ad";
    event["ad_name"] = "cr337203984";
    WDOT.logEvent(event);
```

{% endtab %}

{% tab title="Flutter" %}

```javascript
// .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"
      }
}));

```

{% endtab %}

{% tab title="ReactNative" %}

```javascript
// .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"
	}  
})); 
```

{% endtab %}

{% tab title="C#" %}

```csharp
Dictionary<string, object> eventDic = new Dictionary<string, object>();
eventDic.Add("event", "w_skip_ad");
eventDic.Add("ad_name", "cr337203984");
DOT.logEvent(eventDic);
```

{% endtab %}
{% endtabs %}
