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
  • 회원가입
  • 유저 정보 측정
  • 로그아웃 완료
  • 검색
  • 프로모션 조회
  • 컨텐츠 조회
  • 전화 문의
  • 카카오톡 문의
  • 블로그 방문하기
  • 클릭 이벤트
  • 메뉴 클릭
  • 배너 클릭
  • 버튼 클릭
  • 아이템 클릭
  • 공유하기
  • 초대하기
  • 댓글 달기
  • 리뷰 조회하기
  • 리뷰 작성하기
  • 평가하기
  • 구독 취소하기

Was this helpful?

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

Basic : 공통 이벤트

공통 이벤트란 버티컬을 불문하고 측정할 필요가 있는 인앱 이벤트들을 말합니다. 앱에 해당 기능이 없는 경우가 아니라면 공통 이벤트에 포함된 API는 되도록 많이 적용하는 것을 권장합니다.

Previous인앱 이벤트 리스트NextMessaging : 푸시/인앱 메시지

Last updated 22 days ago

Was this helpful?

속성 중 Key 이름은 가이드에 나와있는 Key 이름을 그대로 사용 해 주세요. (임의로 변경시 대시보드에서 데이터 확인이 어렵습니다. > signupTp , loginTp 등)

회원가입

앱에서 회원가입이 완료되는 시점에 아래 코드를 추가합니다.

선택 속성

Key

Value 예시

Type

설명

signupTp

email

string

통합ID, 소셜계정, 이메일 가입 등 회원가입 유형 정보

Map<String, Object> eventMap = new HashMap<>();
eventMap.put("event", "w_signup_complete");
eventMap.put("signupTp", "email");
DOT.logEvent(eventMap);
 val eventMap = mutableMapOf<String,Any>()
 eventMap["event"] = "w_signup_complete"
 eventMap["signupTp"] = "email"
 DOT.logEvent(eventMap)
let event = NSMutableDictionary()
event["event"] = "w_signup_complete"
event["signupTp"] = "email"
DOT.logEvent(event)
NSMutableDictionary *event = [[NSMutableDictionary alloc] init];
[event setValue:@"w_signup_complete" forKey:@"event"];
[event setValue:@"email" forKey:@"signupTp"];
[DOT logEvent:event];
var event = new Object();
event["event"] = "w_signup_complete";
event["signupTp"] = "email";
DOT.logEvent(event);
    var event = new Object();
    event["event"] = "w_signup_complete";
    event["signupTp"] = "email";
    WDOT.logEvent(event);
// .dart 에서 호출 할 때 
Map event = {}; 
event["event"] = "w_signup_complete";
event["signupTp"] = "email";  
DOT.logEvent(event); 

// webview 에서 호출 할 때
window.flutter_inappwebview.callHandler("DotFlutterDataBridge",JSON.stringify({
      method : "logEvent",
      data: {
              event : "w_signup_complete",
              signupTp : "email"
      }
}));
// .js 에서 호출 할 때 
NativeModules.DotReactBridge.logEvent(JSON.stringify({
	event : "w_signup_complete",
	signupTp : "email"
}));


// webview 에서 호출 할 때
window.ReactNativeWebView.postMessage(JSON.stringify({
 	method:"logEvent",
	data : {
		event : "w_signup_complete",
		signupTp : "email"
	}  
})); 
Dictionary<string, object> eventDic= new Dictionary<string, object>();
eventDic.Add("event", "w_signup_complete");
eventDic.Add("signupTp", "email");
DOT.logEvent(eventDic);

유저 정보 측정

앱을 사용하는 유저에 대한 정보를 측정할 수 있는 API입니다. 유저에 대한 정보를 측정할 수 있는 key를 아래의 유저 선택 속성 중 필요 속성에 맞춰 선택하여 사용 해 주세요. 앱에서 로그인이 완료되는 시점에 아래 코드를 추가합니다.

유저 선택 속성

Key

Value 예시

설명

setGender

male

성별을 의미하는 영문자

setMemberGrade

신규회원

회원등급을 분류할 수 있는 정보

setAge

20-29

연령 또는 연령대

setMemberId

wisetracker

회원의 로그인 아이디

setAttr1 ~ 5 or ut1 ~ ut5

platinum

회원 등급 등 회원의 유형을 분류할 수 있는 정보

선택 속성

Key

Value 예시

설명

loginTp

kakao

통합ID, 소셜계정, 이메일 가입 등 로그인 유형 정보

User user = new User.Builder()
                    .setGender("male")
                    .setMemberGrade("LV.3") 
                    .setAge("20-29")
                    .setMemberId("wisetracker")
                    .setAttr1("platinum")
		    .setAttr2("seoul")
		    .setAttr3("seongdonggu")
		    .setAttr4("player")
		    .setAttr5("보호자")
                    .build();
DOT.setUser(user);
Map<String, Object> eventMap = new HashMap<>();
eventMap.put("event", "w_login_complete");
eventMap.put("loginTp", "kakao");
DOT.logEvent(eventMap);
val user = User.Builder()
               .setGender("female")
               .setMemberGrade("LV.1") 
               .setAge("20-29")
               .setMemberId("wisetracker")
               .setAttr1("platinum")
	       .setAttr2("seoul")
	       .setAttr3("seongdonggu")
	       .setAttr4("player")
	       .setAttr5("보호자")
               .build()
DOT.setUser(user)

val eventMap = mutableMapOf<String,Any>()
eventMap["event"] = "w_login_complete"
eventMap["loginTp"] = "kakao"
DOT.logEvent(eventMap)
DOT.setUser(
  User.builder({ (builder) in
    let user = builder as! User
      user.gender = "male"
      user.memberGrade = "LV.1"
      user.age = "20-29"
      user.memberId = "wisetracker"
      user.attribute1 = "platinum"
      user.attribute2 = "seoul"
      user.attribute3 = "seongdonggu"
      user.attribute4 = "player"
      user.attribute5 = "보호자"
  })
)
let event = NSMutableDictionary() 
event["event"] = "w_login_complete"
event["loginTp"] = "kakao"
DOT.logEvent(event)
[DOT setUser:
    [User builder:^(User *user) {
          user.gender = "male"
          user.memberGrade = "LV.1"
          user.age = "20-29"
          user.memberId = "wisetracker"
          user.attribute1 = "platinum"
          user.attribute2 = "seoul"
          user.attribute3 = "seongdonggu"
          user.attribute4 = "player"
          user.attribute5 = "보호자"
    }]
];
NSMutableDictionary *event = [[NSMutableDictionary alloc] init];
[event setValue:@"w_login_complete" forKey:@"event"];
[event setValue:@"kakao" forKey:@"loginTp"];
[DOT logEvent:event];
    DOT.setUser(User.setGender("male")
        	.setMemberGrade("LV.3") 
                .setAge("20-29")
                .setMemberId("wisetracker")
                .setAttr1("platinum")
                .setAttr2("seoul")
                .setAttr3("seongdonggu")
                .setAttr4("player")
                .setAttr5("보호자")
                .build()
    );
    var event = new Object(); 
    event["event"] = "w_login_complete";
    event["loginTp"] = "kakao";
    DOT.logEvent(event);
