# Education : 교육

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

## 출석 체크

출석 체크를 완료되는 시점에 아래 코드를 추가합니다.

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

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

{% endtab %}

{% tab title="Kotlin" %}

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

{% endtab %}

{% tab title="Swift" %}

```swift
let event = NSMutableDictionary()
event["event"] = "w_check_attendance"
DOT.logEvent(event)
```

{% endtab %}

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

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

{% endtab %}

{% tab title="Mobile Webview" %}

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

{% endtab %}

{% tab title="Website" %}

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

{% endtab %}

{% tab title="Flutter" %}

```javascript
// .dart 에서 호출 할 때 
Map event = {};
event["event"] = "w_check_attendance";
DOT.logEvent(event);

// webview 에서 호출 할 때
window.flutter_inappwebview.callHandler("DotFlutterDataBridge",JSON.stringify({
      method : "logEvent",
      data: {
              event : "w_check_attendance"
      }
}));
```

{% endtab %}

{% tab title="ReactNative" %}

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

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

{% endtab %}

{% tab title="C#" %}

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

{% endtab %}
{% endtabs %}

## 공부 인증하기

공부 인증하기를 완료되는 시점에 아래 코드를 추가합니다.

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

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

{% endtab %}

{% tab title="Kotlin" %}

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

{% endtab %}

{% tab title="Swift" %}

```swift
let event = NSMutableDictionary()
event["event"] = "w_check_study"
DOT.logEvent(event)
```

{% endtab %}

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

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

{% endtab %}

{% tab title="Mobile Webview" %}

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

{% endtab %}

{% tab title="Website" %}

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

{% endtab %}

{% tab title="Flutter" %}

```javascript
// .dart 에서 호출 할 때
Map event = {};
event["event"] = "w_check_study";
DOT.logEvent(event);

// webview 에서 호출 할 때
window.flutter_inappwebview.callHandler("DotFlutterDataBridge",JSON.stringify({
      method : "logEvent",
      data: {
              event : "w_check_study"
      }
}));
```

{% endtab %}

{% tab title="ReactNative" %}

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

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

{% endtab %}

{% tab title="C#" %}

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

{% endtab %}
{% endtabs %}

## 강의 수강하기

강의 수강을 완료하는 시점에 아래 코드를 추가합니다.

**선택 속성**

<table data-header-hidden><thead><tr><th>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>class_id</td><td>RW202008170</td><td>string</td><td>강의 고유번호</td></tr><tr><td>class_name</td><td>큰별쌤 최태성의 별별한국사 수능개념 2023학년도 수능 대비</td><td>string</td><td>강의 이름</td></tr></tbody></table>

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

```java
Map<String, Object> eventMap = new HashMap<>();
eventMap.put("event", "w_take_classes");
eventMap.put("class_id", "RW202008170");
eventMap.put("class_name", "큰별쌤 최태성의 별별한국사 수능개념 2023학년도 수능 대비");
DOT.logEvent(eventMap);
```

{% endtab %}

{% tab title="Kotlin" %}

```kotlin
val eventMap = mutableMapOf<String,Any>()
eventMap["event"] = "w_take_classes"
eventMap["class_id"] = "RW202008170"
eventMap["class_name"] = "큰별쌤 최태성의 별별한국사 수능개념 2023학년도 수능 대비"
DOT.logEvent(eventMap)
```

{% endtab %}

{% tab title="Swift" %}

```swift
let event = NSMutableDictionary()
event["event"] = "w_take_classes"
event["class_id"] = "RW202008170"
event["class_name"] = "큰별쌤 최태성의 별별한국사 수능개념 2023학년도 수능 대비"
DOT.logEvent(event)
```

{% endtab %}

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

```objectivec
NSMutableDictionary *event = [[NSMutableDictionary alloc] init];
[event setValue:@"w_take_classes" forKey:@"event"];
[event setValue:@"RW202008170" forKey:@"class_id"];
[event setValue:@"큰별쌤 최태성의 별별한국사 수능개념 2023학년도 수능 대비" forKey:@"class_name"];
[DOT logEvent:event];
```

{% endtab %}

{% tab title="Mobile Webview" %}

```javascript
    var event = new Object();
    event["event"] = "w_take_classes";
    event["class_id"] = "RW202008170";
    event["class_name"] = "큰별쌤 최태성의 별별한국사 수능개념 2023학년도 수능 대비";        
    DOT.logEvent(event);
```

