디파이너리(애드브릭스) iOS 연동하기 [Unity]
팔로우
V2 에서의 변경점
2022년 9월 29일 Unity SDK V2 버전이 출시되었습니다. V2 버전이 출시됨에 따라 아래의 기존 "AdBrixRemasterUnityPlugin-a1.1.2110-i1.6.5102" Unity 패키지를 사용하시는 분은 아래 내용을 참고하여 Unity 패키지를 업데이트 해주시길 부탁드립니다.
- 라이브러리 변경
- Android / iOS 네이티브 라이브러리가 변경되었습니다. 기존에 사용하셨던 아래 라이브러리는 삭제를 부탁드립니다.
- Android
- abx-common-rm-release-v1.1.2110.aar
- abx-unity.aar
- installreferrer-1.0.aar
- iOS
- AdBrixRM.framework
- Android
- 이외 SDK 업데이트 시 기존 파일과 동일한 이름의 파일은 모두 신규 버전으로 업데이트를 부탁드립니다.
- Android / iOS 네이티브 라이브러리가 변경되었습니다. 기존에 사용하셨던 아래 라이브러리는 삭제를 부탁드립니다.
- SDK init 변경
- SDK init 연동 방식이 Android / iOS 별 네이티브 상에서 연동하는 것으로 변경되었습니다. 그러므로 아래의 API 는 삭제를 부탁드립니다.
- Android : AdBrixRm.InitPlugin();
- iOS : AdBrixRm.initAdBrix("your_app_key", "your_secret_key");
- SDK init 연동 방식이 Android / iOS 별 네이티브 상에서 연동하는 것으로 변경되었습니다. 그러므로 아래의 API 는 삭제를 부탁드립니다.
- SDK LogLevel API 삭제
- 딥링크 / 디퍼드 딥링크 연동 방식이 변경됨에 따라 setAdBrixDeeplinkDelegate / setAdBrixDeferredDeeplinkDelegate API 가 삭제되었습니다.
- 딥링크 / 디퍼드 딥링크 연동방식이 변경됨에 따라 didReceiveDeeplink / didReceiveDeferredDeeplink API 가 삭제되었습니다.
- SetCallbackHandler API 가 삭제되었습니다.
- 커스텀 이벤트 명이 변경되었습니다. ("events" -> "eventWithName" or "eventWithEventNameAndValue")
- 사용자의 나이를 설정하는 API 명이 변경되었습니다. ("setAgeInt" -> "setAge")
- 사용자의 성별을 설정하는 API 명이 변경되었습니다. ("setGenderWithAdBrixGenderType" -> "setGender")
- 사용자의 정보를 설정하는 API 명이 변경되었습니다. ("setUserPropertiesWithDictionary" -> "saveUserProperties")
- 이벤트 추가 정보 설정시 기존 Dictionary <string, object> 에서 Dictionary<string,string> 로 통일되었습니다.
Quick Start
Unity 지원 버전
디파이너리(애드브릭스) Unity SDK 는 Untiy 2021 LTS 버전에서 최적화 되었습니다. 해당 버전 사용을 권장합니다.
SDK 다운로드
디파이너리(애드브릭스) Unity 통합 패키지: [다운로드(update : 2022/09/28]
Unity 패키지 설치
1. 기존 유니티 프로젝트를 오픈합니다.
[기존 유니티 프로젝트 오픈]
2. 기존 유니티 프로젝트의 Assets 창으로 ~~.package 파일을 드래그&드롭합니다.
[디파이너리(애드브릭스) SDK package 파일 Drag & Drop]
3. AOS와 동시 개발의 프로젝트가 아니라면 iOS 디렉토리만 선택(Android 디렉토리는 체크 박스를 해제)하여 Import 합니다.
디파이너리(애드브릭스) SDK Script 설정
Unity 로 구현될 앱이 iOS / Android 모두 사용될 앱이라면 아래와 같이 스크립트 추가하여 각각의 OS 에 대응하도록 합니다.
using System.Collections; using System.Collections.Generic; using UnityEngine; using System.Runtime.InteropServices; using System; #if UNITY_IOS using UnityEngine.iOS; using AdBrixRmIOS; #elif UNITY_ANDROID using AdBrixRmAOS; #endif public class AdBrixSDKController: MonoBehaviour { }
※ 주의 : 지금부터 나올 내용은 iOS만 사용했을 경우를 가정하여 작성하였습니다.
Script 생성 후 해당 스크립트를 호출할 Component 에 이를 등록합니다.
디파이너리(애드브릭스) SDK init 설정
디파이너리(애드브릭스) SDK init 을 위해서는 연동하실 Unity 프로젝트를 Xcode 로 Export 하셔야 합니다. 해당 Xcode 프로젝트 내 UnityAppController.mm 파일에서 didFinishLaunchingWithOption 메소드에 아래의 코드를 추가합니다.
#import "AdBrixRmKit-Swift.h" - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { // Override point for customization after application launch. // AdBrixRM 인스턴스 생성 AdBrixRM *adBrix = [AdBrixRM sharedInstance]; // AdBrix 앱키&시크릿키 설정 [adBrix initAdBrixWithAppKey:@"your_app_key" secretKey:@"your_secret_key"]; return YES; }
Xcode 프로젝트 내 Build Settings 옵션에서 "Always Embed Swift Standard Libraries" 를 "Yes" 로 설정합니다.
SDK 추가 설정
이벤트 업로드 주기 설정
디파이너리(애드브릭스) SDK 에 전달된 이벤트를 디파이너리(애드브릭스) 서버로 전송하는 기준을 설정할 수 있습니다.
이벤트 업로드 주기를 누적 이벤트 개수와 시간으로 설정할 수 있습니다.
* 두 가지 기준 중 먼저 충족되는 기준에 따라서 이벤트가 업로드 됩니다.
누적 이벤트 개수 기준
설정된 개수만큼 이벤트가 누적되었을 때에 디파이너리(애드브릭스) 서버로 이벤트를 업로드하도록 설정합니다.
디파이너리(애드브릭스) SDK에 사전 정의된 아래의 값을 이용하여 설정합니다.
- AdBrixRM.AdBrixEventUploadCountInterval.MIN : 10건
- AdBrixRM.AdBrixEventUploadCountInterval.NORMAL : 30건
- AdBrixRM.AdBrixEventUploadCountInterval.MAX : 60건
using UnityEngine; using UnityEngine.UI; using System.Collections; using System.Collections.Generic; using System.Runtime.InteropServices; using System; using UnityEngine.iOS; using AdBrixRmIOS; public class AdBrixSDKController: MonoBehaviour { void Start () { AdBrixRm.setEventUploadCountInterval(AdBrixRm.AdBrixEventUploadCountInterval.MIN); } }
시간 기준
설정된 시간이 지나면 디파이너리(애드브릭스) 서버로 이벤트를 업로드하도록 설정합니다.
디파이너리(애드브릭스) SDK에 사전 정의된 아래의 값을 이용하여 설정합니다.
- AdBrixRM.AdBrixEventUploadTimeInteval.MIN : 30초
- AdBrixRM.AdBrixEventUploadTimeInteval.NORMAL :60초
- AdBrixRM.AdBrixEventUploadTimeInteval.MAX :120초
using UnityEngine; using UnityEngine.UI; using System.Collections; using System.Collections.Generic; using System.Runtime.InteropServices; using System; using UnityEngine.iOS; using AdBrixRmIOS; public class AdBrixSDKController: MonoBehaviour { void Start () { AdBrixRm.setEventUploadTimeInterval(AdBrixRm.AdBrixEventUploadTimeInterval.MIN); } }
GDPR 설정
GDPR 요청 이벤트를 이용하여 사용자 요청에 대해 데이터 주체와 연관된 모든 개인 데이터를 삭제할 수 있습니다.
본 이벤트 호출시, SDK 동작은 정지되며 모든 이벤트 저장, 전송 등이 불가합니다.
본 기능은 사용자가 앱을 삭제 후, 재설치하기 전에는 되돌릴 수 없습니다.
void gdprForgetMeEvent() { AdBrixRm.gdprForgetMe(); }
딥링크 / 디퍼드 딥링크 설정
딥링크 설정
Unity 프로젝트에서 File -> Build Settings -> Player Settings -> Player -> iOS 항목에서 "Support URL schemes" 에서 Deeplink scheme 값을 설정합니다.
Xcode 프로젝트로 export 후 Xcode 프로젝트 내 UnityAppController.mm 파일을 아래와 같이 딥링크 정보를 전달할 핸들러를 등록합니다.
#import "AdBrixRmKit-Swift.h" #import "AdBrixRmBridge.h" - (BOOL)application:(UIApplication*)app openURL:(NSURL*)url options:(NSDictionary<NSString*, id>*)options { // AdBrixRM 인스턴스 생성 AdBrixRM *adBrix = [AdBrixRM sharedInstance]; // 딥링크 오픈 이벤트 등록 [adBrix deepLinkOpenWithUrl:url]; return YES; } - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { // Override point for customization after application launch. // AdBrixRM 인스턴스 생성 AdBrixRM *adBrix = [AdBrixRM sharedInstance]; // AdBrix 앱키&시크릿키 설정 [adBrix initAdBrixWithAppKey:@"your_app_key" secretKey:@"your_secret_key"]; // 딥링크 핸들러 등록(GAME_OBJECT_NAME + DeeplinkHandler method) [[AdBrixRmBridge sharedAdBrixRmBridge] setAdBrixDeeplinkDelegate:@"AbxObject" function:@"HandleDidReceiveDeeplink"]; return YES; }
[[인용:위험:작게]] ※ GAME_OBJECT_NAME 은 Unity 내 딥링크 핸들러를 호출할 스크립트가 포함된 OBJECT 명과 일치해야 합니다.
딥링크를 관리할 스크립트에 아래와 같이 핸들러를 추가합니다.
public class AdBrixSDKController : MonoBehaviour { public void HandleDidReceiveDeeplink (string deeplinkValue){ Debug.Log("HandleDidReceiveDeeplink : "+ deeplinkValue); } }
위 코드의 HandleDidReceiveDeeplink 의 deepLinkValue 값을 통해 아래와 같이 딥링크 정보가 전달 됩니다. 전달되는 딥링크 정보를 활용하여 원하시는 화면으로 이동시켜 주시면 되겠습니다.
[[인용:위험:작게]] ※ 예시 : 트래킹 링크에 adbrixrm://deeplinkpath란 값을 딥링크 정보로 전달할 경우
예시 : HandleDidReceiveDeeplink : adbrixrm://deeplinkpath+추가 파라미터
디퍼드 딥링크 설정
딥링크를 액션을 관리하는 스크립트에 아래와 같이 핸들러를 추가합니다.
public class AdBrixSDKController : MonoBehaviour { public void HandleDidReceiveDeferredDeeplink (string deferredDeepLinkValue){ Debug.Log("HandleDidReceiveDeferredDeeplink : "+ deferredDeepLinkValue); } }
AdBrix 서버에서 위 코드의 HandleDidReceiveDeferredDeeplink 의 deferredDeepLinkValue 값을 통해 아래와 같이 딥링크 정보가 전달 됩니다. 전달되는 딥링크 정보를 활용하여 원하시는 화면으로 이동시켜 주시면 되겠습니다.
[[인용:위험:작게]] ※ 예시 : 트래킹 링크에 adbrixrm://deeplinkpath 란 값을 디퍼드 딥링크 딥링크 정보로 전달할 경우
예시 : HandleDidReceiveDeferredDeeplink : adbrixrm://deeplinkpath
Xcode 프로젝트로 export 후 Xcode 프로젝트 내 UnityAppController.mm 파일을 아래와 같이 디퍼드 딥링크 정보를 전달할 핸들러를 등록합니다.
#import <AdBrixRM/AdBrixRM-Swift.h> #import "AdBrixRmBridge.h" - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { // Override point for customization after application launch. // AdBrixRM 인스턴스 생성 AdBrixRM *adBrix = [AdBrixRM sharedInstance]; // AdBrix 앱키&시크릿키 설정 [adBrix initAdBrixWithAppKey:@"your_app_key" secretKey:@"your_secret_key"]; // 디퍼드 딥링크 핸들러 등록 (GAME_OBJECT_NAME + DeferredDeeplinkHandler) [[AdBrixRmBridge sharedAdBrixRmBridge] setAdBrixDeferredDeeplinkDelegate:@"AbxObject" function:@"HandleDidReceiveDeferredDeeplink"]; return YES; }
[[인용:위험:작게]] ※ GAME_OBJECT_NAME 은 Unity 내 딥링크 핸들러를 호출할 스크립트가 포함된 OBJECT 명과 일치해야 합니다.
[[인용:위험:작게]] Facebook SDK의 fetchDeferredAppLinkData API 를 사용할 수 없습니다 .
Facebook 광고시 사용하는 fetchDeferredApplinkData 의 역할을 저희 DeferredDeeplink API 가 대신하므로 이를 중복해서 사용할 수 없습니다. 사용하고 계시다면 삭제를 부탁드립니다.
유저 분석
로그인/로그아웃 이벤트
사용자의 로그인/로그아웃 이벤트를 분석합니다.
로그인이 성공하였을 때, 유저를 구분하는 식별 값(user id)을 다음과 같이 전달합니다.
void sampleFunction() { if(isLoginSuccess) { // 로그인이 성공했을 떄, "user_1234"와 같은 유저아이디를 전달 AdBrixRm.login ("user_1234"); } }
* userID 로 전달되는 유저 아이디에 개인정보가 포함되지 않도록 주의해주세요. 만약 이메일, 전화번호 등의 개인정보가 포함되는 경우에는 적절한 암호화(BASE64, MD5, SHA1 등) 처리를 하시는 것을 권장합니다.
유저 정보
유저의 나이, 성별, 기타 정보에 대해 분석할 수 있습니다.
void sampleFunction() { //유저 나이 AdBrixRm.setAge (20); //유저 성별 AdBrixRm.setGender(AdBrixRm.Gender.FEMALE); //기타 유저 정보 Dictionary<string, string> dict = new Dictionary<string, string>(); dict.Add("key1", "value1"); AdBrixRm.saveUserProperties (dict); }
[[인용:위험:보통]] Dictionary 데이터 설정 시 유의 사항
1.100 개 이상의 정보는 처리되지 않습니다.
2. Key 값의 데이터 타입은 string 이며 256자를 넘을 수 없고, 영문 소문자, 숫자를 제외한 나머지 문자는 사용할 수 없습니다.
3. Value 값의 데이터 길이는 byte 기준으로 1024byte를 넘을 수 없습니다.
커스텀 분석
앱 내 사용자의 일반적인 모든 이벤트를 분석합니다. (구매 이벤트 제외)
앱 내에서 이벤트(string)를 통해 액션을 자유롭게 분석할 수 있습니다.
void sampleFunction() { //Custom event with just Event Name AdBrixRm.eventWithName ("your_event_name"); // Custom evnet with Event Name + event properties Dictionary<string, string> eventDic = new Dictionary<string, string>(); eventDic.Add("event_parameter1", "value1"); eventDic.Add("event_parameter2", "value2"); AdBrixRm.eventWithEventNameAndValue("your_event_name" , eventDic); }
공통(일반)이벤트 분석
앱에서 발생하는 이벤트 중, 공통적으로 발생하는 이벤트를 분석합니다.
디파이너리(애드브릭스)에서 제공하는 공통 이벤트 종류는 다음과 같습니다.
- 회원가입
- 앱 업데이트
- 사용자 초대
- 크레딧 사용
- 결제하기
* 디파이너리(애드브릭스)에서 광고 채널 별 매출을 보고자 할 때에는 '결제하기' 연동을 반드시 진행해야 합니다.
회원가입
앱에서 발생한 회원가입 이벤트를 분석합니다.
void userSignup() { // 유저 정보를 adbrix 로 전달할 경우 설정합니다. Dictionary<string, string> dict = new Dictionary<string, string>(); dict.Add("key1", "value1"); AdBrixRm.commonSignUp(AdBrixRm.SignUpChannel.Google, dict); }
앱 업데이트
앱에서 발생한 앱 업데이트 이벤트를 분석합니다.
void appUpdate() { // 유저 정보 Dictionary<string, string> dict = new Dictionary<string, string>(); dict.Add("key1", "value1"); AdBrixRm.commonAppUpdate("1.2.2a","1.3.0",dict); }
사용자 초대
앱에서 발생한 앱 초대 이벤트를 분석합니다.
void userInvite() { // 유저 정보 Dictionary<string, string> dict = new Dictionary<string, string>(); dict.Add("key1", "value1"); AdBrixRm.commonInvite(AdBrixRm.InviteChannel.Facebook, dict); }
크레딧 사용
앱 내 현금성 화폐 사용에 대한 이벤트를 분석합니다.
void useCredit() { // 크레딧 사용 정보 Dictionary<string, string> credit_info= new Dictionary<string, string>(); credit_info.Add("credit", "20000"); AdBrixRm.commonUseCredit(credit_info); }
결제하기
앱에서 발생한 결제(구매) 이벤트를 분석합니다.
다음과 같은 상품 맟 주문에 대한 정보를 array 형태로 구성하여 전달합니다.
- order id : (필수) 주문 번호
- product id : (필수) 상품 번호
- product name : (필수) 상품 이름
- price : (필수) 상품 단가
- quantity : (필수) 구매 수량
- discount : (옵션) 할인 금액
- currency string : (옵션) 구매 화폐 단위
- category : (옵션) 카테고리 정보
- product attr map : (옵션) 상품 상세 옵션
- delivery charge : (옵션) 배송비
- payment method : (옵션) 결제 방법
void sampleFunction() { //상품을 담을 배열 List<AdBrixRmCommerceProductModel> items = new List <AdBrixRmCommerceProductModel>(); //상품 상세 옵션 Dictionary Dictionary<string, string>productAttrs = new Dictionary<string, string>(); productAttrs.Add ("Att1", "Value1"); productAttrs.Add ("Att2", "Value2"); productAttrs.Add ("Att3", "Value3"); //상품 생성 AdBrixRmCommerceProductModel productModel = AdBrixRmCommerceProductModel.create ( "productId01", "productName01", 10000.00, 1, 5000.00, AdBrixRm.AdBrixCurrencyName(AdBrixRm.Currency.KR_KRW), AdBrixRmCommerceProductCategoryModel.create ("Cate1", "Cate2", "Cate3"), AdBrixRmCommerceProductAttrModel.create (productAttrs) ); //상품 생성 AdBrixRmCommerceProductModel productModel2 = AdBrixRmCommerceProductModel.create ( "productId02", "productName02", 10000.00, 1, 5000.00, AdBrixRm.AdBrixCurrencyName(AdBrixRm.Currency.KR_KRW), AdBrixRmCommerceProductCategoryModel.create ("Cate1", "Cate2", "Cate3"), AdBrixRmCommerceProductAttrModel.create (productAttrs) ); items.Add (productModel); items.Add (productModel2); //상품 결제하기 이벤트 AdBrixRm.commonPurchase ("30290121", items, 1000.00, 3500.00, AdBrixRm.PaymentMethod.CREDIT_CARD); }
커머스 분석
앱에서 발생하는 구매 관련(상품 상세보기, 장바구니 담기 등) 이벤트를 분석합니다.
adbrix 에서 제공하는 커머스 이벤트 종류는 다음과 같습니다.
- 홈(메인) 화면 진입
- 카테고리(기획전) 진입
- 상품 상세 보기
- 장바구니 담기
- 위시리스트(관심 상품) 추가
- 주문 확인하기
- 주문 취소하기
- 상품 검색하기
- 상품 목록 조회하기
- 상품 공유하기
- 장바구니 조회하기
- 구매 정보 입력하기
홈(메인) 화면 진입
사용자가 앱의 홈(메인) 화면으로 진입한 이벤트를 분석합니다.
void sampleFunction() { AdBrixRm.commerceViewHome (); }
카테고리(기획전) 진입
사용자가 카테고리(기획전) 화면으로 진입한 이벤트를 분석합니다.
카테고리 정보는 최대 5단계까지 분석할 수 있습니다.
void sampleFunction() { //상품을 담을 배열 List<AdBrixRmCommerceProductModel> items = new List <AdBrixRmCommerceProductModel>(); //상품 상세 옵션 Dictionary Dictionary<string, string>productAttrs = new Dictionary<string, string>(); productAttrs.Add ("Att1", "Value1"); productAttrs.Add ("Att2", "Value2"); productAttrs.Add ("Att3", "Value3"); //카테고리에 포함된 상품 생성 AdBrixRmCommerceProductModel productModel = AdBrixRmCommerceProductModel.create ( "productId01", "productName01", 10000.00, 1, 5000.00, AdBrixRm.AdBrixCurrencyName(AdBrixRm.Currency.KR_KRW), AdBrixRmCommerceProductCategoryModel.create ("하의기획전"), AdBrixRmCommerceProductAttrModel.create (productAttrs) ); items.Add (productModel); //카테고리 진입 이벤트 AdBrixRm.commerceCategoryView (AdBrixRmCommerceProductCategoryModel.create("기획전"), items); }
상품 상세 보기
사용자의 상품을 상세하기 본 이벤트를 분석합니다.
다음과 같은 상품에 대한 정보를 전달합니다.
- product id : (필수) 상품 번호
- product name : (필수) 상품 이름
- price : (필수) 상품 단가
- quantity : (필수) 구매 수량
- discount : (옵션) 할인 금액
- currency string : (옵션) 카테고리 정보
- category : (옵션) 구매 화폐 단위
- product attr map : (옵션) 상품 상세 옵션
void sampleFunction() { //상품 상세 옵션 Dictionary 생성 Dictionary<string, string> productAttrs = new Dictionary<string, string>(); productAttrs.Add ("Att1", "Value1"); productAttrs.Add ("Att2", "Value2"); productAttrs.Add ("Att3", "Value3"); //상품 생성 AdBrixRmCommerceProductModel productModel = AdBrixRmCommerceProductModel.create ( "productId01", "productName01", 10000.00, 1, 5000, AdBrixRm.AdBrixCurrencyName(AdBrixRm.Currency.KR_KRW), AdBrixRmCommerceProductCategoryModel.create ("Cate1", "Cate2", "Cate3"), AdBrixRmCommerceProductAttrModel.create (productAttrs) ); //상품 상세보기 AdBrixRm.commerceProductView (productModel); }
장바구니 담기
사용자가 상품을 장바구니에 담은 이벤트를 분석합니다.
다음과 같은 상품 정보를 전달합니다.
- product id : (필수) 상품 번호
- product name : (필수) 상품 이름
- price : (필수) 상품 단가
- quantity : (필수) 구매 수량
- discount : (옵션) 할인 금액
- currency string : (옵션) 카테고리 정보
- category : (옵션) 구매 화폐 단위
- product attr map : (옵션) 상품 상세 옵션
void sampleFunction() { //상품을 담을 배열 List<AdBrixRmCommerceProductModel> items = new List <AdBrixRmCommerceProductModel>(); //상품 상세 옵션 Dictionary 생성 Dictionary<string, string>productAttrs = new Dictionary<string, string>(); productAttrs.Add ("Att1", "Value1"); productAttrs.Add ("Att2", "Value2"); productAttrs.Add ("Att3", "Value3"); //상품 생성 AdBrixRmCommerceProductModel productModel = AdBrixRmCommerceProductModel.create ( "productId01", "productName01", 10000.00, 1, 5000.00, AdBrixRm.AdBrixCurrencyName(AdBrixRm.Currency.KR_KRW), AdBrixRmCommerceProductCategoryModel.create ("Cate1", "Cate2", "Cate3"), AdBrixRmCommerceProductAttrModel.create (productAttrs) ); items.Add (productModel); //장바구니 이벤트 AdBrixRm.commerceAddToCart(items); }
관심 상품(위시리스트) 추가
사용자가 상품을 관심 상품(위시리스트)에 추가한 이벤트를 분석합니다.
다음과 같은 상품 정보를 전달합니다.
- product id : (필수) 상품 번호
- product name : (필수) 상품 이름
- price : (필수) 상품 단가
- quantity : (필수) 구매 수량
- discount : (옵션) 할인 금액
- currency string : (옵션) 카테고리 정보
- category : (옵션) 구매 화폐 단위
- product attr map : (옵션) 상품 상세 옵션
void sampleFunction() { //상품 상세 옵션 Dictionary 생성 Dictionary<string, string>productAttrs = new Dictionary<string, string>(); productAttrs.Add ("Att1", "Value1"); productAttrs.Add ("Att2", "Value2"); productAttrs.Add ("Att3", "Value3"); //상품 생성 AdBrixRmCommerceProductModel productModel = AdBrixRmCommerceProductModel.create ( "productId01", "productName01", 10000.00, 1, 5000.00, AdBrixRm.AdBrixCurrencyName(AdBrixRm.Currency.KR_KRW), AdBrixRmCommerceProductCategoryModel.create ("Cate1", "Cate2", "Cate3"), AdBrixRmCommerceProductAttrModel.create (productAttrs) ); //관심상품 이벤트 AdBrixRm.commerceAddToWishList (productModel); }
주문 확인하기
사용자가 상품을 결제하기 전 최종 확인하는 이벤트를 분석합니다.
다음과 같은 주문 및 상품 정보를 전달합니다.
- order id : (필수) 주문 번호
- product id : (필수) 상품 번호
- product name : (필수) 상품 이름
- price : (필수) 상품 단가
- quantity : (필수) 구매 수량
- discount : (옵션) 할인 금액
- currency string : (옵션) 카테고리 정보
- category : (옵션) 구매 화폐 단위
- product attr map : (옵션) 상품 상세 옵션
- delivery charge : (옵션) 배송비
void sampleFunction() { //상품을 담을 배열 List<AdBrixRmCommerceProductModel> items = new List <AdBrixRmCommerceProductModel>(); //상품 상세 옵션 Dictionary 생성 Dictionary<string, string>productAttrs = new Dictionary<string, string>(); productAttrs.Add ("Att1", "Value1"); productAttrs.Add ("Att2", "Value2"); productAttrs.Add ("Att3", "Value3"); //상품 생성 AdBrixRmCommerceProductModel productModel = AdBrixRmCommerceProductModel.create ( "productId01", "productName01", 10000.00, 1, 5000.00, AdBrixRm.AdBrixCurrencyName(AdBrixRm.Currency.KR_KRW), AdBrixRmCommerceProductCategoryModel.create ("Cate1", "Cate2", "Cate3"), AdBrixRmCommerceProductAttrModel.create (productAttrs) ); items.Add (productModel); //주문확인 이벤트 AdBrixRm.commerceReviewOrder ("30290121", items, 1000.00, 3500.00); }
주문 취소하기 (환불하기)
사용자가 주문을 취소하거나 환불 처리한 이벤트를 분석합니다.
다음과 같은 상품 및 주문 정보를 전달합니다.
- order id : (필수) 주문 번호
- product id : (필수) 상품 번호
- product name : (필수) 상품 이름
- price : (필수) 상품 단가
- quantity : (필수) 구매 수량
- discount : (옵션) 할인 금액
- currency string : (옵션) 카테고리 정보
- category : (옵션) 구매 화폐 단위
- product attr map : (옵션) 상품 상세 옵션
- penalty charge : (옵션) 취소(환불) 수수료
void sampleFunction() { //상품을 담을 배열 List<AdBrixRmCommerceProductModel> items = new List <AdBrixRmCommerceProductModel>(); //상품 상세 옵션 Dictionary 생성 Dictionary<string, string>productAttrs = new Dictionary<string, string>(); productAttrs.Add ("Att1", "Value1"); productAttrs.Add ("Att2", "Value2"); productAttrs.Add ("Att3", "Value3"); //상품 생성 AdBrixRmCommerceProductModel productModel = AdBrixRmCommerceProductModel.create ( "productId01", "productName01", 10000.00, 1, 5000.00, AdBrixRm.AdBrixCurrencyName(AdBrixRm.Currency.KR_KRW), AdBrixRmCommerceProductCategoryModel.create ("Cate1", "Cate2", "Cate3"), AdBrixRmCommerceProductAttrModel.create (productAttrs) ); items.Add (productModel); //주문 취소 이벤트 AdBrixRm.commerceRefund ("30290121", items, 3500.00); }
상품 검색하기
사용자가 상품을 검색한 이벤트를 분석합니다.
다음과 같은 검색 결과에 포함된 상품 정보를 전달합니다.
- keyword : (필수) 검색에 사용한 단어
- product id : (필수) 상품 번호
- product name : (필수) 상품 이름
- price : (필수) 상품 단가
- quantity : (필수) 구매 수량
- discount : (옵션) 할인 금액
- currency string : (옵션) 카테고리 정보
- category : (옵션) 구매 화폐 단위
void sampleFunction() { //상품을 담을 배열 List<AdBrixRmCommerceProductModel> items = new List <AdBrixRmCommerceProductModel>(); //상품 상세 옵션 Dictionary 생성 Dictionary<string, string>productAttrs = new Dictionary<string, string>(); productAttrs.Add ("Att1", "Value1"); productAttrs.Add ("Att2", "Value2"); productAttrs.Add ("Att3", "Value3"); //상품 생성 AdBrixRmCommerceProductModel productModel = AdBrixRmCommerceProductModel.create ( "productId01", "productName01", 10000.00, 1, 5000.00, AdBrixRm.AdBrixCurrencyName(AdBrixRm.Currency.KR_KRW), AdBrixRmCommerceProductCategoryModel.create ("Cate1", "Cate2", "Cate3"), AdBrixRmCommerceProductAttrModel.create (productAttrs) ); items.Add (productModel); //상품 검색 이벤트 AdBrixRm.commerceSearch(items, "나이키"); }
상품 공유하기
사용자가 상품 정보를 공유한 이벤트를 분석합니다.
다음과 같은 공유된 상품 정보를 전달합니다.
- product id : (필수) 상품 번호
- product name : (필수) 상품 이름
- price : (필수) 상품 단가
- quantity : (필수) 구매 수량
- discount : (옵션) 할인 금액
- currency string : (옵션) 카테고리 정보
- category : (옵션) 구매 화폐 단위
- product attr map : (옵션) 상품 상세 옵션
void sampleFunction() { //상품 상세 옵션 Dictionary 생성 Dictionary<string, string>productAttrs = new Dictionary<string, string>(); productAttrs.Add ("Att1", "Value1"); productAttrs.Add ("Att2", "Value2"); productAttrs.Add ("Att3", "Value3"); //상품 생성 AdBrixRmCommerceProductModel productModel = AdBrixRmCommerceProductModel.create ( "productId01", "productName01", 10000.00, 1, 5000.00, AdBrixRm.AdBrixCurrencyName(AdBrixRm.Currency.KR_KRW), AdBrixRmCommerceProductCategoryModel.create ("Cate1", "Cate2", "Cate3"), AdBrixRmCommerceProductAttrModel.create (productAttrs) ); //상품 공유하기 이벤트 AdBrixRm.commerceShare (AdBrixRm.SharingChannel.KAKAOTALK, productModel); }
상품 목록 조회하기
사용자가 상품 목록을 조회한 이벤트를 분석합니다.
다음과 같이 조회한 상품 정보를 전달합니다.
- product id : (필수) 상품 번호
- product name : (필수) 상품 이름
- price : (필수) 상품 단가
- quantity : (필수) 구매 수량
- discount : (옵션) 할인 금액
- currency string : (옵션) 카테고리 정보
- category : (옵션) 구매 화폐 단위
- product attr map : (옵션) 상품 상세 옵션
void sampleFunction() { //상품을 담을 배열 List<AdBrixRmCommerceProductModel> items = new List <AdBrixRmCommerceProductModel>(); //상품 상세 옵션 Dictionary 생성 Dictionary<string, string>productAttrs = new Dictionary<string, string>(); productAttrs.Add ("Att1", "Value1"); productAttrs.Add ("Att2", "Value2"); productAttrs.Add ("Att3", "Value3"); //상품 생성 AdBrixRmCommerceProductModel productModel = AdBrixRmCommerceProductModel.create ( "productId01", "productName01", 10000.00, 1, 5000.00, AdBrixRm.AdBrixCurrencyName(AdBrixRm.Currency.KR_KRW), AdBrixRmCommerceProductCategoryModel.create ("Cate1", "Cate2", "Cate3"), AdBrixRmCommerceProductAttrModel.create (productAttrs) ); items.Add (productModel); //상품 목록 조회 이벤트 AdBrixRm.commerceListView (items); }
장바구니 조회하기
사용자가 장바구니를 조회한 이벤트를 분석합니다.
다음과 같이 조회한 상품 정보를 전달합니다.
- product id : (필수) 상품 번호
- product name : (필수) 상품 이름
- price : (필수) 상품 단가
- quantity : (필수) 구매 수량
- discount : (옵션) 할인 금액
- currency string : (옵션) 카테고리 정보
- category : (옵션) 구매 화폐 단위
- product attr map : (옵션) 상품 상세 옵션
void sampleFunction() { //상품을 담을 배열 List<AdBrixRmCommerceProductModel> items = new List <AdBrixRmCommerceProductModel>(); //상품 상세 옵션 Dictionary 생성 Dictionary<string, string>productAttrs = new Dictionary<string, string>(); productAttrs.Add ("Att1", "Value1"); productAttrs.Add ("Att2", "Value2"); productAttrs.Add ("Att3", "Value3"); //상품 생성 AdBrixRmCommerceProductModel productModel = AdBrixRmCommerceProductModel.create ( "productId01", "productName01", 10000.00, 1, 5000.00, AdBrixRm.AdBrixCurrencyName(AdBrixRm.Currency.KR_KRW), AdBrixRmCommerceProductCategoryModel.create ("Cate1", "Cate2", "Cate3"), AdBrixRmCommerceProductAttrModel.create (productAttrs) ); items.Add (productModel); //장바구니 조회하기 이벤트 AdBrixRm.commerceCartView (items); }
구매 정보 입력하기
사용자가 구매 정보를 입력한 이벤트를 분석합니다.
void sampleFunction() { //구매 정보 상세 옵션 Dictionary Dictionary<string, string> paymentAttrs = new Dictionary<string, string>(); paymentAttrs.Add ("creditcard", "oocard"); AdBrixRm.commercePaymentInfoAdded (paymentAttrs); }
게임 이벤트 분석
앱에서 발생하는 게임과 관련된 이벤트(튜토리얼, 스테이지 등)를 분석합니다.
디파이너리(애드브릭스)에서 제공하는 게임 이벤트 종류는 다음과 같습니다.
- 튜토리얼 완료
- 캐릭터 생성
- 스테이지 완료
- 레벨 달성
튜토리얼 완료
앱에서 발생한 튜토리얼 완료 이벤트를 분석합니다.
다음과 같은 튜토리얼 완료 정보를 구성하여 전달합니다.
- (필수) 건너뛰기(skip)를 통한 완료인지 여부
void sampleFunction() { AdBrixRm.gameTutorialCompleted (false); }
캐릭터 생성
앱에서 발생한 캐릭터 생성 이벤트를 분석합니다.
void sampleFunction() { AdBrixRm.gameCharacterCreated(); }
스테이지 완료
앱에서 발생한 스테이지 완료 이벤트를 분석합니다.
다음과 같은 스테이지 완료 정보를 구성하여 전달합니다.
- (필수) 완료한 스테이지 이름
void sampleFunction() { AdBrixRm.gameStageCleared("1-1"); }
레벨 달성
앱에서 발생한 레벨 달성 이벤트를 분석합니다.
다음과 같은 레벨 달성 정보를 구성하여 전달합니다.
- (필수) 달성한 레벨 (1~10000)
void sampleFunction() { AdBrixRm.gameLevelAchieved (15); }