WDOT.setUser(RW_User.setGender("male")
                    .setMemberGrade("LV.3") 
                    .setAge("20-29")
                    .setMemberId("wisetracker")
                    .setAttr1("platinum")
		    .setAttr2("seoul")
		    .setAttr3("seongdonggu")
		    .setAttr4("player")
		    .setAttr5("보호자")
		    .build()
    );
    var event = new Object(); 
    event["event"] = "w_login_complete";
    event["loginTp"] = "kakao";
    
    if (typeof WDOT != 'undefined') {
      WDOT.logEvent(event);
    }
// .dart 에서 호출 할 때 
Map user = {}; 
user["sx"] = "male";
user["mbl"] = "LV.3";
user["ag"] = "20-29";
user["mbid"] = "wisetracker";
user["ut1"] = "platinum";
user["ut2"] = "seoul";
user["ut3"] = "seongdonggu";
user["ut4"] = "player";
user["ut5"] = "보호자";
DOT.setUser(user);

Map loginTp = {};
loginTp["event"] = "w_login_complete";
loginTp["loginTp"] = "kakao";
DOT.logEvent(loginTp);


// webview 에서 호출 할 때
window.flutter_inappwebview.callHandler("DotFlutterDataBridge",JSON.stringify({
      method : "setUser",
      data: {
              sx : "male",
              mbl: "LV.3",
              ag : "20-29",
              mbid: "wisetracker",
              ut1 : "platinum",
              ut2: "seoul",
        ut3: "seongdonggu",
        ut4: "player",
        ut5:"보호자"
      }
}));

window.flutter_inappwebview.callHandler("DotFlutterDataBridge",JSON.stringify({
      method : "logEvent",
      data: {
              event : "w_login_complete",
              loginTp : "kakao"
      }
}));
// .js 에서 호출 할 때 
NativeModules.DotReactBridge.setUser(JSON.stringify({ 
              sx : "male",
              mbl: "LV.3",
              ag : "20-29",
              mbid: "wisetracker",
              ut1 : "platinum",
              ut2: "seoul",
	      ut3: "seongdonggu",
	      ut4: "player",
	      ut5:"보호자"
})); 
NativeModules.DotReactBridge.logEvent(JSON.stringify({
    event : "w_login_complete",
    loginTp : "kakao"
}));


// webview 에서 호출 할 때
window.ReactNativeWebView.setUser(JSON.stringify({ 
              sx : "male",
              mbl: "LV.3",
              ag : "20-29",
              mbid: "wisetracker",
              ut1 : "platinum",
              ut2: "seoul",
	      ut3: "seongdonggu",
	      ut4: "player",
	      ut5:"보호자"
})); 

window.ReactNativeWebView.logEvent(JSON.stringify({
 	method:"logEvent",
	data : {
	  event : "w_login_complete",
          loginTp : "kakao"
	}  
})); 
DOT.setUser(
    new DOT_Model.User.Builder()
          .setGender("female")
          .setMemberGrade("LV.3") 
          .setAge("20-29")
          .setMemberId("wisetracker")
          .setAttr1("platinum")
	  .setAttr2("seoul")
	  .setAttr3("seongdonggu")
	  .setAttr4("player")
	  .setAttr5("보호자")
    .build()
);
Dictionary<string, object> eventDic = new Dictionary<string, object>();
eventDic.Add("event", "w_login_complete");
eventDic.Add("loginTp", "kakao");
DOT.logEvent(eventDic);

로그아웃 완료

로그아웃이 완료되는 시점에 해당 코드를 추가합니다.

선택 속성

Key

Value 예시

설명

kakao

통합ID, 소셜계정, 이메일 가입 등 로그인 유형 정보

Map<String, Object> eventMap = new HashMap<>();
eventMap.put("event", "w_logout");
eventMap.put("loginTp", "kakao");
DOT.logEvent(eventMap);
 val eventMap = mutableMapOf<String,Any>()
  eventMap["event"] = "w_logout"
  eventMap["loginTp"] = "kakao"
  DOT.logEvent(eventMap)
let event = NSMutableDictionary() 
event["event"] = "w_logout"
event["loginTp"] = "kakao"
DOT.logEvent(event)
NSMutableDictionary *event = [[NSMutableDictionary alloc] init];
[event setValue:@"w_login_complete" forKey:@"event"];
[event setValue:@"kakao" forKey:@"loginTp"];
[DOT logEvent:event];
    var event = new Object();
    event["event"] = "w_logout";
    event["loginTp"] = "kakao";
    DOT.logEvent(event);
    var event = new Object();
    event["event"] = "w_logout";
    event["loginTp"] = "kakao";
    WDOT.logEvent(event);
// .dart 에서 호출 할 때 
Map loginTp = {};
loginTp["event"] = "w_logout";
loginTp["loginTp"] = "kakao";
DOT.logEvent(loginTp);

// webview 에서 호출 할 때
window.flutter_inappwebview.callHandler("DotFlutterDataBridge",JSON.stringify({
      method : "logEvent",
      data: {
              event : "w_logout",
              loginTp : "kakao"
      }
}));
// .js 에서 호출 할 때 
NativeModules.DotReactBridge.logEvent(JSON.stringify({
    event : "w_logout",
    loginTp : "kakao"
}));


// webview 에서 호출 할 때
window.ReactNativeWebView.postMessage(JSON.stringify({
 	method:"logEvent",
	data : {
                event : "w_logout",
                loginTp : "kakao"
    	}  
})); 
Dictionary<string, object> eventDic = new Dictionary<string, object>();
eventDic.Add("event", "w_logout");
eventDic.Add("loginTp", "kakao");
DOT.logEvent(eventDic);

