DFINERY Integration [iOS]
Follow
Quick Start
System Requirement
- Build Environment: Xcode
- Min Xcode version: Xcode 13 and more.
SDK Installation and App setup
If you have an existing Xcode project, follow these steps for SDK installation.
Ready for CocoaPods
CocoaPods is a tool to download and install an external library.
We recommend you use CocoaPods for SDK installation.
CocoaPods Installation
If you don't have CocoaPods on your Mac, open a terminal and execute this command.
$ sudo gem install cocoapods
If you see these results on your terminal, CocoaPods installation is complete.
... 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
Initialize CocoaPods
Execute the following command.
$ pod setup
If you can see these results on the terminal, CocoaPods initialization is complete.
... 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
Create Podfile
Go to your Xcode project folder and open the terminal. Execute this command to generate Podfile.
$ pod init
Edit Podfile
Open the vi editor on your terminal and type this command on your Podfile.
After editing your Podfile, press ESC and Shift+z twice to exit the editor.
$ vi Podfile
platform :ios, '9.0'
target "myXcodeProject" do
pod 'AdBrixRmKit', '2.4.0.3'
end
[[인용:위험:작게]] Please use the labeled version on Cocoapods script.
[[인용:안내:보통]] DFINERY IOS SDK has been updated to V2 Version.
Please check the update method through the document below.
[DFINERY IOS V2 SDK UPDATE GUIDE]
* platform number is the minimum version of iOS for your Xcode project.
* There may be some errors when you use a normal text editor.
Install SDK Pod
Execute the following command on the terminal for installing DFINERY SDK.
$ pod install
* TroubleShooting!!! When pod install error has occurred, execute command "pod setup".
Update SDK Pod
If you already have installed DFINERY SDK, execute the following commands "pod update" or "pod setup" to instal the latest DFINERY SDK.
$ pod setup $ pod update
Open XCode Project
After DFINERY SDK installation, open {project_name}.xcworkspace file or execute the following command.
$ open myXcodeProject.xcworkspace
If you find DFINERY pods on Xcode navigator like the below screenshot, SDK install is complete.
Add Framework
You need to add iAd frameworks and AdServices frameworks to your project.
Go to [General > Frameworks, Libraries, and Embedded Content], and click (+). Add "iAd.framework" and "AdServices.frameworks" on the pop-up.
If you target iOS 14.2, you need to set up the status of AdServices.framwork as Optional. Go to [Build Phases > Link Binary With Libraries] and set the status.
Set up Swift Library
Because DFINERY SDK is made of Swift, you should set the Xcode project to enable the Swift library.
Go to your project's Build Settings > Always Embed Swift Standard Libraries and set 'yes'.
IDFA Setup
Set up theDFINERY SDK to aquires Apple IDFA.
Open AppDelegate class and add "applicationDidEnterBackground" method. then add set IDFA code in ATT popup API
import AdBrixRmKit import AppTrackingTransparency @UIApplicationMain class AppDelegate: UIResponder, UIApplicationDelegate { var window: UIWindow? func applicationDidEnterBackground(_ 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; } }]; } } }
Set up AppKey & SecretKey
Set DFINERY AppKey and SecretKey.
You can find your Appkey and Secret key on DFINERY console.
import AdBrixRmKit 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 }
#import <AdBrixRmKit/AdBrixRmKit-Swift.h> - (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; }
* DFINERY AppKey and SecretKey can be used on both Android and iOS platforms.
Additional SDK setup
The following list is additional SDK setups.
- Event upload cycle setup
- GDPR setup
- Deeplink setup
Event upload cycle setup
You can set the upload cycle depending on the number of events and timer.
Event upload counter
You can set a level of event upload counter.
DFINERY SDK has a pre-defined API.
- AdBrixEventUploadCountIntervalMIN : If 10 events are counted, SDK will upload your event.
- AdBrixEventUploadCountIntervalNORMAL : If 30 events are counted, SDK will upload your event.
- AdBrixEventUploadCountIntervalMAX : If 60 events are counted, SDK will upload your event.
import AdBrixRmKit 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.AdBrixEventUploadCount.MIN) return true }
#import <AdBrixRmKit/AdBrixRmKit-Swift.h> - (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; }
Event upload timer
The developer can set the timer for uploading DFINERY SDK events.
DFINERY SDK has a pre-defined API.
- AdBrixEventUploadTimeIntevalMIN : Every 30 seconds adbrix SDK will upload events.
- AdBrixEventUploadTimeIntevalNORMAL : Every 60 seconds adbrix SDK will upload events
- AdBrixEventUploadTimeIntevalMAX :Every 120 seconds adbrix SDK will upload events
import AdBrixRmKit 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.AdBrixEventUploadTimeInteval.MIN) return true }
#import <AdBrixRmKit/AdBrixRmKit-Swift.h> - (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:AdBrixEventUploadTimeIntervalMAX]; return YES; }
GDPR Setup
The developer can stop the DFINERY SDK from working using GDPR API.
If the GDPR API is called, DFINERY SDK will stop working including saving, uploading events.
This cannot be re-inverted unless a user deletes the app.
func gdprForgetMeEvent() { // Create AdBrixRM Instance let adBrix = AdBrixRM.getInstance adBrix.getInstance.gdprForgetMe() }
- (IBAction)click_gdprForgetMe:(id)sender { // Create AdBrixRM Instance AdBrixRM *adBrix = [AdBrixRM sharedInstance]; [adBrix gdprForgetMe]; }
Deeplink and DefferdDeeplink
You can analyze app reopen events by deep link URL.
Set a custom deep link URL scheme on your app.
Deeplink open event
Move to [General > Target > Info > URL Types] and set URL Scheme.
Open AppDelegate.
Add application(_ app: open url: options: ) delegate and add the code like the following.
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; }
In the case of using UIScene after iOS13, add the following code within sceneDelegate.swift.
import AdBrixRmKit 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 as NSURL // Create AdBrixRM Instance let adBrix = AdBrixRM.getInstance // Add Deep Link Open Tracking Code adBrix.deepLinkOpen(url:url) }
#import <AdBrixRmKit/AdBrixRmKit-Swift.h> @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 *h> *)URLContexts { NSURL *url = URLContexts.allObjects.firstObject.URL; // Create AdBrixRM Instance AdBrixRM *adBrix = [AdBrixRM sharedInstance]; // Add Deep Link Open Tracking Code [adBrix deepLinkOpenWithUrl:url]; }
Universal link
Go to [General > Target > Capabilities> Associated Domains] and set your universal link like the following screenshot.
[[인용:경고:보통]] When you add a universal link, you have to type applinks:your_appkey.adtouch.adbrix.io. Set your Appkey at the "your_appkey" part.
Add the following code within AppDelegate to analyze deep link open via Universal Link.
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; }
Deferred Deeplink Tracking
If you want to show users a certain view when the user installs the app after clicking the tracking link, the deferred deep link API will work.
[[인용:위험:작게]] - Deferred Deeplink API will send scheme data in String after the user installs the app with a tracking link.
example : yourscheme://your_custom_path
import UIKit import AdBrixRM import AdSupport @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 if ((NSClassFromString("ASIdentifierManager")) != nil){ let ifa : UUID = ASIdentifierManager.shared().advertisingIdentifier; adBrix.setAppleAdvertisingIdentifier(ifa.uuidString) } // 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 }
- (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]; if ((NSClassFromString(@"ASIdentifierManager")) != nil) { NSUUID *ifa =[[ASIdentifierManager sharedManager]advertisingIdentifier]; [adBrix setAppleAdvertisingIdentifier:[ifa UUIDString]]; } return YES; } // Deferred Deep Link Trakcing - (void)didReceiveDeferredDeeplinkWithDeeplink:(NSString * _Nonnull)deeplink { NSLog(@"ADBRIXRM DEEPLINK RECEIVE : %@ ", deeplink); // you should convert view using "deeplink" value }
*. Caution: If you want to do something on UI using data from a deferred deep link listener, you have to work on the main thread.
[[인용:경고:보통]] If your DeferredDeeplink Listener Doesn't Work
If you cannot call a deferred deep link listener, check the following.
1. Check if a conversion has occurred by the tracking link.
2. Check if you set a deep link at your tracking link.
[[인용:위험:작게]] IF you cannot use Facebook SDK 'fetchDeferredAppLinkData API'
If you want to integrate DFINERY DeferredDeeplink API, you have to delete Facebook SDK fetchDeferredAppLinkData API.
App Event Analysis
You can analyze in-app events and create in-app event reports at DFINERY dashboard.
To analyze the in-app events, you must add DFINERY event API when an event is executed.
The following list is 5 different types of in-app event APIs.
-
User Analysis
- Login / Logout Event
- User information
- Location information
- Custom Event Analysis
-
General Events Analysis
- Signup
- App update
- User invitation
- Use in-app credit
- In-Purchase
-
Commerce Events Analysis
- Home view
- Category view
- Product view
- Add to cart
- Add to wishlist
- Review order
- Refund
- Product search
- Product share
- Product listview
- Cart view
- Payment information
-
Game Events
- Tutorial complete
- Create character
- Stage complete
- Level up
User Analysis
Login / Logout Event
Analyze Login / Logout event.
You can send UserID when a user logs on or logs out.
@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"]; } }
* Warning: Do not send personal information like email, phone number, etc. on the loginWithUserID API. If you have personal information on loginWithUserID API, we strongly recommend encrypting with BASE64, MD5, SHA1.
User Information
You can analyze a user's age, gender, and other information using user information 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)
// Extra User Information
let attrModel = AdBrixRmAttrModel()
attrModel.setAttrDataString("city", "seoul")
attrModel.setAttrDataInt("height", 36)
attrModel.setAttrDataBool("married", true)
adBrix.setUserPropertiesWithAttr(attrModel: attrModel)
}
- (void)userPropertyUpdate {
// Create AdBrixRM Instance
AdBrixRM *adBrix = [AdBrixRM sharedInstance];
// User Age
NSInteger age = 30;
[adBrix setAgeWithInt:age];
// User Gender
[adBrix setGenderWithAdBrixGenderType:AdBrixGenderTypeFemale];
// Extra User Information
AdBrixRmAttrModel * attrModel = [AdBrixRmAttrModel alloc];
[attrModel setAttrDataString:@"city" :@"seoul"];
[attrModel setAttrDataInt:@"age" :36];
[attrModel setAttrDataBool:@"married" :true];
[adBrix setUserPropertiesWithAttrWithAttrModel:attrModel];
}
[[인용:위험:보통]]Constraints of user and event data using AttrModel
1. You can send up to 100 data.
2. The Key should be String and up to 256 letters with lowercase alphabetic characters and numbers only.
3. The Value data only should be less than 1024byte.
Location information
After you get an agreement on user location, you can analyze the user's location.
@IBAction func location_update(_ sender: Any) { // Create AdBrixRM Instance let adBrix = AdBrixRM.getInstance // Update User's Latitude and Longitude adBrix.setLocation(latitude: 32.514, longitude: 126.986) }
- (void)locationUpdate { // Create AdBrixRM Instance AdBrixRM *adBrix = [AdBrixRM sharedInstance]; double lat = 37.541; double lon = 126.986; // Update User's Latitude and Longitude [adBrix setLocationWithLatitude:lat longitude:lon]; }
* DFINERY does not take responsibility to use user location.
Custom event
You can analyze a customized event.
@IBAction func user_custom_event(_ sender: Any) { // Create adbrix Instance let adBrix = AdBrixRM.getInstance // Addtional event parameter let attrModel = AdBrixRmAttrModel() attrModel.setAttrDataString("gender", "male") attrModel.setAttrDataInt("age", 36) // Click a button "Invite a friend" adBrix.eventWithAttr(eventName: "invite_button_click", value: attrModel) // Complete "Character creation" adBrix.eventWithAttr(eventName: "create_character_complete", value: attrModel) // Complete "Tutorial view" adBrix.eventWithAttr(eventName: "tutorial_complete", value: attrModel) // Achieve "Level 10" adBrix.eventWithAttr(eventName: "level_10", value: attrModel) }
- (void)userCustomEvent { // Create adbrix Instance AdBrixRM *adBrix = [AdBrixRM sharedInstance]; // Addtional event parameter AdBrixRmAttrModel * attrModel = [AdBrixRmAttrModel alloc]; [attrModel setAttrDataString:@“userid” :@“peterPark1234"]; [attrModel setAttrDataString:@“gender” :@“male”]; [attrModel setAttrDataInt:@“age” :36]; // Click a button "Invite a friend" [adBrix eventWithAttrWithEventName:@"invite_button_click" value:attrModel]; // Complete "Character creation" [adBrix eventWithAttrWithEventName:@"create_character_complete" value:attrModel]; // Complete "Tutorial view" [adBrix eventWithAttrWithEventName:@"tutorial_complete" value:attrModel]; // Achieve "Level 10" [adBrix eventWithAttrWithEventName:@"level_10" value:attrModel]; }
※ Caution
If you set up a custom event name in every single situation like the following example, this will create tons of events.
// Create adbrix Instance let adBrix = AdBrixRM.getInstance adBrix.event("custom:Lev-37 cleared,clearTime:00:00:39.2343535")
Please use an additional event parameter API(AdBrixRm.AttrModel) to manage the event.
// Create adbrix Instance
let adBrix = AdBrixRM.getInstance
// Additional event parameter
let attrModel = AdBrixRmAttrModel()
attrModel.setAttrDataInt(“level”, 37)
attrModel.setAttrDataInt(“clear_time_mile”, 39238)
// Custom event API with event parameter
AdBrixRm.eventWithAttr("level_clear", value: attrModel)
General Event Analysis
DFINERY SDK has 5 predefined events that have generally occurred in almost every app.
- Signup
- App update
- User invitation
- Using in-app credit
- in-app purchase
* If you want to analyze an in-app purchase event on a report, you must integrate an in-app purchase API.
Signup
You can analyze a user in-app registration event.
@IBAction func userRegister(_ sender: Any) { // Create AdBrixRM Instance let adBrix = AdBrixRM.getInstance // Set Extra User Information let attrModel = AdBrixRmAttrModel() attrModel.setAttrDataString("gender", "male") attrModel.setAttrDataInt("height", 36) attrModel.setAttrDataBool("married", true) // Register API adBrix.commonSignUpWithAttr(channel: AdBrixRM.AdBrixRmSignUpChannel.AdBrixRmSignUpGoogleChannel, commonAttr: attrModel) }
- (void) registerEvent { // Create AdBrixRM Instance AdBrixRM *adBrix = [AdBrixRM sharedInstance]; // Extra User Information AdBrixRmAttrModel * attrModel = [AdBrixRmAttrModel alloc]; [attrModel setAttrDataString:@"nickname" :@"peter"]; [attrModel setAttrDataString:@"gender" :@"male"]; [attrModel setAttrDataInt:@"age" :36]; [attrModel setAttrDataInt:@"credit" :5000.00]; [attrModel setAttrDataBool:@"married" :true]; // Register API [adBrix commonSignUpWithAttrWithChannel:AdBrixRmSignUpChannelAdBrixRmSignUpGoogleChannel commonAttr:attrModel]; }
App Update
You can analyze app update events.
@IBAction func appUpdate(_ sender: Any) { // Create AdBrixRM Instance let adBrix = AdBrixRM.getInstance // User Information let attrModel = AdBrixRmAttrModel() attrModel.setAttrDataString("gender", "male") 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 alloc]; [attrModel setAttrDataString:@"nickname" :@"peter"]; [attrModel setAttrDataString:@"gender" :@"male"]; [attrModel setAttrDataInt:@"age" :36]; [attrModel setAttrDataInt:@"credit" :5000.00]; [attrModel setAttrDataBool:@"married" :true]; // App Update API [adBrix commonAppUpdateWithAttrWithPrev_ver:@"1.0.2" curr_ver:@"1.0.4" commonAttr:attrModel]; }
User invitation
You can analyze the user invitation event using DFINERY SDK API.
@IBAction func userInvite(_ sender: Any) { // Create AdBrix Instance let adBrix = AdBrixRM.getInstance // User Information let attrModel = AdBrixRmAttrModel() attrModel.setAttrDataString("gender", "male") 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 alloc]; [attrModel setAttrDataString:@"nickname" :@"peter"]; [attrModel setAttrDataString:@"gender" :@"male"]; [attrModel setAttrDataInt:@"age" :36]; [attrModel setAttrDataInt:@"credit" :5000.00]; [attrModel setAttrDataBool:@"married" :true]; // User Invitaion API [adBrix commonInviteWithAttrWithChannel:AdBrixRmInviteChannelAdBrixRmInviteKakaoChannel commonAttr:attrModel]; }
Use in-app credit
You can analyze when a user uses in-app monetary credit.
@IBAction func useCredit(_ sender: Any) { // Create AdBrixRM Instance let adBrix = AdBrixRM.getInstance // User Information let attrModel = AdBrixRmAttrModel() attrModel.setAttrDataString("gender", "male") 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 alloc]; [attrModel setAttrDataString:@"nickname" :@"peter"]; [attrModel setAttrDataString:@"gender" :@"male"]; [attrModel setAttrDataInt:@"age" :36]; [attrModel setAttrDataInt:@"credit" :5000.00]; [attrModel setAttrDataBool:@"married" :true]; // Use Credit API [adBrix commonUseCreditWithAttrWithCommonAttr:attrModel]; }
In-app purchase
You can analyze in-app purchase events when a user purchases a product.
There are 5 required data and optional data for in-app purchase API.
- order id (required)
- product id (required)
- product name (required)
- price (required)
- quantity (required)
- discount (optional)
- currency (optional)
- category (optional)
- product attr map (optional)
- delivery charge (optional)
- payment method (optional)
@IBAction func purchase_event(_ sender: Any) {
// Create AdBrixRM Instance
let adBrix = AdBrixRM.getInstance
// event AttrModel
let attrModel = AdBrixRmAttrModel()
attrModel.setAttrDataString("nickname", "peter")
attrModel.setAttrDataInt("age", 36)
attrModel.setAttrDataInt("credit", 10000)
attrModel.setAttrDataBool("married", true)
// Product Option AttrModel
let productAttr1 = AdBrixRmAttrModel()
productAttr1.setAttrDataString("product_type", "computer")
productAttr1.setAttrDataString("color", "black")
productAttr1.setAttrDataInt("size", 36)
productAttr1.setAttrDataInt("current_point", 123456)
productAttr1.setAttrDataBool("promotion", true)
// Product model
let productModel1 = adBrix.createCommerceProductDataWithAttr(
productId: "productID_1",
productName: "productname 1",
price: 123456.00,
quantity: 1,
discount: 2500.00,
currencyString: adBrix.getCurrencyString(AdBrixRM.AdBrixRmCurrencyType.KRW.rawValue),
category: adBrix.createCommerceProductCategoryData(category: "computer", category2: "PC", category3: "cd-rom", category4: "software", category5: "game"),
productAttrsMap: productAttr1)
// Product Option AttrModel
let productAttr2 = AdBrixRmAttrModel()
productAttr2.setAttrDataString("product_type", "pants")
productAttr2.setAttrDataString("color", "blue")
productAttr2.setAttrDataInt("size", 42)
productAttr2.setAttrDataInt("current_point", 234423)
productAttr2.setAttrDataBool("promotion", false)
// Product Model
let productModel2 = adBrix.createCommerceProductDataWithAttr(
productId: "productID_2",
productName: "product 2",
price: 700000.00,
quantity: 1,
discount: 3500.00,
currencyString: adBrix.getCurrencyString(AdBrixRM.AdBrixRmCurrencyType.KRW.rawValue),
category: adBrix.createCommerceProductCategoryData(category: "clothes", category2: "pants", category3: "jean", category4: "longpants", category5: "sales"),
productAttrsMap: productAttr2)
// Product List Array
var proArr : Array<AdBrixRmCommerceProductModel> = Array()
proArr.append(productModel1)
proArr.append(productModel2)
// Purchase API
adBrix.commonPurchaseWithAttr(orderId: "orderid_1",
productInfo: proArr,
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 alloc];
[attrModel setAttrDataString:@"nickname" :@"peter"];
[attrModel setAttrDataString:@"gender" :@"male"];
[attrModel setAttrDataInt:@"age" :36];
[attrModel setAttrDataInt:@"credit" :5000.00];
[attrModel setAttrDataBool:@"married" :true];
// Product Option AttrModel
AdBrixRmAttrModel * productAttr1 = [AdBrixRmAttrModel alloc];
[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 alloc];
[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
discount:10000.00
deliveryCharge:2500.00
paymentMethod:[adBrix getPaymentMethod:AdbrixRmPaymentMethodCreditCard]
orderAttr:attrModel];
}
Commerce Analysis
You can analyze in-app commerce events like product view, add to cart, etc using DFINERY SDK API.
DFINERY SDK provides 12 predefined commerce APIs.
- Home view
- Category view
- Product view
- Add to cart
- Add to wishlist
- Review order
- Refund
- Product search
- Product share
- Product listview
- Cart view
- Payment information
Home view
You can analyze events when a user opens your app through the home view.
@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]; }
Category view
You can analyze events when a user views a product category.
You can add up to 5 categories in a Category view event.
@IBAction func viewCategoryEvent(_ sender: Any) {
// Create AdBrixRM Instance
let adBrix = AdBrixRM.getInstance
// Event AttrModel
let attrModel = AdBrixRmAttrModel()
attrModel.setAttrDataString("nickname", "peter")
attrModel.setAttrDataInt("age", 36)
attrModel.setAttrDataInt("credit", 10000)
attrModel.setAttrDataBool("married", true)
// Product Option AttrModel
let productAttr1 = AdBrixRmAttrModel()
productAttr1.setAttrDataString("product_type", "computer")
productAttr1.setAttrDataString("color", "black")
productAttr1.setAttrDataInt("size", 36)
productAttr1.setAttrDataInt("current_point", 123456)
productAttr1.setAttrDataBool("promotion", true)
// Product model
let productModel1 = adBrix.createCommerceProductDataWithAttr(
productId: "productID_1",
productName: "productname 1",
price: 123456.00,
quantity: 1,
discount: 2500.00,
currencyString: adBrix.getCurrencyString(AdBrixRM.AdBrixRmCurrencyType.KRW.rawValue),
category: adBrix.createCommerceProductCategoryData(category: "computer", category2: "PC", category3: "cd-rom", category4: "software", category5: "game"),
productAttrsMap: productAttr1)
// Product Option AttrModel
let productAttr2 = AdBrixRmAttrModel()
productAttr2.setAttrDataString("product_type", "pants")
productAttr2.setAttrDataString("color", "blue")
productAttr2.setAttrDataInt("size", 42)
productAttr2.setAttrDataInt("current_point", 234423)
productAttr2.setAttrDataBool("promotion", false)
// Product model
let productModel2 = adBrix.createCommerceProductDataWithAttr(
productId: "productID_2",
productName: "product 2",
price: 700000.00,
quantity: 1,
discount: 3500.00,
currencyString: adBrix.getCurrencyString(AdBrixRM.AdBrixRmCurrencyType.KRW.rawValue),
category: adBrix.createCommerceProductCategoryData(category: "clothes", category2: "pants", category3: "jean", category4: "longpants", category5: "sales"),
productAttrsMap: productAttr2)
// Product list array
var proArr : Array<AdBrixRmCommerceProductModel> = Array()
proArr.append(productModel1)
proArr.append(productModel2)
// Category View API
adBrix.commerceCategoryViewWithAttr(category: adBrix.createCommerceProductCategoryData(category: "clothes", category2: "skirt", category3: "female", category4: "dress", category5: "spring"),
productInfo: proArr,
orderAttr: attrModel)
}
- (void)viewCategoryEvent {
// Create AdBrixRM Instance
AdBrixRM *adbrix = [AdBrixRM sharedInstance];
// Event AttrMode
AdBrixRmAttrModel * attrModel = [AdBrixRmAttrModel alloc];
[attrModel setAttrDataString:@"nickname" :@"peter"];
[attrModel setAttrDataString:@"gender" :@"male"];
[attrModel setAttrDataInt:@"age" :36];
[attrModel setAttrDataInt:@"credit" :5000.00];
[attrModel setAttrDataBool:@"married" :true];
// Product Option AttrModel
AdBrixRmAttrModel * productAttr1 = [AdBrixRmAttrModel alloc];
[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 alloc];
[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 view
You can analyze events when a user views a specific product.
There are 4 required data and optional data for in-app purchase API.
- product id : (required)
- product name : (required)
- price : (required)
- quantity : (required)
- discount : (optional)
- currency string : (optional)
- category : (optional)
- product attr map : (optional)
@IBAction func viewProductDetailEvent(_ sender: Any) {
// Create AdBrixRM Instance
let adBrix = AdBrixRM.getInstance
// event AttrModel
let attrModel = AdBrixRmAttrModel()
attrModel.setAttrDataString("nickname", "peter")
attrModel.setAttrDataInt("age", 36)
attrModel.setAttrDataInt("credit", 10000)
attrModel.setAttrDataBool("married", true)
// Product Option AttrModel
let productAttr1 = AdBrixRmAttrModel()
productAttr1.setAttrDataString("product_type", "computer")
productAttr1.setAttrDataString("color", "black")
productAttr1.setAttrDataInt("size", 36)
productAttr1.setAttrDataInt("current_point", 123456)
productAttr1.setAttrDataBool("promotion", true)
// Product Model
let productModel1 = adBrix.createCommerceProductDataWithAttr(
productId: "productID_1",
productName: "productname 1",
price: 123456.00,
quantity: 1,
discount: 2500.00,
currencyString: adBrix.getCurrencyString(AdBrixRM.AdBrixRmCurrencyType.KRW.rawValue),
category: adBrix.createCommerceProductCategoryData(category: "computer", category2: "PC", category3: "cd-rom", category4: "software", category5: "game"),
productAttrsMap: productAttr1)
// Product View API
adBrix.commerceProductViewWithAttr(productInfo: productModel1, orderAttr: attrModel)
}
- (void)viewProductDetailEvent {
// Create AdBrixRM Instance
AdBrixRM *adbrix = [AdBrixRM sharedInstance];
// Event AttrModel
AdBrixRmAttrModel * attrModel = [AdBrixRmAttrModel alloc];
[attrModel setAttrDataString:@"nickname" :@"peter"];
[attrModel setAttrDataString:@"gender" :@"male"];
[attrModel setAttrDataInt:@"age" :36];
[attrModel setAttrDataInt:@"credit" :5000.00];
[attrModel setAttrDataBool:@"married" :true];
// Product Option AttrModel
AdBrixRmAttrModel * productAttr1 = [AdBrixRmAttrModel alloc];
[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];
}
Add to cart
You can analyze events when a user adds a certain product to the cart.
There are 4 required data and optional data for in-app Add to Cart API.
- product id : (required)
- product name : (required)
- price : (required)
- quantity : (required)
- discount : (optional)
- currency string : (optional)
- category : (optional)
- product attr map : (optional)
@IBAction func addToCartEvent(_ sender: Any) {
// Create AdBrixRM Instance
let adBrix = AdBrixRM.getInstance
// Event AttrModel
let attrModel = AdBrixRmAttrModel()
attrModel.setAttrDataString("nickname", "peter")
attrModel.setAttrDataInt("age", 36)
attrModel.setAttrDataInt("credit", 10000)
attrModel.setAttrDataBool("married", true)
// Product Option AttrModel
let productAttr1 = AdBrixRmAttrModel()
productAttr1.setAttrDataString("product_type", "computer")
productAttr1.setAttrDataString("color", "black")
productAttr1.setAttrDataInt("size", 36)
productAttr1.setAttrDataInt("current_point", 123456)
productAttr1.setAttrDataBool("promotion", true)
// Product Model
let productModel1 = adBrix.createCommerceProductDataWithAttr(
productId: "productID_1",
productName: "productname 1",
price: 123456.00,
quantity: 1,
discount: 2500.00,
currencyString: adBrix.getCurrencyString(AdBrixRM.AdBrixRmCurrencyType.KRW.rawValue),
category: adBrix.createCommerceProductCategoryData(category: "computer", category2: "PC", category3: "cd-rom", category4: "software", category5: "game"),
productAttrsMap: productAttr1)
// Product Option AttrModel
let productAttr2 = AdBrixRmAttrModel()
productAttr2.setAttrDataString("product_type", "pants")
productAttr2.setAttrDataString("color", "blue")
productAttr2.setAttrDataInt("size", 42)
productAttr2.setAttrDataInt("current_point", 234423)
productAttr2.setAttrDataBool("promotion", false)
// product model
let productModel2 = adBrix.createCommerceProductDataWithAttr(
productId: "productID_2",
productName: "product 2",
price: 700000.00,
quantity: 1,
discount: 3500.00,
currencyString: adBrix.getCurrencyString(AdBrixRM.AdBrixRmCurrencyType.KRW.rawValue),
category: adBrix.createCommerceProductCategoryData(category: "cloth", category2: "pants", category3: "jean", category4: "longpants", category5: "sales"),
productAttrsMap: productAttr2)
// Product List Array
var proArr : Array<AdBrixRmCommerceProductModel> = Array()
proArr.append(productModel1)
proArr.append(productModel2)
// Add to Cart API
adBrix.commerceAddToCartWithAttr(productInfo: proArr, orderAttr: attrModel)
}
- (void)addToCartEvent {
// Create AdBrixRM Instance
AdBrixRM *adbrix = [AdBrixRM sharedInstance];
// Event AttrMode
AdBrixRmAttrModel * attrModel = [AdBrixRmAttrModel alloc];
[attrModel setAttrDataString:@"nickname" :@"peter"];
[attrModel setAttrDataString:@"gender" :@"male"];
[attrModel setAttrDataInt:@"age" :36];
[attrModel setAttrDataInt:@"credit" :5000.00];
[attrModel setAttrDataBool:@"married" :true];
// Product Option AttrModel
AdBrixRmAttrModel * productAttr1 = [AdBrixRmAttrModel alloc];
[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 alloc];
[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];
}
Add to wishlist
You can analyze events when a user adds a certain product to the wishlist.
There are 4 required data and optional data for in-app wishlist API.
- product id : (required)
- product name : (required)
- price : (required)
- quantity : (required)
- discount : (optional)
- currency string : (optional)
- category : (optional)
- product attr map : (optional)
API (In case using single ProductModel)
@IBAction func addToWishListEvent(_ sender: Any) {
// Create adbrix Instance
let adBrix = AdBrixRM.getInstance
// event AttrModel
let attrModel = AdBrixRmAttrModel()
attrModel.setAttrDataString("nickname", "peter")
attrModel.setAttrDataInt("age", 36)
attrModel.setAttrDataInt("credit", 10000)
attrModel.setAttrDataBool("married", true)
// product option AttrModel
let productAttr1 = AdBrixRmAttrModel()
productAttr1.setAttrDataString("product_type", "computer")
productAttr1.setAttrDataString("color", "black")
productAttr1.setAttrDataInt("size", 36)
productAttr1.setAttrDataInt("current_point", 123456)
productAttr1.setAttrDataBool("promotion", true)
// create product model
let productModel1 = adBrix.createCommerceProductDataWithAttr(
productId: "productID_1",
productName: "productname 1",
price: 123456.00,
quantity: 1,
discount: 2500.00,
currencyString: adBrix.getCurrencyString(AdBrixRM.AdBrixRmCurrencyType.KRW.rawValue),
category: adBrix.createCommerceProductCategoryData(category: "computer", category2: "PC", category3: "cd-rom", category4: "software", category5: "game"),
productAttrsMap: productAttr1)
// Add to wishlist api
adBrix.commerceAddToWishListWithAttr(productInfo: productModel1, orderAttr: attrModel)
}
- (void)addToWishListEvent {
// Create AdBrixRM Instance
AdBrixRM *adbrix = [AdBrixRM sharedInstance];
// Event AttrMode
AdBrixRmAttrModel * attrModel = [AdBrixRmAttrModel alloc];
[attrModel setAttrDataString:@"nickname" :@"peter"];
[attrModel setAttrDataString:@"gender" :@"male"];
[attrModel setAttrDataInt:@"age" :36];
[attrModel setAttrDataInt:@"credit" :5000.00];
[attrModel setAttrDataBool:@"married" :true];
// Product Option AttrModel
AdBrixRmAttrModel * productAttr1 = [AdBrixRmAttrModel alloc];
[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 (In case using multiple ProductModels)
[[인용:경고:보통]] This API can be used from iOS SDK 2.4.0.1
Review Order
You can analyze events when a user reviews the product order.
There are 4 required data and optional data for in-app review order API.
- order id : (required)
- product id : (required)
- product name : (required)
- price : (required)
- quantity : (required)
- discount : (optional)
- currency string : (optional)
- category : (optional)
- product attr map : (optional)
- delivery charge : (optional)
@IBAction func reviewOrderEvent(_ sender: Any) {
// Create AdBrix Instance
let adBrix = AdBrixRM.getInstance
// event AttrModel
let attrModel = AdBrixRmAttrModel()
attrModel.setAttrDataString("nickname", "peter")
attrModel.setAttrDataInt("age", 36)
attrModel.setAttrDataInt("credit", 10000)
attrModel.setAttrDataBool("married", true)
// Product Option AttrModel
let productAttr1 = AdBrixRmAttrModel()
productAttr1.setAttrDataString("product_type", "computer")
productAttr1.setAttrDataString("color", "black")
productAttr1.setAttrDataInt("size", 36)
productAttr1.setAttrDataInt("current_point", 123456)
productAttr1.setAttrDataBool("promotion", true)
// Product model
let productModel1 = adBrix.createCommerceProductDataWithAttr(
productId: "productID_1",
productName: "productname 1",
price: 123456.00,
quantity: 1,
discount: 2500.00,
currencyString: adBrix.getCurrencyString(AdBrixRM.AdBrixRmCurrencyType.KRW.rawValue),
category: adBrix.createCommerceProductCategoryData(category: "computer", category2: "PC", category3: "cd-rom", category4: "software", category5: "game"),
productAttrsMap: productAttr1)
// Product option AttrModel2
let productAttr2 = AdBrixRmAttrModel()
productAttr2.setAttrDataString("product_type", "pants")
productAttr2.setAttrDataString("color", "blue")
productAttr2.setAttrDataInt("size", 42)
productAttr2.setAttrDataInt("current_point", 234423)
productAttr2.setAttrDataBool("promotion", false)
// product model2
let productModel2 = adBrix.createCommerceProductDataWithAttr(
productId: "productID_2",
productName: "product 2",
price: 700000.00,
quantity: 1,
discount: 3500.00,
currencyString: adBrix.getCurrencyString(AdBrixRM.AdBrixRmCurrencyType.KRW.rawValue),
category: adBrix.createCommerceProductCategoryData(category: "cloth", category2: "pants", category3: "jean", category4: "longpants", category5: "sales"),
productAttrsMap: productAttr2)
// Product List Array
var proArr : Array<AdBrixRmCommerceProductModel> = Array()
proArr.append(productModel1)
proArr.append(productModel2)
// Review Order API
adBrix.commerceReviewOrderWithAttr(orderId: "orderID_2",
productInfo: proArr,
discount: 2500.00,
deliveryCharge: 3000.00,
orderAttr: attrModel)
}
- (void)reviewOrderEvent {
// Create AdBrix Instance
AdBrixRM *adbrix = [AdBrixRM sharedInstance];
// Create Event AttrMode
AdBrixRmAttrModel * attrModel = [AdBrixRmAttrModel alloc];
[attrModel setAttrDataString:@"nickname" :@"peter"];
[attrModel setAttrDataString:@"gender" :@"male"];
[attrModel setAttrDataInt:@"age" :36];
[attrModel setAttrDataInt:@"credit" :5000.00];
[attrModel setAttrDataBool:@"married" :true];
// Product Option AttrModel
AdBrixRmAttrModel * productAttr1 = [AdBrixRmAttrModel alloc];
[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 alloc];
[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];
}
Refund
You can analyze events when a user refunds a product order.
There are 5 required data and optional data for in-app refund API.
- order id : (required)
- product id : (required)
- product name : (required)
- price : (required)
- quantity : (required)
- discount : (optional)
- currency string : (optional)
- category : (optional)
- product attr map : (optional)
- penalty charge : (optional)
func refundOrderEvent() {
// Create AdBrix Instance
let adBrix = AdBrixRM.getInstance
// Event AttrModel
let attrModel = AdBrixRmAttrModel()
attrModel.setAttrDataString("nickname", "peter")
attrModel.setAttrDataInt("age", 36)
attrModel.setAttrDataInt("credit", 10000)
attrModel.setAttrDataBool("married", true)
// Product Option AttrModel
let productAttr1 = AdBrixRmAttrModel()
productAttr1.setAttrDataString("product_type", "computer")
productAttr1.setAttrDataString("color", "black")
productAttr1.setAttrDataInt("size", 36)
productAttr1.setAttrDataInt("current_point", 123456)
productAttr1.setAttrDataBool("promotion", true)
// Product model
let productModel1 = adBrix.createCommerceProductDataWithAttr(
productId: "productID_1",
productName: "productname 1",
price: 123456.00,
quantity: 1,
discount: 2500.00,
currencyString: adBrix.getCurrencyString(AdBrixRM.AdBrixRmCurrencyType.KRW.rawValue),
category: adBrix.createCommerceProductCategoryData(category: "computer", category2: "PC", category3: "cd-rom", category4: "software", category5: "game"),
productAttrsMap: productAttr1)
// Product Option AttrModel
let productAttr2 = AdBrixRmAttrModel()
productAttr2.setAttrDataString("product_type", "pants")
productAttr2.setAttrDataString("color", "blue")
productAttr2.setAttrDataInt("size", 42)
productAttr2.setAttrDataInt("current_point", 234423)
productAttr2.setAttrDataBool("promotion", false)
// Product model
let productModel2 = adBrix.createCommerceProductDataWithAttr(
productId: "productID_2",
productName: "product 2",
price: 700000.00,
quantity: 1,
discount: 3500.00,
currencyString: adBrix.getCurrencyString(AdBrixRM.AdBrixRmCurrencyType.KRW.rawValue),
category: adBrix.createCommerceProductCategoryData(category: "cloth", category2: "pants", category3: "jean", category4: "longpants", category5: "sales"),
productAttrsMap: productAttr2)
// Product List Array
var proArr : Array<AdBrixRmCommerceProductModel> = Array()
proArr.append(productModel1)
proArr.append(productModel2)
// Refund API
adBrix.commerceRefundWithAttr(orderId: "orderID_3",
productInfo: proArr,
penaltyCharge: 250000.00,
orderAttr: attrModel)
}
- (void)refundOrderEvent {
// Create AdBrixRM Instance
AdBrixRM *adbrix = [AdBrixRM sharedInstance];
// Event AttrMode
AdBrixRmAttrModel * attrModel = [AdBrixRmAttrModel alloc];
[attrModel setAttrDataString:@"nickname" :@"peter"];
[attrModel setAttrDataString:@"gender" :@"male"];
[attrModel setAttrDataInt:@"age" :36];
[attrModel setAttrDataInt:@"credit" :5000.00];
[attrModel setAttrDataBool:@"married" :true];
// Product Option AttrModel
AdBrixRmAttrModel * productAttr1 = [AdBrixRmAttrModel alloc];
[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 alloc];
[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];
}
Product search
You can analyze events when a user searches a product.
There are 5 required data and optional data for in-app product search API.
- keyword : (required)
- product id : (required)
- product name : (required)
- price : (required)
- quantity : (required)
- discount : (optional)
- currency string : (optional)
- category : (optional)
@IBAction func searchResultEvent() {
// Create AdBrixRM Instance
let adBrix = AdBrixRM.getInstance
// Event AttrModel
let attrModel = AdBrixRmAttrModel()
attrModel.setAttrDataString("nickname", "peter")
attrModel.setAttrDataInt("age", 36)
attrModel.setAttrDataInt("credit", 10000)
attrModel.setAttrDataBool("married", true)
// Product Option AttrModel
let productAttr1 = AdBrixRmAttrModel()
productAttr1.setAttrDataString("product_type", "computer")
productAttr1.setAttrDataString("color", "black")
productAttr1.setAttrDataInt("size", 36)
productAttr1.setAttrDataInt("current_point", 123456)
productAttr1.setAttrDataBool("promotion", true)
// Create Product Model
let productModel1 = adBrix.createCommerceProductDataWithAttr(
productId: "productID_1",
productName: "productname 1",
price: 123456.00,
quantity: 1,
discount: 2500.00,
currencyString: adBrix.getCurrencyString(AdBrixRM.AdBrixRmCurrencyType.KRW.rawValue),
category: adBrix.createCommerceProductCategoryData(category: "computer", category2: "PC", category3: "cd-rom", category4: "software", category5: "game"),
productAttrsMap: productAttr1)
// Product Option AttrModel
let productAttr2 = AdBrixRmAttrModel()
productAttr2.setAttrDataString("product_type", "pants")
productAttr2.setAttrDataString("color", "blue")
productAttr2.setAttrDataInt("size", 42)
productAttr2.setAttrDataInt("current_point", 234423)
productAttr2.setAttrDataBool("promotion", false)
// Product Model
let productModel2 = adBrix.createCommerceProductDataWithAttr(
productId: "productID_2",
productName: "product 2",
price: 700000.00,
quantity: 1,
discount: 3500.00,
currencyString: adBrix.getCurrencyString(AdBrixRM.AdBrixRmCurrencyType.KRW.rawValue),
category: adBrix.createCommerceProductCategoryData(category: "cloth", category2: "pants", category3: "jean", category4: "longpants", category5: "sales"),
productAttrsMap: productAttr2)
// Product List Array
var proArr : Array<AdBrixRmCommerceProductModel> = Array()
proArr.append(productModel1)
proArr.append(productModel2)
// Product Search API
adBrix.commerceSearchWithAttr(productInfo: proArr,
keyword: "This is a search keyword.",
orderAttr: attrModel)
}
- (void)searchResultEvent {
// Create AdBrix Instance
AdBrixRM *adbrix = [AdBrixRM sharedInstance];
// Event AttrMode
AdBrixRmAttrModel * attrModel = [AdBrixRmAttrModel alloc];
[attrModel setAttrDataString:@"nickname" :@"peter"];
[attrModel setAttrDataString:@"gender" :@"male"];
[attrModel setAttrDataInt:@"age" :36];
[attrModel setAttrDataInt:@"credit" :5000.00];
[attrModel setAttrDataBool:@"married" :true];
// Product Option AttrModel
AdBrixRmAttrModel * productAttr1 = [AdBrixRmAttrModel alloc];
[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 alloc];
[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 Share
You can analyze events when a user shares a product.
There are 4 required data and optional data for in-app product share API.
- product id : (required)
- product name : (required)
- price : (required)
- quantity : (required)
- discount : (optional)
- currency string : (optional)
- category : (optional)
- product attr map : (optional)
API (In case using single ProductModel)
@IBAction func shareEvent(_ sender: Any) {
// Create AdBrix Instance
let adBrix = AdBrixRM.getInstance
// Event AttrModel
let attrModel = AdBrixRmAttrModel()
attrModel.setAttrDataString("nickname", "peter")
attrModel.setAttrDataInt("age", 36)
attrModel.setAttrDataInt("credit", 10000)
attrModel.setAttrDataBool("married", true)
// Product Option AttrModel
let productAttr1 = AdBrixRmAttrModel()
productAttr1.setAttrDataString("product_type", "computer")
productAttr1.setAttrDataString("color", "black")
productAttr1.setAttrDataInt("size", 36)
productAttr1.setAttrDataInt("current_point", 123456)
productAttr1.setAttrDataBool("promotion", true)
// Product Model
let productModel1 = adBrix.createCommerceProductDataWithAttr(
productId: "productID_1",
productName: "productname 1",
price: 123456.00,
quantity: 1,
discount: 2500.00,
currencyString: adBrix.getCurrencyString(AdBrixRM.AdBrixRmCurrencyType.KRW.rawValue),
category: adBrix.createCommerceProductCategoryData(category: "computer", category2: "PC", category3: "cd-rom", category4: "software", category5: "game"),
productAttrsMap: productAttr1)
// Product Share API
adBrix.commerceShareWithAttr(channel: AdBrixRM.AdBrixRmSharingChannel.AdBrixRmSharingKakaoStory,
productInfo: productModel1,
orderAttr: attrModel)
}
- (void)shareEvent() {
// Create AdBrixRM Instance
AdBrixRM *adbrix = [AdBrixRM sharedInstance];
// Event AttrMode
AdBrixRmAttrModel * attrModel = [AdBrixRmAttrModel alloc];
[attrModel setAttrDataString:@"nickname" :@"peter"];
[attrModel setAttrDataString:@"gender" :@"male"];
[attrModel setAttrDataInt:@"age" :36];
[attrModel setAttrDataInt:@"credit" :5000.00];
[attrModel setAttrDataBool:@"married" :true];
// Product Option AttrModel
AdBrixRmAttrModel * productAttr1 = [AdBrixRmAttrModel alloc];
[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 (In case using multiple ProductModels)
[[인용:경고:보통]] This API can be used from iOS SDK 2.4.0.1
List view
You can analyze events when a user views a list of products.
There are 5 required data and optional data for in-app list view API.
- product id : (required)
- product name : (required)
- price : (required)
- quantity : (required)
- discount : (optional)
- currency string : (optional)
- category : (optional)
- product attr map : (optional)
@IBAction func listViewEvent() {
// Create AdBrixRM Instance
let adBrix = AdBrixRM.getInstance
// Event AttrModel
let attrModel = AdBrixRmAttrModel()
attrModel.setAttrDataString("nickname", "peter")
attrModel.setAttrDataInt("age", 36)
attrModel.setAttrDataInt("credit", 10000)
attrModel.setAttrDataBool("married", true)
// Product Option AttrModel
let productAttr1 = AdBrixRmAttrModel()
productAttr1.setAttrDataString("product_type", "computer")
productAttr1.setAttrDataString("color", "black")
productAttr1.setAttrDataInt("size", 36)
productAttr1.setAttrDataInt("current_point", 123456)
productAttr1.setAttrDataBool("promotion", true)
// Product model
let productModel1 = adBrix.createCommerceProductDataWithAttr(
productId: "productID_1",
productName: "productname 1",
price: 123456.00,
quantity: 1,
discount: 2500.00,
currencyString: adBrix.getCurrencyString(AdBrixRM.AdBrixRmCurrencyType.KRW.rawValue),
category: adBrix.createCommerceProductCategoryData(category: "computer", category2: "PC", category3: "cd-rom", category4: "software", category5: "game"),
productAttrsMap: productAttr1)
// Product Option AttrModel
let productAttr2 = AdBrixRmAttrModel()
productAttr2.setAttrDataString("product_type", "pants")
productAttr2.setAttrDataString("color", "blue")
productAttr2.setAttrDataInt("size", 42)
productAttr2.setAttrDataInt("current_point", 234423)
productAttr2.setAttrDataBool("promotion", false)
// Product Model
let productModel2 = adBrix.createCommerceProductDataWithAttr(
productId: "productID_2",
productName: "product 2",
price: 700000.00,
quantity: 1,
discount: 3500.00,
currencyString: adBrix.getCurrencyString(AdBrixRM.AdBrixRmCurrencyType.KRW.rawValue),
category: adBrix.createCommerceProductCategoryData(category: "cloth", category2: "pants", category3: "jean", category4: "longpants", category5: "sales"),
productAttrsMap: productAttr2)
// Product List Array
var proArr : Array<AdBrixRmCommerceProductModel> = Array()
proArr.append(productModel1)
proArr.append(productModel2)
// list view API
adBrix.commerceListViewWithAttr(productInfo: proArr, orderAttr: attrModel)
}
- (void)listViewEvent() {
// Create AdBrixRM Instance
AdBrixRM *adbrix = [AdBrixRM sharedInstance];
// Event AttrMode
AdBrixRmAttrModel * attrModel = [AdBrixRmAttrModel alloc];
[attrModel setAttrDataString:@"nickname" :@"peter"];
[attrModel setAttrDataString:@"gender" :@"male"];
[attrModel setAttrDataInt:@"age" :36];
[attrModel setAttrDataInt:@"credit" :5000.00];
[attrModel setAttrDataBool:@"married" :true];
// Product Option AttrModel
AdBrixRmAttrModel * productAttr1 = [AdBrixRmAttrModel alloc];
[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 alloc];
[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];
}
Cart view
You can analyze events when a user sees the cart.
There are 4 required data and optional data for in-app cart view API.
- product id : (required)
- product name : (required)
- price : (required)
- quantity : (required)
- discount : (optional)
- currency string : (optional)
- category : (optional)
- product attr map : (optional)
@IBAction func cartViewEvent() {
// Create AdBrixRM Instance
let adBrix = AdBrixRM.getInstance
// Event AttrModel
let attrModel = AdBrixRmAttrModel()
attrModel.setAttrDataString("nickname", "peter")
attrModel.setAttrDataInt("age", 36)
attrModel.setAttrDataInt("credit", 10000)
attrModel.setAttrDataBool("married", true)
// Product Option AttrModel
let productAttr1 = AdBrixRmAttrModel()
productAttr1.setAttrDataString("product_type", "computer")
productAttr1.setAttrDataString("color", "black")
productAttr1.setAttrDataInt("size", 36)
productAttr1.setAttrDataInt("current_point", 123456)
productAttr1.setAttrDataBool("promotion", true)
// Product Model
let productModel1 = adBrix.createCommerceProductDataWithAttr(
productId: "productID_1",
productName: "productname 1",
price: 123456.00,
quantity: 1,
discount: 2500.00,
currencyString: adBrix.getCurrencyString(AdBrixRM.AdBrixRmCurrencyType.KRW.rawValue),
category: adBrix.createCommerceProductCategoryData(category: "computer", category2: "PC", category3: "cd-rom", category4: "software", category5: "game"),
productAttrsMap: productAttr1)
// Product Option AttrModel
let productAttr2 = AdBrixRmAttrModel()
productAttr2.setAttrDataString("product_type", "pants")
productAttr2.setAttrDataString("color", "blue")
productAttr2.setAttrDataInt("size", 42)
productAttr2.setAttrDataInt("current_point", 234423)
productAttr2.setAttrDataBool("promotion", false)
// Product Model
let productModel2 = adBrix.createCommerceProductDataWithAttr(
productId: "productID_2",
productName: "product 2",
price: 700000.00,
quantity: 1,
discount: 3500.00,
currencyString: adBrix.getCurrencyString(AdBrixRM.AdBrixRmCurrencyType.KRW.rawValue),
category: adBrix.createCommerceProductCategoryData(category: "cloth", category2: "pants", category3: "jean", category4: "longpants", category5: "sales"),
productAttrsMap: productAttr2)
// Product List Array
var proArr : Array<AdBrixRmCommerceProductModel> = Array()
proArr.append(productModel1)
proArr.append(productModel2)
// Cart View API
adBrix.commerceCartViewWithAttr(productInfo: proArr, orderAttr: attrModel)
}
- (void)cartViewEvent() {
// Create AdBrix Instance
AdBrixRM *adbrix = [AdBrixRM sharedInstance];
// Create Event AttrMode
AdBrixRmAttrModel * attrModel = [AdBrixRmAttrModel alloc];
[attrModel setAttrDataString:@"nickname" :@"peter"];
[attrModel setAttrDataString:@"gender" :@"male"];
[attrModel setAttrDataInt:@"age" :36];
[attrModel setAttrDataInt:@"credit" :5000.00];
[attrModel setAttrDataBool:@"married" :true];
// Product Option AttrModel
AdBrixRmAttrModel * productAttr1 = [AdBrixRmAttrModel alloc];
[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 alloc];
[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];
}
Payment information
You can analyze a user's payment information.
@IBAction func paymentInfoAddedEvent(_ sender: Any) {
// Create AdBrixRM Instance
let adBrix = AdBrixRM.getInstance
// Event AttrModel
let attrModel = AdBrixRmAttrModel()
attrModel.setAttrDataString("nickname", "peter")
attrModel.setAttrDataString("creditcard", "kbcard")
attrModel.setAttrDataInt("age", 36)
attrModel.setAttrDataInt("credit", 10000)
attrModel.setAttrDataBool("married", true)
// Payment API
adBrix.commercePaymentInfoAddedWithAttr(paymentInfoAttr: attrModel)
}
- (void)paymentInfoAddedEvent() {
// Create AdBrixRM instance
AdBrixRM *adBrix = [AdBrixRM sharedInstance];
// payment attrModel
AdBrixRmAttrModel * attrModel = [AdBrixRmAttrModel 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];
// Payment API
[adBrix commercePaymentInfoAddedWithAttrWithPaymentInfoAttr:attrModel];
}
Game analysis
You can analyze in-game events.
There are 4 predefined event APIs like the following list.
- Tutorial complete
- Character create
- Stage complete
- Level up
Tutorial complete
You can analyze events when a user completes game tutorials.
There is one required information in the in-app tutorial complete API.
- isSkip : (required) whether a user skip the tutorials or not
@IBAction func tutorialCompleteEvent(){
// Create AdBrixRM Instance
let adBrix = AdBrixRM.getInstance
// Event AttrModel
let attrModel = AdBrixRmAttrModel()
attrModel.setAttrDataString("nickname", "peter")
attrModel.setAttrDataInt("age", 36)
attrModel.setAttrDataInt("credit", 10000)
attrModel.setAttrDataBool("married", true)
// Tutorial Complete API
adBrix.gameTutorialCompletedWithAttr(isSkip: true, gameInfoAttr: attrModel)
}
-(void) tutorialCompleteEvent {
// Create AdBrixRM instance
AdBrixRM *adBrix = [AdBrixRM sharedInstance];
// Event AttrMode
AdBrixRmAttrModel * attrModel = [AdBrixRmAttrModel alloc];
[attrModel setAttrDataString:@"nickname" :@"peter"];
[attrModel setAttrDataString:@"gender" :@"male"];
[attrModel setAttrDataInt:@"age" :36];
[attrModel setAttrDataInt:@"credit" :5000.00];
[attrModel setAttrDataBool:@"married" :true];
// Tutorial Complete API
[adBrix gameTutorialCompletedWithAttrWithIsSkip:false gameInfoAttr:attrModel];
}
Create Character
You can analyze an event when a user creates a game character.
@IBAction func characterCreatedEvent(){
// Create AdBrix Instance
let adBrix = AdBrixRM.getInstance
// Event AttrModel
let attrModel = AdBrixRmAttrModel()
attrModel.setAttrDataString("nickname", "peter")
attrModel.setAttrDataInt("age", 36)
attrModel.setAttrDataInt("credit", 10000)
attrModel.setAttrDataBool("married", true)
// Create Character API
adBrix.gameCharacterCreatedWithAttr(gameInfoAttr: attrModel)
}
-(void) characterCreatedEvent {
// create AdBrixRM instance
AdBrixRM *adBrix = [AdBrixRM sharedInstance];
// Create Event AttrMode
AdBrixRmAttrModel * attrModel = [AdBrixRmAttrModel alloc];
[attrModel setAttrDataString:@"nickname" :@"peter"];
[attrModel setAttrDataString:@"gender" :@"male"];
[attrModel setAttrDataInt:@"age" :36];
[attrModel setAttrDataInt:@"credit" :5000.00];
[attrModel setAttrDataBool:@"married" :true];
// Create character API
[adBrix gameCharacterCreatedWithAttrWithGameInfoAttr:attrModel];
}
Stage complete
You can analyze events when a user completes a specific stage.
There is one required information in the in-app stage complete API.
- StageName : (required) Name of complete stage
@IBAction func stageClearedEvent(){
// Create AdBrixRM Instance
let adBrix = AdBrixRM.getInstance
// Event AttrModel
let attrModel = AdBrixRmAttrModel()
attrModel.setAttrDataString("nickname", "peter")
attrModel.setAttrDataInt("age", 36)
attrModel.setAttrDataInt("credit", 10000)
attrModel.setAttrDataBool("married", true)
// Stage Complete API
adBrix.gameStageClearedWithAttr(stageName: "1-5", gameInfoAttr: attrModel)
}
-(void) stageClearedEvent {
// Create AdBrixRM instance
AdBrixRM *adBrix = [AdBrixRM sharedInstance];
// Event AttrMode
AdBrixRmAttrModel * attrModel = [AdBrixRmAttrModel alloc];
[attrModel setAttrDataString:@"nickname" :@"peter"];
[attrModel setAttrDataString:@"gender" :@"male"];
[attrModel setAttrDataInt:@"age" :36];
[attrModel setAttrDataInt:@"credit" :5000.00];
[attrModel setAttrDataBool:@"married" :true];
// Stage Complete API
[adBrix gameStageClearedWithAttrWithStageName:@"1-43" gameInfoAttr:attrModel];
}
Level up
You can analyze events when a user achieves a specific game level.
There is one required information in the in-app level up API.
- Level : (required)
@IBAction func levelAchievedEvent(){
// Create AdBrixRM Instance
let adBrix = AdBrixRM.getInstance
// Event AttrModel
let attrModel = AdBrixRmAttrModel()
attrModel.setAttrDataString("nickname", "peter")
attrModel.setAttrDataInt("age", 36)
attrModel.setAttrDataInt("credit", 10000)
attrModel.setAttrDataBool("married", true)
// Level up API
adBrix.gameLevelAchievedWithAttr(level: 55, gameInfoAttr: attrModel)
}
-(void) levelAchievedEvent {
// Create AdBrixRM instance
AdBrixRM *adBrix = [AdBrixRM sharedInstance];
// Event AttrMode
AdBrixRmAttrModel * attrModel = [AdBrixRmAttrModel alloc];
[attrModel setAttrDataString:@"nickname" :@"peter"];
[attrModel setAttrDataString:@"gender" :@"male"];
[attrModel setAttrDataInt:@"age" :36];
[attrModel setAttrDataInt:@"credit" :5000.00];
[attrModel setAttrDataBool:@"married" :true];
// Level up API
[adBrix gameLevelAchievedWithAttrWithLevel:122 gameInfoAttr:attrModel];
}