Adbrix Integration [iOS Swift]
Follow
Quick Start
Xcode 12 and iOS 14 Support
[[인용:위험:작게]] 23rd Oct. 2020 Adbrix SDK updated on Cocoapods
Adbrix SDK finally updates at Cocoapods. (Update version: 1.6.5230) This version of SDK can support Xcode 12 and iOS 14. Also, support the X86_64 Simulator and real device Test. Please update SDK through Cocoapods.
System Requirement
Build Tool : Latest Xcode version required
Additional setup : Adbrix SDK written with latest version of Swift. So your project require use latest version Swift Library. (Current version of Swift : Swift 5)
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 for download and installs the external library.
We recommend using CocoaPods for installing SDK.
CocoaPods Installation
If you don't have CocoaPods on your Mac, Open the MacOS terminal and type this commend.
$ sudo gem install cocoapods
After installation is complete, you can see these result on your terminal.
... 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
After installing CocoaPods, initialize CocoaPods.
$ pod setup
After CocoaPods initialization is complete you can see these result on a terminal.
... 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 type this commend for generating Podfile.
$ pod init
Podfile setup
Open the vi editor on your terminal and type this commend on your Podfile.
After that press Esc, Shift+z twice for exit the editor.
$ vi Podfile
platform :ios, '8.0' target "myXcodeProject" do pod 'AdBrixRemastered' end
* platform number is minimum version of iOS for current Xcode project.
* There may be some error when you use a normal text editor.
Install SDK Pod
Type this command on the terminal for installing adbrix SDK.
$ pod install
* TroubleShooting!!! When pod install error occurs, execute command "pod setup".
Update SDK Pod
If you install adbrix SDK already, type command "pod update" or "pod setup" for installing latest adbrix SDK.
$ pod setup $ pod update
Open XCode Project
After installation of adbrix SDK completed, start {project_name}.xcworkspace file for open Xcode project. You can find adbrix pods.
$ open myXcodeProject.xcworkspace
Add required framework
To adbrix SDK works, it requires to add iAD frameworks.
Move to [General > Linked Frameworks and Libraries] and click the (+) button and add "iAd.framework".
Swift Library Setup
adbrix SDK is using Swift language. So to use adbrix SDK, Xcode project require to enable the Swift library.
Go to [Build Settings > Always Embed Swift Standard Libraries] and set 'yes' to use Swift library.
Apple IDFA Setup
To use adbrix Attribution SDK require Apple IDFA.
Please set IDFA at [AppDelegate.swift> application: didFinishLaunchingWithOptions:].
import AdSupport import AdBrixRM @UIApplicationMain class AppDelegate: UIResponder, UIApplicationDelegate { var window: UIWindow? func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool { // Override point for customization after application launch. // Create AdBrixRm instance let adBrix = AdBrixRM.getInstance if ((NSClassFromString("ASIdentifierManager")) != nil) { let ifa :UUID = ASIdentifierManager.shared().advertisingIdentifier; // Send IDFA to adbrix SDK adBrix.setAppleAdvertisingIdentifier(ifa.uuidString) } return true } }
AppKey & SecretKey setup
Set the adbrix AppKey and SecretKey issued from adbrix console.
import AdBrixRM func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool { // Override point for customization after application launch. // Create AdBrixRM Instance let adBrix = AdBrixRM.getInstance // AdBrix AppKey / SecretKey setup adBrix.initAdBrix(appKey: "odhvASVRDsdf10d019fva", secretKey: "ar98LszQZUGdmSznToNBXg") return true }
* AppKey is different from adbrix Classic and adbrix Remastered.
* adbrix Remastered AppKey and SecretKey can be used on both Android and iOS platform.
Start from sample project
adbrix can provide Xcode project that already installs the adbrix SDK.
You can download the project base on your project language.
[adbrix Swift Sample Project link]
[adbrix Objective-C Sample Project link]
Additional SDK setup
After adbrix SDK setup is complete, you can add additional SDK set up
- Log level setup
- Event upload cycle setup
- GDPR setup
- Deeplink setup
Log Level Setup
Seup the log level for adbrix SDK log
There are 6 levels for adbrix SDK log.
- AdBrixLogLevelNONE : No SDK log can be shown on the terminal.
- AdBrixLogLevelTRACE : General SDK logs are shown on the terminal.
- AdBrixLogLevelDEBUG : Including TRACE, debug SDK logs are shown on the terminal.
- AdBrixLogLevelINFO : Including DEBUG, Saving, loading and uploading data logs are shown on the terminal
- AdBrixLogLevelWARNING : Including INFO, It shows the SDK error like Exception or non-fatal error.
- AdBrixLogLevelERROR : Including WARNING, It shows the every SDK logs including the fatal error.
import AdBrixRM func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool { // Override point for customization after application launch. // Create AdBrixRM Instance let adBrix = AdBrixRM.getInstance // adbrix Log Level setup adBrix.setLogLevel(AdBrixRM.AdBrixLogLevel.TRACE) return true; }
Event upload cycle setup
The developer can set Event upload cycle.
Event upload cycle can set base on how many events have been counted or base on time.
Event upload counter
The developer can set Event upload counter that how many events have been called.
adbrix SDK have 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 AdBrixRM func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool { // Override point for customization after application launch. // Create AdBrixRM Instance let adBrix = AdBrixRM.getInstance // Event Upload counter API adBrix.setEventUploadCountInterval(AdBrixRM.AdBrixEventUploadCount.MIN) return true; }
Event upload timer
The developer can set the timer for uploading adbrix SDK event.
adbrix SDK has 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 AdBrixRM func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool { // Override point for customization after application launch. // Create AdBrixRM instance let adBrix = AdBrixRM.getInstance // Event upload timer API adBrix.setEventUploadTimeInterval(AdBrixRM.AdBrixEventUploadTimeInteval.MAX) return true }
GDPR Setup
The developer can stop the adbrix SDK working using GDPR API.
If GDPR API called adbrix SDK will stop working including saving, uploading event.
This cannot be re-inversed unless user delete app.
@IBAction func adbrixGdpr(_ sender: Any) { // Creating AdBrixRM instance let adBrix = AdBrixRM.getInstance adBrix.gdprForgetMe; }
Deeplink and DefferdDeeplink
You can count app re-open event by deeplink url.
To do that, app must have custom url scheme.
Custom Url Scheme setup
Move to [General > Target > Info > URL Types] and set URL Scheme.
Deeplink open event.
Add deeplink open event API on AppDelegate.swift application: openURL: delegate.
func application(_ app: UIApplication, open url: URL, options: [UIApplicationOpenURLOptionsKey : Any] = [:]) -> Bool { // Create AdBrixRM Instance let adBrix = AdBrixRM.getInstance // Deeplink open API adBrix.deepLinkOpen(url: url) return false }
If you are using UIScene from iOS13 use this code at sceneDelegate.swift.
import AdBrixRM func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) { // AdBrixRM instance let adBrix = AdBrixRM.getInstance if connectionOptions.urlContexts.first?.url != nil { let urlinfo = connectionOptions.urlContexts.first?.url // Deeplink tracking code adBrix.deepLinkOpen(url:urlinfo!) } } func scene(_ scene: UIScene, openURLContexts URLContexts: Set<UIOpenURLContext>) { let url = URLContexts.first!.url as NSURL // AdBrixRM instance let adBrix = AdBrixRM.getInstance // Deeplink tracking code adBrix.deepLinkOpen(url:url) }
Deferred Deeplink Tracking
If you wish to send the user a certain view when the user installs the app after click tracking link, Deferred Deeplink API can send the user to a certain view.
[[인용:위험:작게]] - Deferred Deeplink api will send scheme data with String after the user installs the app with tracking link.
example : yourscheme://your_custom_path
AppDelegate.swift
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: 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) } adBrix.delegateDeeplink = self return true } func didReceiveDeeplink(deeplink: String) { print("DEEPLink :: received - \(deeplink)") }
SDK Initialization Example
If you add all 5 SDK initialization process AppDelegate.swift will show like this
import UIKit import AdBrixRM import AdSupport func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool { let adBrix = AdBrixRM.getInstance if ((NSClassFromString("ASIdentifierManager")) != nil) { let ifa :UUID = ASIdentifierManager.shared().advertisingIdentifier let isAppleAdvertisingTrackingEnalbed :Bool = ASIdentifierManager.shared().isAdvertisingTrackingEnabled adBrix.setAppleAdvertisingIdentifier(ifa.uuidString, isAppleAdvertisingTrackingEnalbed) } adBrix.setLogLevel(AdBrixRM.AdBrixLogLevel.TRACE) adBrix.setEventUploadCountInterval(AdBrixRM.AdBrixEventUploadCountInterval.MIN) adBrix.setEventUploadTimeInterval(AdBrixRM.AdBrixEventUploadTimeInterval.MIN) adBrix.initAdBrix(appKey: "odhvASVRDsdf10d019fva", secretKey:"ar98LszQZUGdmSznToNBXg") return true } func application(_ app: UIApplication, open url: URL, options: [UIApplicationOpenURLOptionsKey : Any] = [:]) -> Bool { let adBrix = AdBrixRM.getInstance adBrix.deepLinkOpen(url: url) return false }
App Event Analysis
Using adbrix SDK, you can analyze In-app event and create In-app event report at adbrix dashboard.
To analyze the In-app event, you must add adbrix event API at when the event is executed.
adbrix SDK provides 5 different type of In-app event API
- User Analysis
- Login / Logout Event
- User information
- Location information
- Custom Analysis
- General Analysis
- Signup
- App update
- User invitation
- Use in-app credit
- In-Purchase
- Commerce 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 Analysis
- Tutorial complete
- Create character
- Stage complete
- Level up
User Analysis
Login / Logout Event
Analyze Login / Logout event
You can send UserID when user login succeeds.
@IBAction func login_and_logout_event(_ sender: Any) { // Creating adbrix Instance let adBrix = AdBrixRM.getInstance if(isLoginSuccess) { // Login success with userid user_1234 adBrix.login(userId:"user_1234") } else { // Logout adBrix.logout() } }
* Warning: Do not send personal information like e-mail, phone number etc. on loginWithUserID API. If you have personal information on loginWithUserID API, We strongly recommend encrypting with BASE64, MD5, SHA1
User Infomation
You can analyze a user's age, gender and other information using adbrix SDK API.
@IBAction func user_property_update(_ sender: Any) { // Create adbrix instance let adBrix = AdBrixRM.getInstance //Age adBrix.setAge(int: 30) //Gender adBrix.setGender(adBrixGenderType: AdBrixRM.AdBrixGenderType.Male) //other information let attrModel = AdBrixRmAttrModel() attrModel.setAttrDataString("nickname", "peter") attrModel.setAttrDataInt("age", 36) attrModel.setAttrDataBool("married", true) adBrix.setUserPropertiesWithAttr(attrModel: attrModel) }
[[인용:위험:보통]]Constraints of user and event data using AttrModel
1. You can send no more than 100 data.
2. The data type of Key is String and can use no more than 256 letters with Lowercase alphabetic characters and number only.
3. The Value data only be used no more then 1024byte.
Location information
If you can receive user location you can sen user location by adbrix SDK.
@IBAction func location_update(_ sender: Any) { // Create adBrix Instance let adBrix = AdBrixRM.getInstance // adbrix location API adBrix.setLocation(latitude: 32.514, longitude: 126.986) }
* adbrix do not take responsibility to use user location.
Custom event
adbrix SDK can analyze custom named event, which not pre-defined from adbrix SDK.
@IBAction func user_custom_event(_ sender: Any) { // Create adbrix Instance let adBrix = AdBrixRM.getInstance // Addtional event parameter let attrModel = AdBrixRmAttrModel() attrModel.setAttrDataString(“userid”, “peterPark") attrModel.setAttrDataString(“gender”, “male”) attrModel.setAttrDataInt(“age”, 36) // Click a button "Invite a friend" adBrix.eventWithAttr("invite_button_click"”, value: attrModel) // Complete "Character creation" adBrix.eventWithAttr("create_character_complete"”, value: attrModel) // Complete "Tutorial view" adBrix.eventWithAttr("tutorial_complete"”, value: attrModel) // Achieve "Level 10" adBrix.eventWithAttr("level_10"”, value: attrModel) }
※ Warning
If you set up a custom event name as almost every situation like the following example, this will create tons of event.
// Create adbrix Instance let adBrix = AdBrixRM.getInstance adBrix.event("custom:Lev-37 cleared,clearTime:00:00:39.2343535")
So please use additional event parameter API(AdBrixRm.AttrModel) to manage the event.
// Create adbrix Instance let adBrix = AdBrixRM.getInstance // Addtional 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
adbrix SDK can analyze general event like user registration, app update etc.
adbrix SDK provide 5 pri-define general event.
- Signup
- App update
- User invitation
- Using in-app credit
- In-app purchase
* If you wish to see in-app purchase report, you must integrate in-app purchase API.
Signup
You can analyze app registration event using adbrix SDK API
@IBAction func userRegister(_ sender: Any) { // Create adbrix Instance let adBrix = AdBrixRM.getInstance // User information // User information let attrModel = AdBrixRmAttrModel() attrModel.setAttrDataString("nickname", "peter") attrModel.setAttrDataInt("age", 36) attrModel.setAttrDataBool("married", true) // Signup API adBrix.commonSignUpWithAttr(channel: AdBrixRM.AdBrixRmSignUpChannel.AdBrixRmSignUpGoogleChannel, commonAttr: attrModel) }
App Update
You can analyze app update event using adbrix SDK API.
@IBAction func appUpdate(_ sender: Any) { // Create adbrix instance let adBrix = AdBrixRM.getInstance // User information let attrModel = AdBrixRmAttrModel() attrModel.setAttrDataString("nickname", "peter") attrModel.setAttrDataInt("age", 36) attrModel.setAttrDataBool("married", true) // App update API adBrix.commonAppUpdateWithAttr(prev_ver: "1.0.1", curr_ver: "1.0.3", commonAttr: attrModel) }
User invitation
You can analyze the user invitation event using adbrix SDK API.
@IBAction func userInvite(_ sender: Any) { // Create adbrix Instance let adBrix = AdBrixRM.getInstance // User information let attrModel = AdBrixRmAttrModel() attrModel.setAttrDataString("nickname", "peter") attrModel.setAttrDataInt("age", 36) attrModel.setAttrDataBool("married", true) // User invitation API adBrix.commonInviteWithAttr(channel: AdBrixRM.AdBrixRmInviteChannel.AdBrixRmInviteLineChannel, commonAttr: attrModel) }
Use in-app credit
You can analyze user using in-app credit event, using adbrix SDK API
@IBAction func useCredit(_ sender: Any) { // Create adbrix Instance let adbrix = AdBrixRM.getInstance // User information let attrModel = AdBrixRmAttrModel() attrModel.setAttrDataString("nickname", "peter") attrModel.setAttrDataInt("age", 36) attrModel.setAttrDataInt("credit", 10000) attrModel.setAttrDataBool("married", true) // Use in-appp credit API adBrix.commonUseCreditWithAttr(commonAttr: attrModel) }
In-app purchase
You can analyze the in-app purchase event using adbrix SDK API
In-app purchase API require information that API already pre-defined.
- 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 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) // 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) // create 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() arr.append(productModel1) arr.append(productModel2) //In-app purchase API adBrix.commonPurchaseWithAttr(orderId: "orderid_1", productInfo: proArr, discount: 1500.00, deliveryCharge: 2500.00, paymentMethod: AdBrixRM.AdbrixRmPaymentMethod.CreditCard, orderAttr: attrModel) }
Commerce Analysis
You can analyze in-app commerce event like product view, add to cart, etc using adbrix SDK API.
adbrix SDK provides 12 pre-defined commerce API
- 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 event which user viewing the main screen on your app, using adbrix SDK API.
@IBAction func viewHomeEvent(_ sender: Any) { // Create adbrix Instance let adBrix = AdBrixRM.getInstance // Home view API adBrix.commerceViewHome() }
Category view
You can analyze event which user entering certain product category using adbrix SDK API.
You can add maximum 5 categories on API
@IBAction func viewCategoryEvent(_ 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) // 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) // create 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() arr.append(productModel1) arr.append(productModel2) //open category adBrix.commerceCategoryViewWithAttr(category: adBrix.createCommerceProductCategoryData(category: "의상", category2: "치마", category3: "여자옷", category4: "원피스", category5: "해적질"), productInfo: proArr, orderAttr: attrModel) }
Product view
You can analyze event which user entering certain product using adbrix SDK API
Product view API require information that API already pre-defined.
- 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 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) //productView API adBrix.commerceProductViewWithAttr(productInfo: productModel1, orderAttr: attrModel) }
Add to cart
You can analyze event which user add a certain product to cart using adbrix SDK API
Add to cart API require information that API already pre-defined.
- 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 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) // 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) // create 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() arr.append(productModel1) arr.append(productModel2) // add to cart api adBrix.commerceAddToCartWithAttr(productInfo: proArr, orderAttr: attrModel) }
Add to wishlist
You can analyze event which user add a certain product to wishlist using adbrix SDK API
Add to wishlist API require information that API already pre-defined.
- product id : (required)
- product name : (required)
- price : (required)
- quantity : (required)
- discount : (optional)
- currency string : (optional)
- category : (optional)
- product attr map : (optional)
@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) }
Review Order
You can analyze event which user reviewing user's product order using adbrix SDK API
Review Order API require information that API already pre-defined.
- 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) // 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) // create 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() arr.append(productModel1) arr.append(productModel2) // Review order api adBrix.commerceReviewOrderWithAttr(orderId: "orderID_2", productInfo: proArr, discount: 2500.00, deliveryCharge: 3000.00, orderAttr: attrModel) }
Refund
You can analyze event which user cancel product order using adbrix SDK API.
Refund API require information that API already pre-defined.
- 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) // 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) // create 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() arr.append(productModel1) arr.append(productModel2) //Refund API adBrix.commerceRefundWithAttr(orderId: "orderID_3", productInfo: proArr, penaltyCharge: 250000.00, orderAttr: attrModel) }
Product search
You can analyze event which user search certain product using adbrix SDK API.
Product search API require information that API already pre-defined.
- keyword : (required)
- product id : (required)
- product name : (required)
- price : (required)
- quantity : (required)
- discount : (optional)
- currency string : (optional)
- category : (optional)
func searchResultEvent() { // 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) // 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) // create 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() arr.append(productModel1) arr.append(productModel2) // product search api adBrix.commerceSearchWithAttr(productInfo: proArr, keyword: "This is a search keyword.", orderAttr: attrModel) }
Product Share
You can analyze event which user share certain product using adbrix SDK API.
Product share API require information that API already pre-defined.
- product id : (required)
- product name : (required)
- price : (required)
- quantity : (required)
- discount : (optional)
- currency string : (optional)
- category : (optional)
- product attr map : (optional)
@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) // 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 share API adBrix.commerceShareWithAttr(channel: AdBrixRM.AdBrixRmSharingChannel.AdBrixRmSharingKakaoStory, productInfo: productModel1, orderAttr: attrModel) }
List view
You can analyze event which user viewing product list using adbrix SDK API.
List view API require information that API already pre-defined.
- product id : (required)
- product name : (required)
- price : (required)
- quantity : (required)
- discount : (optional)
- currency string : (optional)
- category : (optional)
- product attr map : (optional)
func listViewEvent() { // 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) // 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) // create 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() arr.append(productModel1) arr.append(productModel2) // list view API adBrix.commerceListViewWithAttr(productInfo: proArr, orderAttr: attrModel) }
Cart view
You can analyze event which user viewing cart using adbrix SDK API.
Cart view API require information that API already pre-defined.
- product id : (required)
- product name : (required)
- price : (required)
- quantity : (required)
- discount : (optional)
- currency string : (optional)
- category : (optional)
- product attr map : (optional)
func cartViewEvent() { // 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) // 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) // create 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() arr.append(productModel1) arr.append(productModel2) // cart view api adBrix.commerceCartViewWithAttr(productInfo: proArr, orderAttr: attrModel) }
Payment information
You can analyze event which user reviewing payment information using adbrix SDK API.
@IBAction func paymentInfoAddedEvent(_ sender: Any) { // Create adbrix 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 view api adBrix.commercePaymentInfoAddedWithAttr(paymentInfoAttr: attrModel) }
Game analysis
You can analyze in-game event like level up, stage complete, etc using adbrix SDK API.
adbrix SDK provides 4 pre-defined game API
- Tutorial complete
- Character create
- Stage complete
- Level up
Tutorial complete
You can analyze event which user complete game tutorial using adbrix SDK API.
Tutorial complete API require information that API already pre-defined.
- isSkip : (required) set which user complete tutorial or skip the tutorial
func tutorialCompleteEvent(){ // 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) //Tutorial complete API adBrix.gameTutorialCompletedWithAttr(isSkip: true, gameInfoAttr: attrModel) }
Create Character
You can analyze event which user create a game character using adbrix SDK API.
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) }
Stage complete
You can analyze event which user complete game certain stage using adbrix SDK API.
Stage complete API require information that API already pre-defined.
- StageName : (required) Name of complete stage
func stageClearedEvent(){ // 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) //Stage complete API adBrix.gameStageClearedWithAttr(stageName: "1-5", gameInfoAttr: attrModel) }
Level up
You can analyze event which user level up in game using adbrix SDK API.
Level up API require information that API already pre-defined.
- Level : (required)
func levelAchievedEvent(){ // 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) //level up API adBrix.gameLevelAchievedWithAttr(level: 55, gameInfoAttr: attrModel) }
Comments
0 comments
Please sign in to leave a comment.