검색

검색이 완료된 화면에 아래 코드를 추가합니다.

선택 속성

Key

Value 예시

Type

설명

search_term

crop jeans

string

유저가 검색한 검색어

search_type

promotion

string

일반, 추천, 프로모션 등 검색 유형 정보

g20

1232

float

검색 결과로 출력된 아이템 수

Map<String, Object> eventMap = new HashMap<>();
eventMap.put("event", "w_search");
eventMap.put("search_term", "crop jeans");
eventMap.put("search_type", "promotion");
eventMap.put("g20", 1232);
DOT.logEvent(eventMap);
val eventMap = mutableMapOf<String,Any>()
eventMap["event"] = "w_search"
eventMap["search_term"] = "crop jeans"
eventMap["search_type"] = "promotion"
eventMap["g20"] = 1232
DOT.logEvent(eventMap)
let event = NSMutableDictionary()
event["event"] = "w_search"
event["search_term"] = "crop jeans"
event["search_type"] = "promotion"
event["g20"] = 1232
DOT.logEvent(event)
NSMutableDictionary *event = [[NSMutableDictionary alloc] init];
[event setValue:@"w_search" forKey:@"event"];
[event setValue:@"crop jeans" forKey:@"search_term"];
[event setValue:@"promotion" forKey:@"search_type"];
[event setValue:[NSNumber numberWithInt:1232] forKey:@"g20"];
[DOT logEvent:event];
    var event = new Object();
    event["event"] = "w_search";
    event["search_term"] = "crop jeans";
    event["search_type"] = "promotion";
    event["g20"] = 1232;
    DOT.logEvent(event);
    var event = new Object();
    event["event"] = "w_search";
    event["search_term"] = "crop jeans";
    event["search_type"] = "promotion";
    event["g20"] = 1232;
    WDOT.logEvent(event);
// .dart 에서 호출 할 때 
Map searchTp = {};
searchTp["event"] = "w_search";
searchTp["search_term"] = "crop jeans";
searchTp["search_type"] = "promotion";
searchTp["g20"] = 1232;
DOT.logEvent(searchTp);

// webview 에서 호출 할 때
window.flutter_inappwebview.callHandler("DotFlutterDataBridge",JSON.stringify({
      method : "logEvent",
      data: {
              event : "w_search",
              search_term : "crop jeans",
              search_type : "promotion",
              g20 : 1232
      }
}));
// .js 에서 호출 할 때 
NativeModules.DotReactBridge.logEvent(JSON.stringify({
    event : "w_search",
    search_term : "crop jeans",
    search_type : "promotion",
    g20 : 1232
}));

// webview 에서 호출 할 때
window.ReactNativeWebView.postMessage(JSON.stringify({
 	method:"logEvent",
	data : {
            event : "w_search",
            search_term : "crop jeans",
            search_type : "promotion",
            g20 : 1232
        	}  
})); 
Dictionary<string, object> eventDic = new Dictionary<string, object>();
eventDic.Add("event", "search");
eventDic.Add("search_term", "crop jeans");
eventDic.Add("search_type", "promotion");
eventDic.Add("g20", 1232);
DOT.logEvent(eventDic);

프로모션 조회

프로모션 상세화면에 아래 코드를 추가합니다.

선택 속성

Key

Value 예시

Type

설명

promotion_id

E200905605

string

프로모션 고유번호

promotion_name

10월 COUPON PACK

string

프로모션 명칭

Map<String, Object> pageMap = new HashMap<>();
pageMap.put("event", "w_view_promotion");
pageMap.put("promotion_id", "E200905605");
pageMap.put("promotion_name", "10월 COUPON PACK");
DOT.logScreen(pageMap);
val pageMap = mutableMapOf<String,Any>()
pageMap["event"] = "w_view_promotion"
pageMap["promotion_id"] = "E200905605"
pageMap["promotion_name"] = "7월 COUPON PACK"
DOT.logScreen(pageMap)
var screen = NSMutableDictionary()
screen["event"] = "w_view_promotion"
screen["promotion_id"] = "E200905605"
screen["promotion_name"] = "10월 COUPON PACK"
DOT.logScreen(screen)
NSMutableDictionary *screen = [[NSMutableDictionary alloc] init];
[screen setValue:@"w_view_promotion" forKey:@"event"];
[screen setValue:@"E200905605" forKey:@"promotion_id"];
[screen setValue:@"10월 COUPON PACK" forKey:@"promotion_name"];
[DOT logScreen:screen];
    var screen = new Object();
    screen["event"] = "w_view_promotion";
    screen["promotion_id"] = "E200905605";
    screen["promotion_name"] = "10월 COUPON PACK";
    DOT.logScreen(screen);
    var screen = new Object();
    screen["event"] = "w_view_promotion";
    screen["promotion_id"] = "E200905605";
    screen["promotion_name"] = "10월 COUPON PACK";
    WDOT.onStartPage(screen);
// .dart 에서 호출 할 때 
Map promotion = {};
promotion["event"] = "w_view_promotion";
promotion["promotion_id"] = "E200905605";
promotion["promotion_name"] = "10월 COUPON PACK";
DOT.logScreen(promotion);

// webview 에서 호출 할 때
window.flutter_inappwebview.callHandler("DotFlutterDataBridge",JSON.stringify({
      method : "logScreen",
      data: {
              event : "w_view_promotion",
              promotion_id : "E200905605",
              promotion_name : "10월 COUPON PACK"
      }
}));
// .js 에서 호출 할 때 
NativeModules.DotReactBridge != null &&
  (NativeModules.DotReactBridge.onStartPage(),
  NativeModules.DotReactBridge.logScreen(JSON.stringify({
        event : "w_view_promotion",
        promotion_id : "E200905605",
        promotion_name : "10월 COUPON PACK"
    }),
  ));

// webview 에서 호출 할 때
window.ReactNativeWebView.postMessage(JSON.stringify({
 	method:"logScreen",
	data : {
    event : "w_view_promotion",
    promotion_id : "E200905605",
    promotion_name : "10월 COUPON PACK"
	}  
})); 
Dictionary<string, object> page = new Dictionary<string, object>();
page.Add("event", "w_view_promotion");
page.Add("promotion_id", "E200905605");
page.Add("promotion_name", "10월 COUPON PACK");
DOT.logScreen(page);

