애드브릭스 iOS 연동하기 [Objective-C]
팔로우
Quick Start
[[인용:위험:작게]] 2020.12.18 ObjC 로 만들어진 프로젝트에서 시뮬레이터 테스트가 불가능합니다.
원인을 확인 중에 있으며 테스트시에는 실 기기에서 테스트를 부탁드립니다.
System Requirement
Build Tool : Xcode 최신 버전을 사용해야 합니다.
추가 사항 : AdBrix SDK 는 Swift 로 제작되었습니다. 그러므로 여러분의 프로젝트에서 사용하는 Swift Library 최신버전을 지원해야 합니다. (현재 최신 버전 : Swif 5.3)
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, '8.0' target "myXcodeProject" do pod 'AdBrixRemastered' end
* platform의 숫자는 XCode 프로젝트에서 지원하는 최소 ios 버전을 의미합니다.
* 일반 텍스트 에디터에서는 인코딩 문제로 오류가 발생할 수 있습니다.
*. 1.2.9 버전부터 pod 명칭이 AdBrixRemastered 로 변경되었습니다.
SDK Pod Install
터미널에서 다음 명령어를 입력하고 실행하여 adbrix SDK를 설치합니다.
$ pod install
* TroubleShooting!!! pod install error 발생 시 "pod setup" 명령어를 실행해주세요.
SDK Pod Update
이미 adbrix SDK가 설치된 상태에서 최신의 SDK를 적용하기 위해서는 터미널에서 다음 명령어를 입력합니다.
$ pod setup $ pod update
Open XCode Project
adbrix SDK 설치가 완료된 뒤, 터미널에서 {프로젝트명}.xcworkspace 파일을 열어 XCode를 실행하면, 설치된 adbrix pods 를 확인할 수 있습니다.
$ open myXcodeProject.xcworkspace
필수 프레임워크 추가
adbrix SDK가 동작하는데 필요한 iAd 프레임워크를 추가합니다.
[General > Linked Frameworks and Libraries] 로 이동하여 (+) 버튼을 클릭한 뒤, "iAd.framework" 를 추가합니다.
Swift Library 설정
adbrix SDK 는 Swift로 작성되었기 때문에, Xcode프로젝트에서 다음과 같은 설정을 해주어야 합니다.
[Build Settings > Always Embed Swift Standard Libraries]를 'yes'로 설정합니다.
애플광고식별자(IDFA) 설정
adbrix Attribution 등의 광고 관련 기능을 이용하기 위해서는 반드시 애플광고식별자를 등록해야 합니다.
[AppDelegate.m > application: didFinishLaunchingWithOptions:] 에서 다음과 같이 IDFA를 설정합니다.
#import "AppDelegate.h" #import <AdSupport/AdSupport.h> #import <AdBrixRM/AdBrixRM-Swift.h> @interface AppDelegate () @end @implementation AppDelegate - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { // Override point for customization after application launch. // AdBrixRM 인스턴스 생성 AdBrixRM *adBrix = [AdBrixRM sharedInstance]; if ((NSClassFromString(@"ASIdentifierManager")) != nil) { NSUUID *ifa =[[ASIdentifierManager sharedManager]advertisingIdentifier]; [adBrix setAppleAdvertisingIdentifier:[ifa UUIDString]]; } return YES; }
1.6.5330 버전 이후부터는 아래와 같이 IDFA 사용 여부를 on / off 할 수 있습니다.
#import "AppDelegate.h" #import <AdSupport/AdSupport.h> #import <AdBrixRM/AdBrixRM-Swift.h> @interface AppDelegate () @end @implementation AppDelegate - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { // Override point for customization after application launch. // AdBrixRM 인스턴스 생성 AdBrixRM *adBrix = [AdBrixRM sharedInstance]; [adBrix.stopGettingIDFA]; // Stop using IDFA [adBrix.startGettingIDFA]; // Start using IDFA return YES; }
앱키&시크릿키 설정
adbrix 콘솔에서 발급받은 앱키&시크릿키를 등록합니다.
#import <AdBrixRM/AdBrixRM-Swift.h> - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { // Override point for customization after application launch. // AdBrixRM 인스턴스 생성 AdBrixRM *adBrix = [AdBrixRM sharedInstance]; // AdBrix 앱키&시크릿키 설정 [adBrix initAdBrixWithAppKey:@"odhvASVRDsdf10d019fva" secretKey:@"ar98LszQZUGdmSznToNBXg"]; return YES; }
[[인용:안내:보통]]앱키 & 시크릿키 확인
_ 앱키와 시크릿키는 애드브릭스가 앱을 구분하기 위한 식별값입니다.
_ Android, iOS에 동일한 키값이 연동되어야 합니다.
_ SDK 연동을 위해서 반드시 필요한 값으로, 애드브릭스 콘솔에서 앱 등록 후 확인할 수 있습니다.
앱키, 시크릿키 확인 방법 / 애드브릭스 콘솔 바로가기
샘플프로젝트에서 시작
adbrix에서는 이미 SDK가 설치된 Xcode 프로젝트를 제공합니다.
아래 주소에서 각 언어별 프로젝트를 다운로드하여 코드를 작성하고 연동을 확인할 수 있습니다.
[adbrix Swift Sample Project link]
[adbrix Objective-C Sample Project link]
SDK 추가 설정
adbrix SDK를 기본 설정이 완료되면 아래와 같이 SDK에 대한 추가 설정을 진행할 수 있습니다.
- 로그 레벨 설정
- 이벤트 업로드 주기 설정
- GDPR 설정
* 초기화 작업은 AppDelegate.m 에서 진행해야하며, 이외의 곳에서 진행했을 때에는 예상하지 못한 문제가 발생할 수 있습니다.
로그 레벨 설정
adbrix SDK의 동작과 관련한 로그의 출력 수준을 설정합니다.
로그레벨은 1단계인 미출력을 포함하여 총 6단계로 구성되며, 2~6단계에서는 상위 레벨이 하위 레벨의 로그를 모두 포함하도록 구성되어 있습니다.
- AdBrixLogLevelNONE : 로그를 출력하지 않습니다.
- AdBrixLogLevelTRACE : 일반적인 내용이 담긴 개발 수준의 로그를 출력합니다.
- AdBrixLogLevelDEBUG : TRACE를 포함한 디버깅용으로 작성한 개발 수준의 로그를 출력합니다.
- AdBrixLogLevelINFO : TRACE, DEBUG를 포함한 데이터 저장, 로드, 전송 등 중요 수준의 로그를 출력합니다.
- AdBrixLogLevelWARNING : TRACE, DEBUG, INFO를 Exception등의 치명적 오류가 아니나, 정상적 데이터 핸들링을 할 수 없는 위험이 있는 상태에 대한 로그를 출력합니다.
- AdBrixLogLevelERROR : TRACE, DEBUG, INFO, WARNING을 모두 포함한 Exception등의 치명적 오류로그까지 출력합니다.
#import <AdBrixRM/AdBrixRM-Swift.h> - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { // Override point for customization after application launch. // AdBrixRM 인스턴스 생성 AdBrixRM *adBrix = [AdBrixRM sharedInstance]; // AdBrix Log Level 설정 [adBrix setLogLevel:AdBrixLogLevelERROR]; return YES; }
이벤트 업로드 주기 설정
adbrix SDK 에 전달된 이벤트를 adbrix 서버로 전송하는 기준을 설정할 수 있습니다.
이벤트 업로드 주기를 누적 이벤트 개수와 시간으로 설정할 수 있습니다.
* 두 가지 기준 중 먼저 충족되는 기준에 따라서 이벤트가 업로드 됩니다.
누적 이벤트 개수 기준
설정된 개수만큼 이벤트가 누적되었을 때에 adbrix 서버로 이벤트를 업로드하도록 설정합니다.
adbrix SDK에 사전 정의된 아래의 값을 이용하여 설정합니다.
- AdBrixEventUploadCountIntervalMIN : 10건
- AdBrixEventUploadCountIntervalNORMAL : 30건
- AdBrixEventUploadCountIntervalMAX : 60건
#import <AdBrixRM/AdBrixRM-Swift.h> - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { // Override point for customization after application launch. // AdBrixRM 인스턴스 생성 AdBrixRM *adBrix = [AdBrixRM sharedInstance]; // 이벤트 업로드 주기 설정 : 누적 이벤트가 10건일 때, AdBrix 서버로 이벤트 업로드 [adBrix setEventUploadCountInterval:AdBrixEventUploadCountIntervalMIN]; return YES; }
시간 기준
설정된 시간이 지나면 adbrix 서버로 이벤트를 업로드하도록 설정합니다.
adbrix SDK에 사전 정의된 아래의 값을 이용하여 설정합니다.
- AdBrixEventUploadTimeIntevalMIN : 30초
- AdBrixEventUploadTimeIntevalNORMAL :60초
- AdBrixEventUploadTimeIntevalMAX :120초
#import <AdBrixRM/AdBrixRM-Swift.h> - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { // Override point for customization after application launch. // AdBrixRM 인스턴스 생성 AdBrixRM *adBrix = [AdBrixRM sharedInstance]; // 이벤트 업로드 주기 설정 : 120초마다 AdBrix 서버로 이벤트 업로드 [adBrix setEventUploadTimeInterval:AdBrixEventUploadTimeIntervalMAX]; return YES; }
GDPR 설정
GDPR 요청 이벤트를 이용하여 사용자 요청에 대해 데이터 주체와 연관된 모든 개인 데이터를 삭제할 수 있습니다.
본 이벤트 호출시, SDK 동작은 정지되며 모든 이벤트 저장, 전송 등이 불가합니다.
본 기능은 사용자가 앱을 삭제 후, 재설치하기 전에는 되돌릴 수 없습니다.
- (IBAction)click_gdprForgetMe:(id)sender { // AdBrixRM 인스턴스 생성 AdBrixRM *adBrix = [AdBrixRM sharedInstance]; [adBrix gdprForgetMe]; }
딥링크 / 디퍼드 딥링크 이벤트 분석
딥링크가 설정된 url 을 통해서 오픈된 이벤트를 분석합니다.
분석을 하기 위해서는 앱에 custom url scheme 이 설정되어 있어야 합니다.
Custom Url Scheme 설정
[General > Target > Info > URL Types] 로 이동하여 다음과 같이 URL Scheme 을 설정합니다.
유니버셜 링크
[General > Target > Capablities> Associated Domains] 로 이동하여 다음과 같이 유니버셜 링크를 설정합니다.
[[인용:경고:보통]] 유니버셜 링크 추가 시 applinks:your_appkey.adtouch.adbrix.io 로 추가하며 "your_appkey" 항목에는 연동시 사용하시는 Appkey 를 추가해야 합니다.
이후 AppDelegate.m 에 아래와 같이 코드를 추가합니다.
-(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; }
딥링크 오픈 이벤트
AppDelegate.m 에 application: openURL: delegate를 추가하고 다음과 같이 트래킹 코드를 호출합니다.
#if __IPHONE_OS_VERSION_MAX_ALLOWED < __IPHONE_9_0 - (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation { // AdBrixRM 인스턴스 생성 AdBrixRM *adBrix = [AdBrixRM sharedInstance]; // 딥링크 트래킹 코드 호출 [adBrix deepLinkOpenWithUrl:url]; return YES; } #else - (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary *)options { // AdBrixRM 인스턴스 생성 AdBrixRM *adBrix = [AdBrixRM sharedInstance]; // 딥링크 트래킹 코드 호출 [adBrix deepLinkOpenWithUrl:url]; return YES; } #endif
iOS13 부터 추가된 UIScene 을 사용할 경우 sceneDelegate.m 에 아래와 같이 추가합니다.
#import <AdBrixRM/AdBrixRM-Swift.h> @interface SceneDelegate () @end @implementation SceneDelegate - (void)scene:(UIScene *)scene willConnectToSession:(UISceneSession *)session options:(UISceneConnectionOptions *)connectionOptions { // AdBrixRM 인스턴스 생성 AdBrixRM *adBrix = [AdBrixRM sharedInstance]; if ((connectionOptions.URLContexts.allObjects.firstObject.URL) != nil) { NSURL *url = connectionOptions.URLContexts.allObjects.firstObject.URL; // 딥링크 트래킹 코드 호출 [adBrix deepLinkOpenWithUrl:url]; } } - (void)scene:(UIScene *)scene openURLContexts:(NSSet<UIOpenURLContext *h> *)URLContexts { NSURL *url = URLContexts.allObjects.firstObject.URL; // AdBrixRM 인스턴스 생성 AdBrixRM *adBrix = [AdBrixRM sharedInstance]; // 딥링크 트래킹 코드 호출 [adBrix deepLinkOpenWithUrl:url]; }
디퍼드 딥링크 트랙킹
트랙킹 링크를 통해 앱을 설치 후 실행시 트랙킹 링크 내 첨부된 딥링크 정보를 이용하여 특정 화면으로 랜딩시키고자 할 경우 위 딥링크 코드와 함께 코드를 추가합니다.
[[인용:위험:작게]] - 디퍼드 딥링크에서 전달되는 값은 아래 예시와 같이 string 값으로 전달 됩니다.
예시 : yourscheme://your_custom_path
AppDelegate.h
#import <UIKit/UIKit.h> #import <AdBrixRM/AdBrixRM-Swift.h> @interface AppDelegate : UIResponder <UIApplicationDelegate, AdBrixRMDeferredDeeplinkDelegate> @property (strong, nonatomic) UIWindow *window; @end
AppDelegate.m
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { // Override point for customization after application launch. AdBrixRM *adBrix = [AdBrixRM sharedInstance]; // 딥링크 델리게이트 추가 [adBrix setDeferredDeeplinkDelegateWithDelegate:self]; if ((NSClassFromString(@"ASIdentifierManager")) != nil) { NSUUID *ifa =[[ASIdentifierManager sharedManager]advertisingIdentifier]; [adBrix setAppleAdvertisingIdentifier:[ifa UUIDString]]; } return YES; } // 디퍼드 딥링크 트랙킹 - (void)didReceiveDeferredDeeplinkWithDeeplink:(NSString * _Nonnull)deeplink { NSLog(@"ADBRIXRM DEEPLINK RECEIVE : %@ ", deeplink); //deeplink 로 넘겨주는 딥링크 정보를 사용하여 해당 페이지로 랜딩합니다. }
[[인용:경고:보통]] 리스너가 호출되지 않습니다!!!
구현하신 리스너로 디퍼드딥링크 정보가 전달되지 않을 때에는 다음의 사항을 확인해주세요.
1. 트래킹링크를 통해서 전환이 발생하지 않았습니다.
2. 트래킹링크에 딥링크가 설정되지 않았습니다.
[[인용:위험:작게]] Facebook SDK의 fetchDeferredAppLinkData API 를 사용할 수 없습니다 .
Facebook 광고시 사용하는 fetchDeferredApplinkData 의 역할을 저희 DeferredDeeplink API 가 대신하므로 이를 중복해서 사용할 수 없습니다. 사용하고 계시다면 삭제를 부탁드립니다.
SDK 초기화 전체 예시
위 5가지 항목을 모두 연동했을 때의 연동 코드는 다음과 같습니다.
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { AdBrixRM *adBrix = [AdBrixRM sharedInstance]; //1) 애플 광고 식별자 설정 if (NSClassFromString(@"ASIdentifierManager")){ NSUUID *ifa =[[ASIdentifierManager sharedManager]advertisingIdentifier]; [adBrix setAppleAdvertisingIdentifier:[ifa UUIDString]]; } //2) 로그 레벨 설정 [adBrix setLogLevel:AdBrixLogLevelTRACE]; //3) 이벤트 업로드 주기 설정 : 개수 / 시간 [adBrix setEventUploadCountInterval:AdBrixEventUploadCountIntervalMIN]; [adBrix setEventUploadTimeInterval:AdBrixEventUploadTimeIntervalMAX]; //4) 앱키 설정 [adBrix initAdBrixWithAppKey:@"odhvASVRDsdf10d019fva" secretKey:@"ar98LszQZUGdmSznToNBXg"]; return YES; } #if __IPHONE_OS_VERSION_MAX_ALLOWED < __IPHONE_9_0 - (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation { // AdBrixRM 인스턴스 생성 AdBrixRM *adBrix = [AdBrixRM sharedInstance]; // 딥링크 트래킹 코드 호출 [adBrix deepLinkOpenWithUrl:url]; return YES; } #else - (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary *)options { // AdBrixRM 인스턴스 생성 AdBrixRM *adBrix = [AdBrixRM sharedInstance]; // 딥링크 트래킹 코드 호출 [adBrix deepLinkOpenWithUrl:url]; return YES; } #endif
이벤트 분석
앱에서 발생하는 인-앱 이벤트(in-app event)를 분석하여 리포트를 구성하고 포스트백을 전송할 수 있습니다.
이벤트 분석을 위해서는 이벤트가 발생하는 시점에 이벤트 분석 코드를 삽입하고 이벤트 식별값을 전송하여야 합니다.
adbrix 는 크게 3가지 분류의 분석을 제공합니다.
- 유저 분석
- 로그인/로그아웃 이벤트
- 유저 정보
- 위치 정보
- 커스텀 분석
- 공통(일반) 분석
- 회원가입
- 앱 업데이트
- 사용자 초대
- 크레딧 사용
- 구매하기
- 커머스 분석
- 상품상세보기
- 장바구니담기
- 관심상품추가
- 주문확인하기
- 주문취소하기
- 상품검색하기
- 상품공유하기
- 상품목록 조회하기
- 장바구니 조회하기
- 결제 정보 입력하기
- 게임 분석
- 튜토리얼 완료
- 캐릭터 생성
- 스테이지 완료
- 레벨 달성
유저 분석
로그인/로그아웃 이벤트
사용자의 로그인/로그아웃 이벤트를 분석합니다.
로그인이 성공하였을 때, 유저를 구분하는 식별값(user id)을 다음과 같이 전달합니다.
- (void)loginAndLogoutEvent { // AdBrix 인스턴스 생성 AdBrixRM *adBrix = [AdBrixRM sharedInstance]; if(isSuccessLogin) { // 로그인이 성공했을 때, "user_1234"와 같은 유저아이디를 전달 [adBrix loginWithUserId:@"user_1234"]; } }
* loginWithUserId 로 전달되는 유저 아이디에 개인정보가 포함되지 않도록 주의해주세요. 만약 이메일, 전화번호 등의 개인정보가 포함되는 경우에는 적절한 암호화(BASE64, MD5, SHA1 등) 처리를 하시는 것을 권장합니다.
유저 정보
유저의 나이, 성별, 기타 정보에 대해 분석할 수 있습니다.
- (void)userPropertyUpdate { // AdBrix 인스턴스 생성 AdBrixRM *adBrix = [AdBrixRM sharedInstance]; //유저 나이 NSInteger age = 30; [adBrix setAgeWithInt:age]; //유저 성별 [adBrix setGenderWithAdBrixGenderType:AdBrixGenderTypeFemale]; //기타 유저 정보 AdBrixRmAttrModel * attrModel = [AdBrixRmAttrModel alloc]; [attrModel setAttrDataString:@"gender" :@"male"]; [attrModel setAttrDataInt:@"age" :36]; [attrModel setAttrDataInt:@"credit" :5000.00]; [attrModel setAttrDataBool:@"married" :true]; [adBrix setUserPropertiesWithAttrWithAttrModel:attrModel]; }
[[인용:위험:보통]] UserProperty 및 AttrModel 설정 시 유의 사항
1.100 개이상의 정보는 처리되지 않습니다.
2. Key 값의 데이터 타입은 string 이며 256자를 넘을 수 없고, 영문 소문자, 숫자를 제외한 나머지 문자는 사용할 수 없습니다.
3. Value 값의 데이터 길이는 byte 기준으로 1024byte 를 넘을 수 없습니다.
위치 정보
사용자의 위치 정보를 얻을 수 있는 경우, 이를 분석할 수 있습니다.
- (void)locationUpdate { // AdBrix 인스턴스 생성 AdBrixRM *adBrix = [AdBrixRM sharedInstance]; double lat = 37.541; double lon = 126.986; // 위치 정보 업데이트 [adBrix setLocationWithLatitude:lat longitude:lon]; }
* 위치 정보 사용에 대한 동의에 대한 책임은 adbrix 가 아닌 앱 개발 및 운영 주체입니다.
커스텀 이벤트
앱 내 사용자의 일반적인 모든 이벤트를 분석합니다. (구매 이벤트 제외)
앱 내에서 '버튼 클릭', '캐릭터 생성', '튜토리얼 완료', '레벨 업' 등의 대부분의 액션을 자유롭게 분석할 수 있습니다.
- (void)userCustomEvent { // AdBrix 인스턴스 생성 AdBrixRM *adBrix = [AdBrixRM sharedInstance]; // 이벤트 추가 정보 설정 AdBrixRmAttrModel * attrModel = [AdBrixRmAttrModel alloc]; [attrModel setAttrDataString:@“userid” :@“peterPark1234"]; [attrModel setAttrDataString:@“gender” :@“male”]; [attrModel setAttrDataInt:@“age” :36]; // "친구초대" 버튼 클릭 [adBrix eventWithAttrWithEventName:@"invite_button_click" value:attrModel]; // "캐릭터 생성" 완료 [adBrix eventWithAttrWithEventName:@"create_character_complete" value:attrModel]; // "튜토리얼 보기" 완료 [adBrix eventWithAttrWithEventName:@"tutorial_complete" value:attrModel]; // "레벨 10 달성" 완료 [adBrix eventWithAttrWithEventName:@"level_10" value:attrModel]; }
[[인용:위험:보통]] 커스텀 이벤트는 호출된 순서대로 최대 100개까지만 설정 가능합니다.
※ 주의사항
커스텀 이벤트를 아래 케이스와 같이 거의 모든 상황에 대하여 이벤트명을 설정하게 되면 각 상황에 따라 무수히 많은 이벤트를 생성하게 됩니다.
// AdBrix 인스턴스 생성 AdBrixRM *adBrix = [AdBrixRM sharedInstance]; [adBrix eventWithEventName: @"custom:Lev-37 cleared,clearTime:00:00:39.2343535"];
그러므로 이 경우에는 이벤트 추가 정보를 설정(AdBrixRm.AttrModel)하여 커스텀 파라미터를 설정하여 이벤트를 호출해 주시길 부탁드립니다.
// AdBrix 인스턴스 생성 AdBrixRM *adBrix = [AdBrixRM sharedInstance]; // 이벤트 추가정보 설정 AdBrixRmAttrModel * attrModel = [AdBrixRmAttrModel alloc]; [attrModel setAttrDataInt:@“level” :37]; [attrModel setAttrDataInt:@“clear_time_mile” :39238]; // 이벤트 파라미터와 함께 커스텀 이벤트 API 호출 [adBrix eventWithAttrWithEventName:@"level_clear" value:attrModel];
공통(일반)이벤트 분석
앱에서 발생하는 이벤트 중, 공통적으로 발생하는 이벤트(결제)를 분석합니다.
adbrix 에서 제공하는 공통 이벤트 종류는 다음과 같습니다.
- 회원가입
- 앱 업데이트
- 사용자 초대
- 크레딧 사용
- 결제하기
* adbrix 에서 광고채널 별 매출을 보고자 할 때에는 '결제하기' 연동을 반드시 진행해야 합니다.
회원가입
앱에서 발생한 회원가입 이벤트를 분석합니다.
- (void) registerEvent { // AdBrix 인스턴스 생성 AdBrixRM *adBrix = [AdBrixRM sharedInstance]; //기타 유저 정보 AdBrixRmAttrModel * attrModel = [AdBrixRmAttrModel alloc]; [attrModel setAttrDataString:@"nickname" :@"peter"]; [attrModel setAttrDataString:@"gender" :@"male"]; [attrModel setAttrDataInt:@"age" :36]; [attrModel setAttrDataInt:@"credit" :5000.00]; [attrModel setAttrDataBool:@"married" :true]; // 회원가입 API 호출 [adBrix commonSignUpWithAttrWithChannel:AdBrixRmSignUpChannelAdBrixRmSignUpGoogleChannel commonAttr:attrModel]; }
앱 업데이트
앱에서 발생한 앱 업데이트 이벤트를 분석합니다.
- (void) appUdate { // AdBrix 인스턴스 생성 AdBrixRM *adbrix = [AdBrixRM sharedInstance]; // 유저 정보 AdBrixRmAttrModel * attrModel = [AdBrixRmAttrModel alloc]; [attrModel setAttrDataString:@"nickname" :@"peter"]; [attrModel setAttrDataString:@"gender" :@"male"]; [attrModel setAttrDataInt:@"age" :36]; [attrModel setAttrDataInt:@"credit" :5000.00]; [attrModel setAttrDataBool:@"married" :true]; // 앱업데이트 API 호출 [adBrix commonAppUpdateWithAttrWithPrev_ver:@"1.0.2" curr_ver:@"1.0.4" commonAttr:attrModel]; }
사용자 초대
앱에서 발생한 앱 초대 이벤트를 분석합니다.
- (void) userInvite { // AdBrix 인스턴스 생성 AdBrixRM *adBrix = [AdBrixRM sharedInstance]; // 유저 정보 AdBrixRmAttrModel * attrModel = [AdBrixRmAttrModel alloc]; [attrModel setAttrDataString:@"nickname" :@"peter"]; [attrModel setAttrDataString:@"gender" :@"male"]; [attrModel setAttrDataInt:@"age" :36]; [attrModel setAttrDataInt:@"credit" :5000.00]; [attrModel setAttrDataBool:@"married" :true]; // 사용자초대 API 호출 [adBrix commonInviteWithAttrWithChannel:AdBrixRmInviteChannelAdBrixRmInviteKakaoChannel commonAttr:attrModel]; }
크레딧 사용
앱내 현금성 화폐 사용에 대한 이벤트를 분석 합니다.
- (void) useCredit { // AdBrix 인스턴스 생성 AdBrixRM *adBrix = [AdBrixRM sharedInstance]; // 유저 정보 AdBrixRmAttrModel * attrModel = [AdBrixRmAttrModel alloc]; [attrModel setAttrDataString:@"nickname" :@"peter"]; [attrModel setAttrDataString:@"gender" :@"male"]; [attrModel setAttrDataInt:@"age" :36]; [attrModel setAttrDataInt:@"credit" :5000.00]; [attrModel setAttrDataBool:@"married" :true]; // 회원가입 API 호출 [adBrix commonUseCreditWithAttrWithCommonAttr:attrModel]; }
결제하기
앱에서 발생한 결제(구매) 이벤트를 분석합니다.
다음과 같은 상품 맟 주문에 대한 정보를 array 형태로 구성하여 전달합니다.
- order id : (필수) 주문번호
- orderSale : (필수) 전체주문금액
- product id : (필수) 상품번호
- product name : (필수) 상품이름
- price : (필수) 상품단가
- quantity : (필수) 구매수량
- discount : (옵션) 할인금액
- currency string : (옵션) 구매 화폐 단위
- category : (옵션) 카테고리 정보
- product attr map : (옵션) 상품 상세 옵션
- delivery charge : (옵션) 배송비
- payment method : (옵션) 결제 방법
- (void)purchaseEvent { // AdBrix 인스턴스 생성 AdBrixRM *adBrix = [AdBrixRM sharedInstance]; /* [ 가을 맞이 슬렉스 10종 특가 1개, 이월특가 나염 맨투맨 1개 ] = 총 2개 상품 쿠폰까지 써서 배송비 3500원을 할인받음 상품별 할인은 각 상품모델에 적용 되었음. */ // 이벤트 AttrModel 생성 AdBrixRmAttrModel * attrModel = [AdBrixRmAttrModel alloc]; [attrModel setAttrDataString:@"nickname" :@"peter"]; [attrModel setAttrDataString:@"gender" :@"male"]; [attrModel setAttrDataInt:@"age" :36]; [attrModel setAttrDataInt:@"credit" :5000.00]; [attrModel setAttrDataBool:@"married" :true]; // 상품 상세 옵션 AttrModel AdBrixRmAttrModel * productAttr1 = [AdBrixRmAttrModel alloc]; [productAttr1 setAttrDataString:@"product_type" :@"컴퓨터"]; [productAttr1 setAttrDataString:@"color" :@"black"]; [productAttr1 setAttrDataInt:@"size" :36]; [productAttr1 setAttrDataInt:@"cruurent_point" :123456]; [productAttr1 setAttrDataBool:@"promotion" :true]; // 상품 정보 모델 AdBrixRmCommerceProductModel * product1 = [adBrix createCommerceProductDataWithAttrWithProductId:@"productID1" productName:@"상품명1" price:10000.00 quantity:1 discount:2500.00 currencyString:[adBrix getCurrencyString:AdBrixRmCurrencyTypeKRW] category:[adBrix createCommerceProductCategoryDataWithCategory:@"컴퓨터" category2:@"PC" category3:@"cd-rom" category4:@"software" category5:@"game"] productAttrsMap:productAttr1]; // 상품 상세 옵션 AttrModel AdBrixRmAttrModel * productAttr2 = [AdBrixRmAttrModel alloc]; [productAttr2 setAttrDataString:@"product_type" :@"청바지"]; [productAttr2 setAttrDataString:@"color" :@"blue"]; [productAttr2 setAttrDataInt:@"size" :42]; [productAttr2 setAttrDataInt:@"cruurent_point" :23433]; [productAttr2 setAttrDataBool:@"promotion" :false]; // 상품 정보 모델 AdBrixRmCommerceProductModel * product2 = [adBrix createCommerceProductDataWithAttrWithProductId:@"productID2" productName:@"상품명2" price:23456.22 quantity:1 discount:2500.33 currencyString:[adBrix getCurrencyString:AdBrixRmCurrencyTypeKRW] category:[adBrix createCommerceProductCategoryDataWithCategory:@"의상" category2:@"바지" category3:@"청바지" category4:@"긴바지" category5:@"리바"] productAttrsMap:productAttr2]; //NSMutableArray방식 NSMutableArray *productArray = [NSMutableArray array]; [productArray addObject:product1]; [productArray addObject:product2]; //상품 결제 API [adBrix commonPurchaseWithAttrWithOrderId:@"orderID1" productInfo:productArray orderSale : 27640.00 discount:10000.00 deliveryCharge:2500.00 paymentMethod:[adBrix getPaymentMethod:AdbrixRmPaymentMethodCreditCard] orderAttr:attrModel]; }
커머스 이벤트
앱에서 발생하는 구매 관련(상품상세보기, 장바구니 담기 등) 이벤트를 분석합니다.
adbrix 에서 제공하는 커머스 이벤트 종류는 다음과 같습니다.
- 결제하기
- 홈(메인) 화면 진입
- 카테고리(기획전) 진입
- 상품 상세 보기
- 장바구니 담기
- 위시리스트(관심상품) 추가
- 주문 확인하기
- 주문 취소하기
- 상품 검색하기
홈(메인) 화면 진입
사용자가 앱의 홈(메인) 화면으로 진입한 이벤트를 분석합니다.
- (void)viewHomeEvent { // AdBrixRM 인스턴스 생성 AdBrixRM *adBrix = [AdBrixRM sharedInstance]; // 홈(메인) 화면 진입 분석 [adBrix commerceViewHome]; }
카테고리(기획전) 진입
사용자가 카테고리(기획전) 화면으로 진입한 이벤트를 분석합니다.
카테고리 정보는 최대 5단계까지 분석할 수 있습니다.
- (void)viewCategoryEvent { // AdBrixRM 인스턴스 생성 AdBrixRM *adBrix = [AdBrixRM sharedInstance]; // 이벤트 AttrModel 생성 AdBrixRmAttrModel * attrModel = [AdBrixRmAttrModel alloc]; [attrModel setAttrDataString:@"nickname" :@"peter"]; [attrModel setAttrDataString:@"gender" :@"male"]; [attrModel setAttrDataInt:@"age" :36]; [attrModel setAttrDataInt:@"credit" :5000.00]; [attrModel setAttrDataBool:@"married" :true]; // 상품 상세 옵션 AttrModel AdBrixRmAttrModel * productAttr1 = [AdBrixRmAttrModel alloc]; [productAttr1 setAttrDataString:@"product_type" :@"컴퓨터"]; [productAttr1 setAttrDataString:@"color" :@"black"]; [productAttr1 setAttrDataInt:@"size" :36]; [productAttr1 setAttrDataInt:@"cruurent_point" :123456]; [productAttr1 setAttrDataBool:@"promotion" :true]; // 상품 정보 모델 AdBrixRmCommerceProductModel * product1 = [adBrix createCommerceProductDataWithAttrWithProductId:@"productID1" productName:@"상품명1" price:10000.00 quantity:1 discount:2500.00 currencyString:[adBrix getCurrencyString:AdBrixRmCurrencyTypeKRW] category:[adBrix createCommerceProductCategoryDataWithCategory:@"컴퓨터" category2:@"PC" category3:@"cd-rom" category4:@"software" category5:@"game"] productAttrsMap:productAttr1]; // 상품 상세 옵션 AttrModel AdBrixRmAttrModel * productAttr2 = [AdBrixRmAttrModel alloc]; [productAttr2 setAttrDataString:@"product_type" :@"청바지"]; [productAttr2 setAttrDataString:@"color" :@"blue"]; [productAttr2 setAttrDataInt:@"size" :42]; [productAttr2 setAttrDataInt:@"cruurent_point" :23433]; [productAttr2 setAttrDataBool:@"promotion" :false]; // 상품 정보 모델 AdBrixRmCommerceProductModel * product2 = [adBrix createCommerceProductDataWithAttrWithProductId:@"productID2" productName:@"상품명2" price:23456.22 quantity:1 discount:2500.33 currencyString:[adBrix getCurrencyString:AdBrixRmCurrencyTypeKRW] category:[adBrix createCommerceProductCategoryDataWithCategory:@"의상" category2:@"바지" category3:@"청바지" category4:@"긴바지" category5:@"리바"] productAttrsMap:productAttr2]; //NSMutableArray방식 NSMutableArray *productArray = [NSMutableArray array]; [productArray addObject:product1]; [productArray addObject:product2]; //카테고리 API [adBrix commerceCategoryViewWithAttrWithCategory:[adBrix createCommerceProductCategoryDataWithCategory:@"의상" category2:@"치마" category3:@"여자옷" category4:@"원피스" category5:@"헤작질"] productInfo:productArray orderAttr:attrModel]; }
상품 상세 보기
사용자의 상품을 상세하기 본 이벤트를 분석합니다.
다음과 같은 상품에 대한 정보를 전달합니다.
- product id : (필수) 상품번호
- product name : (필수) 상품이름
- price : (필수) 상품단가
- quantity : (필수) 구매수량
- discount : (옵션) 할인금액
- currency string : (옵션) 카테고리 정보
- category : (옵션) 구매 화폐 단위
- product attr map : (옵션) 상품 상세 옵션
- (void)viewProductDetailEvent { // AdBrixRM 인스턴스 생성 AdBrixRM *adBrix = [AdBrixRM sharedInstance]; // 이벤트 AttrModel 생성 AdBrixRmAttrModel * attrModel = [AdBrixRmAttrModel alloc]; [attrModel setAttrDataString:@"nickname" :@"peter"]; [attrModel setAttrDataString:@"gender" :@"male"]; [attrModel setAttrDataInt:@"age" :36]; [attrModel setAttrDataInt:@"credit" :5000.00]; [attrModel setAttrDataBool:@"married" :true]; // 상품 상세 옵션 AttrModel AdBrixRmAttrModel * productAttr1 = [AdBrixRmAttrModel alloc]; [productAttr1 setAttrDataString:@"product_type" :@"컴퓨터"]; [productAttr1 setAttrDataString:@"color" :@"black"]; [productAttr1 setAttrDataInt:@"size" :36]; [productAttr1 setAttrDataInt:@"cruurent_point" :123456]; [productAttr1 setAttrDataBool:@"promotion" :true]; // 상품 정보 모델 AdBrixRmCommerceProductModel * product1 = [adBrix createCommerceProductDataWithAttrWithProductId:@"productID1" productName:@"상품명1" price:10000.00 quantity:1 discount:2500.00 currencyString:[adBrix getCurrencyString:AdBrixRmCurrencyTypeKRW] category:[adBrix createCommerceProductCategoryDataWithCategory:@"컴퓨터" category2:@"PC" category3:@"cd-rom" category4:@"software" category5:@"game"] productAttrsMap:productAttr1]; // productView API [adBrix commerceProductViewWithAttrWithProductInfo:product1 orderAttr:attrModel]; }
장바구니 담기
사용자가 상품을 장바구니에 담은 이벤트를 분석합니다.
다음과 같은 상품 정보를 전달합니다.
- product id : (필수) 상품번호
- product name : (필수) 상품이름
- price : (필수) 상품단가
- quantity : (필수) 구매수량
- discount : (옵션) 할인금액
- currency string : (옵션) 카테고리 정보
- category : (옵션) 구매 화폐 단위
- product attr map : (옵션) 상품 상세 옵션
- (void)addToCartEvent { // AdBrixRM 인스턴스 생성 AdBrixRM *adBrix = [AdBrixRM sharedInstance]; // 이벤트 AttrModel 생성 AdBrixRmAttrModel * attrModel = [AdBrixRmAttrModel alloc]; [attrModel setAttrDataString:@"nickname" :@"peter"]; [attrModel setAttrDataString:@"gender" :@"male"]; [attrModel setAttrDataInt:@"age" :36]; [attrModel setAttrDataInt:@"credit" :5000.00]; [attrModel setAttrDataBool:@"married" :true]; // 상품 상세 옵션 AttrModel AdBrixRmAttrModel * productAttr1 = [AdBrixRmAttrModel alloc]; [productAttr1 setAttrDataString:@"product_type" :@"컴퓨터"]; [productAttr1 setAttrDataString:@"color" :@"black"]; [productAttr1 setAttrDataInt:@"size" :36]; [productAttr1 setAttrDataInt:@"cruurent_point" :123456]; [productAttr1 setAttrDataBool:@"promotion" :true]; // 상품 정보 모델 AdBrixRmCommerceProductModel * product1 = [adBrix createCommerceProductDataWithAttrWithProductId:@"productID1" productName:@"상품명1" price:10000.00 quantity:1 discount:2500.00 currencyString:[adBrix getCurrencyString:AdBrixRmCurrencyTypeKRW] category:[adBrix createCommerceProductCategoryDataWithCategory:@"컴퓨터" category2:@"PC" category3:@"cd-rom" category4:@"software" category5:@"game"] productAttrsMap:productAttr1]; // 상품 상세 옵션 AttrModel AdBrixRmAttrModel * productAttr2 = [AdBrixRmAttrModel alloc]; [productAttr2 setAttrDataString:@"product_type" :@"청바지"]; [productAttr2 setAttrDataString:@"color" :@"blue"]; [productAttr2 setAttrDataInt:@"size" :42]; [productAttr2 setAttrDataInt:@"cruurent_point" :23433]; [productAttr2 setAttrDataBool:@"promotion" :false]; // 상품 정보 모델 AdBrixRmCommerceProductModel * product2 = [adBrix createCommerceProductDataWithAttrWithProductId:@"productID2" productName:@"상품명2" price:23456.22 quantity:1 discount:2500.33 currencyString:[adBrix getCurrencyString:AdBrixRmCurrencyTypeKRW] category:[adBrix createCommerceProductCategoryDataWithCategory:@"의상" category2:@"바지" category3:@"청바지" category4:@"긴바지" category5:@"리바"] productAttrsMap:productAttr2]; //NSMutableArray방식 NSMutableArray *productArray = [NSMutableArray array]; [productArray addObject:product1]; [productArray addObject:product2]; // 장바구니 추가 이벤트 호출 [adBrix commerceAddToCartWithAttrWithProductInfo:productArray orderAttr:attrModel]; }
관심상품(위시리스트) 추가
사용자가 상품을 관심상품(위시리스트)에 추가한 이벤트를 분석합니다.
다음과 같은 상품 정보를 전달합니다.
- product id : (필수) 상품번호
- product name : (필수) 상품이름
- price : (필수) 상품단가
- quantity : (필수) 구매수량
- discount : (옵션) 할인금액
- currency string : (옵션) 카테고리 정보
- category : (옵션) 구매 화폐 단위
- product attr map : (옵션) 상품 상세 옵션
- (void)addToWishListEvent { // AdBrixRM 인스턴스 생성 AdBrixRM *adBrix = [AdBrixRM sharedInstance]; // 이벤트 AttrModel 생성 AdBrixRmAttrModel * attrModel = [AdBrixRmAttrModel alloc]; [attrModel setAttrDataString:@"nickname" :@"peter"]; [attrModel setAttrDataString:@"gender" :@"male"]; [attrModel setAttrDataInt:@"age" :36]; [attrModel setAttrDataInt:@"credit" :5000.00]; [attrModel setAttrDataBool:@"married" :true]; // 상품 상세 옵션 AttrModel AdBrixRmAttrModel * productAttr1 = [AdBrixRmAttrModel alloc]; [productAttr1 setAttrDataString:@"product_type" :@"컴퓨터"]; [productAttr1 setAttrDataString:@"color" :@"black"]; [productAttr1 setAttrDataInt:@"size" :36]; [productAttr1 setAttrDataInt:@"cruurent_point" :123456]; [productAttr1 setAttrDataBool:@"promotion" :true]; // 상품 정보 모델 AdBrixRmCommerceProductModel * product1 = [adBrix createCommerceProductDataWithAttrWithProductId:@"productID1" productName:@"상품명1" price:10000.00 quantity:1 discount:2500.00 currencyString:[adBrix getCurrencyString:AdBrixRmCurrencyTypeKRW] category:[adBrix createCommerceProductCategoryDataWithCategory:@"컴퓨터" category2:@"PC" category3:@"cd-rom" category4:@"software" category5:@"game"] productAttrsMap:productAttr1]; // 관심상품(위시리스트) 추가 이벤트 [adBrix commerceAddToWishListWithAttrWithProductInfo:product1 orderAttr:attrModel]; }
주문 확인하기
사용자가 상품을 결제하기 전 최종 확인하는 이벤트를 분석합니다.
다음과 같은 주문 및 상품 정보를 전달합니다.
- order id : (필수) 주문번호
- product id : (필수) 상품번호
- product name : (필수) 상품이름
- price : (필수) 상품단가
- quantity : (필수) 구매수량
- discount : (옵션) 할인금액
- currency string : (옵션) 카테고리 정보
- category : (옵션) 구매 화폐 단위
- product attr map : (옵션) 상품 상세 옵션
- delivery charge : (옵션) 배송비
- (void)reviewOrderEvent { // AdBrixRM 인스턴스 생성 AdBrixRM *adBrix = [AdBrixRM sharedInstance]; // 이벤트 AttrModel 생성 AdBrixRmAttrModel * attrModel = [AdBrixRmAttrModel alloc]; [attrModel setAttrDataString:@"nickname" :@"peter"]; [attrModel setAttrDataString:@"gender" :@"male"]; [attrModel setAttrDataInt:@"age" :36]; [attrModel setAttrDataInt:@"credit" :5000.00]; [attrModel setAttrDataBool:@"married" :true]; // 상품 상세 옵션 AttrModel AdBrixRmAttrModel * productAttr1 = [AdBrixRmAttrModel alloc]; [productAttr1 setAttrDataString:@"product_type" :@"컴퓨터"]; [productAttr1 setAttrDataString:@"color" :@"black"]; [productAttr1 setAttrDataInt:@"size" :36]; [productAttr1 setAttrDataInt:@"cruurent_point" :123456]; [productAttr1 setAttrDataBool:@"promotion" :true]; // 상품 정보 모델 AdBrixRmCommerceProductModel * product1 = [adBrix createCommerceProductDataWithAttrWithProductId:@"productID1" productName:@"상품명1" price:10000.00 quantity:1 discount:2500.00 currencyString:[adBrix getCurrencyString:AdBrixRmCurrencyTypeKRW] category:[adBrix createCommerceProductCategoryDataWithCategory:@"컴퓨터" category2:@"PC" category3:@"cd-rom" category4:@"software" category5:@"game"] productAttrsMap:productAttr1]; // 상품 상세 옵션 AttrModel AdBrixRmAttrModel * productAttr2 = [AdBrixRmAttrModel alloc]; [productAttr2 setAttrDataString:@"product_type" :@"청바지"]; [productAttr2 setAttrDataString:@"color" :@"blue"]; [productAttr2 setAttrDataInt:@"size" :42]; [productAttr2 setAttrDataInt:@"cruurent_point" :23433]; [productAttr2 setAttrDataBool:@"promotion" :false]; // 상품 정보 모델 AdBrixRmCommerceProductModel * product2 = [adBrix createCommerceProductDataWithAttrWithProductId:@"productID2" productName:@"상품명2" price:23456.22 quantity:1 discount:2500.33 currencyString:[adBrix getCurrencyString:AdBrixRmCurrencyTypeKRW] category:[adBrix createCommerceProductCategoryDataWithCategory:@"의상" category2:@"바지" category3:@"청바지" category4:@"긴바지" category5:@"리바"] productAttrsMap:productAttr2]; //NSMutableArray방식 NSMutableArray *productArray = [NSMutableArray array]; [productArray addObject:product1]; [productArray addObject:product2]; // 주문 확인하기 이벤트 [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 : (옵션) 취소(환불) 수수료
- (void)refundOrderEvent { // AdBrixRM 인스턴스 생성 AdBrixRM *adBrix = [AdBrixRM sharedInstance]; // 이벤트 AttrModel 생성 AdBrixRmAttrModel * attrModel = [AdBrixRmAttrModel alloc]; [attrModel setAttrDataString:@"nickname" :@"peter"]; [attrModel setAttrDataString:@"gender" :@"male"]; [attrModel setAttrDataInt:@"age" :36]; [attrModel setAttrDataInt:@"credit" :5000.00]; [attrModel setAttrDataBool:@"married" :true]; // 상품 상세 옵션 AttrModel AdBrixRmAttrModel * productAttr1 = [AdBrixRmAttrModel alloc]; [productAttr1 setAttrDataString:@"product_type" :@"컴퓨터"]; [productAttr1 setAttrDataString:@"color" :@"black"]; [productAttr1 setAttrDataInt:@"size" :36]; [productAttr1 setAttrDataInt:@"cruurent_point" :123456]; [productAttr1 setAttrDataBool:@"promotion" :true]; // 상품 정보 모델 AdBrixRmCommerceProductModel * product1 = [adBrix createCommerceProductDataWithAttrWithProductId:@"productID1" productName:@"상품명1" price:10000.00 quantity:1 discount:2500.00 currencyString:[adBrix getCurrencyString:AdBrixRmCurrencyTypeKRW] category:[adBrix createCommerceProductCategoryDataWithCategory:@"컴퓨터" category2:@"PC" category3:@"cd-rom" category4:@"software" category5:@"game"] productAttrsMap:productAttr1]; // 상품 상세 옵션 AttrModel AdBrixRmAttrModel * productAttr2 = [AdBrixRmAttrModel alloc]; [productAttr2 setAttrDataString:@"product_type" :@"청바지"]; [productAttr2 setAttrDataString:@"color" :@"blue"]; [productAttr2 setAttrDataInt:@"size" :42]; [productAttr2 setAttrDataInt:@"cruurent_point" :23433]; [productAttr2 setAttrDataBool:@"promotion" :false]; // 상품 정보 모델 AdBrixRmCommerceProductModel * product2 = [adBrix createCommerceProductDataWithAttrWithProductId:@"productID2" productName:@"상품명2" price:23456.22 quantity:1 discount:2500.33 currencyString:[adBrix getCurrencyString:AdBrixRmCurrencyTypeKRW] category:[adBrix createCommerceProductCategoryDataWithCategory:@"의상" category2:@"바지" category3:@"청바지" category4:@"긴바지" category5:@"리바"] productAttrsMap:productAttr2]; //NSMutableArray방식 NSMutableArray *productArray = [NSMutableArray array]; [productArray addObject:product1]; [productArray addObject:product2]; // 주문 취소하기 이벤트 [adBrix commerceRefundWithAttrWithOrderId:@“orderID1” productInfo:productArray penaltyCharge:25000.00 orderAttr:attrModel]; }
상품 검색하기
사용자가 상품을 검색한 이벤트를 분석합니다.
다음과 같은 검색 결과에 포함된 상품 정보를 전달합니다.
- keyword : (필수) 검색에 사용한 단어
- product id : (필수) 상품번호
- product name : (필수) 상품이름
- price : (필수) 상품단가
- quantity : (필수) 구매수량
- discount : (옵션) 할인금액
- currency string : (옵션) 카테고리 정보
- category : (옵션) 구매 화폐 단위
- (void)searchResultEvent { // AdBrixRM 인스턴스 생성 AdBrixRM *adBrix = [AdBrixRM sharedInstance]; // 이벤트 AttrModel 생성 AdBrixRmAttrModel * attrModel = [AdBrixRmAttrModel alloc]; [attrModel setAttrDataString:@"nickname" :@"peter"]; [attrModel setAttrDataString:@"gender" :@"male"]; [attrModel setAttrDataInt:@"age" :36]; [attrModel setAttrDataInt:@"credit" :5000.00]; [attrModel setAttrDataBool:@"married" :true]; // 상품 상세 옵션 AttrModel AdBrixRmAttrModel * productAttr1 = [AdBrixRmAttrModel alloc]; [productAttr1 setAttrDataString:@"product_type" :@"컴퓨터"]; [productAttr1 setAttrDataString:@"color" :@"black"]; [productAttr1 setAttrDataInt:@"size" :36]; [productAttr1 setAttrDataInt:@"cruurent_point" :123456]; [productAttr1 setAttrDataBool:@"promotion" :true]; // 상품 정보 모델 AdBrixRmCommerceProductModel * product1 = [adBrix createCommerceProductDataWithAttrWithProductId:@"productID1" productName:@"상품명1" price:10000.00 quantity:1 discount:2500.00 currencyString:[adBrix getCurrencyString:AdBrixRmCurrencyTypeKRW] category:[adBrix createCommerceProductCategoryDataWithCategory:@"컴퓨터" category2:@"PC" category3:@"cd-rom" category4:@"software" category5:@"game"] productAttrsMap:productAttr1]; // 상품 상세 옵션 AttrModel AdBrixRmAttrModel * productAttr2 = [AdBrixRmAttrModel alloc]; [productAttr2 setAttrDataString:@"product_type" :@"청바지"]; [productAttr2 setAttrDataString:@"color" :@"blue"]; [productAttr2 setAttrDataInt:@"size" :42]; [productAttr2 setAttrDataInt:@"cruurent_point" :23433]; [productAttr2 setAttrDataBool:@"promotion" :false]; // 상품 정보 모델 AdBrixRmCommerceProductModel * product2 = [adBrix createCommerceProductDataWithAttrWithProductId:@"productID2" productName:@"상품명2" price:23456.22 quantity:1 discount:2500.33 currencyString:[adBrix getCurrencyString:AdBrixRmCurrencyTypeKRW] category:[adBrix createCommerceProductCategoryDataWithCategory:@"의상" category2:@"바지" category3:@"청바지" category4:@"긴바지" category5:@"리바"] productAttrsMap:productAttr2]; //NSMutableArray방식 NSMutableArray *productArray = [NSMutableArray array]; [productArray addObject:product1]; [productArray addObject:product2]; // 상품 검색 이벤트 [adBrix commerceSearchWithAttrWithProductInfo:productArray keyword:@"상품 검색어" orderAttr:attrModel]; }
상품 공유하기
사용자가 상품정보를 공유한 이벤트를 분석합니다.
다음과 같은 공유된 상품 정보를 전달합니다.
- product id : (필수) 상품번호
- product name : (필수) 상품이름
- price : (필수) 상품단가
- quantity : (필수) 구매수량
- discount : (옵션) 할인금액
- currency string : (옵션) 카테고리 정보
- category : (옵션) 구매 화폐 단위
- product attr map : (옵션) 상품 상세 옵션
- (void)shareEvent() { // AdBrixRM 인스턴스 생성 AdBrixRM *adBrix = [AdBrixRM sharedInstance]; // 이벤트 AttrModel 생성 AdBrixRmAttrModel * attrModel = [AdBrixRmAttrModel alloc]; [attrModel setAttrDataString:@"nickname" :@"peter"]; [attrModel setAttrDataString:@"gender" :@"male"]; [attrModel setAttrDataInt:@"age" :36]; [attrModel setAttrDataInt:@"credit" :5000.00]; [attrModel setAttrDataBool:@"married" :true]; // 상품 상세 옵션 AttrModel AdBrixRmAttrModel * productAttr1 = [AdBrixRmAttrModel alloc]; [productAttr1 setAttrDataString:@"product_type" :@"컴퓨터"]; [productAttr1 setAttrDataString:@"color" :@"black"]; [productAttr1 setAttrDataInt:@"size" :36]; [productAttr1 setAttrDataInt:@"cruurent_point" :123456]; [productAttr1 setAttrDataBool:@"promotion" :true]; // 상품 정보 모델 AdBrixRmCommerceProductModel * product1 = [adBrix createCommerceProductDataWithAttrWithProductId:@"productID1" productName:@"상품명1" price:10000.00 quantity:1 discount:2500.00 currencyString:[adBrix getCurrencyString:AdBrixRmCurrencyTypeKRW] category:[adBrix createCommerceProductCategoryDataWithCategory:@"컴퓨터" category2:@"PC" category3:@"cd-rom" category4:@"software" category5:@"game"] productAttrsMap:productAttr1]; // 상품 공유 이벤트 [adBrix commerceShareWithAttrWithChannel:AdBrixRmSharingChannelAdBrixRmSharingWeChat productInfo:product1 orderAttr:attrModel]; }
상품 목록 조회하기
사용자가 상품 목록을 조회한 이벤트를 분석합니다.
다음과 같이 조회한 상품 정보를 전달합니다.
- product id : (필수) 상품번호
- product name : (필수) 상품이름
- price : (필수) 상품단가
- quantity : (필수) 구매수량
- discount : (옵션) 할인금액
- currency string : (옵션) 카테고리 정보
- category : (옵션) 구매 화폐 단위
- product attr map : (옵션) 상품 상세 옵션
- (void)listViewEvent() { // AdBrixRM 인스턴스 생성 AdBrixRM *adBrix = [AdBrixRM sharedInstance]; // 이벤트 AttrModel 생성 AdBrixRmAttrModel * attrModel = [AdBrixRmAttrModel alloc]; [attrModel setAttrDataString:@"nickname" :@"peter"]; [attrModel setAttrDataString:@"gender" :@"male"]; [attrModel setAttrDataInt:@"age" :36]; [attrModel setAttrDataInt:@"credit" :5000.00]; [attrModel setAttrDataBool:@"married" :true]; // 상품 상세 옵션 AttrModel AdBrixRmAttrModel * productAttr1 = [AdBrixRmAttrModel alloc]; [productAttr1 setAttrDataString:@"product_type" :@"컴퓨터"]; [productAttr1 setAttrDataString:@"color" :@"black"]; [productAttr1 setAttrDataInt:@"size" :36]; [productAttr1 setAttrDataInt:@"cruurent_point" :123456]; [productAttr1 setAttrDataBool:@"promotion" :true]; // 상품 정보 모델 AdBrixRmCommerceProductModel * product1 = [adBrix createCommerceProductDataWithAttrWithProductId:@"productID1" productName:@"상품명1" price:10000.00 quantity:1 discount:2500.00 currencyString:[adBrix getCurrencyString:AdBrixRmCurrencyTypeKRW] category:[adBrix createCommerceProductCategoryDataWithCategory:@"컴퓨터" category2:@"PC" category3:@"cd-rom" category4:@"software" category5:@"game"] productAttrsMap:productAttr1]; // 상품 상세 옵션 AttrModel AdBrixRmAttrModel * productAttr2 = [AdBrixRmAttrModel alloc]; [productAttr2 setAttrDataString:@"product_type" :@"청바지"]; [productAttr2 setAttrDataString:@"color" :@"blue"]; [productAttr2 setAttrDataInt:@"size" :42]; [productAttr2 setAttrDataInt:@"cruurent_point" :23433]; [productAttr2 setAttrDataBool:@"promotion" :false]; // 상품 정보 모델 AdBrixRmCommerceProductModel * product2 = [adBrix createCommerceProductDataWithAttrWithProductId:@"productID2" productName:@"상품명2" price:23456.22 quantity:1 discount:2500.33 currencyString:[adBrix getCurrencyString:AdBrixRmCurrencyTypeKRW] category:[adBrix createCommerceProductCategoryDataWithCategory:@"의상" category2:@"바지" category3:@"청바지" category4:@"긴바지" category5:@"리바"] productAttrsMap:productAttr2]; //NSMutableArray방식 NSMutableArray *productArray = [NSMutableArray array]; [productArray addObject:product1]; [productArray addObject:product2]; // 상품 목록 조회 이벤트 호출 [adBrix commerceListViewWithAttrWithProductInfo:productArray orderAttr:attrModel]; }
장바구니 조회하기
사용자가 장바구니를 조회한 이벤트를 분석합니다.
다음과 같이 조회한 상품 정보를 전달합니다.
- product id : (필수) 상품번호
- product name : (필수) 상품이름
- price : (필수) 상품단가
- quantity : (필수) 구매수량
- discount : (옵션) 할인금액
- currency string : (옵션) 카테고리 정보
- category : (옵션) 구매 화폐 단위
- product attr map : (옵션) 상품 상세 옵션
- (void)cartViewEvent() { // AdBrixRM 인스턴스 생성 AdBrixRM *adBrix = [AdBrixRM sharedInstance]; // 이벤트 AttrModel 생성 AdBrixRmAttrModel * attrModel = [AdBrixRmAttrModel alloc]; [attrModel setAttrDataString:@"nickname" :@"peter"]; [attrModel setAttrDataString:@"gender" :@"male"]; [attrModel setAttrDataInt:@"age" :36]; [attrModel setAttrDataInt:@"credit" :5000.00]; [attrModel setAttrDataBool:@"married" :true]; // 상품 상세 옵션 AttrModel AdBrixRmAttrModel * productAttr1 = [AdBrixRmAttrModel alloc]; [productAttr1 setAttrDataString:@"product_type" :@"컴퓨터"]; [productAttr1 setAttrDataString:@"color" :@"black"]; [productAttr1 setAttrDataInt:@"size" :36]; [productAttr1 setAttrDataInt:@"cruurent_point" :123456]; [productAttr1 setAttrDataBool:@"promotion" :true]; // 상품 정보 모델 AdBrixRmCommerceProductModel * product1 = [adBrix createCommerceProductDataWithAttrWithProductId:@"productID1" productName:@"상품명1" price:10000.00 quantity:1 discount:2500.00 currencyString:[adBrix getCurrencyString:AdBrixRmCurrencyTypeKRW] category:[adBrix createCommerceProductCategoryDataWithCategory:@"컴퓨터" category2:@"PC" category3:@"cd-rom" category4:@"software" category5:@"game"] productAttrsMap:productAttr1]; // 상품 상세 옵션 AttrModel AdBrixRmAttrModel * productAttr2 = [AdBrixRmAttrModel alloc]; [productAttr2 setAttrDataString:@"product_type" :@"청바지"]; [productAttr2 setAttrDataString:@"color" :@"blue"]; [productAttr2 setAttrDataInt:@"size" :42]; [productAttr2 setAttrDataInt:@"cruurent_point" :23433]; [productAttr2 setAttrDataBool:@"promotion" :false]; // 상품 정보 모델 AdBrixRmCommerceProductModel * product2 = [adBrix createCommerceProductDataWithAttrWithProductId:@"productID2" productName:@"상품명2" price:23456.22 quantity:1 discount:2500.33 currencyString:[adBrix getCurrencyString:AdBrixRmCurrencyTypeKRW] category:[adBrix createCommerceProductCategoryDataWithCategory:@"의상" category2:@"바지" category3:@"청바지" category4:@"긴바지" category5:@"리바"] productAttrsMap:productAttr2]; //NSMutableArray방식 NSMutableArray *productArray = [NSMutableArray array]; [productArray addObject:product1]; [productArray addObject:product2]; // 장바구니 조회 이벤트 호출 [adBrix commerceCartViewWithAttrWithProductInfo:productArray orderAttr:attrModel]; }
결제 정보 입력하기
사용자가 결제 정보를 입력한 이벤트를 분석합니다.
- (void)paymentInfoAddedEvent() { // AdBrixRM 인스턴스 생성 AdBrixRM *adBrix = [AdBrixRM sharedInstance]; // 이벤트 AttrModel 생성 AdBrixRmAttrModel * attrModel = [AdBrixRmAttrModel alloc]; [attrModel setAttrDataString:@"nickname" :@"peter"]; [attrModel setAttrDataString:@"gender" :@"male"]; [attrModel setAttrDataString:@"paymentinfo" :@"creditCard"]; [attrModel setAttrDataInt:@"age" :36]; [attrModel setAttrDataInt:@"credit" :5000.00]; [attrModel setAttrDataBool:@"married" :true]; // 결제 정보 입력 이벤트 호출 [adBrix commercePaymentInfoAddedWithAttrWithPaymentInfoAttr:attrModel]; }
게임 이벤트 분석
앱에서 발생하는 게임과 관련된 이벤트(튜토리얼, 스테이지 등)를 분석합니다.
adbrix 에서 제공하는 게임 이벤트 종류는 다음과 같습니다.
- 튜토리얼 완료
- 캐릭터 생성
- 스테이지 완료
- 레벨 달성
튜토리얼 완료
앱에서 발생한 튜토리얼 완료 이벤트를 분석합니다.
다음과 같은 튜토리얼 완료 정보를 구성하여 전달합니다.
- isSkip : (필수) 건너뛰기(skip)를 통한 완료인지 여부
-(void) tutorialCompleteEvent { // AdBrixRM 인스턴스 생성 AdBrixRM *adBrix = [AdBrixRM sharedInstance]; // 이벤트 AttrModel 생성 AdBrixRmAttrModel * attrModel = [AdBrixRmAttrModel alloc]; [attrModel setAttrDataString:@"nickname" :@"peter"]; [attrModel setAttrDataString:@"gender" :@"male"]; [attrModel setAttrDataInt:@"age" :36]; [attrModel setAttrDataInt:@"credit" :5000.00]; [attrModel setAttrDataBool:@"married" :true]; //튜토리얼 완료 이벤트 호출 [adBrix gameTutorialCompletedWithAttrWithIsSkip:false gameInfoAttr:attrModel]; }
캐릭터 생성
앱에서 발생한 캐릭터 생성 이벤트를 분석합니다.
-(void) characterCreatedEvent { // AdBrixRM 인스턴스 생성 AdBrixRM *adBrix = [AdBrixRM sharedInstance]; // 이벤트 AttrModel 생성 AdBrixRmAttrModel * attrModel = [AdBrixRmAttrModel alloc]; [attrModel setAttrDataString:@"nickname" :@"peter"]; [attrModel setAttrDataString:@"gender" :@"male"]; [attrModel setAttrDataInt:@"age" :36]; [attrModel setAttrDataInt:@"credit" :5000.00]; [attrModel setAttrDataBool:@"married" :true]; //캐릭터 생성 이벤트 호출 [adBrix gameCharacterCreatedWithAttrWithGameInfoAttr:attrModel]; }
스테이지 완료
앱에서 발생한 스테이지 완료 이벤트를 분석합니다.
다음과 같은 스테이지 완료 정보를 구성하여 전달합니다.
- StageName : (필수) 완료한 스테이지 이름
-(void) stageClearedEvent { // AdBrixRM 인스턴스 생성 AdBrixRM *adBrix = [AdBrixRM sharedInstance]; // 이벤트 AttrModel 생성 AdBrixRmAttrModel * attrModel = [AdBrixRmAttrModel alloc]; [attrModel setAttrDataString:@"nickname" :@"peter"]; [attrModel setAttrDataString:@"gender" :@"male"]; [attrModel setAttrDataInt:@"age" :36]; [attrModel setAttrDataInt:@"credit" :5000.00]; [attrModel setAttrDataBool:@"married" :true]; //스테이지 완료 이벤트 호출 [adBrix gameStageClearedWithAttrWithStageName:@"1-43" gameInfoAttr:attrModel]; }
레벨 달성
앱에서 발생한 레벨 달성 이벤트를 분석합니다.
다음과 같은 레벨 달성 정보를 구성하여 전달합니다.
- Level : (필수) 달성한 레벨 (1~10000)
-(void) levelAchievedEvent { // AdBrixRM 인스턴스 생성 AdBrixRM *adBrix = [AdBrixRM sharedInstance]; // 이벤트 AttrModel 생성 AdBrixRmAttrModel * attrModel = [AdBrixRmAttrModel alloc]; [attrModel setAttrDataString:@"nickname" :@"peter"]; [attrModel setAttrDataString:@"gender" :@"male"]; [attrModel setAttrDataInt:@"age" :36]; [attrModel setAttrDataInt:@"credit" :5000.00]; [attrModel setAttrDataBool:@"married" :true]; //레벨 달성 이벤트 호출 [adBrix gameLevelAchievedWithAttrWithLevel:122 gameInfoAttr:attrModel]; }
댓글
댓글 0개
댓글을 남기려면 로그인하세요.