디파이너리(애드브릭스) 연동하기 [iOS]
팔로우
Quick Start
디파이너리를 사용하기 위한 최소한의 연동 단계를 안내합니다.
[[인용:경고:보통]] System Requirement
디파이너리 iOS SDK는 다음의 환경에서 동작합니다.
1. 빌드 환경 : Xcode
2. Xcode version : 13 이상 (최신 버전 사용을 권장 드립니다.)
CocoaPods 을 통한 SDK 설치
기존 Xcode 프로젝트에 SDK를 설치하여 시작하려면 다음의 안내를 따릅니다.
CocoaPods 준비
CocoaPods는 Podfile 이라는 문서 파일 안에 몇 줄의 설정을 입력하면 자동으로 외부 라이브러리를 다운로드, 설치 및 설정까지 돕는 툴입니다.
adbrix 는 CocoaPods를 통한 자동 설치를 지원하며 적극 권장합니다.
CocoaPods 설치
CocoaPods 가 설치되어 있지 않다면 Mac OSX 의 터미널을 실행하여 CocoaPods를 설치합니다.
$ sudo gem install cocoapods
설치가 완료되면 다음과 같은 화면을 확인할 수 있습니다.
... Parsing documentation for cocoapods-1.5.0 Installing ri documentation for cocoapods-1.5.0 Done installing documentation for cocoapods-core, cocoapods-downloader, molinillo, nanaimo, xcodeproj, cocoapods after 9 seconds 6 gems installed
CocoaPods 초기화
설치를 완료한 뒤 CocoaPods를 초기화합니다.
$ pod setup
초기화가 완료되면 다음과 같은 화면을 확인할 수 있습니다.
... Resolving deltas: 100% (518/518), completed with 177 local objects. From https://github.com/CocoaPods/Specs 8369a675212..ceea3be18e7 master -> origin/master $ /usr/bin/git -C /Users/username/.cocoapods/repos/master rev-parse --abbrev-ref HEAD master $ /usr/bin/git -C /Users/username/.cocoapods/repos/master reset --hard origin/master HEAD is now at ceea3be18e7 [Add] YTX_iOS_IM_SDK 0.0.7 Setup completed
Podfile 생성
프로젝트 폴더로 이동하여 터미널에 다음 명령어를 입력하여 Podfile을 생성합니다.
$ pod init
Podfile 편집
터미널에서 vi 에디터를 실행하여 다음과 같이 Podfile 내용을 작성합니다.
작성을 완료한 다음에는 Esc, Shift+z 키를 2번 연속으로 눌러 에디터를 종료합니다.
$ vi Podfile
platform :ios, '9.0'
target "myXcodeProject" do
pod 'AdBrixRmKit', '2.4.0.3'
end
[[인용:위험:작게]] 반드시 명시된 버전의 SDK 를 사용해 주시길 바랍니다.
[[인용:안내:보통]] 디파이너리 iOS v2 SDK 릴리즈 안내
새로운 기능이 추가된 v2 SDK가 릴리즈 되었습니다. 아래 문서를 통해 업데이트 방법을 확인해보세요!
[디파이너리 iOS v2 SDK 릴리즈 안내문서 확인하기]
* platform의 숫자는 XCode 프로젝트에서 지원하는 최소 iOS 버전을 의미합니다.
* 일반 텍스트 에디터에서는 인코딩 문제로 오류가 발생할 수 있습니다.
SDK Pod Install
터미널에서 다음 명령어를 입력하고 실행하여 디파이너리(애드브릭스) SDK를 설치합니다.
$ pod install
[[인용:안내:보통]] pod install error 발생 시 "pod setup" 명령어를 실행해주세요.
SDK Pod Update
이미 디파이너리(애드브릭스) SDK가 설치된 상태에서 최신의 SDK를 적용하기 위해서는 터미널에서 다음 명령어를 입력합니다.
$ pod setup $ pod update
Open XCode Project
디파이너리(애드브릭스) SDK 설치가 완료된 뒤, 터미널에서 {프로젝트 명}.xcworkspace 파일을 열어 XCode를 실행하면, 설치된 디파이너리(애드브릭스) pods 를 확인할 수 있습니다.
$ open myXcodeProject.xcworkspace
필수 프레임워크 추가
디파이너리(애드브릭스) SDK가 동작하는데 필요한 iAd 프레임워크와 AdServices 프레임워크를 추가합니다.
[General > Frameworks, Libraries, and Embedded Content]로 이동하여 (+) 버튼을 클릭합니다. Apple Search Ads 분석에 필요한 "iAd.framework"와 "AdServices.frameworks" 라이브러리를 프로젝트에 반드시 추가 해야 합니다.
iOS 14.2를 타켓으로 하시는 경우 [Build Phases > Link Binary With Libraries]로 이동해서, 반드시 AdServices.framework의 Status를 Optional로 설정해주셔야 합니다.
Swift Library 설정
디파이너리(애드브릭스) SDK 는 Swift로 작성되었기 때문에, Xcode프로젝트에서 다음과 같은 설정을 해주어야 합니다.
[Build Settings > Always Embed Swift Standard Libraries]를 'yes'로 설정합니다.
SDK import 경로
SDK 사용 준비가 완료되면 아래와 같이 SDK 에 대한 import 경로를 사용합니다.
[[인용:안내:보통]] 디파이너리 iOS v2 릴리즈 안내
새로운 기능이 추가된 v2 SDK가 릴리즈 되었습니다. 아래 문서를 통해 업데이트 방법을 확인해보세요!
[디파이너리 iOS v2 SDK 릴리즈 안내문서 확인하기]
앱키 & 시크릿키 설정
adbrix 콘솔에서 발급 받은 앱키와 시크릿키를 등록합니다.
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { // Create AdBrixRM Instance let adBrix = AdBrixRM.getInstance // Set adbrix appKey & secretKey adBrix.initAdBrix(appKey: "odhvASVRDsdf10d019fva", secretKey: "ar98LszQZUGdmSznToNBXg") return true }
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { // Override point for customization after application launch. // Create AdBrixRM Instance AdBrixRM *adBrix = [AdBrixRM sharedInstance]; // Set adbrix appKey & secretKey [adBrix initAdBrixWithAppKey:@"odhvASVRDsdf10d019fva" secretKey:@"ar98LszQZUGdmSznToNBXg"]; return YES; }
애플광고식별자(IDFA) 설정
AdBrixRm 은 기본적으로 IDFV 를 기기 ID로 사용하나 어트리뷰션 및 기타 다른 목적을 위해 IDFA 를 수집할 수 있도록 설장할 수 있습니다.
IDFA 설정은 ATT 팝업 API 내 아래의 코드로 설정할 수 있습니다. (디폴트 설정은 IDFA off 입니다.)
import AdBrixRmKit import AppTrackingTransparency @UIApplicationMain class AppDelegate: UIResponder, UIApplicationDelegate { var window: UIWindow? func applicationDidBecomeActive(_ application: UIApplication) { // Create AdBrixRM Instance let adBrix = AdBrixRM.getInstance if #available(iOS 14, *) { ATTrackingManager.requestTrackingAuthorization {(status) in switch status{ case.authorized: adBrix.startGettingIDFA() case.denied: adBrix.stopGettingIDFA() case.notDetermined : adBrix.stopGettingIDFA() case.restricted: adBrix.stopGettingIDFA() default: adBrix.stopGettingIDFA() } } } }
#import <AdBrixRmKit/AdBrixRmKit.h> #import <AppTrackingTransparency/AppTrackingTransparency.h> @interface AppDelegate () @end @implementation AppDelegate - (void)applicationDidBecomeActive:(UIApplication *)application { // Create AdBrixRM Instance, Only need with Adbrix RN Plugin V2 AdBrixRM *adBrix = [AdBrixRM sharedInstance]; if (@available(iOS 14, *)) { [ATTrackingManager requestTrackingAuthorizationWithCompletionHandler:^(ATTrackingManagerAuthorizationStatus status) { switch (status) { case ATTrackingManagerAuthorizationStatusAuthorized: [adBrix startGettingIDFA]; break; case ATTrackingManagerAuthorizationStatusDenied: [adBrix stopGettingIDFA]; break; case ATTrackingManagerAuthorizationStatusRestricted: [adBrix stopGettingIDFA]; break; case ATTrackingManagerAuthorizationStatusNotDetermined: [adBrix stopGettingIDFA]; break; default: [adBrix stopGettingIDFA]; break; } }]; } } }
[[인용:안내:보통]]앱키 & 시크릿키 확인
_ 앱키와 시크릿키는 애드브릭스가 앱을 구분하기 위한 식별값입니다.
_ Android, iOS에 동일한 키값이 연동되어야 합니다.
_ SDK 연동을 위해서 반드시 필요한 값으로, 애드브릭스 콘솔에서 앱 등록 후 확인할 수 있습니다.
앱키, 시크릿키 확인 방법 / 애드브릭스 콘솔 바로가기
SDK 추가 설정
디파이너리(애드브릭스) SDK를 기본 설정이 완료되면 아래와 같이 SDK에 대한 추가 설정을 진행할 수 있습니다.
- 이벤트 업로드 주기 설정
- GDPR 설정
- 딥링크 설정
이벤트 업로드 주기 설정
디파이너리(애드브릭스) SDK에 전달된 이벤트를 디파이너리(애드브릭스) 서버로 전송하는 기준을 설정할 수 있습니다.
이벤트 업로드 주기를 누적 이벤트 개수와 시간으로 설정할 수 있습니다.
* 두 가지 기준 중 먼저 충족되는 기준에 따라서 이벤트가 업로드 됩니다.
누적 이벤트 개수 기준
설정된 개수만큼 이벤트가 누적되었을 때에 디파이너리(애드브릭스) 서버로 이벤트를 업로드하도록 설정합니다.
디파이너리(애드브릭스) SDK에 사전 정의된 아래의 값을 이용하여 설정합니다.
- AdBrixEventUploadCountInterval.MIN : 10건
- AdBrixEventUploadCountInterval.NORMAL : 30건
- AdBrixEventUploadCountInterval.MAX : 60건
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { // Create AdBrixRM Instance let adBrix = AdBrixRM.getInstance // If event count is 10, upload event to adbrix server adBrix.setEventUploadCountInterval(AdBrixRM.AdBrixEventUploadCountInterval.MIN) return true }
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { // Override point for customization after application launch. // Create AdBrixRM Instance AdBrixRM *adBrix = [AdBrixRM sharedInstance]; // If event count is 10, upload event to adbrix server [adBrix setEventUploadCountInterval:AdBrixEventUploadCountIntervalMIN]; return YES; }
시간 기준
설정된 시간이 지나면 디파이너리(애드브릭스) 서버로 이벤트를 업로드하도록 설정합니다.
디파이너리(애드브릭스) SDK에 사전 정의된 아래의 값을 이용하여 설정합니다.
- AdBrixEventUploadTimeInterval.MIN : 30초
- AdBrixEventUploadTimeInterval.NORMAL :60초
- AdBrixEventUploadTimeInterval.MAX :120초
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { // Create AdBrixRM Instance let adBrix = AdBrixRM.getInstance // Set Event Upload Timer : every 30 seconds upload events to server adBrix.setEventUploadTimeInterval(AdBrixRM.AdBrixEventUploadTimeInterval.MIN) return true }
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { // Override point for customization after application launch. // Create AdBrixRM Instance AdBrixRM *adBrix = [AdBrixRM sharedInstance]; // Set Event Upload Timer : every 30 seconds upload events to server [adBrix setEventUploadTimeInterval:AdBrixEventUploadTimeIntervalMIN]; return YES; }
GDPR 설정
GDPR 요청 이벤트를 이용하여 사용자 요청에 대해 데이터 주체와 연관된 모든 개인 데이터를 삭제할 수 있습니다.
본 이벤트 호출시, SDK 동작은 정지되며 모든 이벤트 저장, 전송 등이 불가합니다.
본 기능은 사용자가 앱을 삭제 후, 재설치하기 전에는 되돌릴 수 없습니다.
func gdprForgetMeEvent() { // Create AdBrixRM Instance let adBrix = AdBrixRM.getInstance adBrix.gdprForgetMe() }
- (IBAction)click_gdprForgetMe:(id)sender { // Create AdBrixRM Instance AdBrixRM *adBrix = [AdBrixRM sharedInstance]; [adBrix gdprForgetMe]; }
딥링크 / 디퍼드 딥링크 이벤트 분석
딥링크가 설정된 url을 통해서 오픈된 이벤트를 분석합니다.
분석을 하기 위해서는 앱에 url scheme이 설정되어 있어야 합니다.
딥링크 오픈 분석
[General > Target > Info > URL Types]로 이동하여 다음과 같이 URL Scheme을 설정합니다.
AppDelegate에 application(_ app: open url: options: ) delegate를 추가하고 다음과 같이 트래킹 코드를 호출합니다.
func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey : Any] = [:]) -> Bool { // Create AdBrixRM Instance let adBrix = AdBrixRM.getInstance // Add Deep Link Open Tracking Code adBrix.deepLinkOpen(url: url) return false }
- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary *)options { // Create AdBrixRM Instance AdBrixRM *adBrix = [AdBrixRM sharedInstance]; // Add Deep Link Open Tracking Code [adBrix deepLinkOpenWithUrl:url]; return YES; }
iOS13부터 추가된 UIScene을 사용할 경우 sceneDelegate.swift 에 아래와 같이 추가합니다.
func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) { // Create AdBrixRM Instance let adBrix = AdBrixRM.getInstance if connectionOptions.urlContexts.first?.url != nil { let urlinfo = connectionOptions.urlContexts.first?.url // Add Deep Link Open Tracking Code adBrix.deepLinkOpen(url:urlinfo!) } } func scene(_ scene: UIScene, openURLContexts URLContexts: Set<UIOpenURLContext>) { let url = URLContexts.first!.url // Create AdBrixRM Instance let adBrix = AdBrixRM.getInstance // Add Deep Link Open Tracking Code adBrix.deepLinkOpen(url:url) }
@interface SceneDelegate () @end @implementation SceneDelegate - (void)scene:(UIScene *)scene willConnectToSession:(UISceneSession *)session options:(UISceneConnectionOptions *)connectionOptions { // Create AdBrixRM Instance AdBrixRM *adBrix = [AdBrixRM sharedInstance]; if ((connectionOptions.URLContexts.allObjects.firstObject.URL) != nil) { NSURL *url = connectionOptions.URLContexts.allObjects.firstObject.URL; // Add Deep Link Open Tracking Code [adBrix deepLinkOpenWithUrl:url]; } } - (void)scene:(UIScene *)scene openURLContexts:(NSSet<UIOpenURLContext *> *)URLContexts { NSURL *url = URLContexts.allObjects.firstObject.URL; // Create AdBrixRM Instance AdBrixRM *adBrix = [AdBrixRM sharedInstance]; // Add Deep Link Open Tracking Code [adBrix deepLinkOpenWithUrl:url]; }
유니버셜 링크
[General > Target > Capablities> Associated Domains]로 이동하여 다음과 같이 유니버셜 링크를 설정합니다.
[[인용:경고:보통]] 유니버셜 링크 추가시 applinks:your_appkey.adtouch.adbrix.io로 추가하며 "your_appkey" 항목에는 연동시 사용하시는 Appkey를 추가해야 하며 Appkey는 소문자만 사용합니다.
이후 유니버셜 링크로 오픈되는 앱 분석을 위해 아래의 코드를 AppDelegate에 추가합니다.
func application(_ application: UIApplication, continue userActivity: NSUserActivity, restorationHandler: @escaping ([UIUserActivityRestoring]?) -> Void) -> Bool { guard userActivity.activityType == NSUserActivityTypeBrowsingWeb, let incomingURL = userActivity.webpageURL else { return false } print("DEEPLINK :: UniversialLink was clicked !! incomingURL - \(incomingURL)") NSLog("UNIVERSAL LINK OPEN!!!!!!!!!!!!!!!!!") let adBrix = AdBrixRM.getInstance adBrix.deepLinkOpen(url: incomingURL) return true }
-(BOOL)application:(UIApplication* )application continueUserActivity:(NSUserActivity* )userActivity restorationHandler:(void (^)(NSArray * _Nullable))restorationHandler{ if ([userActivity.activityType isEqualToString: NSUserActivityTypeBrowsingWeb]) { NSURL *incomeingurl = userActivity.webpageURL; NSLog(@"DEEPLINK :: UniversialLink was Clicked!! : %@", incomeingurl); AdBrixRM *adBrix = [AdBrixRM sharedInstance]; [adBrix deepLinkOpenWithUrl:incomeingurl]; } return YES; }
iOS13부터 추가된 UIScene을 사용할 경우 sceneDelegate.swift에 아래와 같이 추가합니다.
func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) { let adBrix = AdBrixRM.getInstance if let userActivity = connectionOptions.userActivities.first, userActivity.activityType == NSUserActivityTypeBrowsingWeb, let urlinfo = userActivity.webpageURL{ print ("Universial Link Open on SecneDelegate wiillConnectTo") adBrix.deepLinkOpen(url:urlinfo) } guard let _ = (scene as? UIWindowScene) else { return } } func scene(_ scene: UIScene, continue userActivity: NSUserActivity) { let adBrix = AdBrixRM.getInstance if userActivity.activityType == NSUserActivityTypeBrowsingWeb, let urlinfo = userActivity.webpageURL{ adBrix.deepLinkOpen(url:urlinfo) } }
- (void)scene:(UIScene *)scene willConnectToSession:(UISceneSession *)session options:(UISceneConnectionOptions *)connectionOptions { AdBrixRM * adBrix = [AdBrixRM sharedInstance]; NSUserActivity* userActivity = [[[connectionOptions userActivities]allObjects]firstObject]; NSURL * urlInfo = userActivity.webpageURL; if (urlInfo != nil) { [adBrix deepLinkOpenWithUrl:urlInfo]; } } - (void)scene:(UIScene *) scene continueUserActivity:(nonnull NSUserActivity *)userActivity{ AdBrixRM * adBrix = [AdBrixRM sharedInstance]; NSURL * urlInfo = userActivity.webpageURL; if (urlInfo != nil) { [adBrix deepLinkOpenWithUrl:urlInfo]; } }
[[인용:위험:보통]] Universial Link 연동 전에 반드시 확인해주세요!
Universial Link 사용을 위해서는 반드시 트래킹 링크 생성시 딥링크 패스 방식을 "동적 패스"로 설정하시고 이렇게 생성된 트래킹 링크에 붙는 파라미터인 deeplink_custom_path 값에 이동할 딥링크 경로를 입력하여 Universial Link로 전달 합니다.
Universial Link는 optional한 기능입니다. Universial Link를 사용하지 않는다면, 해당 작업은 필수가 아닙니다.
디퍼드 딥링크 트래킹
트랙킹 링크를 통해 앱을 설치 후 실행시 트래킹 링크 내 첨부된 딥링크 정보를 이용하여 특정 화면으로 랜딩시키고자 할 경우 위 딥링크 코드와 함께 코드를 추가합니다.
[[인용:위험:작게]] - 디퍼드 딥링크에서 전달되는 값은 아래 예시와 같이 string 값으로 전달 됩니다.
예시 : yourscheme://your_custom_path
@UIApplicationMain class AppDelegate: UIResponder, UIApplicationDelegate, AdBrixRMDeferredDeeplinkDelegate{ var window: UIWindow? func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool { // Override point for customization after application launch. let adBrix = AdBrixRM.getInstance // Add Deferred Deep Link Delegate adBrix.delegateDeferredDeeplink = self return true } // Deferred Deep Link Trakcing func didReceiveDeferredDeeplink(deeplink: String) { print("DEEPLINK :: received - \(deeplink)") // you should convert view using "deeplink" value }
// Open the AppDelegate.h and add "AdBrixRMDeferredDeeplinkDelegate" #import <UIKit/UIKit.h> #import <AdBrixRmKit/AdBrixRmKit.h> @interface AppDelegate : UIResponder <UIApplicationDelegate,AdBrixRMDeferredDeeplinkDelegate> @end //AppDelegate.m - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { // Override point for customization after application launch. AdBrixRM *adBrix = [AdBrixRM sharedInstance]; // Add Deferred Deep Link Delegate [adBrix setDeferredDeeplinkDelegateWithDelegate:self]; return YES; } // Deferred Deep Link Trakcing - (void)didReceiveDeferredDeeplinkWithDeeplink:(NSString * _Nonnull)deeplink { NSLog(@"ADBRIXRM DEEPLINK RECEIVE : %@ ", deeplink); // you should convert view using "deeplink" value }
*. 주의 : 디퍼드 딥링크 등의 값으로 별도 ui 관련 작업을 진행하는 경우 반드시 main thread 에서 진행하셔야 합니다.
[[인용:경고:보통]] 리스너가 호출되지 않습니다!!!
구현하신 리스너로 디퍼드딥링크 정보가 전달되지 않을 때에는 다음의 사항을 확인해주세요.
1. 트래킹 링크를 통해서 전환이 발생하지 않았습니다.
2. 트래킹 링크에 딥링크가 설정되지 않았습니다.
[[인용:위험:작게]] Facebook SDK의 fetchDeferredAppLinkData API를 사용할 수 없습니다 .
Facebook 광고시 사용하는 fetchDeferredApplinkData의 역할을 저희 DeferredDeeplink API가 대신하므로 이를 중복해서 사용할 수 없습니다. 사용하고 계시다면 삭제를 부탁드립니다.
이벤트 분석
앱에서 발생하는 인-앱 이벤트(in-app event)를 분석하여 리포트를 구성하고 포스트백을 전송할 수 있습니다.
이벤트 분석을 위해서는 이벤트가 발생하는 시점에 이벤트 분석 코드를 삽입하고 이벤트 식별값을 전송하여야 합니다.
디파이너리(애드브릭스)는 크게 3가지 분류의 분석을 제공합니다.
-
유저 분석
- 로그인/로그아웃 이벤트
- 유저 정보
- 위치 정보
- 커스텀 분석
-
공통(일반) 분석
- 회원가입
- 앱 업데이트
- 사용자 초대
- 크레딧 사용
- 구매하기
-
커머스 분석
- 상품 상세보기
- 장바구니 담기
- 관심 상품 추가
- 주문 확인하기
- 주문 취소하기
- 상품 검색하기
- 상품 공유하기
- 상품 목록 조회하기
- 장바구니 조회하기
- 결제 정보 입력하기
-
게임 분석
- 튜토리얼 완료
- 캐릭터 생성
- 스테이지 완료
- 레벨 달성
유저 분석
로그인/로그아웃 이벤트
사용자의 로그인/로그아웃 이벤트를 분석합니다.
로그인이 성공하였을 때, 유저를 구분하는 식별값(user id)을 다음과 같이 전달합니다.
@IBAction func login_and_logout_event(_ sender: Any) { // Create AdBrixRM Instance let adBrix = AdBrixRM.getInstance if(isLoginSuccess) { // When a user logs on with "user_1234" information adBrix.login(userId:"user_1234") } else { // When a user logs out adBrix.logout() } }
- (void)loginAndLogoutEvent { // Create AdBrixRM Instance AdBrixRM *adBrix = [AdBrixRM sharedInstance]; if(isSuccessLogin) { // When a user logs on with "user_1234" information [adBrix loginWithUserId:@"user_1234"]; } }
* userId 로 전달되는 유저 아이디에 개인정보가 포함되지 않도록 주의해주세요. 만약 이메일, 전화번호 등의 개인정보가 포함되는 경우에는 암호화(BASE64, MD5, SHA1 등) 처리를 하시는 것을 권장합니다.
유저 정보
유저의 나이, 성별, 기타 정보에 대해 분석할 수 있습니다.
@IBAction func user_property_update(_ sender: Any) {
// Create AdBrixRM Instance
let adBrix = AdBrixRM.getInstance
// User Age
adBrix.setAge(int: 30)
// User Gender
adBrix.setGender(adBrixGenderType: AdBrixRM.AdBrixGenderType.Male)
// Extra User Information
let attrModel = AdBrixRmAttrModel()
attrModel.setAttrDataString("city", "seoul")
attrModel.setAttrDataInt("height", 36)
attrModel.setAttrDataBool("married", true)
adBrix.setUserPropertiesWithAttr(attrModel: attrModel)
}
- (void)userPropertyUpdate {
// Create AdBrixRM Instance
AdBrixRM *adBrix = [AdBrixRM sharedInstance];
// User Age
NSInteger age = 30;
[adBrix setAgeWithInt:age];
// User Gender
[adBrix setGenderWithAdBrixGenderType:AdBrixGenderTypeFemale];
// Extra User Information
AdBrixRmAttrModel * attrModel = [AdBrixRmAttrModel new];
[attrModel setAttrDataString:@"city" :@"seoul"];
[attrModel setAttrDataInt:@"age" :36];
[attrModel setAttrDataBool:@"married" :true];
[adBrix setUserPropertiesWithAttrWithAttrModel:attrModel];
}
[[인용:위험:보통]] AttrModel 설정 시 유의 사항
1.100 개이상의 정보는 처리되지 않습니다.
2. Key 값의 데이터 타입은 string 이며 50자를 넘을 수 없고, 영문 소문자, 숫자를 제외한 나머지 문자는 사용할 수 없습니다.
3. Value 값의 데이터 길이는 byte 기준으로 1024byte 를 넘을 수 없습니다. 또한 Int, Long, Boolean, String 타입만 사용할 수 있습니다.
CI 정보
사용자 개인을 식별할 수 있는 정보 (Customer Identifier)를 설정합니다. 해당 정보는 사용자 분석 및 리포트에는 사용되지 않으며 Kakao 푸시등 디파이너리(애드브릭스)에서 사용할 수 있는 기능을 목적으로만 사용됩니다.
[[인용:위험:보통]] CI 정보 연동 시 유의 사항
CI API 로 전달되는 정보는 사용자의 개인 정보이므로 연동 전 반드시 저희 디파이너리 CSM 팀과 논의 후 연동을 진행해 주시길 부탁드립니다.
DFINERY Customer Success : dfn-csm@igaworks.com
@IBAction func userCiUpdate(_ sender: Any) {
// Create AdBrixRM Instance
let adBrix = AdBrixRM.getInstance
// User KakaoId
adBrix.setKaKaoId(kakaoId: "userKakaoId")
// Extra User Information
let attrModel = AdBrixRmAttrModel()
attrModel.setAttrDataString("custom_key1", "custom_string")
attrModel.setAttrDataInt("custom_key2", 36)
attrModel.setAttrDataBool("custom_key3", true)
adBrix.setUserCiWithAttr(attrModel: attrModel)
}
- (void)userCiUpdate {
// Create AdBrixRM Instance
AdBrixRM *adBrix = [AdBrixRM sharedInstance];
// User KakaoId
[adBrix setKakaoIdWithKakaoId:@"userKakaoId"];
// Extra User Information
AdBrixRmAttrModel * attrModel = [AdBrixRmAttrModel new];
[attrModel setAttrDataString:@"custom_key1" :@"custom_string"];
[attrModel setAttrDataInt:@"custom_key2" :36];
[attrModel setAttrDataBool:@"custom_key3" :true];
[adBrix setUserCiWithAttrWithAttrModel:attrModel];
}
[[인용:위험:보통]] CI 설정 시 유의 사항
1. 유저 정보와 CI를 합해 100개 이상의 정보는 처리되지 않습니다. (앱 설정으로 변경 가능)
2. Key 값의 데이터 타입은 string이며 50자를 넘을 수 없고, 영문 소문자, 숫자를 제외한 나머지 문자는 사용할 수 없습니다.
3. Value 값의 데이터 길이는 byte기준으로 1024byte 를 넘을 수 없습니다. 또한 Int, Long, Boolean, String 타입만 사용할 수 있습니다.
위치 정보
사용자의 위치 정보를 얻을 수 있는 경우, 이를 분석할 수 있습니다.
@IBAction func location_update(_ sender: Any) { // Create AdBrixRM Instance let adBrix = AdBrixRM.getInstance // Update User's Latitude and Longitude adBrix.setLocation(latitude: 32.514, longitude: 126.986) }
- (void)locationUpdate { // Create AdBrixRM Instance AdBrixRM *adBrix = [AdBrixRM sharedInstance]; double lat = 37.541; double lon = 126.986; // Update User's Latitude and Longitude [adBrix setLocationWithLatitude:lat longitude:lon]; }
* 위치 정보 사용에 대한 동의에 대한 책임은 디파이너리(애드브릭스)가 아닌 앱 개발 및 운영 주체입니다.
커스텀 분석
앱 내 사용자의 일반적인 모든 이벤트를 분석합니다. (구매 이벤트 제외)
앱 내에서 '버튼 클릭', '캐릭터 생성', '튜토리얼 완료', '레벨 업' 등의 대부분의 액션을 자유롭게 분석할 수 있습니다.
@IBAction func user_custom_event(_ sender: Any) { // Create adbrix Instance let adBrix = AdBrixRM.getInstance // Addtional event parameter let attrModel = AdBrixRmAttrModel() attrModel.setAttrDataString("grade", "vip") attrModel.setAttrDataInt("age", 36) // Click a button "Invite a friend" adBrix.eventWithAttr(eventName: "invite_button_click", value: attrModel) // Complete "Character creation" adBrix.eventWithAttr(eventName: "create_character_complete", value: attrModel) // Complete "Tutorial view" adBrix.eventWithAttr(eventName: "tutorial_complete", value: attrModel) // Achieve "Level 10" adBrix.eventWithAttr(eventName: "level_10", value: attrModel) }
- (void)userCustomEvent { // Create adbrix Instance AdBrixRM *adBrix = [AdBrixRM sharedInstance]; // Addtional event parameter AdBrixRmAttrModel * attrModel = [AdBrixRmAttrModel new]; [attrModel setAttrDataString:@"userid" :@"peterPark1234"]; [attrModel setAttrDataString:@"grade" :@"vip"]; [attrModel setAttrDataInt:@"age" :36]; // Click a button "Invite a friend" [adBrix eventWithAttrWithEventName:@"invite_button_click" value:attrModel]; // Complete "Character creation" [adBrix eventWithAttrWithEventName:@"create_character_complete" value:attrModel]; // Complete "Tutorial view" [adBrix eventWithAttrWithEventName:@"tutorial_complete" value:attrModel]; // Achieve "Level 10" [adBrix eventWithAttrWithEventName:@"level_10" value:attrModel]; }
[[인용:위험:보통]] 커스텀 이벤트는 호출된 순서대로 최대 100개까지만 설정 가능합니다.
※ 주의사항
커스텀 이벤트를 아래 케이스와 같이 거의 모든 상황에 대하여 이벤트명을 설정하게 되면 각 상황에 따라 무수히 많은 이벤트를 생성하게 됩니다.
// AdBrixRM 인스턴스 생성 let adBrix = AdBrixRM.getInstance adBrix.event("custom:Lev-37 cleared,clearTime:00:00:39.2343535")
그러므로 이 경우에는 이벤트 추가 정보를 설정(AdBrixRm.AttrModel)하여 커스텀 파라미터를 설정하여 이벤트를 호출해 주시길 부탁드립니다.
// AdBrixRM 인스턴스 생성 let adBrix = AdBrixRM.getInstance // 이벤트 추가정보 설정 let attrModel = AdBrixRmAttrModel() attrModel.setAttrDataInt(“level”, 37) attrModel.setAttrDataInt(“clear_time_mile”, 39238) // 이벤트 파라미터와 함께 커스텀 이벤트 API 호출 AdBrixRm.eventWithAttr("level_clear", value: attrModel)
공통(일반)이벤트 분석
앱에서 발생하는 이벤트 중, 공통적으로 발생하는 이벤트(결제)를 분석합니다.
디파이너리(애드브릭스)에서 제공하는 공통 이벤트 종류는 다음과 같습니다.
- 회원가입
- 앱 업데이트
- 사용자 초대
- 크레딧 사용
- 결제하기
* 디파이너리(애드브릭스)에서 광고 채널 별 매출을 보고자 할 때에는 '결제하기' 연동을 반드시 진행해야 합니다.
회원가입
앱에서 발생한 회원가입 이벤트를 분석합니다.
@IBAction func userRegister(_ sender: Any) { // Create AdBrixRM Instance let adBrix = AdBrixRM.getInstance // Set Extra User Information let attrModel = AdBrixRmAttrModel() attrModel.setAttrDataString("grade", "vip") attrModel.setAttrDataInt("height", 36) attrModel.setAttrDataBool("married", true) // Register API adBrix.commonSignUpWithAttr(channel: AdBrixRM.AdBrixRmSignUpChannel.AdBrixRmSignUpGoogleChannel, commonAttr: attrModel) }
- (void) registerEvent { // Create AdBrixRM Instance AdBrixRM *adBrix = [AdBrixRM sharedInstance]; // Extra User Information AdBrixRmAttrModel * attrModel = [AdBrixRmAttrModel new]; [attrModel setAttrDataString:@"nickname" :@"peter"]; [attrModel setAttrDataString:@"grade" :@"vip"]; [attrModel setAttrDataInt:@"age" :36]; [attrModel setAttrDataInt:@"credit" :5000.00]; [attrModel setAttrDataBool:@"married" :true]; // Register API [adBrix commonSignUpWithAttrWithChannel:AdBrixRmSignUpChannelAdBrixRmSignUpGoogleChannel commonAttr:attrModel]; }
앱 업데이트
앱에서 발생한 앱 업데이트 이벤트를 분석합니다.
@IBAction func appUpdate(_ sender: Any) { // Create AdBrixRM Instance let adBrix = AdBrixRM.getInstance // User Information let attrModel = AdBrixRmAttrModel() attrModel.setAttrDataString("grade", "vip") attrModel.setAttrDataInt("height", 36) attrModel.setAttrDataBool("married", true) // App Update API adBrix.commonAppUpdateWithAttr(prev_ver: "1.0.1", curr_ver: "1.0.3", commonAttr: attrModel) }
- (void) appUdate { // Create AdBrixRM Instance AdBrixRM *adbrix = [AdBrixRM sharedInstance]; // User Information AdBrixRmAttrModel * attrModel = [AdBrixRmAttrModel new]; [attrModel setAttrDataString:@"nickname" :@"peter"]; [attrModel setAttrDataString:@"grade" :@"vip"]; [attrModel setAttrDataInt:@"age" :36]; [attrModel setAttrDataInt:@"credit" :5000.00]; [attrModel setAttrDataBool:@"married" :true]; // App Update API [adBrix commonAppUpdateWithAttrWithPrev_ver:@"1.0.2" curr_ver:@"1.0.4" commonAttr:attrModel]; }
사용자 초대
앱에서 발생한 앱 초대 이벤트를 분석합니다.
@IBAction func userInvite(_ sender: Any) { // Create AdBrix Instance let adBrix = AdBrixRM.getInstance // User Information let attrModel = AdBrixRmAttrModel() attrModel.setAttrDataString("grade", "vip") attrModel.setAttrDataInt("height", 36) attrModel.setAttrDataBool("married", true) // User Invitation API adBrix.commonInviteWithAttr(channel: AdBrixRM.AdBrixRmInviteChannel.AdBrixRmInviteLineChannel, commonAttr: attrModel) }
- (void) userInvite { // Create AdBrixRM Instance AdBrixRM *adBrix = [AdBrixRM sharedInstance]; // User Information AdBrixRmAttrModel * attrModel = [AdBrixRmAttrModel new]; [attrModel setAttrDataString:@"nickname" :@"peter"]; [attrModel setAttrDataString:@"grade" :@"vip"]; [attrModel setAttrDataInt:@"age" :36]; [attrModel setAttrDataInt:@"credit" :5000.00]; [attrModel setAttrDataBool:@"married" :true]; // User Invitaion API [adBrix commonInviteWithAttrWithChannel:AdBrixRmInviteChannelAdBrixRmInviteKakaoChannel commonAttr:attrModel]; }
크레딧 사용
앱내 현금성 화폐 사용에 대한 이벤트를 분석 합니다.
@IBAction func useCredit(_ sender: Any) { // Create AdBrixRM Instance let adBrix = AdBrixRM.getInstance // User Information let attrModel = AdBrixRmAttrModel() attrModel.setAttrDataString("grade", "vip") attrModel.setAttrDataInt("height", 36) attrModel.setAttrDataBool("married", true) attrModel.setAttrDataInt("credit", 123456) // Use Credit API adBrix.commonUseCreditWithAttr(commonAttr: attrModel) }
- (void) useCredit { // Create AdBrixRM Instance AdBrixRM *adBrix = [AdBrixRM sharedInstance]; // User Information AdBrixRmAttrModel * attrModel = [AdBrixRmAttrModel new]; [attrModel setAttrDataString:@"nickname" :@"peter"]; [attrModel setAttrDataString:@"grade" :@"vip"]; [attrModel setAttrDataInt:@"age" :36]; [attrModel setAttrDataInt:@"credit" :5000.00]; [attrModel setAttrDataBool:@"married" :true]; // Use Credit API [adBrix commonUseCreditWithAttrWithCommonAttr:attrModel]; }
결제하기
[[인용:경고:보통]] 전체주문금액 파라미터 추가!!! (sdk ver : 1.6.5200)
주문의 전체 매출 금액을 입력할 수 있는 파라미터가 추가되었습니다. 주문합산금액 계산기준에 따른 금액을 입력하시면 됩니다.
앱에서 발생한 결제(구매) 이벤트를 분석합니다.
다음과 같은 상품 및 주문에 대한 정보를 array 형태로 구성하여 전달합니다.
- order id : (필수) 주문 번호
- orderSales : (필수) 전체 주문 금액
- product id : (필수) 상품 번호
- product name : (필수) 상품 이름
- price : (필수) 상품 단가
- quantity : (필수) 구매 수량
- discount : (옵션) 할인 금액
- currency string : (필수) 구매 화폐 단위
- category : (옵션) 카테고리 정보
- product attr map : (옵션) 상품 상세 옵션
- delivery charge : (옵션) 배송비
- payment method : (옵션) 결제 수단
@IBAction func purchase_event(_ sender: Any) {
// Create AdBrixRM Instance
let adBrix = AdBrixRM.getInstance
// event AttrModel
let attrModel = AdBrixRmAttrModel()
attrModel.setAttrDataString("nickname", "peter")
attrModel.setAttrDataInt("age", 36)
attrModel.setAttrDataInt("credit", 10000)
attrModel.setAttrDataBool("married", true)
// Product Option AttrModel
let productAttr1 = AdBrixRmAttrModel()
productAttr1.setAttrDataString("product_type", "computer")
productAttr1.setAttrDataString("color", "black")
productAttr1.setAttrDataInt("size", 36)
productAttr1.setAttrDataInt("current_point", 123456)
productAttr1.setAttrDataBool("promotion", true)
// Product model
let productModel1 = adBrix.createCommerceProductDataWithAttr(
productId: "productID_1",
productName: "productname 1",
price: 123456.00,
quantity: 1,
discount: 2500.00,
currencyString: adBrix.getCurrencyString(AdBrixRM.AdBrixRmCurrencyType.KRW.rawValue),
category: adBrix.createCommerceProductCategoryData(category: "computer", category2: "PC", category3: "cd-rom", category4: "software", category5: "game"),
productAttrsMap: productAttr1)
// Product Option AttrModel
let productAttr2 = AdBrixRmAttrModel()
productAttr2.setAttrDataString("product_type", "pants")
productAttr2.setAttrDataString("color", "blue")
productAttr2.setAttrDataInt("size", 42)
productAttr2.setAttrDataInt("current_point", 234423)
productAttr2.setAttrDataBool("promotion", false)
// Product Model
let productModel2 = adBrix.createCommerceProductDataWithAttr(
productId: "productID_2",
productName: "product 2",
price: 700000.00,
quantity: 1,
discount: 3500.00,
currencyString: adBrix.getCurrencyString(AdBrixRM.AdBrixRmCurrencyType.KRW.rawValue),
category: adBrix.createCommerceProductCategoryData(category: "clothes", category2: "pants", category3: "jean", category4: "longpants", category5: "sales"),
productAttrsMap: productAttr2)
// Product List Array
var proArr : Array<AdBrixRmCommerceProductModel> = Array()
proArr.append(productModel1)
proArr.append(productModel2)
// Purchase API
adBrix.commonPurchaseWithAttr(orderId: "orderid_1",
productInfo: proArr,
orderSales: 22500.00,
discount: 1500.00,
deliveryCharge: 2500.00,
paymentMethod: AdBrixRM.AdbrixRmPaymentMethod.CreditCard,
orderAttr: attrModel)
}
- (void)purchaseEvent {
// Create AdBrix Instance
AdBrixRM *adbrix = [AdBrixRM sharedInstance];
// Create Event AttrMode
AdBrixRmAttrModel * attrModel = [AdBrixRmAttrModel new];
[attrModel setAttrDataString:@"nickname" :@"peter"];
[attrModel setAttrDataInt:@"age" :36];
[attrModel setAttrDataInt:@"credit" :5000.00];
[attrModel setAttrDataBool:@"married" :true];
// Product Option AttrModel
AdBrixRmAttrModel * productAttr1 = [AdBrixRmAttrModel new];
[productAttr1 setAttrDataString:@"product_type" :@"computer"];
[productAttr1 setAttrDataString:@"color" :@"black"];
[productAttr1 setAttrDataInt:@"size" :36];
[productAttr1 setAttrDataInt:@"cruurent_point" :123456];
[productAttr1 setAttrDataBool:@"promotion" :true];
// Product Model
AdBrixRmCommerceProductModel * product1 = [adBrix createCommerceProductDataWithAttrWithProductId:@"productID1"
productName:@"productName1"
price:10000.00
quantity:1
discount:2500.00
currencyString:[adBrix getCurrencyString:AdBrixRmCurrencyTypeKRW]
category:[adBrix createCommerceProductCategoryDataWithCategory:@"cumputer" category2:@"PC" category3:@"cd-rom" category4:@"software" category5:@"game"]
productAttrsMap:productAttr1];
// Create Event AttrMode
AdBrixRmAttrModel * productAttr2 = [AdBrixRmAttrModel new];
[productAttr2 setAttrDataString:@"product_type" :@"pants"];
[productAttr2 setAttrDataString:@"color" :@"blue"];
[productAttr2 setAttrDataInt:@"size" :42];
[productAttr2 setAttrDataInt:@"cruurent_point" :23433];
[productAttr2 setAttrDataBool:@"promotion" :false];
// Product Model
AdBrixRmCommerceProductModel * product2 = [adBrix createCommerceProductDataWithAttrWithProductId:@"productID2"
productName:@"productName2"
price:23456.22
quantity:1
discount:2500.33
currencyString:[adBrix getCurrencyString:AdBrixRmCurrencyTypeKRW]
category:[adBrix createCommerceProductCategoryDataWithCategory:@"cloth" category2:@"pants" category3:@"jeans" category4:@"long pants" category5:@"sale"]
productAttrsMap:productAttr2];
// Product List Array
NSMutableArray *productArray = [NSMutableArray array];
[productArray addObject:product1];
[productArray addObject:product2];
// Purchase API
[adBrix commonPurchaseWithAttrWithOrderId:@"orderID1"
productInfo:productArray
orderSales: 22500.00
discount:10000.00
deliveryCharge:2500.00
paymentMethod:[adBrix getPaymentMethod:AdbrixRmPaymentMethodCreditCard]
orderAttr:attrModel];
}
커머스 분석
앱에서 발생하는 구매 관련(상품상세보기, 장바구니 담기 등) 이벤트를 분석합니다.
디파이너리(애드브릭스)에서 제공하는 커머스 이벤트 종류는 다음과 같습니다.
- 홈(메인) 화면 진입
- 카테고리(기획전) 진입
- 상품 상세 보기
- 장바구니 담기
- 위시리스트(관심상품) 추가
- 주문 확인하기
- 주문 취소하기
- 상품 검색하기
- 상품 목록 조회하기
- 장바구니 조회하기
- 결제 정보 입력하기
홈(메인) 화면 진입
사용자가 앱의 홈(메인) 화면으로 진입한 이벤트를 분석합니다.
@IBAction func viewHomeEvent(_ sender: Any) { // Create AdBrixRM Instance let adBrix = AdBrixRM.getInstance // View Home API adBrix.commerceViewHome() }
- (void)viewHomeEvent { // Create AdBrixRM Instance AdBrixRM *adBrix = [AdBrixRM sharedInstance]; // Home View API [adBrix commerceViewHome]; }
카테고리(기획전) 진입
사용자가 카테고리(기획전) 화면으로 진입한 이벤트를 분석합니다.
카테고리 정보는 최대 5단계까지 분석할 수 있습니다.
@IBAction func viewCategoryEvent(_ sender: Any) {
// Create AdBrixRM Instance
let adBrix = AdBrixRM.getInstance
// Event AttrModel
let attrModel = AdBrixRmAttrModel()
attrModel.setAttrDataString("nickname", "peter")
attrModel.setAttrDataInt("age", 36)
attrModel.setAttrDataInt("credit", 10000)
attrModel.setAttrDataBool("married", true)
// Product Option AttrModel
let productAttr1 = AdBrixRmAttrModel()
productAttr1.setAttrDataString("product_type", "computer")
productAttr1.setAttrDataString("color", "black")
productAttr1.setAttrDataInt("size", 36)
productAttr1.setAttrDataInt("current_point", 123456)
productAttr1.setAttrDataBool("promotion", true)
// Product model
let productModel1 = adBrix.createCommerceProductDataWithAttr(
productId: "productID_1",
productName: "productname 1",
price: 123456.00,
quantity: 1,
discount: 2500.00,
currencyString: adBrix.getCurrencyString(AdBrixRM.AdBrixRmCurrencyType.KRW.rawValue),
category: adBrix.createCommerceProductCategoryData(category: "computer", category2: "PC", category3: "cd-rom", category4: "software", category5: "game"),
productAttrsMap: productAttr1)
// Product Option AttrModel
let productAttr2 = AdBrixRmAttrModel()
productAttr2.setAttrDataString("product_type", "pants")
productAttr2.setAttrDataString("color", "blue")
productAttr2.setAttrDataInt("size", 42)
productAttr2.setAttrDataInt("current_point", 234423)
productAttr2.setAttrDataBool("promotion", false)
// Product model
let productModel2 = adBrix.createCommerceProductDataWithAttr(
productId: "productID_2",
productName: "product 2",
price: 700000.00,
quantity: 1,
discount: 3500.00,
currencyString: adBrix.getCurrencyString(AdBrixRM.AdBrixRmCurrencyType.KRW.rawValue),
category: adBrix.createCommerceProductCategoryData(category: "clothes", category2: "pants", category3: "jean", category4: "longpants", category5: "sales"),
productAttrsMap: productAttr2)
// Product list array
var proArr : Array<AdBrixRmCommerceProductModel> = Array()
proArr.append(productModel1)
proArr.append(productModel2)
// Category View API
adBrix.commerceCategoryViewWithAttr(category: adBrix.createCommerceProductCategoryData(category: "clothes", category2: "skirt", category3: "female", category4: "dress", category5: "spring"),
productInfo: proArr,
orderAttr: attrModel)
}
- (void)viewCategoryEvent {
// Create AdBrixRM Instance
AdBrixRM *adbrix = [AdBrixRM sharedInstance];
// Event AttrMode
AdBrixRmAttrModel * attrModel = [AdBrixRmAttrModel new];
[attrModel setAttrDataString:@"nickname" :@"peter"];
[attrModel setAttrDataInt:@"age" :36];
[attrModel setAttrDataInt:@"credit" :5000.00];
[attrModel setAttrDataBool:@"married" :true];
// Product Option AttrModel
AdBrixRmAttrModel * productAttr1 = [AdBrixRmAttrModel new];
[productAttr1 setAttrDataString:@"product_type" :@"computer"];
[productAttr1 setAttrDataString:@"color" :@"black"];
[productAttr1 setAttrDataInt:@"size" :36];
[productAttr1 setAttrDataInt:@"cruurent_point" :123456];
[productAttr1 setAttrDataBool:@"promotion" :true];
// Product Model
AdBrixRmCommerceProductModel * product1 = [adBrix createCommerceProductDataWithAttrWithProductId:@"productID1"
productName:@"productName1"
price:10000.00
quantity:1
discount:2500.00
currencyString:[adBrix getCurrencyString:AdBrixRmCurrencyTypeKRW]
category:[adBrix createCommerceProductCategoryDataWithCategory:@"cumputer" category2:@"PC" category3:@"cd-rom" category4:@"software" category5:@"game"]
productAttrsMap:productAttr1];
// Create Event AttrMode
AdBrixRmAttrModel * productAttr2 = [AdBrixRmAttrModel new];
[productAttr2 setAttrDataString:@"product_type" :@"pants"];
[productAttr2 setAttrDataString:@"color" :@"blue"];
[productAttr2 setAttrDataInt:@"size" :42];
[productAttr2 setAttrDataInt:@"cruurent_point" :23433];
[productAttr2 setAttrDataBool:@"promotion" :false];
// Product Model
AdBrixRmCommerceProductModel * product2 = [adBrix createCommerceProductDataWithAttrWithProductId:@"productID2"
productName:@"productName2"
price:23456.22
quantity:1
discount:2500.33
currencyString:[adBrix getCurrencyString:AdBrixRmCurrencyTypeKRW]
category:[adBrix createCommerceProductCategoryDataWithCategory:@"cloth" category2:@"pants" category3:@"jeans" category4:@"long pants" category5:@"sale"]
productAttrsMap:productAttr2];
// Product List Array
NSMutableArray *productArray = [NSMutableArray array];
[productArray addObject:product1];
[productArray addObject:product2];
// Category View API
[adBrix commerceCategoryViewWithAttrWithCategory:[adBrix createCommerceProductCategoryDataWithCategory:@"cloth" category2:@"pants" category3:@"jeans" category4:@"long pants" category5:@"sale"]
productInfo:productArray orderAttr:attrModel];
}
상품 상세 보기
사용자의 상품을 상세하기 본 이벤트를 분석합니다.
다음과 같은 상품에 대한 정보를 전달합니다.
- product id : (필수) 상품 번호
- product name : (필수) 상품 이름
- price : (필수) 상품 단가
- quantity : (필수) 구매 수량
- discount : (옵션) 할인 금액
- currency string : (필수) 구매 화폐 단위
- category : (옵션) 카테고리 정보
- product attr map : (옵션) 상품 상세 옵션
@IBAction func viewProductDetailEvent(_ sender: Any) {
// Create AdBrixRM Instance
let adBrix = AdBrixRM.getInstance
// event AttrModel
let attrModel = AdBrixRmAttrModel()
attrModel.setAttrDataString("nickname", "peter")
attrModel.setAttrDataInt("age", 36)
attrModel.setAttrDataInt("credit", 10000)
attrModel.setAttrDataBool("married", true)
// Product Option AttrModel
let productAttr1 = AdBrixRmAttrModel()
productAttr1.setAttrDataString("product_type", "computer")
productAttr1.setAttrDataString("color", "black")
productAttr1.setAttrDataInt("size", 36)
productAttr1.setAttrDataInt("current_point", 123456)
productAttr1.setAttrDataBool("promotion", true)
// Product Model
let productModel1 = adBrix.createCommerceProductDataWithAttr(
productId: "productID_1",
productName: "productname 1",
price: 123456.00,
quantity: 1,
discount: 2500.00,
currencyString: adBrix.getCurrencyString(AdBrixRM.AdBrixRmCurrencyType.KRW.rawValue),
category: adBrix.createCommerceProductCategoryData(category: "computer", category2: "PC", category3: "cd-rom", category4: "software", category5: "game"),
productAttrsMap: productAttr1)
// Product View API
adBrix.commerceProductViewWithAttr(productInfo: productModel1, orderAttr: attrModel)
}
- (void)viewProductDetailEvent {
// Create AdBrixRM Instance
AdBrixRM *adbrix = [AdBrixRM sharedInstance];
// Event AttrModel
AdBrixRmAttrModel * attrModel = [AdBrixRmAttrModel new];
[attrModel setAttrDataString:@"nickname" :@"peter"];
[attrModel setAttrDataInt:@"age" :36];
[attrModel setAttrDataInt:@"credit" :5000.00];
[attrModel setAttrDataBool:@"married" :true];
// Product Option AttrModel
AdBrixRmAttrModel * productAttr1 = [AdBrixRmAttrModel new];
[productAttr1 setAttrDataString:@"product_type" :@"computer"];
[productAttr1 setAttrDataString:@"color" :@"black"];
[productAttr1 setAttrDataInt:@"size" :36];
[productAttr1 setAttrDataInt:@"cruurent_point" :123456];
[productAttr1 setAttrDataBool:@"promotion" :true];
// Product Model
AdBrixRmCommerceProductModel * product1 = [adBrix createCommerceProductDataWithAttrWithProductId:@"productID1"
productName:@"productName1"
price:10000.00
quantity:1
discount:2500.00
currencyString:[adBrix getCurrencyString:AdBrixRmCurrencyTypeKRW]
category:[adBrix createCommerceProductCategoryDataWithCategory:@"cumputer" category2:@"PC" category3:@"cd-rom" category4:@"software" category5:@"game"]
productAttrsMap:productAttr1];
// Product View API
[adBrix commerceProductViewWithAttrWithProductInfo:product1 orderAttr:attrModel];
}
장바구니 담기
사용자가 상품을 장바구니에 담은 이벤트를 분석합니다.
다음과 같은 상품 정보를 전달합니다.
- product id : (필수) 상품 번호
- product name : (필수) 상품 이름
- price : (필수) 상품 단가
- quantity : (필수) 구매 수량
- discount : (옵션) 할인 금액
- currency string : (필수) 카테고리 정보
- category : (옵션) 구매 화폐 단위
- product attr map : (옵션) 상품 상세 옵션
@IBAction func addToCartEvent(_ sender: Any) {
// Create AdBrixRM Instance
let adBrix = AdBrixRM.getInstance
// Event AttrModel
let attrModel = AdBrixRmAttrModel()
attrModel.setAttrDataString("nickname", "peter")
attrModel.setAttrDataInt("age", 36)
attrModel.setAttrDataInt("credit", 10000)
attrModel.setAttrDataBool("married", true)
// Product Option AttrModel
let productAttr1 = AdBrixRmAttrModel()
productAttr1.setAttrDataString("product_type", "computer")
productAttr1.setAttrDataString("color", "black")
productAttr1.setAttrDataInt("size", 36)
productAttr1.setAttrDataInt("current_point", 123456)
productAttr1.setAttrDataBool("promotion", true)
// Product Model
let productModel1 = adBrix.createCommerceProductDataWithAttr(
productId: "productID_1",
productName: "productname 1",
price: 123456.00,
quantity: 1,
discount: 2500.00,
currencyString: adBrix.getCurrencyString(AdBrixRM.AdBrixRmCurrencyType.KRW.rawValue),
category: adBrix.createCommerceProductCategoryData(category: "computer", category2: "PC", category3: "cd-rom", category4: "software", category5: "game"),
productAttrsMap: productAttr1)
// Product Option AttrModel
let productAttr2 = AdBrixRmAttrModel()
productAttr2.setAttrDataString("product_type", "pants")
productAttr2.setAttrDataString("color", "blue")
productAttr2.setAttrDataInt("size", 42)
productAttr2.setAttrDataInt("current_point", 234423)
productAttr2.setAttrDataBool("promotion", false)
// product model
let productModel2 = adBrix.createCommerceProductDataWithAttr(
productId: "productID_2",
productName: "product 2",
price: 700000.00,
quantity: 1,
discount: 3500.00,
currencyString: adBrix.getCurrencyString(AdBrixRM.AdBrixRmCurrencyType.KRW.rawValue),
category: adBrix.createCommerceProductCategoryData(category: "cloth", category2: "pants", category3: "jean", category4: "longpants", category5: "sales"),
productAttrsMap: productAttr2)
// Product List Array
var proArr : Array<AdBrixRmCommerceProductModel> = Array()
proArr.append(productModel1)
proArr.append(productModel2)
// Add to Cart API
adBrix.commerceAddToCartWithAttr(productInfo: proArr, orderAttr: attrModel)
}
- (void)addToCartEvent {
// Create AdBrixRM Instance
AdBrixRM *adbrix = [AdBrixRM sharedInstance];
// Event AttrMode
AdBrixRmAttrModel * attrModel = [AdBrixRmAttrModel new];
[attrModel setAttrDataString:@"nickname" :@"peter"];
[attrModel setAttrDataInt:@"age" :36];
[attrModel setAttrDataInt:@"credit" :5000.00];
[attrModel setAttrDataBool:@"married" :true];
// Product Option AttrModel
AdBrixRmAttrModel * productAttr1 = [AdBrixRmAttrModel new];
[productAttr1 setAttrDataString:@"product_type" :@"computer"];
[productAttr1 setAttrDataString:@"color" :@"black"];
[productAttr1 setAttrDataInt:@"size" :36];
[productAttr1 setAttrDataInt:@"cruurent_point" :123456];
[productAttr1 setAttrDataBool:@"promotion" :true];
// Product Model
AdBrixRmCommerceProductModel * product1 = [adBrix createCommerceProductDataWithAttrWithProductId:@"productID1"
productName:@"productName1"
price:10000.00
quantity:1
discount:2500.00
currencyString:[adBrix getCurrencyString:AdBrixRmCurrencyTypeKRW]
category:[adBrix createCommerceProductCategoryDataWithCategory:@"cumputer" category2:@"PC" category3:@"cd-rom" category4:@"software" category5:@"game"]
productAttrsMap:productAttr1];
// Event AttrMode
AdBrixRmAttrModel * productAttr2 = [AdBrixRmAttrModel new];
[productAttr2 setAttrDataString:@"product_type" :@"pants"];
[productAttr2 setAttrDataString:@"color" :@"blue"];
[productAttr2 setAttrDataInt:@"size" :42];
[productAttr2 setAttrDataInt:@"cruurent_point" :23433];
[productAttr2 setAttrDataBool:@"promotion" :false];
// Product Model
AdBrixRmCommerceProductModel * product2 = [adBrix createCommerceProductDataWithAttrWithProductId:@"productID2"
productName:@"productName2"
price:23456.22
quantity:1
discount:2500.33
currencyString:[adBrix getCurrencyString:AdBrixRmCurrencyTypeKRW]
category:[adBrix createCommerceProductCategoryDataWithCategory:@"cloth" category2:@"pants" category3:@"jeans" category4:@"long pants" category5:@"sale"]
productAttrsMap:productAttr2];
// Product List Array
NSMutableArray *productArray = [NSMutableArray array];
[productArray addObject:product1];
[productArray addObject:product2];
// Add to Cart API
[adBrix commerceAddToCartWithAttrWithProductInfo:productArray orderAttr:attrModel];
}
관심 상품(위시리스트) 추가
사용자가 상품을 관심 상품(위시리스트)에 추가한 이벤트를 분석합니다.
다음과 같은 상품 정보를 전달합니다.
- product id : (필수) 상품 번호
- product name : (필수) 상품 이름
- price : (필수) 상품 단가
- quantity : (필수) 구매 수량
- discount : (옵션) 할인 금액
- currency string : (필수) 카테고리 정보
- category : (옵션) 구매 화폐 단위
- product attr map : (옵션) 상품 상세 옵션
API (단품 ProductModel 을 적용할 경우)
@IBAction func addToWishListEvent(_ sender: Any) {
// Create adbrix Instance
let adBrix = AdBrixRM.getInstance
// event AttrModel
let attrModel = AdBrixRmAttrModel()
attrModel.setAttrDataString("nickname", "peter")
attrModel.setAttrDataInt("age", 36)
attrModel.setAttrDataInt("credit", 10000)
attrModel.setAttrDataBool("married", true)
// product option AttrModel
let productAttr1 = AdBrixRmAttrModel()
productAttr1.setAttrDataString("product_type", "computer")
productAttr1.setAttrDataString("color", "black")
productAttr1.setAttrDataInt("size", 36)
productAttr1.setAttrDataInt("current_point", 123456)
productAttr1.setAttrDataBool("promotion", true)
// create product model
let productModel1 = adBrix.createCommerceProductDataWithAttr(
productId: "productID_1",
productName: "productname 1",
price: 123456.00,
quantity: 1,
discount: 2500.00,
currencyString: adBrix.getCurrencyString(AdBrixRM.AdBrixRmCurrencyType.KRW.rawValue),
category: adBrix.createCommerceProductCategoryData(category: "computer", category2: "PC", category3: "cd-rom", category4: "software", category5: "game"),
productAttrsMap: productAttr1)
// Add to wishlist api
adBrix.commerceAddToWishListWithAttr(productInfo: productModel1, orderAttr: attrModel)
}
- (void)addToWishListEvent {
// Create AdBrixRM Instance
AdBrixRM *adbrix = [AdBrixRM sharedInstance];
// Event AttrMode
AdBrixRmAttrModel * attrModel = [AdBrixRmAttrModel new];
[attrModel setAttrDataString:@"nickname" :@"peter"];
[attrModel setAttrDataInt:@"age" :36];
[attrModel setAttrDataInt:@"credit" :5000.00];
[attrModel setAttrDataBool:@"married" :true];
// Product Option AttrModel
AdBrixRmAttrModel * productAttr1 = [AdBrixRmAttrModel new];
[productAttr1 setAttrDataString:@"product_type" :@"computer"];
[productAttr1 setAttrDataString:@"color" :@"black"];
[productAttr1 setAttrDataInt:@"size" :36];
[productAttr1 setAttrDataInt:@"cruurent_point" :123456];
[productAttr1 setAttrDataBool:@"promotion" :true];
// Product Model
AdBrixRmCommerceProductModel * product1 = [adBrix createCommerceProductDataWithAttrWithProductId:@"productID1"
productName:@"productName1"
price:10000.00
quantity:1
discount:2500.00
currencyString:[adBrix getCurrencyString:AdBrixRmCurrencyTypeKRW]
category:[adBrix createCommerceProductCategoryDataWithCategory:@"cumputer" category2:@"PC" category3:@"cd-rom" category4:@"software" category5:@"game"]
productAttrsMap:productAttr1];
// Add to Wishlist API
[adBrix commerceAddToWishListWithAttrWithProductInfo:product1 orderAttr:attrModel];
}
API (복수의 ProductModel 을 적용할 경우)
[[인용:경고:보통]] 본 API 는 iOS SDK 2.4.0.1 부터 적용됩니다.
@IBAction func addToWishListEvent(_ sender: Any) {
// Create AdBrixRM Instance
let adBrix = AdBrixRM.getInstance
// Event AttrModel
let attrModel = AdBrixRmAttrModel()
attrModel.setAttrDataString("nickname", "peter")
attrModel.setAttrDataInt("age", 36)
attrModel.setAttrDataInt("credit", 10000)
attrModel.setAttrDataBool("married", true)
// Product Option AttrModel
let productAttr1 = AdBrixRmAttrModel()
productAttr1.setAttrDataString("product_type", "computer")
productAttr1.setAttrDataString("color", "black")
productAttr1.setAttrDataInt("size", 36)
productAttr1.setAttrDataInt("current_point", 123456)
productAttr1.setAttrDataBool("promotion", true)
// Product Model
let productModel1 = adBrix.createCommerceProductDataWithAttr(
productId: "productID_1",
productName: "productname 1",
price: 123456.00,
quantity: 1,
discount: 2500.00,
currencyString: adBrix.getCurrencyString(AdBrixRM.AdBrixRmCurrencyType.KRW.rawValue),
category: adBrix.createCommerceProductCategoryData(category: "computer", category2: "PC", category3: "cd-rom", category4: "software", category5: "game"),
productAttrsMap: productAttr1)
// Product Option AttrModel
let productAttr2 = AdBrixRmAttrModel()
productAttr2.setAttrDataString("product_type", "pants")
productAttr2.setAttrDataString("color", "blue")
productAttr2.setAttrDataInt("size", 42)
productAttr2.setAttrDataInt("current_point", 234423)
productAttr2.setAttrDataBool("promotion", false)
// product model
let productModel2 = adBrix.createCommerceProductDataWithAttr(
productId: "productID_2",
productName: "product 2",
price: 700000.00,
quantity: 1,
discount: 3500.00,
currencyString: adBrix.getCurrencyString(AdBrixRM.AdBrixRmCurrencyType.KRW.rawValue),
category: adBrix.createCommerceProductCategoryData(category: "cloth", category2: "pants", category3: "jean", category4: "longpants", category5: "sales"),
productAttrsMap: productAttr2)
// Product List Array
var proArr : Array<AdBrixRmCommerceProductModel> = Array()
proArr.append(productModel1)
proArr.append(productModel2)
// Add to Wishlist API
adBrix.commerceAddToWishListWithAttr(productInfo: proArr, orderAttr: attrModel)
}
- (void)addToWishListEvent {
// Create AdBrixRM Instance
AdBrixRM *adbrix = [AdBrixRM sharedInstance];
// Event AttrMode
AdBrixRmAttrModel * attrModel = [AdBrixRmAttrModel new];
[attrModel setAttrDataString:@"nickname" :@"peter"];
[attrModel setAttrDataInt:@"age" :36];
[attrModel setAttrDataInt:@"credit" :5000.00];
[attrModel setAttrDataBool:@"married" :true];
// Product Option AttrModel
AdBrixRmAttrModel * productAttr1 = [AdBrixRmAttrModel new];
[productAttr1 setAttrDataString:@"product_type" :@"computer"];
[productAttr1 setAttrDataString:@"color" :@"black"];
[productAttr1 setAttrDataInt:@"size" :36];
[productAttr1 setAttrDataInt:@"cruurent_point" :123456];
[productAttr1 setAttrDataBool:@"promotion" :true];
// Product Model
AdBrixRmCommerceProductModel * product1 = [adBrix createCommerceProductDataWithAttrWithProductId:@"productID1"
productName:@"productName1"
price:10000.00
quantity:1
discount:2500.00
currencyString:[adBrix getCurrencyString:AdBrixRmCurrencyTypeKRW]
category:[adBrix createCommerceProductCategoryDataWithCategory:@"cumputer" category2:@"PC" category3:@"cd-rom" category4:@"software" category5:@"game"]
productAttrsMap:productAttr1];
// Event AttrMode
AdBrixRmAttrModel * productAttr2 = [AdBrixRmAttrModel new];
[productAttr2 setAttrDataString:@"product_type" :@"pants"];
[productAttr2 setAttrDataString:@"color" :@"blue"];
[productAttr2 setAttrDataInt:@"size" :42];
[productAttr2 setAttrDataInt:@"cruurent_point" :23433];
[productAttr2 setAttrDataBool:@"promotion" :false];
// Product Model
AdBrixRmCommerceProductModel * product2 = [adBrix createCommerceProductDataWithAttrWithProductId:@"productID2"
productName:@"productName2"
price:23456.22
quantity:1
discount:2500.33
currencyString:[adBrix getCurrencyString:AdBrixRmCurrencyTypeKRW]
category:[adBrix createCommerceProductCategoryDataWithCategory:@"cloth" category2:@"pants" category3:@"jeans" category4:@"long pants" category5:@"sale"]
productAttrsMap:productAttr2];
// Product List Array
NSMutableArray *productArray = [NSMutableArray array];
[productArray addObject:product1];
[productArray addObject:product2];
// Add to Wishlist API
[adBrix commerceAddToWishList:productArray orderAttr:attrModel];
}
주문 확인하기
사용자가 상품을 결제하기 전 최종 확인하는 이벤트를 분석합니다.
다음과 같은 주문 및 상품 정보를 전달합니다.
- order id : (필수) 주문 번호
- product id : (필수) 상품 번호
- product name : (필수) 상품 이름
- price : (필수) 상품 단가
- quantity : (필수) 구매 수량
- discount : (옵션) 할인 금액
- currency string : (필수) 카테고리 정보
- category : (옵션) 구매 화폐 단위
- product attr map : (옵션) 상품 상세 옵션
- delivery charge : (옵션) 배송비
@IBAction func reviewOrderEvent(_ sender: Any) {
// Create AdBrix Instance
let adBrix = AdBrixRM.getInstance
// event AttrModel
let attrModel = AdBrixRmAttrModel()
attrModel.setAttrDataString("nickname", "peter")
attrModel.setAttrDataInt("age", 36)
attrModel.setAttrDataInt("credit", 10000)
attrModel.setAttrDataBool("married", true)
// Product Option AttrModel
let productAttr1 = AdBrixRmAttrModel()
productAttr1.setAttrDataString("product_type", "computer")
productAttr1.setAttrDataString("color", "black")
productAttr1.setAttrDataInt("size", 36)
productAttr1.setAttrDataInt("current_point", 123456)
productAttr1.setAttrDataBool("promotion", true)
// Product model
let productModel1 = adBrix.createCommerceProductDataWithAttr(
productId: "productID_1",
productName: "productname 1",
price: 123456.00,
quantity: 1,
discount: 2500.00,
currencyString: adBrix.getCurrencyString(AdBrixRM.AdBrixRmCurrencyType.KRW.rawValue),
category: adBrix.createCommerceProductCategoryData(category: "computer", category2: "PC", category3: "cd-rom", category4: "software", category5: "game"),
productAttrsMap: productAttr1)
// Product option AttrModel2
let productAttr2 = AdBrixRmAttrModel()
productAttr2.setAttrDataString("product_type", "pants")
productAttr2.setAttrDataString("color", "blue")
productAttr2.setAttrDataInt("size", 42)
productAttr2.setAttrDataInt("current_point", 234423)
productAttr2.setAttrDataBool("promotion", false)
// product model2
let productModel2 = adBrix.createCommerceProductDataWithAttr(
productId: "productID_2",
productName: "product 2",
price: 700000.00,
quantity: 1,
discount: 3500.00,
currencyString: adBrix.getCurrencyString(AdBrixRM.AdBrixRmCurrencyType.KRW.rawValue),
category: adBrix.createCommerceProductCategoryData(category: "cloth", category2: "pants", category3: "jean", category4: "longpants", category5: "sales"),
productAttrsMap: productAttr2)
// Product List Array
var proArr : Array<AdBrixRmCommerceProductModel> = Array()
proArr.append(productModel1)
proArr.append(productModel2)
// Review Order API
adBrix.commerceReviewOrderWithAttr(orderId: "orderID_2",
productInfo: proArr,
discount: 2500.00,
deliveryCharge: 3000.00,
orderAttr: attrModel)
}
- (void)reviewOrderEvent {
// Create AdBrix Instance
AdBrixRM *adbrix = [AdBrixRM sharedInstance];
// Create Event AttrMode
AdBrixRmAttrModel * attrModel = [AdBrixRmAttrModel new];
[attrModel setAttrDataString:@"nickname" :@"peter"];
[attrModel setAttrDataInt:@"age" :36];
[attrModel setAttrDataInt:@"credit" :5000.00];
[attrModel setAttrDataBool:@"married" :true];
// Product Option AttrModel
AdBrixRmAttrModel * productAttr1 = [AdBrixRmAttrModel new];
[productAttr1 setAttrDataString:@"product_type" :@"computer"];
[productAttr1 setAttrDataString:@"color" :@"black"];
[productAttr1 setAttrDataInt:@"size" :36];
[productAttr1 setAttrDataInt:@"cruurent_point" :123456];
[productAttr1 setAttrDataBool:@"promotion" :true];
// Product Model
AdBrixRmCommerceProductModel * product1 = [adBrix createCommerceProductDataWithAttrWithProductId:@"productID1"
productName:@"productName1"
price:10000.00
quantity:1
discount:2500.00
currencyString:[adBrix getCurrencyString:AdBrixRmCurrencyTypeKRW]
category:[adBrix createCommerceProductCategoryDataWithCategory:@"cumputer" category2:@"PC" category3:@"cd-rom" category4:@"software" category5:@"game"]
productAttrsMap:productAttr1];
// Create Event AttrMode
AdBrixRmAttrModel * productAttr2 = [AdBrixRmAttrModel new];
[productAttr2 setAttrDataString:@"product_type" :@"pants"];
[productAttr2 setAttrDataString:@"color" :@"blue"];
[productAttr2 setAttrDataInt:@"size" :42];
[productAttr2 setAttrDataInt:@"cruurent_point" :23433];
[productAttr2 setAttrDataBool:@"promotion" :false];
// Product Model
AdBrixRmCommerceProductModel * product2 = [adBrix createCommerceProductDataWithAttrWithProductId:@"productID2"
productName:@"productName2"
price:23456.22
quantity:1
discount:2500.33
currencyString:[adBrix getCurrencyString:AdBrixRmCurrencyTypeKRW]
category:[adBrix createCommerceProductCategoryDataWithCategory:@"cloth" category2:@"pants" category3:@"jeans" category4:@"long pants" category5:@"sale"]
productAttrsMap:productAttr2];
//productList Array
NSMutableArray *productArray = [NSMutableArray array];
[productArray addObject:product1];
[productArray addObject:product2];
// Review order api
[adBrix commerceReviewOrderWithAttrWithOrderId:@"orderID_11" productInfo:productArray discount:5000.00 deliveryCharge:2500.00 orderAttr:attrModel];
}
주문 취소하기(환불하기)
사용자가 주문을 취소하거나 환불 처리한 이벤트를 분석합니다.
다음과 같은 상품 및 주문 정보를 전달합니다.
- order id : (필수) 주문 번호
- product id : (필수) 상품 번호
- product name : (필수) 상품 이름
- price : (필수) 상품 단가
- quantity : (필수) 구매 수량
- discount : (옵션) 할인 금액
- currency string : (필수) 카테고리 정보
- category : (옵션) 구매 화폐 단위
- product attr map : (옵션) 상품 상세 옵션
- penalty charge : (옵션) 취소(환불) 수수료
func refundOrderEvent() {
// Create AdBrix Instance
let adBrix = AdBrixRM.getInstance
// Event AttrModel
let attrModel = AdBrixRmAttrModel()
attrModel.setAttrDataString("nickname", "peter")
attrModel.setAttrDataInt("age", 36)
attrModel.setAttrDataInt("credit", 10000)
attrModel.setAttrDataBool("married", true)
// Product Option AttrModel
let productAttr1 = AdBrixRmAttrModel()
productAttr1.setAttrDataString("product_type", "computer")
productAttr1.setAttrDataString("color", "black")
productAttr1.setAttrDataInt("size", 36)
productAttr1.setAttrDataInt("current_point", 123456)
productAttr1.setAttrDataBool("promotion", true)
// Product model
let productModel1 = adBrix.createCommerceProductDataWithAttr(
productId: "productID_1",
productName: "productname 1",
price: 123456.00,
quantity: 1,
discount: 2500.00,
currencyString: adBrix.getCurrencyString(AdBrixRM.AdBrixRmCurrencyType.KRW.rawValue),
category: adBrix.createCommerceProductCategoryData(category: "computer", category2: "PC", category3: "cd-rom", category4: "software", category5: "game"),
productAttrsMap: productAttr1)
// Product Option AttrModel
let productAttr2 = AdBrixRmAttrModel()
productAttr2.setAttrDataString("product_type", "pants")
productAttr2.setAttrDataString("color", "blue")
productAttr2.setAttrDataInt("size", 42)
productAttr2.setAttrDataInt("current_point", 234423)
productAttr2.setAttrDataBool("promotion", false)
// Product model
let productModel2 = adBrix.createCommerceProductDataWithAttr(
productId: "productID_2",
productName: "product 2",
price: 700000.00,
quantity: 1,
discount: 3500.00,
currencyString: adBrix.getCurrencyString(AdBrixRM.AdBrixRmCurrencyType.KRW.rawValue),
category: adBrix.createCommerceProductCategoryData(category: "cloth", category2: "pants", category3: "jean", category4: "longpants", category5: "sales"),
productAttrsMap: productAttr2)
// Product List Array
var proArr : Array<AdBrixRmCommerceProductModel> = Array()
proArr.append(productModel1)
proArr.append(productModel2)
// Refund API
adBrix.commerceRefundWithAttr(orderId: "orderID_3",
productInfo: proArr,
penaltyCharge: 250000.00,
orderAttr: attrModel)
}
- (void)refundOrderEvent {
// Create AdBrixRM Instance
AdBrixRM *adbrix = [AdBrixRM sharedInstance];
// Event AttrMode
AdBrixRmAttrModel * attrModel = [AdBrixRmAttrModel new];
[attrModel setAttrDataString:@"nickname" :@"peter"];
[attrModel setAttrDataInt:@"age" :36];
[attrModel setAttrDataInt:@"credit" :5000.00];
[attrModel setAttrDataBool:@"married" :true];
// Product Option AttrModel
AdBrixRmAttrModel * productAttr1 = [AdBrixRmAttrModel new];
[productAttr1 setAttrDataString:@"product_type" :@"computer"];
[productAttr1 setAttrDataString:@"color" :@"black"];
[productAttr1 setAttrDataInt:@"size" :36];
[productAttr1 setAttrDataInt:@"cruurent_point" :123456];
[productAttr1 setAttrDataBool:@"promotion" :true];
// Product Model
AdBrixRmCommerceProductModel * product1 = [adBrix createCommerceProductDataWithAttrWithProductId:@"productID1"
productName:@"productName1"
price:10000.00
quantity:1
discount:2500.00
currencyString:[adBrix getCurrencyString:AdBrixRmCurrencyTypeKRW]
category:[adBrix createCommerceProductCategoryDataWithCategory:@"cumputer" category2:@"PC" category3:@"cd-rom" category4:@"software" category5:@"game"]
productAttrsMap:productAttr1];
// Event AttrMode
AdBrixRmAttrModel * productAttr2 = [AdBrixRmAttrModel new];
[productAttr2 setAttrDataString:@"product_type" :@"pants"];
[productAttr2 setAttrDataString:@"color" :@"blue"];
[productAttr2 setAttrDataInt:@"size" :42];
[productAttr2 setAttrDataInt:@"cruurent_point" :23433];
[productAttr2 setAttrDataBool:@"promotion" :false];
// Product Model
AdBrixRmCommerceProductModel * product2 = [adBrix createCommerceProductDataWithAttrWithProductId:@"productID2"
productName:@"productName2"
price:23456.22
quantity:1
discount:2500.33
currencyString:[adBrix getCurrencyString:AdBrixRmCurrencyTypeKRW]
category:[adBrix createCommerceProductCategoryDataWithCategory:@"cloth" category2:@"pants" category3:@"jeans" category4:@"long pants" category5:@"sale"]
productAttrsMap:productAttr2];
// Product List Array
NSMutableArray *productArray = [NSMutableArray array];
[productArray addObject:product1];
[productArray addObject:product2];
// Refund API
[adBrix commerceRefundWithAttrWithOrderId:@“orderID1” productInfo:productArray penaltyCharge:25000.00 orderAttr:attrModel];
}
상품 검색하기
사용자가 상품을 검색한 이벤트를 분석합니다.
다음과 같은 검색 결과에 포함된 상품 정보를 전달합니다.
- keyword : (필수) 검색에 사용한 단어
- product id : (필수) 상품 번호
- product name : (필수) 상품 이름
- price : (필수) 상품 단가
- quantity : (필수) 구매 수량
- discount : (옵션) 할인 금액
- currency string : (필수) 카테고리 정보
- category : (옵션) 구매 화폐 단위
@IBAction func searchResultEvent() {
// Create AdBrixRM Instance
let adBrix = AdBrixRM.getInstance
// Event AttrModel
let attrModel = AdBrixRmAttrModel()
attrModel.setAttrDataString("nickname", "peter")
attrModel.setAttrDataInt("age", 36)
attrModel.setAttrDataInt("credit", 10000)
attrModel.setAttrDataBool("married", true)
// Product Option AttrModel
let productAttr1 = AdBrixRmAttrModel()
productAttr1.setAttrDataString("product_type", "computer")
productAttr1.setAttrDataString("color", "black")
productAttr1.setAttrDataInt("size", 36)
productAttr1.setAttrDataInt("current_point", 123456)
productAttr1.setAttrDataBool("promotion", true)
// Create Product Model
let productModel1 = adBrix.createCommerceProductDataWithAttr(
productId: "productID_1",
productName: "productname 1",
price: 123456.00,
quantity: 1,
discount: 2500.00,
currencyString: adBrix.getCurrencyString(AdBrixRM.AdBrixRmCurrencyType.KRW.rawValue),
category: adBrix.createCommerceProductCategoryData(category: "computer", category2: "PC", category3: "cd-rom", category4: "software", category5: "game"),
productAttrsMap: productAttr1)
// Product Option AttrModel
let productAttr2 = AdBrixRmAttrModel()
productAttr2.setAttrDataString("product_type", "pants")
productAttr2.setAttrDataString("color", "blue")
productAttr2.setAttrDataInt("size", 42)
productAttr2.setAttrDataInt("current_point", 234423)
productAttr2.setAttrDataBool("promotion", false)
// Product Model
let productModel2 = adBrix.createCommerceProductDataWithAttr(
productId: "productID_2",
productName: "product 2",
price: 700000.00,
quantity: 1,
discount: 3500.00,
currencyString: adBrix.getCurrencyString(AdBrixRM.AdBrixRmCurrencyType.KRW.rawValue),
category: adBrix.createCommerceProductCategoryData(category: "cloth", category2: "pants", category3: "jean", category4: "longpants", category5: "sales"),
productAttrsMap: productAttr2)
// Product List Array
var proArr : Array<AdBrixRmCommerceProductModel> = Array()
proArr.append(productModel1)
proArr.append(productModel2)
// Product Search API
adBrix.commerceSearchWithAttr(productInfo: proArr,
keyword: "This is a search keyword.",
orderAttr: attrModel)
}
- (void)searchResultEvent {
// Create AdBrix Instance
AdBrixRM *adbrix = [AdBrixRM sharedInstance];
// Event AttrMode
AdBrixRmAttrModel * attrModel = [AdBrixRmAttrModel new];
[attrModel setAttrDataString:@"nickname" :@"peter"];
[attrModel setAttrDataInt:@"age" :36];
[attrModel setAttrDataInt:@"credit" :5000.00];
[attrModel setAttrDataBool:@"married" :true];
// Product Option AttrModel
AdBrixRmAttrModel * productAttr1 = [AdBrixRmAttrModel new];
[productAttr1 setAttrDataString:@"product_type" :@"computer"];
[productAttr1 setAttrDataString:@"color" :@"black"];
[productAttr1 setAttrDataInt:@"size" :36];
[productAttr1 setAttrDataInt:@"cruurent_point" :123456];
[productAttr1 setAttrDataBool:@"promotion" :true];
// Product Model
AdBrixRmCommerceProductModel * product1 = [adBrix createCommerceProductDataWithAttrWithProductId:@"productID1"
productName:@"productName1"
price:10000.00
quantity:1
discount:2500.00
currencyString:[adBrix getCurrencyString:AdBrixRmCurrencyTypeKRW]
category:[adBrix createCommerceProductCategoryDataWithCategory:@"cumputer" category2:@"PC" category3:@"cd-rom" category4:@"software" category5:@"game"]
productAttrsMap:productAttr1];
// Event AttrMode
AdBrixRmAttrModel * productAttr2 = [AdBrixRmAttrModel new];
[productAttr2 setAttrDataString:@"product_type" :@"pants"];
[productAttr2 setAttrDataString:@"color" :@"blue"];
[productAttr2 setAttrDataInt:@"size" :42];
[productAttr2 setAttrDataInt:@"cruurent_point" :23433];
[productAttr2 setAttrDataBool:@"promotion" :false];
// Product Model
AdBrixRmCommerceProductModel * product2 = [adBrix createCommerceProductDataWithAttrWithProductId:@"productID2"
productName:@"productName2"
price:23456.22
quantity:1
discount:2500.33
currencyString:[adBrix getCurrencyString:AdBrixRmCurrencyTypeKRW]
category:[adBrix createCommerceProductCategoryDataWithCategory:@"cloth" category2:@"pants" category3:@"jeans" category4:@"long pants" category5:@"sale"]
productAttrsMap:productAttr2];
// Product List Array
NSMutableArray *productArray = [NSMutableArray array];
[productArray addObject:product1];
[productArray addObject:product2];
// Product Search API
[adBrix commerceSearchWithAttrWithProductInfo:productArray keyword:@"상품 검색어" orderAttr:attrModel];
}
상품 공유하기
사용자가 상품정보를 공유한 이벤트를 분석합니다.
다음과 같은 공유된 상품 정보를 전달합니다.
- product id : (필수) 상품 번호
- product name : (필수) 상품 이름
- price : (필수) 상품 단가
- quantity : (필수) 구매 수량
- discount : (옵션) 할인 금액
- currency string : (필수) 카테고리 정보
- category : (옵션) 구매 화폐 단위
- product attr map : (옵션) 상품 상세 옵션
API (단품 ProductModel 을 적용할 경우)
@IBAction func shareEvent(_ sender: Any) {
// Create AdBrix Instance
let adBrix = AdBrixRM.getInstance
// Event AttrModel
let attrModel = AdBrixRmAttrModel()
attrModel.setAttrDataString("nickname", "peter")
attrModel.setAttrDataInt("age", 36)
attrModel.setAttrDataInt("credit", 10000)
attrModel.setAttrDataBool("married", true)
// Product Option AttrModel
let productAttr1 = AdBrixRmAttrModel()
productAttr1.setAttrDataString("product_type", "computer")
productAttr1.setAttrDataString("color", "black")
productAttr1.setAttrDataInt("size", 36)
productAttr1.setAttrDataInt("current_point", 123456)
productAttr1.setAttrDataBool("promotion", true)
// Product Model
let productModel1 = adBrix.createCommerceProductDataWithAttr(
productId: "productID_1",
productName: "productname 1",
price: 123456.00,
quantity: 1,
discount: 2500.00,
currencyString: adBrix.getCurrencyString(AdBrixRM.AdBrixRmCurrencyType.KRW.rawValue),
category: adBrix.createCommerceProductCategoryData(category: "computer", category2: "PC", category3: "cd-rom", category4: "software", category5: "game"),
productAttrsMap: productAttr1)
// Product Share API
adBrix.commerceShareWithAttr(channel: AdBrixRM.AdBrixRmSharingChannel.AdBrixRmSharingKakaoStory,
productInfo: productModel1,
orderAttr: attrModel)
}
- (void)shareEvent() {
// Create AdBrixRM Instance
AdBrixRM *adbrix = [AdBrixRM sharedInstance];
// Event AttrMode
AdBrixRmAttrModel * attrModel = [AdBrixRmAttrModel new];
[attrModel setAttrDataString:@"nickname" :@"peter"];
[attrModel setAttrDataInt:@"age" :36];
[attrModel setAttrDataInt:@"credit" :5000.00];
[attrModel setAttrDataBool:@"married" :true];
// Product Option AttrModel
AdBrixRmAttrModel * productAttr1 = [AdBrixRmAttrModel new];
[productAttr1 setAttrDataString:@"product_type" :@"computer"];
[productAttr1 setAttrDataString:@"color" :@"black"];
[productAttr1 setAttrDataInt:@"size" :36];
[productAttr1 setAttrDataInt:@"cruurent_point" :123456];
[productAttr1 setAttrDataBool:@"promotion" :true];
// Product Model
AdBrixRmCommerceProductModel * product1 = [adBrix createCommerceProductDataWithAttrWithProductId:@"productID1"
productName:@"productName1"
price:10000.00
quantity:1
discount:2500.00
currencyString:[adBrix getCurrencyString:AdBrixRmCurrencyTypeKRW]
category:[adBrix createCommerceProductCategoryDataWithCategory:@"cumputer" category2:@"PC" category3:@"cd-rom" category4:@"software" category5:@"game"]
productAttrsMap:productAttr1];
// Product Share API
[adBrix commerceShareWithAttrWithChannel:AdBrixRmSharingChannelAdBrixRmSharingWeChat productInfo:product1 orderAttr:attrModel];
}
API (복수의 ProductModel 을 적용할 경우)
[[인용:경고:보통]] 본 API 는 iOS SDK 2.4.0.1 부터 적용됩니다.
상품 목록 조회하기
사용자가 상품목록을 조회한 이벤트를 분석합니다.
다음과 같이 조회한 상품 정보를 전달합니다.
- product id : (필수) 상품 번호
- product name : (필수) 상품 이름
- price : (필수) 상품 단가
- quantity : (필수) 구매 수량
- discount : (옵션) 할인 금액
- currency string : (필수) 카테고리 정보
- category : (옵션) 구매 화폐 단위
- product attr map : (옵션) 상품 상세 옵션
@IBAction func listViewEvent() {
// Create AdBrixRM Instance
let adBrix = AdBrixRM.getInstance
// Event AttrModel
let attrModel = AdBrixRmAttrModel()
attrModel.setAttrDataString("nickname", "peter")
attrModel.setAttrDataInt("age", 36)
attrModel.setAttrDataInt("credit", 10000)
attrModel.setAttrDataBool("married", true)
// Product Option AttrModel
let productAttr1 = AdBrixRmAttrModel()
productAttr1.setAttrDataString("product_type", "computer")
productAttr1.setAttrDataString("color", "black")
productAttr1.setAttrDataInt("size", 36)
productAttr1.setAttrDataInt("current_point", 123456)
productAttr1.setAttrDataBool("promotion", true)
// Product model
let productModel1 = adBrix.createCommerceProductDataWithAttr(
productId: "productID_1",
productName: "productname 1",
price: 123456.00,
quantity: 1,
discount: 2500.00,
currencyString: adBrix.getCurrencyString(AdBrixRM.AdBrixRmCurrencyType.KRW.rawValue),
category: adBrix.createCommerceProductCategoryData(category: "computer", category2: "PC", category3: "cd-rom", category4: "software", category5: "game"),
productAttrsMap: productAttr1)
// Product Option AttrModel
let productAttr2 = AdBrixRmAttrModel()
productAttr2.setAttrDataString("product_type", "pants")
productAttr2.setAttrDataString("color", "blue")
productAttr2.setAttrDataInt("size", 42)
productAttr2.setAttrDataInt("current_point", 234423)
productAttr2.setAttrDataBool("promotion", false)
// Product Model
let productModel2 = adBrix.createCommerceProductDataWithAttr(
productId: "productID_2",
productName: "product 2",
price: 700000.00,
quantity: 1,
discount: 3500.00,
currencyString: adBrix.getCurrencyString(AdBrixRM.AdBrixRmCurrencyType.KRW.rawValue),
category: adBrix.createCommerceProductCategoryData(category: "cloth", category2: "pants", category3: "jean", category4: "longpants", category5: "sales"),
productAttrsMap: productAttr2)
// Product List Array
var proArr : Array<AdBrixRmCommerceProductModel> = Array()
proArr.append(productModel1)
proArr.append(productModel2)
// list view API
adBrix.commerceListViewWithAttr(productInfo: proArr, orderAttr: attrModel)
}
- (void)listViewEvent() {
// Create AdBrixRM Instance
AdBrixRM *adbrix = [AdBrixRM sharedInstance];
// Event AttrMode
AdBrixRmAttrModel * attrModel = [AdBrixRmAttrModel new];
[attrModel setAttrDataString:@"nickname" :@"peter"];
[attrModel setAttrDataInt:@"age" :36];
[attrModel setAttrDataInt:@"credit" :5000.00];
[attrModel setAttrDataBool:@"married" :true];
// Product Option AttrModel
AdBrixRmAttrModel * productAttr1 = [AdBrixRmAttrModel new];
[productAttr1 setAttrDataString:@"product_type" :@"computer"];
[productAttr1 setAttrDataString:@"color" :@"black"];
[productAttr1 setAttrDataInt:@"size" :36];
[productAttr1 setAttrDataInt:@"cruurent_point" :123456];
[productAttr1 setAttrDataBool:@"promotion" :true];
// Product Model
AdBrixRmCommerceProductModel * product1 = [adBrix createCommerceProductDataWithAttrWithProductId:@"productID1"
productName:@"productName1"
price:10000.00
quantity:1
discount:2500.00
currencyString:[adBrix getCurrencyString:AdBrixRmCurrencyTypeKRW]
category:[adBrix createCommerceProductCategoryDataWithCategory:@"cumputer" category2:@"PC" category3:@"cd-rom" category4:@"software" category5:@"game"]
productAttrsMap:productAttr1];
// Event AttrMode
AdBrixRmAttrModel * productAttr2 = [AdBrixRmAttrModel new];
[productAttr2 setAttrDataString:@"product_type" :@"pants"];
[productAttr2 setAttrDataString:@"color" :@"blue"];
[productAttr2 setAttrDataInt:@"size" :42];
[productAttr2 setAttrDataInt:@"cruurent_point" :23433];
[productAttr2 setAttrDataBool:@"promotion" :false];
// Product Model
AdBrixRmCommerceProductModel * product2 = [adBrix createCommerceProductDataWithAttrWithProductId:@"productID2"
productName:@"productName2"
price:23456.22
quantity:1
discount:2500.33
currencyString:[adBrix getCurrencyString:AdBrixRmCurrencyTypeKRW]
category:[adBrix createCommerceProductCategoryDataWithCategory:@"cloth" category2:@"pants" category3:@"jeans" category4:@"long pants" category5:@"sale"]
productAttrsMap:productAttr2];
// Product List Array
NSMutableArray *productArray = [NSMutableArray array];
[productArray addObject:product1];
[productArray addObject:product2];
// list view API
[adBrix commerceListViewWithAttrWithProductInfo:productArray orderAttr:attrModel];
}
장바구니 조회하기
사용자가 장바구니를 조회한 이벤트를 분석합니다.
다음과 같이 조회한 상품 정보를 전달합니다.
- product id : (필수) 상품 번호
- product name : (필수) 상품 이름
- price : (필수) 상품 단가
- quantity : (필수) 구매 수량
- discount : (옵션) 할인 금액
- currency string : (필수) 카테고리 정보
- category : (옵션) 구매 화폐 단위
- product attr map : (옵션) 상품 상세 옵션
@IBAction func cartViewEvent() {
// Create AdBrixRM Instance
let adBrix = AdBrixRM.getInstance
// Event AttrModel
let attrModel = AdBrixRmAttrModel()
attrModel.setAttrDataString("nickname", "peter")
attrModel.setAttrDataInt("age", 36)
attrModel.setAttrDataInt("credit", 10000)
attrModel.setAttrDataBool("married", true)
// Product Option AttrModel
let productAttr1 = AdBrixRmAttrModel()
productAttr1.setAttrDataString("product_type", "computer")
productAttr1.setAttrDataString("color", "black")
productAttr1.setAttrDataInt("size", 36)
productAttr1.setAttrDataInt("current_point", 123456)
productAttr1.setAttrDataBool("promotion", true)
// Product Model
let productModel1 = adBrix.createCommerceProductDataWithAttr(
productId: "productID_1",
productName: "productname 1",
price: 123456.00,
quantity: 1,
discount: 2500.00,
currencyString: adBrix.getCurrencyString(AdBrixRM.AdBrixRmCurrencyType.KRW.rawValue),
category: adBrix.createCommerceProductCategoryData(category: "computer", category2: "PC", category3: "cd-rom", category4: "software", category5: "game"),
productAttrsMap: productAttr1)
// Product Option AttrModel
let productAttr2 = AdBrixRmAttrModel()
productAttr2.setAttrDataString("product_type", "pants")
productAttr2.setAttrDataString("color", "blue")
productAttr2.setAttrDataInt("size", 42)
productAttr2.setAttrDataInt("current_point", 234423)
productAttr2.setAttrDataBool("promotion", false)
// Product Model
let productModel2 = adBrix.createCommerceProductDataWithAttr(
productId: "productID_2",
productName: "product 2",
price: 700000.00,
quantity: 1,
discount: 3500.00,
currencyString: adBrix.getCurrencyString(AdBrixRM.AdBrixRmCurrencyType.KRW.rawValue),
category: adBrix.createCommerceProductCategoryData(category: "cloth", category2: "pants", category3: "jean", category4: "longpants", category5: "sales"),
productAttrsMap: productAttr2)
// Product List Array
var proArr : Array<AdBrixRmCommerceProductModel> = Array()
proArr.append(productModel1)
proArr.append(productModel2)
// Cart View API
adBrix.commerceCartViewWithAttr(productInfo: proArr, orderAttr: attrModel)
}
- (void)cartViewEvent() {
// Create AdBrix Instance
AdBrixRM *adbrix = [AdBrixRM sharedInstance];
// Create Event AttrMode
AdBrixRmAttrModel * attrModel = [AdBrixRmAttrModel new];
[attrModel setAttrDataString:@"nickname" :@"peter"];
[attrModel setAttrDataInt:@"age" :36];
[attrModel setAttrDataInt:@"credit" :5000.00];
[attrModel setAttrDataBool:@"married" :true];
// Product Option AttrModel
AdBrixRmAttrModel * productAttr1 = [AdBrixRmAttrModel new];
[productAttr1 setAttrDataString:@"product_type" :@"computer"];
[productAttr1 setAttrDataString:@"color" :@"black"];
[productAttr1 setAttrDataInt:@"size" :36];
[productAttr1 setAttrDataInt:@"cruurent_point" :123456];
[productAttr1 setAttrDataBool:@"promotion" :true];
// Product Model
AdBrixRmCommerceProductModel * product1 = [adBrix createCommerceProductDataWithAttrWithProductId:@"productID1"
productName:@"productName1"
price:10000.00
quantity:1
discount:2500.00
currencyString:[adBrix getCurrencyString:AdBrixRmCurrencyTypeKRW]
category:[adBrix createCommerceProductCategoryDataWithCategory:@"cumputer" category2:@"PC" category3:@"cd-rom" category4:@"software" category5:@"game"]
productAttrsMap:productAttr1];
// Event AttrMode
AdBrixRmAttrModel * productAttr2 = [AdBrixRmAttrModel new];
[productAttr2 setAttrDataString:@"product_type" :@"pants"];
[productAttr2 setAttrDataString:@"color" :@"blue"];
[productAttr2 setAttrDataInt:@"size" :42];
[productAttr2 setAttrDataInt:@"cruurent_point" :23433];
[productAttr2 setAttrDataBool:@"promotion" :false];
// Product Model
AdBrixRmCommerceProductModel * product2 = [adBrix createCommerceProductDataWithAttrWithProductId:@"productID2"
productName:@"productName2"
price:23456.22
quantity:1
discount:2500.33
currencyString:[adBrix getCurrencyString:AdBrixRmCurrencyTypeKRW]
category:[adBrix createCommerceProductCategoryDataWithCategory:@"cloth" category2:@"pants" category3:@"jeans" category4:@"long pants" category5:@"sale"]
productAttrsMap:productAttr2];
// product List Array
NSMutableArray *productArray = [NSMutableArray array];
[productArray addObject:product1];
[productArray addObject:product2];
// Cart View API
[adBrix commerceCartViewWithAttrWithProductInfo:productArray orderAttr:attrModel];
}
결제정보 입력하기
사용자가 결제정보를 입력한 이벤트를 분석합니다.
@IBAction func paymentInfoAddedEvent(_ sender: Any) {
// Create AdBrixRM Instance
let adBrix = AdBrixRM.getInstance
// Event AttrModel
let attrModel = AdBrixRmAttrModel()
attrModel.setAttrDataString("nickname", "peter")
attrModel.setAttrDataString("creditcard", "kbcard")
attrModel.setAttrDataInt("age", 36)
attrModel.setAttrDataInt("credit", 10000)
attrModel.setAttrDataBool("married", true)
// Payment API
adBrix.commercePaymentInfoAddedWithAttr(paymentInfoAttr: attrModel)
}
- (void)paymentInfoAddedEvent() {
// Create AdBrixRM instance
AdBrixRM *adBrix = [AdBrixRM sharedInstance];
// payment attrModel
AdBrixRmAttrModel * attrModel = [AdBrixRmAttrModel new];
[attrModel setAttrDataString:@"nickname" :@"peter"];
[attrModel setAttrDataString:@"paymentinfo" :@"creditCard"];
[attrModel setAttrDataInt:@"age" :36];
[attrModel setAttrDataInt:@"credit" :5000.00];
[attrModel setAttrDataBool:@"married" :true];
// Payment API
[adBrix commercePaymentInfoAddedWithAttrWithPaymentInfoAttr:attrModel];
}
게임 이벤트 분석
앱에서 발생하는 게임과 관련된 이벤트(튜토리얼, 스테이지 등)를 분석합니다.
디파이너리(애드브릭스)에서 제공하는 게임 이벤트 종류는 다음과 같습니다.
- 튜토리얼 완료
- 캐릭터 생성
- 스테이지 완료
- 레벨 달성
튜토리얼 완료
앱에서 발생한 튜토리얼 완료 이벤트를 분석합니다.
다음과 같은 튜토리얼 완료 정보를 구성하여 전달합니다.
- isSkip : (필수) 건너뛰기(skip)를 통한 완료인지 여부
@IBAction func tutorialCompleteEvent(){
// Create AdBrixRM Instance
let adBrix = AdBrixRM.getInstance
// Event AttrModel
let attrModel = AdBrixRmAttrModel()
attrModel.setAttrDataString("nickname", "peter")
attrModel.setAttrDataInt("age", 36)
attrModel.setAttrDataInt("credit", 10000)
attrModel.setAttrDataBool("married", true)
// Tutorial Complete API
adBrix.gameTutorialCompletedWithAttr(isSkip: true, gameInfoAttr: attrModel)
}
-(void) tutorialCompleteEvent {
// Create AdBrixRM instance
AdBrixRM *adBrix = [AdBrixRM sharedInstance];
// Event AttrMode
AdBrixRmAttrModel * attrModel = [AdBrixRmAttrModel new];
[attrModel setAttrDataString:@"nickname" :@"peter"];
[attrModel setAttrDataInt:@"age" :36];
[attrModel setAttrDataInt:@"credit" :5000.00];
[attrModel setAttrDataBool:@"married" :true];
// Tutorial Complete API
[adBrix gameTutorialCompletedWithAttrWithIsSkip:false gameInfoAttr:attrModel];
}
캐릭터 생성
앱에서 발생한 캐릭터 생성 이벤트를 분석합니다.
@IBAction func characterCreatedEvent(){
// Create AdBrix Instance
let adBrix = AdBrixRM.getInstance
// Event AttrModel
let attrModel = AdBrixRmAttrModel()
attrModel.setAttrDataString("nickname", "peter")
attrModel.setAttrDataInt("age", 36)
attrModel.setAttrDataInt("credit", 10000)
attrModel.setAttrDataBool("married", true)
// Create Character API
adBrix.gameCharacterCreatedWithAttr(gameInfoAttr: attrModel)
}
-(void) characterCreatedEvent {
// create AdBrixRM instance
AdBrixRM *adBrix = [AdBrixRM sharedInstance];
// Create Event AttrMode
AdBrixRmAttrModel * attrModel = [AdBrixRmAttrModel new];
[attrModel setAttrDataString:@"nickname" :@"peter"];
[attrModel setAttrDataInt:@"age" :36];
[attrModel setAttrDataInt:@"credit" :5000.00];
[attrModel setAttrDataBool:@"married" :true];
// Create character API
[adBrix gameCharacterCreatedWithAttrWithGameInfoAttr:attrModel];
}
스테이지 완료
앱에서 발생한 스테이지 완료 이벤트를 분석합니다.
다음과 같은 스테이지 완료 정보를 구성하여 전달합니다.
- stageName : (필수) 완료한 스테이지 이름
@IBAction func stageClearedEvent(){
// Create AdBrixRM Instance
let adBrix = AdBrixRM.getInstance
// Event AttrModel
let attrModel = AdBrixRmAttrModel()
attrModel.setAttrDataString("nickname", "peter")
attrModel.setAttrDataInt("age", 36)
attrModel.setAttrDataInt("credit", 10000)
attrModel.setAttrDataBool("married", true)
// Stage Complete API
adBrix.gameStageClearedWithAttr(stageName: "1-5", gameInfoAttr: attrModel)
}
-(void) stageClearedEvent {
// Create AdBrixRM instance
AdBrixRM *adBrix = [AdBrixRM sharedInstance];
// Event AttrMode
AdBrixRmAttrModel * attrModel = [AdBrixRmAttrModel new];
[attrModel setAttrDataString:@"nickname" :@"peter"];
[attrModel setAttrDataInt:@"age" :36];
[attrModel setAttrDataInt:@"credit" :5000.00];
[attrModel setAttrDataBool:@"married" :true];
// Stage Complete API
[adBrix gameStageClearedWithAttrWithStageName:@"1-43" gameInfoAttr:attrModel];
}
레벨 달성
앱에서 발생한 레벨 달성 이벤트를 분석합니다.
다음과 같은 레벨 달성 정보를 구성하여 전달합니다.
- level : (필수) 달성한 레벨 (1~10000)
@IBAction func levelAchievedEvent(){
// Create AdBrixRM Instance
let adBrix = AdBrixRM.getInstance
// Event AttrModel
let attrModel = AdBrixRmAttrModel()
attrModel.setAttrDataString("nickname", "peter")
attrModel.setAttrDataInt("age", 36)
attrModel.setAttrDataInt("credit", 10000)
attrModel.setAttrDataBool("married", true)
// Level up API
adBrix.gameLevelAchievedWithAttr(level: 55, gameInfoAttr: attrModel)
}
-(void) levelAchievedEvent {
// Create AdBrixRM instance
AdBrixRM *adBrix = [AdBrixRM sharedInstance];
// Event AttrMode
AdBrixRmAttrModel * attrModel = [AdBrixRmAttrModel new];
[attrModel setAttrDataString:@"nickname" :@"peter"];
[attrModel setAttrDataInt:@"age" :36];
[attrModel setAttrDataInt:@"credit" :5000.00];
[attrModel setAttrDataBool:@"married" :true];
// Level up API
[adBrix gameLevelAchievedWithAttrWithLevel:122 gameInfoAttr:attrModel];
}