컨텐츠 조회

컨텐츠 상세화면에 아래 코드를 추가합니다.

선택 속성

Key

Value 예시

Type

설명

content_id

1912012739

string

컨텐츠 고유번호

content_name

깊은잠 토퍼 매트리스 리뷰

string

컨텐츠 명칭

Map<String, Object> pageMap = new HashMap<>();
pageMap.put("event", "w_view_contents");
pageMap.put("content_id", "1912012739");
pageMap.put("content_name", "깊은잠 토퍼 매트리스 리뷰");
DOT.logScreen(pageMap);
val pageMap = mutableMapOf<String,Any>()
pageMap["event"] = "w_view_contents"
pageMap["content_id"] = "1912012739"
pageMap["content_name"] = "깊은잠 토퍼 매트리스 리뷰"
DOT.logScreen(pageMap)
var screen = NSMutableDictionary()
screen["event"] = "w_view_contents"
screen["content_id"] = "1912012739"
screen["content_name"] = "깊은잠 토퍼 매트리스 리뷰"
DOT.logScreen(screen)
NSMutableDictionary *screen = [[NSMutableDictionary alloc] init];
[screen setValue:@"w_view_contents" forKey:@"event"];
[screen setValue:@"1912012739" forKey:@"content_id"];
[screen setValue:@"깊은잠 토퍼 매트리스 리뷰" forKey:@"content_name"];
[DOT logScreen:screen];
    var screen = new Object();
    screen["event"] = "w_view_contents";
    screen["content_id"] = "1912012739";
    screen["content_name"] = "깊은잠 토퍼 매트리스 리뷰";
    DOT.logScreen(screen);
    var screen = new Object();
    screen["event"] = "w_view_contents";
    screen["content_id"] = "1912012739";
    screen["content_name"] = "깊은잠 토퍼 매트리스 리뷰";
    WDOT.onStartPage(screen);
// .dart 에서 호출 할 때 
Map content = {};
content["event"] = "w_view_contents";
content["content_id"] = "1912012739";
content["content_name"] = "깊은잠 토퍼 매트리스 리뷰";
DOT.logScreen(content);

// webview 에서 호출 할 때
window.flutter_inappwebview.callHandler("DotFlutterDataBridge",JSON.stringify({
      method : "logScreen",
      data: {
              event : "w_view_contents",
              content_id : "1912012739",
              content_name : "깊은잠 토퍼 매트리스 리뷰"
      }
}));
// .js 에서 호출 할 때 
NativeModules.DotReactBridge != null &&
  (NativeModules.DotReactBridge.onStartPage(),
  NativeModules.DotReactBridge.logScreen(JSON.stringify({
        event : "w_view_contents",
        content_id : "1912012739",
        content_name : "깊은잠 토퍼 매트리스 리뷰"
    }),
  ));

// webview 에서 호출 할 때
window.ReactNativeWebView.postMessage(JSON.stringify({
 	method:"logScreen",
	data : {
    event : "w_view_contents",
    content_id : "1912012739",
    content_name : "깊은잠 토퍼 매트리스 리뷰"
	}  
})); 
Dictionary<string, object> page = new Dictionary<string, object>();
page.Add("event", "w_view_contents");
page.Add("content_id", "1912012739");
page.Add("content_name", "깊은잠 토퍼 매트리스 리뷰");
DOT.logScreen(page);

전화 문의

전화 문의 관련 화면에 아래 코드를 추가합니다.

Map<String, Object> eventMap = new HashMap<>();
eventMap.put("event", "w_contact_by_phone");
DOT.logEvent(eventMap);
val eventMap = mutableMapOf<String,Any>()
eventMap["event"] = "w_contact_by_phone"
DOT.logEvent(eventMap)
var screen = NSMutableDictionary()
screen["event"] = "w_contact_by_phone"
DOT.logScreen(screen)
NSMutableDictionary *screen = [[NSMutableDictionary alloc] init];
[screen setValue:@"w_contact_by_phone" forKey:@"event"];
[DOT logScreen:screen];
    var screen = new Object();
    screen["event"] = "w_contact_by_phone";
    DOT.logScreen(screen);
    var screen = new Object();
    screen["event"] = "w_contact_by_phone";
    WDOT.logEvent(screen);
// .dart 에서 호출 할 때 
Map byPhone = {};
byPhone["event"] = "w_contact_by_phone";
DOT.logEvent(byPhone);


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

// webview 에서 호출 할 때
window.ReactNativeWebView.postMessage(JSON.stringify({
 	method:"logEvent",
	data : {
    event : "w_contact_by_phone"
	}  
})); 
Dictionary<string, object> eventDic = new Dictionary<string, object>();
eventDic.Add("event", "w_contact_by_phone");
DOT.logEvent(eventDic)

카카오톡 문의

카카오톡 문의 관련 화면에 아래 코드를 추가합니다.

Map<String, Object> eventMap = new HashMap<>();
eventMap.put("event", "w_contact_by_kakao");
DOT.logEvent(eventMap);
val eventMap = mutableMapOf<String,Any>()
eventMap["event"] = "w_contact_by_kakao"
DOT.logEvent(eventMap)
var screen = NSMutableDictionary()
screen["event"] = "w_contact_by_kakao"
DOT.logScreen(screen)
NSMutableDictionary *screen = [[NSMutableDictionary alloc] init];
[screen setValue:@"w_contact_by_kakao" forKey:@"event"];
[DOT logScreen:screen];
    var screen = new Object();
    screen["event"] = "w_contact_by_kakao";
    DOT.logScreen(screen);
    var screen = new Object();
    screen["event"] = "w_contact_by_kakao";
    WDOT.logEvent(screen);
// .dart 에서 호출 할 때 
Map byPhone = {};
byPhone["event"] = "w_contact_by_phone";
DOT.logEvent(byPhone);


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

// webview 에서 호출 할 때
window.ReactNativeWebView.postMessage(JSON.stringify({
 	method:"logEvent",
	data : {
    event : "w_contact_by_kakao"
	}  
})); 
Dictionary<string, object> eventDic = new Dictionary<string, object>();
eventDic.Add("event", "w_contact_by_kakao");
DOT.logEvent(eventDic)