{% endtab %}

{% tab title="Website" %}

```javascript
    var event = new Object();
    event["event"] = "w_take_classes";
    event["class_id"] = "RW202008170";
    event["class_name"] = "큰별쌤 최태성의 별별한국사 수능개념 2023학년도 수능 대비";
    WDOT.logEvent(event);
```

{% endtab %}

{% tab title="Flutter" %}

```javascript
// .dart 에서 호출 할 때
Map event = {};
event["event"] = "w_take_classes";
event["class_id"] = "RW202008170";
event["class_name"] = "큰별쌤 최태성의 별별한국사 수능개념 2023학년도 수능 대비";
DOT.logEvent(event);

// webview 에서 호출 할 때
window.flutter_inappwebview.callHandler("DotFlutterDataBridge",JSON.stringify({
      method : "logEvent",
      data: {
              event : "w_check_study",
              class_id : "RW202008170",
              class_name : "큰별쌤 최태성의 별별한국사 수능개념 2023학년도 수능 대비"
      }
}));
```

{% endtab %}

{% tab title="ReactNative" %}

```javascript
// .js 에서 호출 할 때 
NativeModules.DotReactBridge.logEvent(JSON.stringify({
    event : "w_take_classes",
    class_id : "RW202008170",
    class_name : "큰별쌤 최태성의 별별한국사 수능개념 2023학년도 수능 대비"
}));

// webview 에서 호출 할 때
window.ReactNativeWebView.postMessage(JSON.stringify({
 	method:"logEvent",
	data : {
    	event : "w_take_classes",
	    class_id : "RW202008170",
	    class_name : "큰별쌤 최태성의 별별한국사 수능개념 2023학년도 수능 대비"
	}  
})); 
```

{% endtab %}

{% tab title="C#" %}

```csharp
Dictionary<string, object> eventDic = new Dictionary<string, object>();
eventDic.Add("event", "w_take_classes");
eventDic.Add("event", "RW202008170");
eventDic.Add("event", "큰별쌤 최태성의 별별한국사 수능개념 2023학년도 수능 대비");
DOT.logEvent(eventDic);
```

{% endtab %}
{% endtabs %}

## 레벨테스트 완료

레벨테스트를 완료되는 시점에 아래 코드를 추가합니다.

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

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

{% endtab %}

{% tab title="Kotlin" %}

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

{% endtab %}

{% tab title="Swift" %}

```swift
let event = NSMutableDictionary()
event["event"] = "w_leveltest_complete"
DOT.logEvent(event)
```

{% endtab %}

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

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

{% endtab %}

{% tab title="Mobile Webview" %}

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

{% endtab %}

{% tab title="Website" %}

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

{% endtab %}

{% tab title="Flutter" %}

```javascript
// .dart 에서 호출 할 때
Map event = {};
event["event"] = "w_leveltest_complete";
DOT.logEvent(event);

// webview 에서 호출 할 때
window.flutter_inappwebview.callHandler("DotFlutterDataBridge",JSON.stringify({
      method : "logEvent",
      data: {
              event : "w_leveltest_complete"
      }
}));
```

{% endtab %}

{% tab title="ReactNative" %}

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

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

{% endtab %}

{% tab title="C#" %}

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

{% endtab %}
{% endtabs %}

## 파트너 프로그램 등록 완료

파트너 프로그램 등록을 완료되는 시점에 아래 코드를 추가합니다.

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

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

{% endtab %}

{% tab title="Kotlin" %}

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

{% endtab %}

{% tab title="Swift" %}

```swift
let event = NSMutableDictionary()
event["event"] = "w_partner_application_complete"
DOT.logEvent(event)
```

{% endtab %}

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

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

{% endtab %}

{% tab title="Mobile Webview" %}

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

{% endtab %}

{% tab title="Website" %}

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

{% endtab %}

{% tab title="Flutter" %}

```javascript
// .dart 에서 호출 할 때
Map event = {};
event["event"] = "w_partner_application_complete";
DOT.logEvent(event);

// webview 에서 호출 할 때
window.flutter_inappwebview.callHandler("DotFlutterDataBridge",JSON.stringify({
      method : "logEvent",
      data: {
              event : "w_partner_application_complete"
      }
}));
```

{% endtab %}

{% tab title="ReactNative" %}

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

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

