디파이너리(애드브릭스) 연동하기 [iOS]
팔로우
Quick Start
디파이너리를 사용하기 위한 최소한의 연동 단계를 안내합니다.
[[인용:경고:보통]] System Requirement
디파이너리 iOS SDK는 다음의 환경에서 동작합니다.
1. 빌드 환경 : Xcode
2. Xcode version : 14.1 이상 (최신 버전 사용을 권장 드립니다.)
CocoaPods 을 통한 SDK 설치
기존 Xcode 프로젝트에 SDK를 설치하여 시작하려면 다음의 안내를 따릅니다.
CocoaPods 준비
CocoaPods는 Podfile 이라는 문서 파일 안에 몇 줄의 설정을 입력하면 자동으로 외부 라이브러리를 다운로드, 설치 및 설정까지 돕는 툴입니다.
adbrix 는 CocoaPods를 통한 자동 설치를 지원하며 적극 권장합니다.
Podfile 생성
프로젝트 폴더로 이동하여 터미널에 다음 명령어를 입력하여 Podfile을 생성합니다.
$ pod init
Podfile 편집
target "myXcodeProject" do
use_frameworks!
pod 'AdBrixRmKit'
end
[[인용:위험:작게]] 반드시 명시된 버전의 SDK 를 사용해 주시길 바랍니다.
[[인용:안내:보통]] 디파이너리 iOS v2 SDK 릴리즈 안내
새로운 기능이 추가된 v2 SDK가 릴리즈 되었습니다. 아래 문서를 통해 업데이트 방법을 확인해보세요!
[디파이너리 iOS v2 SDK 릴리즈 안내문서 확인하기]
* platform의 숫자는 XCode 프로젝트에서 지원하는 최소 iOS 버전을 의미합니다.
* 일반 텍스트 에디터에서는 인코딩 문제로 오류가 발생할 수 있습니다.
SDK Pod Install
터미널에서 다음 명령어를 입력하고 실행하여 디파이너리(애드브릭스) SDK를 설치합니다.
$ pod install
[[인용:안내:보통]] pod install error 발생 시 "pod setup" 명령어를 실행해주세요.
Swift Library 설정
디파이너리(애드브릭스) SDK 는 Swift로 작성되었기 때문에, Objective-C 기반 프로젝트에서는 다음과 같은 설정을 해주어야 합니다.
[Build Settings > Always Embed Swift Standard Libraries]를 'yes'로 설정합니다.
SDK import 경로
SDK 사용 준비가 완료되면 아래와 같이 SDK 에 대한 import 경로를 사용합니다.
앱키 & 시크릿키 설정
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)을 다음과 같이 전달합니다.
[[인용:경고:보통]] 로그인 유의 사항
로그인에 사용되는 user id는 그로스액션 기능 사용 시 유저-기기간 매칭을 위해 사용됩니다. 로그인 후 로그아웃 없이 다시 로그인이 호출 될 경우 올바른 매칭이 되지 않을 수 있습니다.
user id에 개인정보가 포함되지 않도록 주의해주세요. 만약 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"]; } }
유저 정보
유저의 나이, 성별, 기타 정보에 대해 분석할 수 있습니다.
[[인용:경고:보통]] 유저 정보 설정 시 유의 사항
유저아이디, 나이, 성별에 대해서는 각각 login, setAge, setGender API를 사용해주세요
@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) 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]; AdBrixRmAttrModel * attrModel = [AdBrixRmAttrModel new]; [attrModel setAttrDataString:@"city" :@"seoul"]; [attrModel setAttrDataBool:@"married" :true]; [adBrix setUserPropertiesWithAttrWithAttrModel:attrModel]; }
[[인용:위험:보통]] AttrModel 설정 시 유의 사항
1.100 개이상의 정보는 처리되지 않습니다.
2. Key 값의 데이터 타입은 string 이며 50자를 넘을 수 없고, 영문 소문자, 숫자를 제외한 나머지 문자는 사용할 수 없습니다.
3. Value 값의 데이터 길이는 byte 기준으로 1024byte 를 넘을 수 없습니다. 또한 Int, Long, Boolean, String 타입만 사용할 수 있습니다.
4. Value 값으로 null 값은 사용할 수 없습니다.
커스텀 분석
앱 내 사용자의 일반적인 모든 이벤트를 분석합니다. (구매 이벤트 제외)
앱 내에서 '버튼 클릭', '캐릭터 생성', '튜토리얼 완료', '레벨 업' 등의 대부분의 액션을 자유롭게 분석할 수 있습니다.
@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("quantity", 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:@"quantity" :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 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]; AdBrixRmAttrModel * attrModel = [AdBrixRmAttrModel new]; [attrModel setAttrDataString:@"nickname" :@"peter"]; [attrModel setAttrDataString:@"grade" :@"vip"]; [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:@"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:@"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:@"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("quantity", 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:@"quantity" :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("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:@"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("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:@"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("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:@"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("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:@"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("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:@"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("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:@"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("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:@"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("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:@"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("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:@"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("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:@"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("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:@"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("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:@"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("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:@"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("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:@"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("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:@"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("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:@"credit" :5000.00];
[attrModel setAttrDataBool:@"married" :true];
// Level up API
[adBrix gameLevelAchievedWithAttrWithLevel:122 gameInfoAttr:attrModel];
}