블로그 방문하기

블로그 방문하기 관련 화면에 아래 코드를 추가합니다.

Map<String, Object> eventMap = new HashMap<>();
eventMap.put("event", "w_blog_link");
DOT.logScreen(eventMap);
val eventMap = mutableMapOf<String,Any>()
eventMap["event"] = "w_blog_link"
DOT.logScreen(eventMap)
var screen = NSMutableDictionary()
screen["event"] = "w_blog_link"
DOT.logScreen(screen)
NSMutableDictionary *screen = [[NSMutableDictionary alloc] init];
[screen setValue:@"w_blog_link" forKey:@"event"];
[DOT logScreen:screen];
    var screen = new Object();
    screen["event"] = "w_blog_link";
    DOT.logScreen(screen);
    var screen = new Object();
    screen["event"] = "w_blog_link";
    WDOT.logScreen(screen);
// .dart 에서 호출 할 때 
Map blogLink = {};
blogLink["event"] = "w_blog_link";
DOT.logScreen(blogLink);

// webview 에서 호출 할 때
window.flutter_inappwebview.callHandler("DotFlutterDataBridge",JSON.stringify({
      method : "logScreen",
      data: {
              event : "w_blog_link"
      }
}));
// .js 에서 호출 할 때 
NativeModules.DotReactBridge.logScreen(JSON.stringify({
    event : "w_blog_link"
}));

// webview 에서 호출 할 때
window.ReactNativeWebView.postMessage(JSON.stringify({
 	method:"logScreen",
	data : {
    event : "w_blog_link"
	}  
})); 
Dictionary<string, object> page = new Dictionary<string, object>();
page.Add("event", "w_blog_link");
DOT.logScreen(page);

클릭 이벤트

유저가 앱 내에서 메뉴, 배너 등을 클릭하는 행동을 일종의 이벤트로써 측정하기 위해 사용하는 API입니다. 클릭 가능한 모든 대상에 적용할 필요는 없으며, 반드시 측정할 필요가 있는 대상에만 적용하는 것을 권장합니다.

메뉴 클릭

메뉴가 클릭된 시점에 아래 코드를 추가합니다.

선택 속성

Key

Value 예시

Type

설명

menu_name

신상품

string

메뉴 명칭

placement

GNB

string

노출 순서나 배치된 위치 정보

Map<String, Object> eventMap = new HashMap<>();
eventMap.put("event", "w_click_menu");
eventMap.put("menu_name", "신상품");       
eventMap.put("placement", "GNB");
DOT.logEvent(eventMap);
val eventMap = mutableMapOf<String,Any>()
eventMap["event"] = "w_click_menu"
eventMap["menu_name"] = "신상품"
eventMap["placement"] = "GNB"
DOT.logEvent(eventMap)
let event = NSMutableDictionary()
event["event"] = "w_click_menu"
event["menu_name"] = "신상품"
event["placement"] = "GNB"
DOT.logEvent(event)
NSMutableDictionary *event = [[NSMutableDictionary alloc] init];
[event setValue:@"w_click_menu" forKey:@"event"];
[event setValue:@"신상품" forKey:@"menu_name"];
[event setValue:@"GNB" forKey:@"placement"]
[DOT logEvent:event];
    var event = new Object();
    event["event"] = "w_click_menu";
    event["menu_name"] = "신상품";
    event["placement"] = "GNB";
    DOT.logEvent(event);
    var event = new Object();
    event["event"] = "w_click_menu";
    event["menu_name"] = "신상품";
    event["placement"] = "GNB";
    WDOT.logEvent(event);
// .dart 에서 호출 할 때 
Map menuClick = {};
menuClick["event"] = "w_click_menu";
menuClick["menu_name"] = "신상품";
menuClick["placement"] = "GNB";     
DOT.logEvent(menuClick);

// webview 에서 호출 할 때
window.flutter_inappwebview.callHandler("DotFlutterDataBridge",JSON.stringify({
      method : "logEvent",
      data: {
              event : "w_click_menu",
              menu_name : "신상품",
              placement : "GNB"
      }
}));
// .js 에서 호출 할 때 
NativeModules.DotReactBridge.logEvent(JSON.stringify({
    event : "w_click_menu",
    menu_name : "신상품",
    placement : "GNB"
}));
// webview 에서 호출 할 때
window.ReactNativeWebView.postMessage(JSON.stringify({
 	method:"logEvent",
	data : {
	    event : "w_click_menu",
	    menu_name : "신상품",
	    placement : "GNB"
	}  
})); 
Dictionary<string, object> eventDic = new Dictionary<string, object>();
eventDic.Add("event", "w_click_menu");
eventDic.Add("menu_name", "신상품");
eventDic.Add("placement", "GNB");
DOT.logEvent(eventDic);

배너 클릭

배너가 클릭된 시점에 아래 코드를 추가합니다.

선택 속성

Key

Value 예시

Type

설명

banner_name

ARKO Pre-order

string

배너 명칭

placement

3

string

노출 순서나 배치된 위치 정보

Map<String, Object> eventMap = new HashMap<>();
eventMap.put("event", "w_click_banner");
eventMap.put("banner_name", "ARKO Pre-order");
eventMap.put("placement", "3");
DOT.logEvent(eventMap);
val eventMap = mutableMapOf<String,Any>()
eventMap["event"] = "w_click_banner"
eventMap["banner_name"] = "ARKO Pre-order"
eventMap["placement"] = "3"
DOT.logEvent(eventMap)
let event = NSMutableDictionary()
event["event"] = "w_click_banner"
event["banner_name"] = "ARKO Pre-order"
event["placement"] = "3"
DOT.logEvent(event)
NSMutableDictionary *event = [[NSMutableDictionary alloc] init];
[event setValue:@"w_click_banner" forKey:@"event"];
[event setValue:@"ARKO Pre-order" forKey:@"banner_name"];
[event setValue:@"3" forKey:@"placement"];
[DOT logEvent:event];
    var event = new Object();
    event["event"] = "w_click_banner";
    event["banner_name"] = "ARKO Pre-order";
    event["placement"] = "3";
    DOT.logEvent(event);
    var event = new Object();
    event["event"] = "w_click_banner";
    event["banner_name"] = "ARKO Pre-order";
    event["placement"] = "3";
    WDOT.logEvent(event);