{% endtab %}

{% tab title="C#" %}

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

{% endtab %}
{% endtabs %}

## 자료 다운로드하기

자료 다운로드를 완료하는 시점에 아래 코드를 추가합니다.

#### 선택 속성

<table data-header-hidden><thead><tr><th width="207">Key</th><th width="252">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>document_id</td><td>789456</td><td>string</td><td>자료 고유번호</td></tr><tr><td>document_name</td><td>빠른독해 바른독해 구문독해 [2022 개정]</td><td>string</td><td>자료 이름</td></tr></tbody></table>

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

```java
Map<String, Object> eventMap = new HashMap<>();
eventMap.put("event", "w_download_documents");
eventMap.put("document_id", "789456");
eventMap.put("document_name", "빠른독해 바른독해 구문독해 [2022 개정]");
DOT.logEvent(eventMap);
```

{% endtab %}

{% tab title="Kotlin" %}

```kotlin
val eventMap = mutableMapOf<String,Any>()
eventMap["event"] = "w_download_documents"
eventMap["document_id"] = "789456"
eventMap["document_name"] = "빠른독해 바른독해 구문독해 [2022 개정]"
DOT.logEvent(eventMap)
```

{% endtab %}

{% tab title="Swift" %}

```swift
let event = NSMutableDictionary()
event["event"] = "w_download_documents"
event["document_id"] = "789456"
event["document_name"] = "빠른독해 바른독해 구문독해 [2022 개정]"
DOT.logEvent(event)
```

{% endtab %}

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

```objectivec
NSMutableDictionary *event = [[NSMutableDictionary alloc] init];
[event setValue:@"w_download_documents" forKey:@"event"];
[event setValue:@"789456" forKey:@"document_id"];
[event setValue:@"빠른독해 바른독해 구문독해 [2022 개정]" forKey:@"document_name"];
[DOT logEvent:event];
```

{% endtab %}

{% tab title="Mobile Webview" %}

```javascript
    var event = new Object();
    event["event"] = "w_download_documents";
    event["document_id"] = "789456";
    event["document_name"] = "빠른독해 바른독해 구문독해 [2022 개정]";    
    DOT.logEvent(event);
```

{% endtab %}

{% tab title="Website" %}

```javascript
    var event = new Object();
    event["event"] = "w_download_documents";
    event["document_id"] = "789456";
    event["document_name"] = "빠른독해 바른독해 구문독해 [2022 개정]";  
    WDOT.logEvent(event);
```

{% endtab %}

{% tab title="Flutter" %}

```javascript
// .dart 에서 호출 할 때
Map event = {};
event["event"] = "w_download_documents";
event["document_id"] = "789456";
event["document_name"] = "빠른독해 바른독해 구문독해 [2022 개정]";
DOT.logEvent(event);

// webview 에서 호출 할 때
window.flutter_inappwebview.callHandler("DotFlutterDataBridge",JSON.stringify({
      method : "logEvent",
      data: {
              event : "w_download_documents",
              document_id : "789456",
              document_name : "빠른독해 바른독해 구문독해 [2022 개정]"
      }
}));
```

{% endtab %}

{% tab title="ReactNative" %}

```javascript
// .js 에서 호출 할 때 
NativeModules.DotReactBridge.logEvent(JSON.stringify({
    event : "w_download_documents",
    document_id : "789456",
    document_name : "빠른독해 바른독해 구문독해 [2022 개정]"
}));

// webview 에서 호출 할 때
window.ReactNativeWebView.postMessage(JSON.stringify({
 	method:"logEvent",
	data : {
    		event : "w_download_documents",
		document_id : "789456",
		document_name : "빠른독해 바른독해 구문독해 [2022 개정]"
	}  
})); 
```

{% endtab %}

{% tab title="C#" %}

```csharp
Dictionary<string, object> eventDic = new Dictionary<string, object>();
eventDic.Add("event", "w_download_documents");
eventDic.Add("document_id", "789456");
eventDic.Add("document_name", "빠른독해 바른독해 구문독해 [2022 개정]");
DOT.logEvent(eventDic);
```

{% endtab %}
{% endtabs %}

## 스터디그룹 이벤트

### 그룹 개설하기

그룹 개설하기를 완료되는 시점에 아래 코드를 추가합니다.

#### 선택 속성

