디파이너리(애드브릭스) 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)을 다음과 같이 전달합니다.
[[인용:경고:보통]] 로그인 유의 사항
user id에 개인정보가 포함되지 않도록 주의해주세요. 만약 user id에 이메일, 전화번호 등의 개인정보가 포함되는 경우에는 암호화처리를 하시는 것을 권장합니다.
void sampleFunction() { if(isLoginSuccess) { // 로그인이 성공했을 떄, "user_1234"와 같은 유저아이디를 전달 AdBrixRm.login ("user_1234"); } }
유저 정보
유저의 나이, 성별, 기타 정보에 대해 분석할 수 있습니다.
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 event 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); }