// .dart 에서 호출 할 때 
Map bannerClick = {};
bannerClick["event"] = "w_click_banner";
bannerClick["banner_name"] = "ARKO Pre-order";
bannerClick["placement"] = "3";
DOT.logEvent(bannerClick);

// webview 에서 호출 할 때
window.flutter_inappwebview.callHandler("DotFlutterDataBridge",JSON.stringify({
      method : "logEvent",
      data: {
              event : "w_click_banner",
              banner_name : "ARKO Pre-order",
              placement : "3"
      }
}));
// .js 에서 호출 할 때 
NativeModules.DotReactBridge.logEvent(JSON.stringify({
    event : "w_click_banner",
    banner_name : "ARKO Pre-order",
    placement : "3"
}));

// webview 에서 호출 할 때
window.ReactNativeWebView.postMessage(JSON.stringify({
 	method:"logEvent",
	data : {
	    event : "w_click_banner",
	    banner_name : "ARKO Pre-order",
	    placement : "3"
	}  
})); 
Dictionary<string, object> eventDic = new Dictionary<string, object>();
eventDic.Add("event", "w_click_banner");
eventDic.Add("banner_name", "ARKO Pre-order");
eventDic.Add("placement", "3");
DOT.logEvent(eventDic);

버튼 클릭

버튼이 클릭된 시점에 아래 코드를 추가합니다.

선택 속성

Key

Value 예시

Type

설명

button_name

Free 30-day Trial

string

버튼 명칭

placement

subscription CTA

string

노출 순서나 배치된 위치 정보

Map<String, Object> eventMap = new HashMap<>();
eventMap.put("event", "w_click_button");
eventMap.put("button_name", "Free 30-day Trial");
eventMap.put("placement", "subsctiption CTA");
DOT.logEvent(eventMap);
val eventMap = mutableMapOf<String,Any>()
eventMap["event"] = "w_click_button"
eventMap["button_name"] = "Free 30-day Trial"
eventMap["placement"] = "subsctiption CTA"
DOT.logEvent(eventMap)
var event = NSMutableDictionary()
event["event"] = "w_click_button"
event["button_name"] = "Free 30-day Trial"
event["placement"] = "subsctiption CTA"
DOT.logEvent(event)
NSMutableDictionary *event = [[NSMutableDictionary alloc] init];
[event setValue:@"w_click_button" forKey:@"event"];
[event setValue:@"Free 30-day Trial" forKey:@"button_name"];
[event setValue:@"subsctiption CTA" forKey:@"placement"];
[DOT logEvent:event];
    var event = new Object();
    event["event"] = "w_click_button";
    event["button_name"] = "Free 30-day Trial";
    event["placement"] = "subsctiption CTA";
    DOT.logEvent(event);
    var event = new Object();
    event["event"] = "w_click_button";
    event["button_name"] = "Free 30-day Trial";
    event["placement"] = "subsctiption CTA";
    WDOT.logEvent(event);
// .dart 에서 호출 할 때 
Map buttonClick = {};
buttonClick["event"] = "w_click_button";
buttonClick["button_name"] = "Free 30-day Trial";
buttonClick["placement"] = "subsctiption CTA";
DOT.logEvent(buttonClick);

// webview 에서 호출 할 때
window.flutter_inappwebview.callHandler("DotFlutterDataBridge",JSON.stringify({
      method : "logEvent",
      data: {
              event : "w_click_button",
              button_name : "Free 30-day Trial",
              placement : "subsctiption CTA"
      }
}));
// .js 에서 호출 할 때 
NativeModules.DotReactBridge.logEvent(JSON.stringify({
    event : "w_click_button",
    button_name : "Free 30-day Trial",
    placement : "subsctiption CTA"
}));

// webview 에서 호출 할 때
window.ReactNativeWebView.postMessage(JSON.stringify({
 	method:"logEvent",
	data : {
	    event : "w_click_button",
	    button_name : "Free 30-day Trial",
	    placement : "subsctiption CTA"
	}  
})); 
Dictionary<string, object> eventDic = new Dictionary<string, object>();
eventDic.Add("event", "w_click_button");
eventDic.Add("button_name", "Free 30-day Trial");
eventDic.Add("placement", "subscription CTA");
DOT.logEvent(eventDic);

아이템 클릭

배너, 메뉴, 버튼 등으로 분류하기 어려운 요소가 있을 수 있습니다. 이런 요소가 클릭된 시점에 아래 코드를 적용합니다.

선택 속성

Key

Value 예시

Type

설명

item_name

최근 3일 급등종목

string

아이템 명칭

placement

추천영역 2

string

노출 순서나 배치된 위치 정보

Map<String, Object> eventMap = new HashMap<>();
eventMap.put("event", "w_click_item");
eventMap.put("item_name", "최근 3일 급등종목");
eventMap.put("placement", "추천영역 2");
DOT.logEvent(eventMap);
val eventMap = mutableMapOf<String,Any>()
eventMap["event"] = "w_click_item"
eventMap["item_name"] = "최근 3일 급등종목"
eventMap["placement"] = "추천영역 2"
DOT.logEvent(eventMap)
let event = NSMutableDictionary()
event["event"] = "w_click_item"
event["item_name"] = "최근 3일 급등종목"
event["placement"] = "추천영역 2"
DOT.logEvent(event)
NSMutableDictionary *event = [[NSMutableDictionary alloc] init];
[event setValue:@"w_click_item" forKey:@"event"];
[event setValue:@"최근 3일 급등종목" forKey:@"item_name"];
[event setValue:@"추천영역 2" forKey:@"placement"];
[DOT logEvent:event];
    var event = new Object();
    event["event"] = "w_click_item";
    event["item_name"] = "최근 3일 급등종목";
    event["placement"] = "추천영역 2";
    DOT.logEvent(event);
    var event = new Object();
    event["event"] = "w_click_item";
    event["item_name"] = "최근 3일 급등종목";
    event["placement"] = "추천영역 2";
    WDOT.logEvent(event);
// .dart 에서 호출 할 때 
Map itemClick = {};
itemClick["event"] = "w_click_item";
itemClick["item_name"] = "최근 3일 급등종목";
itemClick["placement"] = "추천영역 2";
DOT.logEvent(itemClick);