<table data-header-hidden><thead><tr><th width="182">Key</th><th width="201">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>group_id</td><td>M380</td><td>string</td><td>그룹 고유번호</td></tr><tr><td>group_name</td><td>[수능개념] 윤혜정의 나비효과</td><td>string</td><td>그룹 이름</td></tr><tr><td>group_dist</td><td>10</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_group");
eventMap.put("group_id", "M380");
eventMap.put("group_name", "[수능개념] 윤혜정의 나비효과");
eventMap.put("group_dist", "w_check_attendance");
DOT.logEvent(eventMap);
```

{% endtab %}

{% tab title="Kotlin" %}

```kotlin
val eventMap = mutableMapOf<String,Any>()
eventMap["event"] = "w_create_group"
eventMap["group_id"] = "M380"
eventMap["group_name"] = "[수능개념] 윤혜정의 나비효과"
eventMap["group_dist"] = "w_check_attendance"
DOT.logEvent(eventMap)
```

{% endtab %}

{% tab title="Swift" %}

```swift
let event = NSMutableDictionary()
event["event"] = "w_create_group"
event["group_id"] = "M380"
event["group_name"] = "[수능개념] 윤혜정의 나비효과"
event["group_dist"] = "10"
DOT.logEvent(event)
```

{% endtab %}

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

```objectivec
NSMutableDictionary *event = [[NSMutableDictionary alloc] init];
[event setValue:@"w_create_group" forKey:@"event"];
[event setValue:@"M380" forKey:@"group_id"];
[event setValue:@"[수능개념] 윤혜정의 나비효과" forKey:@"group_name"];
[event setValue:@"10" forKey:@"group_dist"];
[DOT logEvent:event];
```

{% endtab %}

{% tab title="Mobile Webview" %}

```javascript
    var event = new Object();
    event["event"] = "w_create_group";
    event["group_id"] = "M380";
    event["group_name"] = "[수능개념] 윤혜정의 나비효과";
    event["group_dist"] = "10";    
    DOT.logEvent(event);
```

{% endtab %}

{% tab title="Website" %}

```javascript
    var event = new Object();
    event["event"] = "w_create_group";
    event["group_id"] = "M380";
    event["group_name"] = "[수능개념] 윤혜정의 나비효과";
    event["group_dist"] = "10";  
    WDOT.logEvent(event);
```

{% endtab %}

{% tab title="Flutter" %}

```javascript
// .dart 에서 호출 할 때
Map event = {};
event["event"] = "w_create_group";
event["group_id"] = "M380";
event["group_name"] = "[수능개념] 윤혜정의 나비효과";
event["group_dist"] = "10";
DOT.logEvent(event);

// webview 에서 호출 할 때
window.flutter_inappwebview.callHandler("DotFlutterDataBridge",JSON.stringify({
      method : "logEvent",
      data: {
              event : "w_create_group",
              group_id : "M380",
              group_name : "[수능개념] 윤혜정의 나비효과",
              group_dist : "10"
      }
}));
```

{% endtab %}

{% tab title="ReactNative" %}

```javascript
// .js 에서 호출 할 때 
NativeModules.DotReactBridge.logEvent(JSON.stringify({
    event : "w_create_group",
    group_id : "M380",
    group_name : "[수능개념] 윤혜정의 나비효과",
    group_dist : "10"
}));

// webview 에서 호출 할 때
window.ReactNativeWebView.postMessage(JSON.stringify({
 	method:"logEvent",
	data : {
		    event : "w_create_group",
		    group_id : "M380",
		    group_name : "[수능개념] 윤혜정의 나비효과",
		    group_dist : "10"
	}  
})); 
```

{% endtab %}

{% tab title="C#" %}

```csharp
Dictionary<string, object> eventDic = new Dictionary<string, object>();
eventDic.Add("event", "w_create_group");
eventDic.Add("group_id", "M380");
eventDic.Add("group_name", "[수능개념] 윤혜정의 나비효과");
eventDic.Add("group_dist", "10");
DOT.logEvent(eventDic);
```

{% endtab %}
{% endtabs %}

### 그룹 가입하기

그룹 가입을 완료되는 시점에 아래 코드를 추가합니다.

#### 선택 속성

<table data-header-hidden><thead><tr><th width="182">Key</th><th width="201">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>group_id</td><td>M380</td><td>string</td><td>그룹 고유번호</td></tr><tr><td>group_name</td><td>[수능개념] 윤혜정의 나비효과</td><td>string</td><td>그룹 이름</td></tr><tr><td>group_dist</td><td>10</td><td>string</td><td>그룹 인원수 분포</td></tr></tbody></table>

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

```java
Map<String, Object> eventMap = new HashMap<>();
eventMap.put("event", "w_join_group");
eventMap.put("group_id", "M380");
eventMap.put("group_name", "[수능개념] 윤혜정의 나비효과");
eventMap.put("group_dist", "w_check_attendance");
DOT.logEvent(eventMap);
```

{% endtab %}

{% tab title="Kotlin" %}

```kotlin
val eventMap = mutableMapOf<String,Any>()
eventMap["event"] = "w_join_group"
eventMap["group_id"] = "M380"
eventMap["group_name"] = "[수능개념] 윤혜정의 나비효과"
eventMap["group_dist"] = "w_check_attendance"
DOT.logEvent(eventMap)
```

{% endtab %}

{% tab title="Swift" %}

```swift
let event = NSMutableDictionary()
event["event"] = "w_join_group"
event["group_id"] = "M380"
event["group_name"] = "[수능개념] 윤혜정의 나비효과"
event["group_dist"] = "10"
DOT.logEvent(event)
```

{% endtab %}

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

```objectivec
NSMutableDictionary *event = [[NSMutableDictionary alloc] init];
[event setValue:@"w_join_group" forKey:@"event"];
[event setValue:@"M380" forKey:@"group_id"];
[event setValue:@"[수능개념] 윤혜정의 나비효과" forKey:@"group_name"];
[event setValue:@"10" forKey:@"group_dist"];
[DOT logEvent:event];
```

{% endtab %}

{% tab title="Mobile Webview" %}

```javascript
    var event = new Object();
    event["event"] = "w_join_group";
    event["group_id"] = "M380";
    event["group_name"] = "[수능개념] 윤혜정의 나비효과";
    event["group_dist"] = "10";    
    DOT.logEvent(event);
```

{% endtab %}

{% tab title="Website" %}

```javascript
    var event = new Object();
    event["event"] = "w_join_group";
    event["group_id"] = "M380";
    event["group_name"] = "[수능개념] 윤혜정의 나비효과";
    event["group_dist"] = "10";
    WDOT.logEvent(event);
```

{% endtab %}

{% tab title="Flutter" %}

```javascript
// .dart 에서 호출 할 때
Map event = {};
event["event"] = "w_join_group";
event["group_id"] = "M380";
event["group_name"] = "[수능개념] 윤혜정의 나비효과";
event["group_dist"] = "10";
DOT.logEvent(event);

// webview 에서 호출 할 때
window.flutter_inappwebview.callHandler("DotFlutterDataBridge",JSON.stringify({
      method : "logEvent",
      data: {
              event : "w_join_group",
              group_id : "M380",
              group_name : "[수능개념] 윤혜정의 나비효과",
              group_dist : "10"
      }
}));
```

{% endtab %}

{% tab title="ReactNative" %}

```javascript
// .js 에서 호출 할 때 
NativeModules.DotReactBridge.logEvent(JSON.stringify({
    event : "w_join_group",
    group_id : "M380",
    group_name : "[수능개념] 윤혜정의 나비효과",
    group_dist : "10"
}));