// webview 에서 호출 할 때
window.flutter_inappwebview.callHandler("DotFlutterDataBridge",JSON.stringify({
      method : "logEvent",
      data: {
              event : "w_click_item",
              item_name : "최근 3일 급등종목",
              placement : "추천영역 2"
      }
}));
// .js 에서 호출 할 때 
NativeModules.DotReactBridge.logEvent(JSON.stringify({
    event : "w_click_item",
    item_name : "최근 3일 급등종목",
    placement : "추천영역 2"
}));

// webview 에서 호출 할 때
window.ReactNativeWebView.postMessage(JSON.stringify({
 	method:"logEvent",
	data : {
	    event : "w_click_item",
	    item_name : "최근 3일 급등종목",
	    placement : "추천영역 2"
	}  
})); 
Dictionary<string, object> eventDic = new Dictionary<string, object>();
eventDic.Add("event", "w_click_item");
eventDic.Add("item_name", "최근 3일 급등종목");
eventDic.Add("placement", "추천영역 2");
DOT.logEvent(eventDic);

공유하기

SMS 및 다른 앱을 통한 상품/컨텐츠 공유를 완료한 시점에 아래 코드를 추가합니다.

선택 속성

Key

Value 예시

Type

설명

share_type

facebook

string

공유된 미디어

Map<String, Object> eventMap = new HashMap<>();
eventMap.put("event", "w_share");
eventMap.put("share_type", "facebook");
DOT.logEvent(eventMap);
val eventMap = mutableMapOf<String,Any>()
eventMap["event"] = "w_share"
eventMap["share_type"] = "facebook"
DOT.logEvent(eventMap)
let event = NSMutableDictionary()
event["event"] = "w_share"
event["share_type"] = "facebook"
DOT.logEvent(event)
NSMutableDictionary *event = [[NSMutableDictionary alloc] init];
[event setValue:@"w_share" forKey:@"event"];
[event setValue:@"facebook" forKey:@"share_type"];
[DOT logEvent:event];
    var event = new Object();
    event["event"] = "w_share";
    event["share_type"] = "facebook";
    DOT.logEvent(event);
    var event = new Object();
    event["event"] = "w_share";
    event["share_type"] = "facebook";
    WDOT.logEvent(event);
// .dart 에서 호출 할 때 
Map share = {};
share["event"] = "w_share";
share["share_type"] = "facebook";
DOT.logEvent(share);

// webview 에서 호출 할 때
window.flutter_inappwebview.callHandler("DotFlutterDataBridge",JSON.stringify({
      method : "logEvent",
      data: {
              event : "w_share",
              share_type : "facebook"
      }
}));
// .js 에서 호출 할 때 
NativeModules.DotReactBridge.logEvent(JSON.stringify({
    event : "w_share",
    share_type : "facebook"
}));

// webview 에서 호출 할 때
window.ReactNativeWebView.postMessage(JSON.stringify({
 	method:"logEvent",
	data : {
	    event : "w_share",
	    share_type : "facebook"
	}  
})); 
Dictionary<string, object> eventDic = new Dictionary<string, object>();
eventDic.Add("event", "w_share");
eventDic.Add("share_type", "facebook");
DOT.logEvent(eventDic);

초대하기

SMS 및 다른 앱을 통해 초대하기를 완료한 시점에 아래 코드를 추가합니다.

선택 속성

Key

Value 예시

Type

설명

invite_type

instagram

string

초대된 미디어

Map<String, Object> eventMap = new HashMap<>();
eventMap.put("event", "w_invite");
eventMap.put("invite_type", "instagram");
DOT.logEvent(eventMap);
val eventMap = mutableMapOf<String,Any>()
eventMap["event"] = "w_invite"
eventMap["invite_type"] = "instagram"
DOT.logEvent(eventMap)
let event = NSMutableDictionary()
event["event"] = "w_invite"
event["invite_type"] = "instagram"
DOT.logEvent(event)
NSMutableDictionary *event = [[NSMutableDictionary alloc] init];
[event setValue:@"w_invite" forKey:@"event"];
[event setValue:@"instagram" forKey:@"invite_type"];
[DOT logEvent:event];
    var event = new Object();
    event["event"] = "w_invite";
    event["invite_type"] = "instagram";
    DOT.logEvent(event);
    var event = new Object();
    event["event"] = "w_invite";
    event["invite_type"] = "instagram";
    WDOT.logEvent(event);
// .dart 에서 호출 할 때 
Map invite = {};
invite["event"] = "w_invite";
invite["invite_type"] = "instagram";
DOT.logEvent(invite);

// webview 에서 호출 할 때
window.flutter_inappwebview.callHandler("DotFlutterDataBridge",JSON.stringify({
      method : "logEvent",
      data: {
              event : "w_invite",
              invite_type : "instagram"
      }
}));
// .js 에서 호출 할 때 
NativeModules.DotReactBridge.logEvent(JSON.stringify({
    event : "w_invite",
    invite_type : "instagram"
}));

// webview 에서 호출 할 때
window.ReactNativeWebView.postMessage(JSON.stringify({
 	method:"logEvent",
	data : {
	    event : "w_invite",
	    invite_type : "instagram"
	}  
})); 
Dictionary<string, object> eventDic = new Dictionary<string, object>();
eventDic.Add("event", "w_invite");
eventDic.Add("invite_type", "instagram");
DOT.logEvent(eventDic);

댓글 달기

댓글 달기를 완료한 시점에 아래 코드를 추가합니다.

Map<String, Object> eventMap = new HashMap<>();
eventMap.put("event", "w_replied");
DOT.logEvent(eventMap);
val eventMap = mutableMapOf<String,Any>()
eventMap["event"] = "w_replied"
DOT.logEvent(eventMap)
let event = NSMutableDictionary()
event["event"] = "w_replied"
DOT.logEvent(event)
NSMutableDictionary *event = [[NSMutableDictionary alloc] init];
[event setValue:@"w_replied" forKey:@"event"];
[DOT logEvent:event];
    var event = new Object();
    event["event"] = "w_replied";
    DOT.logEvent(event);
    var event = new Object();
    event["event"] = "w_replied";
    WDOT.logEvent(event);
// .dart 에서 호출 할 때 
Map replied = {};
replied["event"] = "w_replied";
DOT.logEvent(replied);

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