// webview 에서 호출 할 때
window.ReactNativeWebView.postMessage(JSON.stringify({
 	method:"logEvent",
	data : {
	    event : "w_join_group",
	    group_id : "M380",
	    group_name : "[수능개념] 윤혜정의 나비효과",
	    group_dist : "10"
	}  
})); 
```

{% endtab %}

{% tab title="C#" %}

```csharp
Dictionary<string, object> eventDic = new Dictionary<string, object>();
eventDic.Add("event", "w_join_group");
eventDic.Add("group_id", "M380");
eventDic.Add("group_name", "[수능개념] 윤혜정의 나비효과");
eventDic.Add("group_dist", "10");
DOT.logEvent(eventDic);
```

{% endtab %}
{% endtabs %}

### 그룹 삭제하기

그룹 삭제하기를 완료되는 시점에 아래 코드를 추가합니다.

#### 선택 속성

<table data-header-hidden><thead><tr><th width="182">Key</th><th width="201">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>group_id</td><td>M380</td><td>string</td><td>그룹 고유번호</td></tr><tr><td>group_name</td><td>[수능개념] 윤혜정의 나비효과</td><td>string</td><td>그룹 이름</td></tr><tr><td>group_dist</td><td>10</td><td>string</td><td>그룹 인원수 분포</td></tr></tbody></table>

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

```java
Map<String, Object> eventMap = new HashMap<>();
eventMap.put("event", "w_remove_group");
eventMap.put("group_id", "M380");
eventMap.put("group_name", "[수능개념] 윤혜정의 나비효과");
eventMap.put("group_dist", "w_check_attendance");
DOT.logEvent(eventMap);
```

{% endtab %}

{% tab title="Kotlin" %}

```kotlin
val eventMap = mutableMapOf<String,Any>()
eventMap["event"] = "w_remove_group"
eventMap["group_id"] = "M380"
eventMap["group_name"] = "[수능개념] 윤혜정의 나비효과"
eventMap["group_dist"] = "w_check_attendance"
DOT.logEvent(eventMap)
```

{% endtab %}

{% tab title="Swift" %}

```swift
let event = NSMutableDictionary()
event["event"] = "w_remove_group"
event["group_id"] = "M380"
event["group_name"] = "[수능개념] 윤혜정의 나비효과"
event["group_dist"] = "10"
DOT.logEvent(event)
```

{% endtab %}

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

```objectivec
NSMutableDictionary *event = [[NSMutableDictionary alloc] init];
[event setValue:@"w_remove_group" forKey:@"event"];
[event setValue:@"M380" forKey:@"group_id"];
[event setValue:@"[수능개념] 윤혜정의 나비효과" forKey:@"group_name"];
[event setValue:@"10" forKey:@"group_dist"];
[DOT logEvent:event];
```

{% endtab %}

{% tab title="Mobile Webview" %}

```javascript
    var event = new Object();
    event["event"] = "w_remove_group";
    event["group_id"] = "M380";
    event["group_name"] = "[수능개념] 윤혜정의 나비효과";
    event["group_dist"] = "10";    
    DOT.logEvent(event);
```

{% endtab %}

{% tab title="Website" %}

```javascript
    var event = new Object();
    event["event"] = "w_remove_group";
    event["group_id"] = "M380";
    event["group_name"] = "[수능개념] 윤혜정의 나비효과";
    event["group_dist"] = "10";  
    WDOT.logEvent(event);
```

{% endtab %}

{% tab title="Flutter" %}

```javascript
// .dart 에서 호출 할 때
Map event = {};
event["event"] = "w_remove_group";
event["group_id"] = "M380";
event["group_name"] = "[수능개념] 윤혜정의 나비효과";
event["group_dist"] = "10";
DOT.logEvent(event);

// webview 에서 호출 할 때
window.flutter_inappwebview.callHandler("DotFlutterDataBridge",JSON.stringify({
      method : "logEvent",
      data: {
              event : "w_remove_group",
              group_id : "M380",
              group_name : "[수능개념] 윤혜정의 나비효과",
              group_dist : "10"
      }
}));
```

{% endtab %}

{% tab title="ReactNative" %}

```javascript
// .js 에서 호출 할 때 
NativeModules.DotReactBridge.logEvent(JSON.stringify({
    event : "w_remove_group",
    group_id : "M380",
    group_name : "[수능개념] 윤혜정의 나비효과",
    group_dist : "10"
}));