// webview 에서 호출 할 때
window.ReactNativeWebView.postMessage(JSON.stringify({
 	method:"logEvent",
	data : {
		event : "w_replied"
	}  
})); 
Dictionary<string, object> eventDic = new Dictionary<string, object>();
eventDic.Add("event", "w_replied");
DOT.logEvent(eventDic);

리뷰 조회하기

리뷰를 조회하는 시점에 아래 코드를 추가합니다.

Map<String, Object> eventMap = new HashMap<>();
eventMap.put("event", "w_see_review");
DOT.logEvent(eventMap);
val eventMap = mutableMapOf<String,Any>()
eventMap["event"] = "w_see_review"
DOT.logEvent(eventMap)
let event = NSMutableDictionary()
event["event"] = "w_see_review"
DOT.logEvent(event)
NSMutableDictionary *event = [[NSMutableDictionary alloc] init];
[event setValue:@"w_see_review" forKey:@"event"];
[DOT logEvent:event];
    var event = new Object();
    event["event"] = "w_see_review";
    DOT.logEvent(event);
    var event = new Object();
    event["event"] = "w_see_review";
    WDOT.logEvent(event);
// .dart 에서 호출 할 때 
Map reviewSee = {};
reviewSee["event"] = "w_see_review";
DOT.logEvent(reviewSee);

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

// webview 에서 호출 할 때
window.ReactNativeWebView.postMessage(JSON.stringify({
 	method:"logEvent",
	data : {
   	 	event : "w_see_review"
	}  
})); 
Dictionary<string, object> eventDic = new Dictionary<string, object>();
eventDic.Add("event", "w_see_review");
DOT.logEvent(eventDic);

리뷰 작성하기

리뷰 작성을 완료한 시점에 아래 코드를 추가합니다.

선택 속성

Key

Value 예시

Type

설명

g25

5

float

리뷰별점

Map<String, Object> eventMap = new HashMap<>();
eventMap.put("event", "w_add_review");
eventMap.put("g25", 5);  
DOT.logEvent(eventMap);
val eventMap = mutableMapOf<String,Any>()
eventMap["event"] = "w_add_review"
eventMap["g25"] = 5
DOT.logEvent(eventMap)
let event = NSMutableDictionary()
event["event"] = "w_add_review"
event["g25"] = 5
DOT.logEvent(event)
NSMutableDictionary *event = [[NSMutableDictionary alloc] init];
[event setValue:@"w_add_review" forKey:@"event"];
[event setValue:[NSNumber numberWithInt:5] forKey:@"g25"];
[DOT logEvent:event];
    var event = new Object();
    event["event"] = "w_add_review";
    event["g25"] = 5;
    DOT.logEvent(event);
    var event = new Object();
    event["event"] = "w_add_review";
    event["g25"] = 5;
    WDOT.logEvent(event);
// .dart 에서 호출 할 때 
Map event = {};
event["event"] = "w_add_review";
event["g25"] = 5;
DOT.logEvent(reviewAdd);

// webview 에서 호출 할 때
var event = new Object();
event["event"] = "w_add_review";
event["g25"] = 5;

window.flutter_inappwebview.callHandler("DotFlutterDataBridge",JSON.stringify({
      method : "logEvent",
      data: event
}));
// .js 에서 호출 할 때 
NativeModules.DotReactBridge.logEvent(JSON.stringify({
    event : "w_add_review",
    g25 : 5,
}));

// webview 에서 호출 할 때
window.ReactNativeWebView.postMessage(JSON.stringify({
 	method:"logEvent",
	data : {
    	    event : "w_add_review",
            g25 : 5,
	}  
})); 
Dictionary<string, object> eventDic = new Dictionary<string, object>();
eventDic.Add("event", "w_add_review");
eventDic.Add("g25", 5);
DOT.logEvent(eventDic);

평가하기

평가하기를 완료하는 시점에 아래 코드를 추가합니다.

Map<String, Object> eventMap = new HashMap<>();
eventMap.put("event", "w_rated");
DOT.logEvent(eventMap);
val eventMap = mutableMapOf<String,Any>()
eventMap["event"] = "w_rated"
DOT.logEvent(eventMap)
let event = NSMutableDictionary()
event["event"] = "w_rated"
DOT.logEvent(event)
NSMutableDictionary *event = [[NSMutableDictionary alloc] init];
[event setValue:@"w_rated" forKey:@"event"];
[DOT logEvent:event];
    var event = new Object();
    event["event"] = "w_rated";
    DOT.logEvent(event);
    var event = new Object();
    event["event"] = "w_rated";
    WDOT.logEvent(event);
// .dart 에서 호출 할 때 
Map rated = {};
rated["event"] = "w_rated";
DOT.logEvent(rated);

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

// webview 에서 호출 할 때
window.ReactNativeWebView.postMessage(JSON.stringify({
 	method:"logEvent",
	data : {
    	    event : "w_rated"
	}  
})); 
Dictionary<string, object> eventDic = new Dictionary<string, object>();
eventDic.Add("event", "w_rated");
DOT.logEvent(eventDic);

구독 취소하기

구독 취소하기를 완료하는 시점에 아래 코드를 추가합니다.

Map<String, Object> eventMap = new HashMap<>();
eventMap.put("event", "w_unsubscribe");
DOT.logEvent(eventMap);
val eventMap = mutableMapOf<String,Any>()
eventMap["event"] = "w_unsubscribe"
DOT.logEvent(eventMap)
let event = NSMutableDictionary()
event["event"] = "w_unsubscribe"
DOT.logEvent(event)
NSMutableDictionary *event = [[NSMutableDictionary alloc] init];
[event setValue:@"w_unsubscribe" forKey:@"event"];
[DOT logEvent:event];
    var event = new Object();
    event["event"] = "w_unsubscribe";
    DOT.logEvent(event);
    var event = new Object();
    event["event"] = "w_unsubscribe";
    WDOT.logEvent(event);
// .dart 에서 호출 할 때 
Map unsubscribe = {};
unsubscribe["event"] = "w_unsubscribe";
DOT.logEvent(unsubscribe);

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

// webview 에서 호출 할 때
window.ReactNativeWebView.postMessage(JSON.stringify({
 	method:"logEvent",
	data : {
    	    event : "w_unsubscribe"
	}  
})); 
Dictionary<string, object> eventDic = new Dictionary<string, object>();
eventDic.Add("event", "w_unsubscribe");
DOT.logEvent(eventDic);
☑️