// webview 에서 호출 할 때
window.ReactNativeWebView.postMessage(JSON.stringify({
 	method:"logEvent",
	data : {
	    event : "w_remove_group",
	    group_id : "M380",
	    group_name : "[수능개념] 윤혜정의 나비효과",
	    group_dist : "10"
	}  
})); 
```

{% endtab %}

{% tab title="C#" %}

```csharp
Dictionary<string, object> eventDic = new Dictionary<string, object>();
eventDic.Add("event", "w_remove_group");
eventDic.Add("group_id", "M380");
eventDic.Add("group_name", "[수능개념] 윤혜정의 나비효과");
eventDic.Add("group_dist", "10");
DOT.logEvent(eventDic);
```

{% endtab %}
{% endtabs %}

### 그룹 탈퇴하기

그룹 탈퇴하기를 완료되는 시점에 아래 코드를 추가합니다.

#### 선택 속성

<table data-header-hidden><thead><tr><th width="182">Key</th><th width="201">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>group_id</td><td>M380</td><td>string</td><td>그룹 고유번호</td></tr><tr><td>group_name</td><td>[수능개념] 윤혜정의 나비효과</td><td>string</td><td>그룹 이름</td></tr><tr><td>group_dist</td><td>10</td><td>string</td><td>그룹 인원수 분포</td></tr></tbody></table>

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

```java
Map<String, Object> eventMap = new HashMap<>();
eventMap.put("event", "w_unsubscribe_group");
eventMap.put("group_id", "M380");
eventMap.put("group_name", "[수능개념] 윤혜정의 나비효과");
eventMap.put("group_dist", "w_check_attendance");
DOT.logEvent(eventMap);
```

{% endtab %}

{% tab title="Kotlin" %}

```kotlin
val eventMap = mutableMapOf<String,Any>()
eventMap["event"] = "w_unsubscribe_group"
eventMap["group_id"] = "M380"
eventMap["group_name"] = "[수능개념] 윤혜정의 나비효과"
eventMap["group_dist"] = "w_check_attendance"
DOT.logEvent(eventMap)
```

{% endtab %}

{% tab title="Swift" %}

```swift
let event = NSMutableDictionary()
event["event"] = "w_unsubscribe_group"
event["group_id"] = "M380"
event["group_name"] = "[수능개념] 윤혜정의 나비효과"
event["group_dist"] = "10"
DOT.logEvent(event)
```

{% endtab %}

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

```objectivec
NSMutableDictionary *event = [[NSMutableDictionary alloc] init];
[event setValue:@"w_unsubscribe_group" forKey:@"event"];
[event setValue:@"M380" forKey:@"group_id"];
[event setValue:@"[수능개념] 윤혜정의 나비효과" forKey:@"group_name"];
[event setValue:@"10" forKey:@"group_dist"];
[DOT logEvent:event];
```

{% endtab %}

{% tab title="Mobile Webview" %}

```javascript
    var event = new Object();
    event["event"] = "w_unsubscribe_group";
    event["group_id"] = "M380";
    event["group_name"] = "[수능개념] 윤혜정의 나비효과";
    event["group_dist"] = "10";    
    DOT.logEvent(event);
```

{% endtab %}

{% tab title="Website" %}

```javascript
    var event = new Object();
    event["event"] = "w_unsubscribe_group";
    event["group_id"] = "M380";
    event["group_name"] = "[수능개념] 윤혜정의 나비효과";
    event["group_dist"] = "10";  
    WDOT.logEvent(event);
```

{% endtab %}

{% tab title="Flutter" %}

```javascript
// .dart 에서 호출 할 때
Map event = {};
event["event"] = "w_unsubscribe_group";
event["group_id"] = "M380";
event["group_name"] = "[수능개념] 윤혜정의 나비효과";
event["group_dist"] = "10";
DOT.logEvent(event);

// webview 에서 호출 할 때
window.flutter_inappwebview.callHandler("DotFlutterDataBridge",JSON.stringify({
      method : "logEvent",
      data: {
              event : "w_unsubscribe_group",
              group_id : "M380",
              group_name : "[수능개념] 윤혜정의 나비효과",
              group_dist : "10"
      }
}));
```

{% endtab %}

{% tab title="ReactNative" %}

```javascript
// .js 에서 호출 할 때 
NativeModules.DotReactBridge.logEvent(JSON.stringify({
    event : "w_unsubscribe_group",
    group_id : "M380",
    group_name : "[수능개념] 윤혜정의 나비효과",
    group_dist : "10"
}));

// webview 에서 호출 할 때
window.ReactNativeWebView.postMessage(JSON.stringify({
 	method:"logEvent",
	data : {
	    event : "w_unsubscribe_group",
	    group_id : "M380",
	    group_name : "[수능개념] 윤혜정의 나비효과",
	    group_dist : "10"
	}  
})); 
```

{% endtab %}

{% tab title="C#" %}

```csharp
Dictionary<string, object> eventDic = new Dictionary<string, object>();
eventDic.Add("event", "w_unsubscribe_group");
eventDic.Add("group_id", "M380");
eventDic.Add("group_name", "[수능개념] 윤혜정의 나비효과");
eventDic.Add("group_dist", "10");
DOT.logEvent(eventDic);
```

{% endtab %}
{% endtabs %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://document.wisetracker.co.kr/v2-developer/in-app-event/event-list/education.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
