Integrating DFINERY (Adbrix) [Android]
FollowQuick Start
The minimum integration steps to use Definery (AdBrix) are provided.
If you follow the guide up to [ Gradle Settings -> Proguard Settings ],
- You can check basic indicators such as DAU in the DFINERY (Adbrix) console.
- You can track app install ads through tracking links.
[[인용:보통:위험]]
System Requirements
The Define (AdBrix) Android SDK operates in the following environments.
1. Build Environment: Android Studio
2. Android Min SDK version: 14 or higher
Gradle Settings
DFINERY (Adbrix) supports SDK download and installation through gradle.
It is more convenient to change the View to Android type for Gradle settings.
Add the following content to the [ build.gradle (Project: ProjectName) ] file.
[[Quote:Risk:Moderate]] The Bintray service was terminated on 2021.05.03.
Please use mavenCentral to distribute libraries. Please modify the gradle settings as follows. Since jcenter() is no longer used, please delete it.
allprojects { repositories { google()
jcenter() // delete this. mavenCentral() } }
Add the following dependency to the [ build.gradle (Module: app) ] file.
android { compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } } dependencies { implementation 'com.google.android.gms:play-services-ads-identifier:18.0.1' implementation 'com.android.installreferrer:installreferrer:2.2' implementation 'io.dfinery:android-sdk:2.5.1.4' } // When jetifier cannot be used android { compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } } dependencies { implementation 'com.google.android.gms:play-services-ads-identifier:18.0.1' implementation 'com.android.installreferrer:installreferrer:2.2' implementation ('io.dfinery:android-sdk:2.5.1.4') {
exclude group: "com.android.installreferrer"
} }
[[Quote:Risk:Medium]] * To prevent fraud traffic, it is essential to add
com.android.installreferrer:installreferrer
.
* To obtain Google advertising ID and for media advertising, it is essential to add
com.google.android.gms:play-services-ads-identifier
.
If a duplicate error occurs in the installreferrer Java class, please set the Definery library as follows.
implementation ('io.dfinery:android-sdk:2.5.1.4') {
exclude group: "com.android.installreferrer"
}
After writing all the Gradle scripts, proceed with the SDK installation through [File > Sync Project with Gradle Files] in Android Studio.
Required Permission Settings
DFINERY (Adbrix) SDK requires the following permissions.
[ AndroidManifest.xml > manifest ] Set as follows.
<manifest> ... <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="com.google.android.gms.permission.AD_ID" /> ... </manifest>
SDK Initialization
There are two ways to initialize the DFINERY (Adbrix) SDK.
Initialize the SDK according to the development environment.
- Using DFINERY (Adbrix) application class
- Use own application class
1. Use of Definery (AdBrix) Application Class
If you do not have a self-implemented application, you can quickly and easily initialize the SDK using the application class provided by the DFINERY (Adbrix) SDK.
[ AndroidManifest.xml > application ] Set it as follows.
<application android:name="com.igaworks.v2.core.application.AbxApplication" ... >
<meta-data android:name="AdBrixRmAppKey" android:value="your_adbrix_remastered_app_key" />
<meta-data android:name="AdBrixRmSecretKey" android:value="your_adbrix_remastered_secret_key" /> </application>
2. Using Custom Application Class
If you have a custom application class, set the onCreate() of that class as follows.
<application android:name=".MyApplicationClass" ... > </application>
public class MyApplicationClass extends Application { @Override public void onCreate() { super.onCreate(); AdBrixRm.init(this, "your_adbrix_remastered_app_key", "your_adbrix_remastered_secret_key"); } }
class MyApplicationClass : Application() { override fun onCreate() { super.onCreate() AdBrixRm.init(this , "your_adbrix_remastered_app_key", "your_adbrix_remastered_secret_key"); } }
[[Quote:Guide:Normal]]
Check App Key & Secret Key
App key and secret key are identifiers used by Definery (AdBrix) to distinguish apps.
It is an essential value for SDK integration, and can be confirmed after registering the app in the Definery (Adbrix) console.
_
How to check App Key, Secret Key
_
Go to Adbrix Console
[[Quote:Guide:Normal]]
Congratulations!!!
Basic integration to use DFINERY (Adbrix) has been completed.
The available features are as follows:
1. Reporting to check indicators such as DAU, MAU, and daily retention
2. App introduction campaigns such as NCPI
If you want to analyze events such as purchases that occur within the app, you can continue linking by referring to the guide below.
SDK Obfuscation Exception Handling
In order to ensure smooth operation and analysis of the SDK, obfuscation exceptions will be handled as follows.
proguard
Please add the following code to app / proguard-rule.pro.
-keep class com.google.android.gms.ads.identifier.AdvertisingIdClient {*;} -keep class com.google.android.gms.ads.identifier.AdvertisingIdClient$* {*;} -dontwarn com.android.installreferrer.**
-keep class com.igaworks.v2.** { *; }
-keep class abx.** { *; }
-keep class io.adbrix.sdk.** { *; }
Other obfuscation tools
When using obfuscation tools other than proguard, please apply obfuscation to the following packages.
com.igaworks.v2.**
abx.**
io.adbrix.sdk.**
Additional SDK settings
Event upload cycle settings
DFINERY (Adbrix) provides two standards for when to upload events to the DFINERY (Adbrix) server through SDK.
- Based on the cumulative number of events
- Time standard
[[Quote:Guide:Warning]] Uploads will proceed according to the first criterion that is satisfied among the two criteria.It must be called immediately after AdBrixRm.init() in the application class.
1. Based on the cumulative number of events
Set to upload event information to the DFINERY (Adbrix) server when the set number of events is accumulated.
Set using the values below predefined in the DFINERY (Adbrix) SDK.
- AdBrixRm.AdBrixEventUploadCountInterval.MIN : 10 cases
- AdBrixRm.AdBrixEventUploadCountInterval.NORMAL : 30 cases
- AdBrixRm.AdBrixEventUploadCountInterval.MAX : 60 cases
public class LauncherActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_launcher); // Set event upload interval: Upload events to AdBrix server when accumulated events reach 10 AdBrixRm.setEventUploadCountInterval(AdBrixRm.AdBrixEventUploadCountInterval.MIN); } }
class LauncherActivity : Activity() { override fun onCreate() { super.onCreate() // Set event upload interval: Upload events to AdBrix server when 10 events are accumulated AdBrixRm.setEventUploadCountInterval(AdBrixRm.AdBrixEventUploadCountInterval.MIN) } }
2. Time Standard
Set to upload event information to the DFINERY (Adbrix) server after a set time.
Set using the values below predefined in the DFINERY (Adbrix) SDK.
- AdBrixRm.AdBrixEventUploadTimeInterval.MIN : 30 seconds
- AdBrixRm.AdBrixEventUploadTimeInterval.NORMAL : 60 seconds
- AdBrixRm.AdBrixEventUploadTimeInterval.MAX : 120 seconds
public class LauncherActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_launcher); // Set event upload interval: Upload events to AdBrix server every 120 seconds AdBrixRm.setEventUploadTimeInterval(AdBrixRm.AdBrixEventUploadTimeInterval.MAX); } }
class LauncherActivity : Activity() { override fun onCreate() { super.onCreate() // Set event upload interval: Upload events to AdBrix server every 120 seconds AdBrixRm.setEventUploadTimeInterval(AdBrixRm.AdBrixEventUploadTimeInterval.MAX) } }
GDPR settings
You can use the GDPR request event to no longer collect any personal data associated with the data subject in response to a user request.
When this event is called, SDK operation is stopped and all event saving or transmission is not possible.
This feature cannot be restored until the user deletes and reinstalls the app.
void gdprForgetMeEvent() { AdBrixRm.gdprForgetMe(getApplicationContext()); }
fun gdprForgetMeEvent() { AdBrixRm.gdprForgetMe(applicationContext); }
[[Caution:Risk:Moderate]]
WARNING!!!
gdprForgetMe
When the API is called,
the SDK is immediately stopped and analysis of all events becomes impossible
,
this state is maintained until the user reinstalls the app.
Tracking Settings
The Android SDK by default tracks Google's advertising identifier .This value must be used in accordance with the Advertising ID Policy .If necessary, you can use the following API to limit the tracking of the advertising identifier.
[[Quote:Guide:Normal]] Warning
This API must be declared before calling the AdBrixRm.init() method.
//This method must be called before AdBrixRm.init(). AdBrixRm.setEnableAdIdTracking(false);
//This method must be called before AdBrixRm.init(). AdBrixRm.setEnableAdIdTracking(false);
Deep link/deferred deep link event analysis
Deep Link Analysis
Analyze the occurrence of deep link open events through tracking links.
The integration method varies as follows depending on the launchMode attribute of the activity opened with a deep link.
- When in singleTask mode
- When not in singleTask mode
[[Quote:Guide:Normal]]
How do I check the launchMode???
Find the activity that is opened with a deep link in the AndroidManifest.xml file.
Check the value of android:launchMode among the attributes defined for the activity.
1. When in singleTask mode
When android:launchMode is set to singleTask, the app open event through deep link is analyzed as follows.
Set all activities opened through deep links as follows.
public class DeeplinkOpenedActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } @Override protected void onNewIntent(Intent intent) { super.onNewIntent(intent); // Do something with Deeplink Intent Data setIntent(intent);
// 1. Call the deeplink event. AdBrixRm.deeplinkEvent(DeeplinkOpenedActivity.this);
// 2. If you have configured the activity lifecycle to not trigger the onResume callback, remove the comment from the code below.
//AdBrixRm.onResume(DeeplinkOpenedActivity.this); }
@Override
protected void onResume(){
super.onResume();
} }
class DeeplinkOpenedActivity : Activity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.deeplink_activity) } override fun onNewIntent(intent: Intent) { super.onNewIntent(intent) setIntent(intent)
// 1. Calls the deeplink event. AdBrixRm.deeplinkEvent(this)
// 2. If you have configured the activity lifecycle to not trigger the onResume callback, remove the comment from the code below.
//AdBrixRm.onResume(this) }
override fun onResume() {
super.onResume()
} }
[[인용:보통:위험]] * Both setIntent() and deeplinkEvent() functions must be set in the same order as the example above.
[[Quote:Warning]]
Are you handling the Android activity lifecycle?
The SDK handles deep link open events using the onResume callback of the Android activity lifecycle.
If you are terminating the activity before the onResume callback occurs in the app, you must
call the AdBrixRm.onResume function
to pass the SDK onResume callback.
To handle app opening through deep links, the app must have deep link settings configured.
[ AndroidManifest.xml > manifest > application ] Set the deep link for the registered activity as follows.
<intent-filter> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.BROWSABLE" /> <data android:scheme="your_scheme" android:host="your_host" /> </intent-filter>
When using Android AppLink , configure the activity registered in [ AndroidManifest.xml > manifest > application ] as follows. AppLink is an optional feature, so please integrate it only if you choose to use AppLink.
<intent-filter android:autoVerify="true"> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.BROWSABLE" /> <data android:scheme="https" android:host="your_appkey.adtouch.adbrix.io" /> </intent-filter>
[[Quote:Warning:Normal]] In the your_appkey field, you must enter the Appkey you are using for integration, and please enter it in lowercase.
[[Quote:Risk:Moderate]] Please be sure to check before linking Applink!
1. To use Applink, you must set the deep link path method to "dynamic path" when creating the tracking link, and enter the deep link path to move in the deeplink_custom_path parameter attached to the created tracking link to deliver it to Applink.
2. If you arbitrarily modify the automatically added "is_used_abx_applink=true" in the value passed as the intent of the activity opened with Applink, accurate ad performance measurement is not possible.
3. Applink is an optional feature. If you do not use Applink, this task is not mandatory.
2. When not in singleTask mode
When android:launchMode is set to a mode other than singleTask, configure it as follows to analyze app open events through deep links.
Configure the deep link open activity provided by the AdBrix SDK in the AndroidManifest.xml file as follows.
<activity
android:name="com.igaworks.v2.core.application.AbxDefaultDeeplinkActivity"
android:label="@string/app_name"
android:launchMode="singleTask"
android:noHistory="true">
<intent-filter android:label="@string/app_name">
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<!-- Enter the deep link schema and host. -->
<data android:scheme="your_scheme" android:host="your_host" />
</intent-filter>
<!-- Set the path of the actual deep link activity that AbxDefaultDeeplinkActivity will open in android:value. -->
<meta-data android:name="AbxRedirectActivity" android:value="com.exampleunity.UnityPlayerActivity"/>
</activity>
Deferred Deep Link
Deferred deep links serve the role of allowing landing on a specific screen after app installation by delivering the relevant information from the server.
[[Quote:Guide:General]] The value transmitted from a deferred deep link is transmitted as a string type as follows.
yes; myscheme://host?key=value
1. When using a Custom Application Class
If you use a Custom Application Class in the app, integrate it as follows.
public class MyApplication extends Application { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); AdBrixRm.init(this,"your_appKey","your_secretKey"); AdBrixRm.setOnDeferredDeeplinkListener(new AdBrixRm.onDeferredDeeplinkListener() { @Override public void onReceive(OnDeferredDeeplinkResult result) { // AdbrixRm SDk returns deferred deeplink url as string. // Use this string value and send your user to certin acivity. Log.d("abxrm", "Deferred Deeplink : "+ result.getDeeplink()); } }); } }
class MyApplication : Application(){ override fun onCreate() { super.onCreate() AdBrixRm.init(this, "your_appKey", "your_secretKey"); AdBrixRm.setOnDeferredDeeplinkListener { // AdbrixRm SDk returns deferred deeplink url as string. // Use this string value and send your user to certin acivity. Log.d("abxrm", "Deferred Deeplink : " + it.getDeeplink()) } } }
2. When using the AdbrixRM Application Class
When using the Application Class provided by DFINERY (Adbrix), it is linked to an activity that lands with a deep link.
public class MainActivity extends Activity{ @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // To get deferred deeplink url, set this listener. AdBrixRm.setOnDeferredDeeplinkListener(new AdBrixRm.onDeferredDeeplinkListener() { @Override public void onReceive(OnDeferredDeeplinkResult result) { // AdbrixRm SDk returns deferred deeplink url as string. // Use this string value and send your user to certin acivity. Log.d("abxrm", "Deferred Deeplink : "+ result.getDeeplink()); } }); } }
class MainActivity : Activity(){ override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) // To get deferred deeplink url, set this listener. AdBrixRm.setOnDeferredDeeplinkListener { // AdbrixRm SDk returns deferred deeplink url as string. // Use this string value and send your user to certin acivity. Log.d("abxrm", "Deferred Deeplink : " + it.getDeeplink()) } } }
[[Quote:Warning:General]]
The listener is not being called!!!
Please check the following if the deferred deep link information is not being delivered to your implemented listener.
1. No conversion occurred through the tracking link.
2. The deep link is not set in the tracking link.
[[Quote:Warning:Normal]]
The app opens twice!!!
When installing/running the app from Google Play through a tracking link with a deep link set,
the deferred deep linking provided by Google Play Store operates.
It is recommended to handle exceptions to avoid duplicate processing through the implemented listener.
[[Quote:Danger:Small]]
If an operation is not implemented: When a 'Not yet implemented' error is reported
There are cases where the error occurs when a TODO comment is used within the callback method, regardless of the SDK.
If there is a TODO within the callback method, please remove it.
[[Quote:Danger:Small]]
Cannot use the fetchDeferredAppLinkData API of Facebook SDK
Since our DeferredDeeplink API replaces the role of fetchDeferredApplinkData used in Facebook ads, it cannot be used redundantly. If you are using it, please delete it.
Event Analysis
By analyzing events that occur in the app, you can construct reports and send postback.
To analyze an event, you must insert an event analysis code at the time an event occurs and deliver appropriate event information.
DFINERY (Adbrix) provides four major types of event analysis.
-
User analysis
- Login/logout events
- User information~
- Custom event analysis
-
Common (general) event analysis
- join the membership
- app updates
- user invitation
- credit usage
- purchase
-
Commerce event analysis
- Enter the home (main) screen
- Enter category (special exhibition)
- View product details
- Put in a shopping cart
- Add to Wishlist
- Confirm your order
- Cancel order
- Search for product
- Share product
- View product list
- View shopping cart list
- Payment information
-
Game event analysis
- Tutorial completed
- character generation
- Stage completed
- Level achieved
User analysis
Login/logout events
Analyze app users’ login/logout events.
When login is successful, the identifying value (user id) that distinguishes the user is provided as follows.
[[인용:보통:위험]]
Login Precautions
The user ID used for login is used for matching between users and devices when using the growth action function. If login is called again without logging out after logging in, correct matching may not occur.
Please be careful not to include personal information in your user ID. If the user ID includes personal information such as email or phone number, we recommend encrypting it.
API
// When User Login AdBrixRm.login(String user_id); // When user Logout AdBrixRm.logout();
// When User Login AdBrixRm.login(String user_id) // When user Logout AdBrixRm.logout();
Sample Code
void loginAndLogoutEvent() { if(isLogin){ // Login success with user_id "user_1234" AdBrixRm.login("user_1234"); }else{ // When user logout AdBrixRm.logout(); } }
fun loginAndLogoutEvent() { if(isLogin){ // Login success with user_id "user_1234" AdBrixRm.login("user_1234") }else{ // When user logout AdBrixRm.logout() }
}
User information
You can analyze the users age, gender, and other information.
[[인용:보통:위험]]
Precautions when setting user information
Please use the login, setAge, and setGender APIs for user ID, age, and gender, respectively.
API
// Set User Age AdBrixRm.setAge(int age); // Set User Gender AdBrixRm.setGender(AdBrixRm.AbxGender abxgender); // Set other User info // value types are only be allowed with String, Long, Double, Boolean AdBrixRm.UserProperties userProperties = new AdBrixRm.UserProperties(); userProperties.setAttrs(String key1, String value1) .setAttrs(String key2, long value2) .setAttrs(String key3, double value3) setAttrs(String key4, boolean value4); AdBrixRm.saveUserProperties(userProperties);
// Set User Age AdBrixRm.setAge(int age) // Set User Gender AdBrixRm.setGender(AdBrixRm.AbxGender abxgender) // Set other User info // value types are only be allowed with String, long, double, boolean val userProperties = AdBrixRm.UserProperties() .setAttrs(String key1, String value1) .setAttrs(String key2, long value2) .setAttrs(String key3, double value3) setAttrs(String key4, boolean value4) AdBrixRm.saveUserProperties(userProperties)
Sample Code
void userPropertyUpdate() { // set user age AdBrixRm.setAge(30); // set user gender AdBrixRm.setGender(AdBrixRm.AbxGender.MALE); // set other userinfo AdBrixRm.UserProperties userProperties = new AdBrixRm.UserProperties(); userProperties.setAttrs("user_nick", "peterPark") .setAttrs("place","Seoul") .setAttrs("height",180) .setAttrs("married",false); AdBrixRm.saveUserProperties(userProperties); }
fun userPropertyUpdate() { // set user age AdBrixRm.setAge(30); // set user gender AdBrixRm.setGender(AdBrixRm.AbxGender.MALE); // set other userinfo val userProperties = AdBrixRm.UserProperties() .setAttrs("user_nick", "peterPark") .setAttrs("place","Seoul") .setAttrs("height",180) .setAttrs("married",false); AdBrixRm.saveUserProperties(userProperties) }
[[Note: Risk: Moderate]]
Precautions when setting UserProperty and AttrModel
1. More than 100 pieces of information cannot be processed.
2. The data type of the Key value is string, it cannot exceed 50 characters, and only lowercase English letters and numbers can be used.
3. The data length of the Value value cannot exceed 1024 bytes based on bytes. Also, only Long, Double, Boolean, and String types can be used.
4. Null values cannot be used as Value values.
Custom event analysis
Analyze all general events of users within the app.(excluding purchase-related events)
You can freely analyze most actions within the app, such as button click, character creation, tutorial completion, and level up.
API
// Custom event with AttrModel AdBrixRm.event(String eventName, AdBrixRm.AttrModel attrmodel); // Custom event without AttrModel AdBrixRm.event(String eventName);
// Custom event with AttrModel AdBrixRm.event(String eventName, AdBrixRm.AttrModel attrmodel) // Custom event without AttrModel AdBrixRm.event(String eventName)
Sample Code
void userCustomEvent() { // 이벤트 추가 정보 설정 AdBrixRm.AttrModel eventAttr = new AdBrixRm.AttrModel() .setAttrs("address","경기도 안양시 동안구") .setAttrs("firsttime",true); // "친구초대" 버튼 클릭 AdBrixRm.event("invite_button_click",eventAttr); // "캐릭터 생성" 완료 AdBrixRm.event("create_character_complete",eventAttr); // "튜토리얼 보기" 완료 AdBrixRm.event("tutorial_complete",eventAttr); // "레벨 10 달성" 완료 AdBrixRm.event("level_10",eventAttr); }
fun locationUpdate() { // 이벤트 추가정보 설정 val eventAttr = AdBrixRm.AttrModel() .setAttrs("address", "Gyeonggi-do Anyang-si Dongan-gu") .setAttrs("firsttime", true) // "친구초대" 버튼 클릭 AdBrixRm.event("invite_button_click",eventAttr) // "캐릭터 생성" 완료 AdBrixRm.event("create_character_complete",eventAttr) // "튜토리얼 보기" 완료 AdBrixRm.event("tutorial_complete",eventAttr) // "레벨 10 달성" 완료 AdBrixRm.event("level_10",eventAttr) }
[[Quote:Risk:Medium]] Custom events can only be set to a maximum of 100, in the order they are called.
※ caution
As in the example below, do not set naturally increasing values as event names.
Too many events actually interfere with analysis.
AdBrixRm.event("Level-301-Achieved-at-01:23:45.1234567");
Therefore, in this case, please set additional event information (AdBrixRm.AttrModel) and set custom parameters to call the event.
// Set additional event information AdBrixRm.AttrModel eventAttr = new AdBrixRm.AttrModel() .setAttrs("level",37) .setAttrs("clear_time_mile", 39238); // Call custom event API with event parameters AdBrixRm.event("level_clear", eventAttr);
Common (general) event analysis
Among the events that occur in the app, we analyze the commonly occurring event (payment).
Common event types provided by DFINERY (Adbrix) are as follows.
- join the membership
- app updates
- user invitation
- credit usage
- Make payment
* If you want to view sales by advertising channel in DFINERY (Adbrix), you must perform the ‘Payment’ link.
join the membership
Analyze membership registration events that occurred in the app.
API
// SignUp event with Addtional signUp info AdBrixRm.Common.signUp(AdBrixRm.CommonSignUpChannel signUpChannel, AdBrixRm.CommonProperties.SignUp signUpInfo); // SignUp event without Addtional signUp info AdBrixRm.Common.signUp(AdBrixRm.CommonSignUpChannel signUpChannel);
// SignUp event with Addtional signUp info AdBrixRm.Common.signUp(AdBrixRm.CommonSignUpChannel signUpChannel, AdBrixRm.CommonProperties.SignUp signUpInfo) // SignUp event without Addtional signUp info AdBrixRm.Common.signUp(AdBrixRm.CommonSignUpChannel signUpChannel)
Sample Code
void userRegister() { try { // 이벤트 추가 정보를 회원가입 이벤트 정보로 설정합니다. AdBrixRm.CommonProperties.SignUp signupUserInfo = new AdBrixRm.CommonProperties.SignUp(); //회원가입 API 호출 AdBrixRm.Common.signUp(AdBrixRm.CommonSignUpChannel.Google,signupUserInfo); } catch (JSONException e) { e.printStackTrace(); } }
void userRegister() { try { // 이벤트 추가 정보를 회원가입 이벤트 정보로 설정합니다. val signupUserInfo = AdBrixRm.CommonProperties.SignUp() //회원가입 API 호출 AbxCommon.signUp(AdBrixRm.CommonSignUpChannel.Google, signupUserInfo) } catch (e: Exception) { e.printStackTrace() } }
app updates
Analyze app update events that occurred in the app.
API
AdBrixRm.Common.appUpdate(AdBrixRm.CommonProperties.AppUpdate appUpdate);
AdBrixRm.Common.appUpdate(AdBrixRm.CommonProperties.AppUpdate appUpdate)
Sample Code
void appUpdate() { try { AdBrixRm.CommonProperties.AppUpdate updateInfo = new AdBrixRm.CommonProperties.AppUpdate() .setPrevVersion("1.0.0a") .setCurrVersion("1.0.1a"); //앱 업데이트 API 호출 AdBrixRm.Common.appUpdate(updateInfo); } catch (JSONException e){ e.printStackTrace(); } }
void appUpdate() { try { // Set app update event information. val updateInfo = AdBrixRm.CommonProperties.AppUpdate() .setCurrVersion("1.2.0") .setPrevVersion("1.1.0") // Call app update API AbxCommon.appUpdate(updateInfo) } catch (e: Exception) { e.printStackTrace() } }
user invitation
Analyze app invitation events that occurred in the app.
API
// UserInvite event with Addtional event info AdBrixRm.Common.invite(AdBrixRm.CommonInviteChannel inviteChannel, AdBrixRm.CommonProperties.Invite inviteInfo); // UserInvite event without Addtional event info AdBrixRm.Common.invite(AdBrixRm.CommonInviteChannel inviteChannel);
// UserInvite event with Addtional event info AdBrixRm.Common.invite(AdBrixRm.CommonInviteChannel inviteChannel, AdBrixRm.CommonProperties.Invite inviteInfo) // UserInvite event without Addtional event info AdBrixRm.Common.invite(AdBrixRm.CommonInviteChannel inviteChannel)
Sample Code
void userInvite() { try { AdBrixRm.CommonProperties.Invite inviteInfo = new AdBrixRm.CommonProperties.Invite(); //사용자 초대 API 호출 AdBrixRm.Common.invite(AdBrixRm.CommonInviteChannel.Facebook,inviteInfo); } catch (JSONException e){ e.printStackTrace(); } }
void userInvite() { try { val properties = AdBrixRm.CommonProperties.Invite(); //사용자 초대 API 호출 AbxCommon.invite(AdBrixRm.CommonInviteChannel.Facebook, properties) } catch (e: Exception) { e.printStackTrace() } }
credit usage
Analyze events related to the use of cash currency within the app.
API
AdBrixRm.Common.useCredit(AdBrixRm.CommonProperties.UseCredit userCreditInfo);
AdBrixRm.Common.useCredit(AdBrixRm.CommonProperties.UseCredit userCreditInfo)
Sample Code
void usingCredit() { try { // 사용자 현금성 화폐 사용 정보 AdBrixRm.AttrModel commonAttr = new AdBrixRm.AttrModel() .setAttrs("credit", 10000); AdBrixRm.CommonProperties.UseCredit userCreditInfo = new AdBrixRm.CommonProperties.UseCredit() .setAttrModel(commonAttr); //크레딧 사용 API 호출 AdBrixRm.Common.useCredit(userCreditInfo); } catch (JSONException e){ e.printStackTrace(); } }
void usingCredit() { try { // 화폐사용 이벤트 추가 정보 val useCreaditAttr = AdBrixRm.AttrModel() .setAttrs("money", 1000.00) //크레딧 사용 API 호출 AbxCommon.useCredit(properties) } catch (e: Exception) { e.printStackTrace() } }
Make payment
[[인용:보통:위험]] Add total order amount parameter!!! (sdk ver: 1.1.2200)
A parameter has been added to enter the total sales amount of the order. Just enter the amount based on the order total amount calculation criteria.
API
AdBrixRm.Common.purchase( String orderId, List <AdBrixRm.CommerceProductModel> productModelList, double orderSale, // Optional double discount, double deliveryCharge, AdBrixRm.CommercePaymentMethod paymentMethod, AdBrixRm.AttrModel attrModel // Optional );
AdBrixRm.Common.purchase( String orderId, List <AdBrixRm.CommerceProductModel> productModelList, double orderSale, //Optional double discount, double deliveryCharge, AdBrixRm.CommercePaymentMethod paymentMethod, AdBrixRm.AttrModel attrModel //Optional )
Sample Code
void purchaseEvent() { try { // Set product category AdBrixRm.CommerceCategoriesModel productCategory = new AdBrixRm.CommerceCategoriesModel() .setCategory("Category 1") .setCategory("Category 2") .setCategory("Category 3") .setCategory("Category 4") .setCategory("Category 5"); // Set additional product information AdBrixRm.AttrModel productAttr1 = new AdBrixRm.AttrModel() .setAttrs("size", 25) .setAttrs("color", "blue") .setAttrs("vip", false); AdBrixRm.AttrModel productAttr2 = new AdBrixRm.AttrModel() .setAttrs("size", 33) .setAttrs("color", "black") .setAttrs("vip", true); // Additional event information AdBrixRm.AttrModel purchaseAttr = new AdBrixRm.AttrModel() .setAttrs("grade", "vip") .setAttrs("howmany_buy", 36) .setAttrs("discount", true); AdBrixRm.CommonProperties.Purchase purchaseat = new AdBrixRm.CommonProperties.Purchase() .setAttrModel(purchaseAttr); // Create product information model AdBrixRm.CommerceProductModel productModel_1 = new AdBrixRm.CommerceProductModel().setProductID("5385487400") .setProductName("10 Types of Slacks Special Price") .setPrice(10000.00) .setQuantity(1) .setDiscount(1000.00) .setCurrency(AdBrixRm.Currency.KR_KRW) .setCategory(productCategory) .setAttrModel(productAttr1); // Create product information model AdBrixRm.CommerceProductModel productModel_2 = new AdBrixRm.CommerceProductModel().setProductID("145099811") .setProductName("[Special Price] Printed Sweatshirt") .setPrice(15500.00) .setQuantity(1) .setDiscount(1200.00) .setCurrency(AdBrixRm.Currency.KR_KRW) .setCategory(productCategory) .setAttrModel(productAttr2); // Create product information model ArrayList ArrayList productModelArrayList = new ArrayList<>(); productModelArrayList.add(productModel_1); productModelArrayList.add(productModel_2); // Product payment - Mobile payment AdBrixRm.Common.purchase("290192012", productModelArrayList, 22500.0,0.00, 3500.00, AdBrixRm.CommercePaymentMethod.MobilePayment,purchaseat); } catch (JSONException e) { e.printStackTrace(); } }
fun purchaseEvent() { try { // Set product category val productCategory = AdBrixRm.CommerceCategoriesModel() .setCategory("Category 1") .setCategory("Category 2") .setCategory("Category 3") .setCategory("Category 4") .setCategory("Category 5") // Set additional product information val productAttr1 = AdBrixRm.AttrModel() .setAttrs("size", 25) .setAttrs("color", "blue") .setAttrs("vip", false) val productAttr2 = AdBrixRm.AttrModel() .setAttrs("size", 33) .setAttrs("color", "black") .setAttrs("vip", true) // Additional event information val purchaseAttr = AdBrixRm.AttrModel() .setAttrs("grade", "vip") .setAttrs("howmany_buy", 36) .setAttrs("discount", true) val purchaseat = AdBrixRm.CommonProperties.Purchase() .setAttrModel(purchaseAttr) // Product information val productModel1 = AdBrixRm.CommerceProductModel() .setProductID("productid_1") .setProductName("Product Name 1") .setCategory(productCategory) .setCurrency(AdBrixRm.Currency.KR_KRW) .setDiscount(5000.00) .setAttrModel(productAttr1) .setPrice(50000.00) .setQuantity(1) val productModel2 = AdBrixRm.CommerceProductModel() .setProductID("productid_2") .setProductName("Product Name 2") .setCategory(productCategory) .setCurrency(AdBrixRm.Currency.KR_KRW) .setDiscount(10000.00) .setAttrModel(productAttr2) .setPrice(100000.00) .setQuantity(1) // Set product information arrayList val proList = mutableListOf<AdBrixRm.CommerceProductModel>() proList.add(productModel1) proList.add(productModel2) // Call purchase event AbxCommon.purchase("orderid_1", proList,54000.00 0.00, 2500.00, AdBrixRm.CommercePaymentMethod.CreditCard, purchaseat) } catch (e: Exception) { e.printStackTrace() } }
Commerce event analysis
We analyze purchase-related events (viewing product details, adding to shopping cart, etc.) that occur in the app.
The types of commerce events provided by AdBrix are as follows.
- Enter the home (main) screen
- Enter category (special exhibition)
- View product details
- Put in a shopping cart
- Add wishlist (product of interest)
- Confirm your order
- Cancel order
- Search for product
- Share product
- View product list
- View shopping cart
- Enter payment information
Enter the home (main) screen
Analyzes events in which the user enters the apps home (main) screen.
void viewHomeEvent(){ // Home (main) screen entry event analysis AdBrixRm.Commerce.viewHome(); }
fun viewHomeEvent(){ // 홈(메인) 화면 진입 이벤트 분석 AbxCommerce.viewHome() }
Enter category (special exhibition)
Analyze events in which users enter the category (special exhibition) screen.
The product information displayed when entering the category is provided as follows.
API
AdBrixRm.Commerce.categoryView( AdBrixRm.CommerceCategoriesModel productCategory, List <AdBrixRm.CommerceProductModel> productModelList, AdBrixRm.AttrModel attrModel // Optional );
AdBrixRm.Commerce.categoryView( AdBrixRm.CommerceCategoriesModel productCategory, List <AdBrixRm.CommerceProductModel> productModelList, AdBrixRm.AttrModel attrModel //Optional )
Sample Code
void viewCategoryEvent(){ // Set product category AdBrixRm.CommerceCategoriesModel productCategory = new AdBrixRm.CommerceCategoriesModel() .setCategory("Category 1") .setCategory("Category 2") .setCategory("Category 3") .setCategory("Category 4") .setCategory("Category 5"); // Set additional product information AdBrixRm.AttrModel productAttr1 = new AdBrixRm.AttrModel() .setAttrs("size", 25) .setAttrs("color", "blue") .setAttrs("vip", false); AdBrixRm.AttrModel productAttr2 = new AdBrixRm.AttrModel() .setAttrs("size", 33) .setAttrs("color", "black") .setAttrs("vip", true); // Additional event information AdBrixRm.AttrModel commmerceAttr = new AdBrixRm.AttrModel() .setAttrs("grade", "vip") .setAttrs("howmany_buy", 36) .setAttrs("discount", true); // Create product information model AdBrixRm.CommerceProductModel productModel_1 = new AdBrixRm.CommerceProductModel().setProductID("5385487400") .setProductName("10 Types of Slacks Special Price") .setPrice(10000.00) .setQuantity(1) .setDiscount(1000.00) .setCurrency(AdBrixRm.Currency.KR_KRW) .setCategory(productCategory) .setAttrModel(productAttr1); // Create product information model AdBrixRm.CommerceProductModel productModel_2 = new AdBrixRm.CommerceProductModel().setProductID("145099811") .setProductName("[Off-season Special] Printed Sweatshirt") .setPrice(15500.00) .setQuantity(1) .setDiscount(1200.00) .setCurrency(AdBrixRm.Currency.KR_KRW) .setCategory(productCategory) .setAttrModel(productAttr2); // Create product information model ArrayList ArrayList productModelArrayList = new ArrayList<>(); productModelArrayList.add(productModel_1); productModelArrayList.add(productModel_2); // Analyze category view event AdBrixRm.Commerce.categoryView(productCategory, productModelArrayList,commmerceAttr); }
fun viewCategoryEvent(){ // Set product category val productCategory = AdBrixRm.CommerceCategoriesModel() .setCategory("Category 1") .setCategory("Category 2") .setCategory("Category 3") .setCategory("Category 4") .setCategory("Category 5") // Set additional product information val productAttr1 = AdBrixRm.AttrModel() .setAttrs("size", 25) .setAttrs("color", "blue") .setAttrs("vip", false) val productAttr2 = AdBrixRm.AttrModel() .setAttrs("size", 33) .setAttrs("color", "black") .setAttrs("vip", true) // Additional event information val commerceAttr = AdBrixRm.AttrModel() .setAttrs("grade", "vip") .setAttrs("howmany_buy", 36) .setAttrs("discount", true) // Product information val productModel1 = AdBrixRm.CommerceProductModel() .setProductID("productid_1") .setProductName("Product Name 1") .setCategory(productCategory) .setCurrency(AdBrixRm.Currency.KR_KRW) .setDiscount(5000.00) .setAttrModel(productAttr1) .setPrice(50000.00) .setQuantity(1) val productModel2 = AdBrixRm.CommerceProductModel() .setProductID("productid_2") .setProductName("Product Name 2") .setCategory(productCategory) .setCurrency(AdBrixRm.Currency.KR_KRW) .setDiscount(10000.00) .setAttrModel(productAttr2) .setPrice(100000.00) .setQuantity(1) // Set product information arrayList val proList = mutableListOf<AdBrixRm.CommerceProductModel>() proList.add(productModel1) proList.add(productModel2) // Category view event analysis AbxCommerce.categoryView(productCategory, proList, commerceAttr) }
View product details
We analyze events where users view products in detail.
We convey information about the following products.
API
AdBrixRm.Commerce.productView( AdBrixRm.CommerceProductModel productMode, AdBrixRm.AttrModel attrModel // Optional );
AdBrixRm.Commerce.productView( AdBrixRm.CommerceProductModel productModel, AdBrixRm.AttrModel attrModel //Optional )
Sample Code
void viewProductDetailEvent(){ try { // Set product categories AdBrixRm.CommerceCategoriesModel productCategory = new AdBrixRm.CommerceCategoriesModel() .setCategory("Category 1") .setCategory("Category 2") .setCategory("Category 3") .setCategory("Category 4") .setCategory("Category 5"); // Set additional product information AdBrixRm.AttrModel productAttr1 = new AdBrixRm.AttrModel() .setAttrs("size", 25) .setAttrs("color", "blue") .setAttrs("vip", false); // Additional event information AdBrixRm.AttrModel commmerceAttr = new AdBrixRm.AttrModel() .setAttrs("grade", "vip") .setAttrs("howmany_buy", 36) .setAttrs("discount", true); // Create product information model AdBrixRm.CommerceProductModel productModel_1 = new AdBrixRm.CommerceProductModel().setProductID("5385487400") .setProductName("10 Types of Slacks Special Offer") .setPrice(10000.00) .setQuantity(1) .setDiscount(1000.00) .setCurrency(AdBrixRm.Currency.KR_KRW) .setCategory(productCategory) .setAttrModel(productAttr1); // Analyze product detail view event AdBrixRm.Commerce.productView(productModel_1,commmerceAttr); }catch (JSONException e){ e.printStackTrace();; } }
fun viewProductDetailEvent(){ try { // Set product category val productCategory = AdBrixRm.CommerceCategoriesModel() .setCategory("카테고리 1") .setCategory("카테고리 2") .setCategory("카테고리 3") .setCategory("카테고리 4") .setCategory("카테고리 5") // Set additional product information val productAttr1 = AdBrixRm.AttrModel() .setAttrs("size", 25) .setAttrs("color", "blue") .setAttrs("vip", false) // Additional event information val commerceAttr = AdBrixRm.AttrModel() .setAttrs("grade", "vip") .setAttrs("howmany_buy", 36) .setAttrs("discount", true) // Product information val productModel1 = AdBrixRm.CommerceProductModel() .setProductID("productid_1") .setProductName("상품명1") .setCategory(productCategory) .setCurrency(AdBrixRm.Currency.KR_KRW) .setDiscount(5000.00) .setAttrModel(productAttr1) .setPrice(50000.00) .setQuantity(1) // Analyze product detail view event AbxCommerce.productView(productModel1, commerceAttr) } catch (e: Exception) { e.printStackTrace() } }
Put in a shopping cart
We analyze events in which users add products to their shopping carts.
We convey the following product information:
API
AdBrixRm.Commerce.addToCart( List <AdBrixRm.CommerceProductModel> productModelList, AdBrixRm.AttrModel attrModel // Optional );
AdBrixRm.Commerce.addToCart( List <AdBrixRm.CommerceProductModel> productModelList, AdBrixRm.AttrModel attrModel //Optional )
Sample Code
void addToCartEvent(){ try { // Set product categories AdBrixRm.CommerceCategoriesModel productCategory = new AdBrixRm.CommerceCategoriesModel() .setCategory("Category 1") .setCategory("Category 2") .setCategory("Category 3") .setCategory("Category 4") .setCategory("Category 5"); // Set additional product information AdBrixRm.AttrModel productAttr1 = new AdBrixRm.AttrModel() .setAttrs("size", 25) .setAttrs("color", "blue") .setAttrs("vip", false); AdBrixRm.AttrModel productAttr2 = new AdBrixRm.AttrModel() .setAttrs("size", 33) .setAttrs("color", "black") .setAttrs("vip", true); // Additional event information AdBrixRm.AttrModel commmerceAttr = new AdBrixRm.AttrModel() .setAttrs("grade", "vip") .setAttrs("howmany_buy", 36) .setAttrs("discount", true); // Create product information model AdBrixRm.CommerceProductModel productModel_1 = new AdBrixRm.CommerceProductModel().setProductID("5385487400") .setProductName("10 Types of Slacks Special Price") .setPrice(10000.00) .setQuantity(1) .setDiscount(1000.00) .setCurrency(AdBrixRm.Currency.KR_KRW) .setCategory(productCategory) .setAttrModel(productAttr1); // Create product information model AdBrixRm.CommerceProductModel productModel_2 = new AdBrixRm.CommerceProductModel().setProductID("145099811") .setProductName("[Clearance Sale] Printed Sweatshirt") .setPrice(15500.00) .setQuantity(1) .setDiscount(1200.00) .setCurrency(AdBrixRm.Currency.KR_KRW) .setCategory(productCategory) .setAttrModel(productAttr2); // Create ArrayList of product information models ArrayList productModelArrayList = new ArrayList<>(); productModelArrayList.add(productModel_1); productModelArrayList.add(productModel_2); // Analyze add to cart event AdBrixRm.Commerce.addToCart(productModelArrayList,commmerceAttr); }catch (JSONException e){ e.printStackTrace(); } }
fun addToCartEvent(){ try { // Set product categories val productCategory = AdBrixRm.CommerceCategoriesModel() .setCategory("Category 1") .setCategory("Category 2") .setCategory("Category 3") .setCategory("Category 4") .setCategory("Category 5") // Set additional product information val productAttr1 = AdBrixRm.AttrModel() .setAttrs("size", 25) .setAttrs("color", "blue") .setAttrs("vip", false) val productAttr2 = AdBrixRm.AttrModel() .setAttrs("size", 33) .setAttrs("color", "black") .setAttrs("vip", true) // Additional event information val commerceAttr = AdBrixRm.AttrModel() .setAttrs("grade", "vip") .setAttrs("howmany_buy", 36) .setAttrs("discount", true) // Product information val productModel1 = AdBrixRm.CommerceProductModel() .setProductID("productid_1") .setProductName("Product Name 1") .setCategory(productCategory) .setCurrency(AdBrixRm.Currency.KR_KRW) .setDiscount(5000.00) .setAttrModel(productAttr1) .setPrice(50000.00) .setQuantity(1) val productModel2 = AdBrixRm.CommerceProductModel() .setProductID("productid_2") .setProductName("Product Name 2") .setCategory(productCategory) .setCurrency(AdBrixRm.Currency.KR_KRW) .setDiscount(10000.00) .setAttrModel(productAttr2) .setPrice(100000.00) .setQuantity(1) // Set product information arrayList val proList = mutableListOf<AdBrixRm.CommerceProductModel>() proList.add(productModel1) proList.add(productModel2) // Analyze add to cart event AbxCommerce.addToCart(proList, commerceAttr) } catch (e: Exception) { e.printStackTrace() } }
Add product of interest (wish list)
Analyze events in which a user adds a product to a product of interest (wishlist).
We convey the following product information:
API (when applying a single ProductModel)
AdBrixRm.Commerce.addToWishList( AdBrixRm.CommerceProductModel productModel, AdBrixRm.AttrModel attrModel // Optional );
AdBrixRm.Commerce.addToWishList( AdBrixRm.CommerceProductModel productModel, AdBrixRm.AttrModel attrModel //Optional )
Sample Code
void addToWishListEvent(){ try { // Set product category AdBrixRm.CommerceCategoriesModel productCategory = new AdBrixRm.CommerceCategoriesModel() .setCategory("Category 1") .setCategory("Category 2") .setCategory("Category 3") .setCategory("Category 4") .setCategory("Category 5"); // Set additional product information AdBrixRm.AttrModel productAttr1 = new AdBrixRm.AttrModel() .setAttrs("size", 25) .setAttrs("color", "blue") .setAttrs("vip", false); // Additional event information AdBrixRm.AttrModel commmerceAttr = new AdBrixRm.AttrModel() .setAttrs("grade", "vip") .setAttrs("howmany_buy", 36) .setAttrs("discount", true); // Create product information model AdBrixRm.CommerceProductModel productModel_1 = new AdBrixRm.CommerceProductModel().setProductID("5385487400") .setProductName("Special Price for 10 Slacks") .setPrice(10000.00) .setQuantity(1) .setDiscount(1000.00) .setCurrency(AdBrixRm.Currency.KR_KRW) .setCategory(productCategory) .setAttrModel(productAttr1); // Add event analysis for wishlist AdBrixRm.Commerce.addToWishList(productModel_1,commmerceAttr); }catch (JSONException e){ e.printStackTrace(); } }
fun addToWishListEvent(){ try { // Set product category val productCategory = AdBrixRm.CommerceCategoriesModel() .setCategory("카테고리 1") .setCategory("카테고리 2") .setCategory("카테고리 3") .setCategory("카테고리 4") .setCategory("카테고리 5") // Set additional product information val productAttr1 = AdBrixRm.AttrModel() .setAttrs("size", 25) .setAttrs("color", "blue") .setAttrs("vip", false) // Additional event information val commerceAttr = AdBrixRm.AttrModel() .setAttrs("grade", "vip") .setAttrs("howmany_buy", 36) .setAttrs("discount", true) // Product information val productModel1 = AdBrixRm.CommerceProductModel() .setProductID("productid_1") .setProductName("상품명1") .setCategory(productCategory) .setCurrency(AdBrixRm.Currency.KR_KRW) .setDiscount(5000.00) .setAttrModel(productAttr1) .setPrice(50000.00) .setQuantity(1) // Call addToWishList api AbxCommerce.addToWishList(productModel1, commerceAttr) } catch (e: Exception) { e.printStackTrace() } }
API (when applying multiple ProductModels)
[[인용:보통:위험]] This API applies from Android SDK 2.4.0.0.
AdBrixRm.Commerce.addToWishList( List <AdBrixRm.CommerceProductModel> productModelList, AdBrixRm.AttrModel attrModel // Optional );
AdBrixRm.Commerce.addToWishList( List <AdBrixRm.CommerceProductModel> productModelList, AdBrixRm.AttrModel attrModel //Optional )
Sample Code
void addToWishListEvent(){ try { // Set product categories AdBrixRm.CommerceCategoriesModel productCategory = new AdBrixRm.CommerceCategoriesModel() .setCategory("Category 1") .setCategory("Category 2") .setCategory("Category 3") .setCategory("Category 4") .setCategory("Category 5"); // Set additional product information AdBrixRm.AttrModel productAttr1 = new AdBrixRm.AttrModel() .setAttrs("size", 25) .setAttrs("color", "blue") .setAttrs("vip", false); AdBrixRm.AttrModel productAttr2 = new AdBrixRm.AttrModel() .setAttrs("size", 33) .setAttrs("color", "black") .setAttrs("vip", true); // Additional event information AdBrixRm.AttrModel commmerceAttr = new AdBrixRm.AttrModel() .setAttrs("grade", "vip") .setAttrs("howmany_buy", 36) .setAttrs("discount", true); // Create product information model AdBrixRm.CommerceProductModel productModel_1 = new AdBrixRm.CommerceProductModel().setProductID("5385487400") .setProductName("Special Price for 10 Types of Slacks") .setPrice(10000.00) .setQuantity(1) .setDiscount(1000.00) .setCurrency(AdBrixRm.Currency.KR_KRW) .setCategory(productCategory) .setAttrModel(productAttr1); // Create product information model AdBrixRm.CommerceProductModel productModel_2 = new AdBrixRm.CommerceProductModel().setProductID("145099811") .setProductName("[Special Price] Printed Sweatshirt") .setPrice(15500.00) .setQuantity(1) .setDiscount(1200.00) .setCurrency(AdBrixRm.Currency.KR_KRW) .setCategory(productCategory) .setAttrModel(productAttr2); // Create ArrayList of product information models ArrayList productModelArrayList = new ArrayList<>(); productModelArrayList.add(productModel_1); productModelArrayList.add(productModel_2); // Add to wish list event analysis AdBrixRm.Commerce.addToWishList(productModelArrayList,commmerceAttr); }catch (JSONException e){ e.printStackTrace(); } }
fun addToWishListEvent(){ try { // Set product category val productCategory = AdBrixRm.CommerceCategoriesModel() .setCategory("Category 1") .setCategory("Category 2") .setCategory("Category 3") .setCategory("Category 4") .setCategory("Category 5") // Set additional product information val productAttr1 = AdBrixRm.AttrModel() .setAttrs("size", 25) .setAttrs("color", "blue") .setAttrs("vip", false) val productAttr2 = AdBrixRm.AttrModel() .setAttrs("size", 33) .setAttrs("color", "black") .setAttrs("vip", true) // Additional event information val commerceAttr = AdBrixRm.AttrModel() .setAttrs("grade", "vip") .setAttrs("howmany_buy", 36) .setAttrs("discount", true) // Product information val productModel1 = AdBrixRm.CommerceProductModel() .setProductID("productid_1") .setProductName("Product Name 1") .setCategory(productCategory) .setCurrency(AdBrixRm.Currency.KR_KRW) .setDiscount(5000.00) .setAttrModel(productAttr1) .setPrice(50000.00) .setQuantity(1) val productModel2 = AdBrixRm.CommerceProductModel() .setProductID("productid_2") .setProductName("Product Name 2") .setCategory(productCategory) .setCurrency(AdBrixRm.Currency.KR_KRW) .setDiscount(10000.00) .setAttrModel(productAttr2) .setPrice(100000.00) .setQuantity(1) // Set product information arrayList val proList = mutableListOf<AdBrixRm.CommerceProductModel>() proList.add(productModel1) proList.add(productModel2) // Call addToWishList API AbxCommerce.addToWishList(proList, commerceAttr) } catch (e: Exception) { e.printStackTrace() } }
Confirm your order
We analyze the final confirmation event that a user confirms before paying for a product.
We convey the following order and product information:
API
AdBrixRm.Commerce.reviewOrder( String orderId, List <AdBrixRm.CommerceProductModel> productModelList, double discount, double deliveryCharge, AdBrixRm.AttrModel attrModel // Optional );
AdBrixRm.Commerce.reviewOrder( String orderId, List <AdBrixRm.CommerceProductModel> productModelList, double discount, double deliveryCharge, AdBrixRm.AttrModel attrModel //Optional )
Sample Code
void reviewOrderEvent(){ try { // Set product category AdBrixRm.CommerceCategoriesModel productCategory = new AdBrixRm.CommerceCategoriesModel() .setCategory("Category 1") .setCategory("Category 2") .setCategory("Category 3") .setCategory("Category 4") .setCategory("Category 5"); // Set additional product information AdBrixRm.AttrModel productAttr1 = new AdBrixRm.AttrModel() .setAttrs("size", 25) .setAttrs("color", "blue") .setAttrs("vip", false); AdBrixRm.AttrModel productAttr2 = new AdBrixRm.AttrModel() .setAttrs("size", 33) .setAttrs("color", "black") .setAttrs("vip", true); // Additional event information AdBrixRm.AttrModel commmerceAttr = new AdBrixRm.AttrModel() .setAttrs("grade", "vip") .setAttrs("howmany_buy", 36) .setAttrs("discount", true); // Create product information model AdBrixRm.CommerceProductModel productModel_1 = new AdBrixRm.CommerceProductModel().setProductID("5385487400") .setProductName("Special Price for 10 Types of Slacks") .setPrice(10000.00) .setQuantity(1) .setDiscount(1000.00) .setCurrency(AdBrixRm.Currency.KR_KRW) .setCategory(productCategory) .setAttrModel(productAttr1); // Create product information model AdBrixRm.CommerceProductModel productModel_2 = new AdBrixRm.CommerceProductModel().setProductID("145099811") .setProductName("[Special Price] Printed Sweatshirt") .setPrice(15500.00) .setQuantity(1) .setDiscount(1200.00) .setCurrency(AdBrixRm.Currency.KR_KRW) .setCategory(productCategory) .setAttrModel(productAttr2); // Create ArrayList of product information model ArrayList productModelArrayList = new ArrayList<>(); productModelArrayList.add(productModel_1); productModelArrayList.add(productModel_2); // Analyze order review event AdBrixRm.Commerce.reviewOrder("290192012", productModelArrayList, 0.00, 3500.00,commmerceAttr); } catch (JSONException e) { e.printStackTrace(); } }
fun reviewOrderEvent(){ try { // Set product categories val productCategory = AdBrixRm.CommerceCategoriesModel() .setCategory("Category 1") .setCategory("Category 2") .setCategory("Category 3") .setCategory("Category 4") .setCategory("Category 5") // Set additional product information val productAttr1 = AdBrixRm.AttrModel() .setAttrs("size", 25) .setAttrs("color", "blue") .setAttrs("vip", false) val productAttr2 = AdBrixRm.AttrModel() .setAttrs("size", 33) .setAttrs("color", "black") .setAttrs("vip", true) // Additional event information val commerceAttr = AdBrixRm.AttrModel() .setAttrs("grade", "vip") .setAttrs("howmany_buy", 36) .setAttrs("discount", true) // Product information val productModel1 = AdBrixRm.CommerceProductModel() .setProductID("productid_1") .setProductName("Product Name 1") .setCategory(productCategory) .setCurrency(AdBrixRm.Currency.KR_KRW) .setDiscount(5000.00) .setAttrModel(productAttr1) .setPrice(50000.00) .setQuantity(1) val productModel2 = AdBrixRm.CommerceProductModel() .setProductID("productid_2") .setProductName("Product Name 2") .setCategory(productCategory) .setCurrency(AdBrixRm.Currency.KR_KRW) .setDiscount(10000.00) .setAttrModel(productAttr2) .setPrice(100000.00) .setQuantity(1) // Set product information arrayList val proList = mutableListOf<AdBrixRm.CommerceProductModel>() proList.add(productModel1) proList.add(productModel2) // Review order event analysis AbxCommerce.reviewOrder("orderid_11", proList, 0.00, 2500.00, commerceAttr) } catch (e: Exception) { e.printStackTrace() } }
Cancel order (refund)
Analyze events in which a user canceled an order or issued a refund.
We convey the following product and order information:
API
AdBrixRm.Commerce.refund( String orderId, List <AdBrixRm.CommerceProductModel> productModelList, double penaltyCharge, AdBrixRm.AttrModel attrModel // Optional );
AdBrixRm.Commerce.refund( String orderId, List <AdBrixRm.CommerceProductModel> productModelList, double penaltyCharge, AdBrixRm.AttrModel attrModel //Optional )
Sample Code
void refundOrderEvent(){ try { // Set product category AdBrixRm.CommerceCategoriesModel productCategory = new AdBrixRm.CommerceCategoriesModel() .setCategory("Category 1") .setCategory("Category 2") .setCategory("Category 3") .setCategory("Category 4") .setCategory("Category 5"); // Set additional product information AdBrixRm.AttrModel productAttr1 = new AdBrixRm.AttrModel() .setAttrs("size", 25) .setAttrs("color", "blue") .setAttrs("vip", false); AdBrixRm.AttrModel productAttr2 = new AdBrixRm.AttrModel() .setAttrs("size", 33) .setAttrs("color", "black") .setAttrs("vip", true); // Additional event information AdBrixRm.AttrModel commmerceAttr = new AdBrixRm.AttrModel() .setAttrs("grade", "vip") .setAttrs("howmany_buy", 36) .setAttrs("discount", true); // Create product information model AdBrixRm.CommerceProductModel productModel_1 = new AdBrixRm.CommerceProductModel().setProductID("5385487400") .setProductName("Special Price for 10 Slacks") .setPrice(10000.00) .setQuantity(1) .setDiscount(1000.00) .setCurrency(AdBrixRm.Currency.KR_KRW) .setCategory(productCategory) .setAttrModel(productAttr1); // Create product information model AdBrixRm.CommerceProductModel productModel_2 = new AdBrixRm.CommerceProductModel().setProductID("145099811") .setProductName("[Discounted] Printed Sweatshirt") .setPrice(15500.00) .setQuantity(1) .setDiscount(1200.00) .setCurrency(AdBrixRm.Currency.KR_KRW) .setCategory(productCategory) .setAttrModel(productAttr2); // Create ArrayList of product information models ArrayList productModelArrayList = new ArrayList<>(); productModelArrayList.add(productModel_1); productModelArrayList.add(productModel_2); // Analyze order cancellation (refund) event AdBrixRm.Commerce.refund("290192012", productModelArrayList, 0.00,commmerceAttr); } catch (JSONException e) { e.printStackTrace(); } }
fun refundOrderEvent(){ try { // Set product category val productCategory = AdBrixRm.CommerceCategoriesModel() .setCategory("Category 1") .setCategory("Category 2") .setCategory("Category 3") .setCategory("Category 4") .setCategory("Category 5") // Set additional product information val productAttr1 = AdBrixRm.AttrModel() .setAttrs("size", 25) .setAttrs("color", "blue") .setAttrs("vip", false) val productAttr2 = AdBrixRm.AttrModel() .setAttrs("size", 33) .setAttrs("color", "black") .setAttrs("vip", true) // Additional event information val commerceAttr = AdBrixRm.AttrModel() .setAttrs("grade", "vip") .setAttrs("howmany_buy", 36) .setAttrs("discount", true) // Product information val productModel1 = AdBrixRm.CommerceProductModel() .setProductID("productid_1") .setProductName("Product Name 1") .setCategory(productCategory) .setCurrency(AdBrixRm.Currency.KR_KRW) .setDiscount(5000.00) .setAttrModel(productAttr1) .setPrice(50000.00) .setQuantity(1) val productModel2 = AdBrixRm.CommerceProductModel() .setProductID("productid_2") .setProductName("Product Name 2") .setCategory(productCategory) .setCurrency(AdBrixRm.Currency.KR_KRW) .setDiscount(10000.00) .setAttrModel(productAttr2) .setPrice(100000.00) .setQuantity(1) // Set product information arrayList val proList = mutableListOf<AdBrixRm.CommerceProductModel>() proList.add(productModel1) proList.add(productModel2) // Analyze event for order cancellation (refund) AbxCommerce.refund("orderid_22", proList, 19000.00, commerceAttr) } catch (e: Exception) { e.printStackTrace() } }
Search for products
Analyze events in which users search for products.
We deliver product information included in the following search results.
API
AdBrixRm.Commerce.search( String searchKeyword, List <AdBrixRm.CommerceProductModel> productModelList, AdBrixRm.AttrModel attrModel // Optional );
AdBrixRm.Commerce.search( String searchKeyword, List <AdBrixRm.CommerceProductModel> productModelList, AdBrixRm.AttrModel attrModel //Optional )
Sample Code
void searchProductEvent(){ // Set product category AdBrixRm.CommerceCategoriesModel productCategory = new AdBrixRm.CommerceCategoriesModel() .setCategory("Category 1") .setCategory("Category 2") .setCategory("Category 3") .setCategory("Category 4") .setCategory("Category 5"); // Set additional product information AdBrixRm.AttrModel productAttr1 = new AdBrixRm.AttrModel() .setAttrs("size", 25) .setAttrs("color", "blue") .setAttrs("vip", false); AdBrixRm.AttrModel productAttr2 = new AdBrixRm.AttrModel() .setAttrs("size", 33) .setAttrs("color", "black") .setAttrs("vip", true); // Additional event information AdBrixRm.AttrModel commmerceAttr = new AdBrixRm.AttrModel() .setAttrs("grade", "vip") .setAttrs("howmany_buy", 36) .setAttrs("discount", true); // Create product information model AdBrixRm.CommerceProductModel productModel_1 = new AdBrixRm.CommerceProductModel().setProductID("5385487400") .setProductName("Special Price for 10 Types of Slacks") .setPrice(10000.00) .setQuantity(1) .setDiscount(1000.00) .setCurrency(AdBrixRm.Currency.KR_KRW) .setCategory(productCategory) .setAttrModel(productAttr1); // Create product information model AdBrixRm.CommerceProductModel productModel_2 = new AdBrixRm.CommerceProductModel().setProductID("145099811") .setProductName("[Special Price for Last Season] Printed Sweatshirt") .setPrice(15500.00) .setQuantity(1) .setDiscount(1200.00) .setCurrency(AdBrixRm.Currency.KR_KRW) .setCategory(productCategory) .setAttrModel(productAttr2); // Create product information model ArrayList ArrayList productModelArrayList = new ArrayList<>(); productModelArrayList.add(productModel_1); productModelArrayList.add(productModel_2); // Analyze product search event AdBrixRm.Commerce.search("Casual Pants", productModelArrayList,commmerceAttr); }
fun searchProductEvent(){ // Set product category val productCategory = AdBrixRm.CommerceCategoriesModel() .setCategory("Category 1") .setCategory("Category 2") .setCategory("Category 3") .setCategory("Category 4") .setCategory("Category 5") // Set additional product information val productAttr1 = AdBrixRm.AttrModel() .setAttrs("size", 25) .setAttrs("color", "blue") .setAttrs("vip", false) val productAttr2 = AdBrixRm.AttrModel() .setAttrs("size", 33) .setAttrs("color", "black") .setAttrs("vip", true) // Additional event information val commerceAttr = AdBrixRm.AttrModel() .setAttrs("grade", "vip") .setAttrs("howmany_buy", 36) .setAttrs("discount", true) // Product information val productModel1 = AdBrixRm.CommerceProductModel() .setProductID("productid_1") .setProductName("Product Name 1") .setCategory(productCategory) .setCurrency(AdBrixRm.Currency.KR_KRW) .setDiscount(5000.00) .setAttrModel(productAttr1) .setPrice(50000.00) .setQuantity(1) val productModel2 = AdBrixRm.CommerceProductModel() .setProductID("productid_2") .setProductName("Product Name 2") .setCategory(productCategory) .setCurrency(AdBrixRm.Currency.KR_KRW) .setDiscount(10000.00) .setAttrModel(productAttr2) .setPrice(100000.00) .setQuantity(1) // Set product information arrayList val proList = mutableListOf<AdBrixRm.CommerceProductModel>() proList.add(productModel1) proList.add(productModel2) // Analyze product search event AbxCommerce.search("search term", proList, commerceAttr) }
Share product
Analyze events in which users share product information.
We communicate shared product information such as:
API
AdBrixRm.Commerce.share( AdBrixRm.CommerceSharingChannel SharingChannel, AdBrixRm.CommerceProductModel productModel, AdBrixRm.AttrModel attrModel // Optional );
AdBrixRm.Commerce.share( AdBrixRm.CommerceSharingChannel SharingChannel, AdBrixRm.CommerceProductModel productModel, AdBrixRm.AttrModel attrModel //Optional )
Sample Code
void shareProductEvent(){ // Set product category AdBrixRm.CommerceCategoriesModel productCategory = new AdBrixRm.CommerceCategoriesModel() .setCategory("Category 1") .setCategory("Category 2") .setCategory("Category 3") .setCategory("Category 4") .setCategory("Category 5"); // Set additional product information AdBrixRm.AttrModel productAttr1 = new AdBrixRm.AttrModel() .setAttrs("size", 25) .setAttrs("color", "blue") .setAttrs("vip", false); // Additional event information AdBrixRm.AttrModel commmerceAttr = new AdBrixRm.AttrModel() .setAttrs("grade", "vip") .setAttrs("howmany_buy", 36) .setAttrs("discount", true); // Create product information model AdBrixRm.CommerceProductModel productModel_1 = new AdBrixRm.CommerceProductModel().setProductID("5385487400") .setProductName("Special Price for 10 Types of Slacks") .setPrice(10000.00) .setQuantity(1) .setDiscount(1000.00) .setCurrency(AdBrixRm.Currency.KR_KRW) .setCategory(productCategory) .setAttrModel(productAttr1); // Analyze product information sharing event AdBrixRm.Commerce.share(AdBrixRm.CommerceSharingChannel.KakaoTalk, productModel_1, commmerceAttr); }
fun shareProductEvent(){ // Set product category val productCategory = AdBrixRm.CommerceCategoriesModel() .setCategory("Category 1") .setCategory("Category 2") .setCategory("Category 3") .setCategory("Category 4") .setCategory("Category 5") // Set additional product information val productAttr1 = AdBrixRm.AttrModel() .setAttrs("size", 25) .setAttrs("color", "blue") .setAttrs("vip", false) // Additional event information val commerceAttr = AdBrixRm.AttrModel() .setAttrs("grade", "vip") .setAttrs("howmany_buy", 36) .setAttrs("discount", true) // Product information val productModel1 = AdBrixRm.CommerceProductModel() .setProductID("productid_1") .setProductName("Product Name 1") .setCategory(productCategory) .setCurrency(AdBrixRm.Currency.KR_KRW) .setDiscount(5000.00) .setAttrModel(productAttr1) .setPrice(50000.00) .setQuantity(1) // Product information sharing event analysis AbxCommerce.share(AdBrixRm.CommerceSharingChannel.KakaoStory, productModel1, commerceAttr) }
API (when applying multiple ProductModels)
[[인용:보통:위험]] This API applies from Android SDK 2.4.0.0.
AdBrixRm.Commerce.share( AdBrixRm.CommerceSharingChannel SharingChannel, List <AdBrixRm.CommerceProductModel> productModelList, AdBrixRm.AttrModel attrModel // Optional );
AdBrixRm.Commerce.share( AdBrixRm.CommerceSharingChannel SharingChannel, List <AdBrixRm.CommerceProductModel> productModelList, AdBrixRm.AttrModel attrModel //Optional )
Sample Code
void addToWishListEvent(){ try { // Set product category AdBrixRm.CommerceCategoriesModel productCategory = new AdBrixRm.CommerceCategoriesModel() .setCategory("Category 1") .setCategory("Category 2") .setCategory("Category 3") .setCategory("Category 4") .setCategory("Category 5"); // Set additional product information AdBrixRm.AttrModel productAttr1 = new AdBrixRm.AttrModel() .setAttrs("size", 25) .setAttrs("color", "blue") .setAttrs("vip", false); AdBrixRm.AttrModel productAttr2 = new AdBrixRm.AttrModel() .setAttrs("size", 33) .setAttrs("color", "black") .setAttrs("vip", true); // Additional event information AdBrixRm.AttrModel commmerceAttr = new AdBrixRm.AttrModel() .setAttrs("grade", "vip") .setAttrs("howmany_buy", 36) .setAttrs("discount", true); // Create product information model AdBrixRm.CommerceProductModel productModel_1 = new AdBrixRm.CommerceProductModel().setProductID("5385487400") .setProductName("Slacks 10 Types Special Price") .setPrice(10000.00) .setQuantity(1) .setDiscount(1000.00) .setCurrency(AdBrixRm.Currency.KR_KRW) .setCategory(productCategory) .setAttrModel(productAttr1); // Create product information model AdBrixRm.CommerceProductModel productModel_2 = new AdBrixRm.CommerceProductModel().setProductID("145099811") .setProductName("[February Special Price] Print Sweatshirt") .setPrice(15500.00) .setQuantity(1) .setDiscount(1200.00) .setCurrency(AdBrixRm.Currency.KR_KRW) .setCategory(productCategory) .setAttrModel(productAttr2); // Create product information model ArrayList ArrayList productModelArrayList = new ArrayList<>(); productModelArrayList.add(productModel_1); productModelArrayList.add(productModel_2); // Analyze share event AdBrixRm.Commerce.share(AdBrixRm.CommerceSharingChannel.KakaoTalk, productModelArrayList, commmerceAttr); }catch (JSONException e){ e.printStackTrace(); } }
fun addToWishListEvent(){ try { // Set product category val productCategory = AdBrixRm.CommerceCategoriesModel() .setCategory("카테고리 1") .setCategory("카테고리 2") .setCategory("카테고리 3") .setCategory("카테고리 4") .setCategory("카테고리 5") // Set additional product information val productAttr1 = AdBrixRm.AttrModel() .setAttrs("size", 25) .setAttrs("color", "blue") .setAttrs("vip", false) val productAttr2 = AdBrixRm.AttrModel() .setAttrs("size", 33) .setAttrs("color", "black") .setAttrs("vip", true) // Additional event information val commerceAttr = AdBrixRm.AttrModel() .setAttrs("grade", "vip") .setAttrs("howmany_buy", 36) .setAttrs("discount", true) // Product information val productModel1 = AdBrixRm.CommerceProductModel() .setProductID("productid_1") .setProductName("상품명1") .setCategory(productCategory) .setCurrency(AdBrixRm.Currency.KR_KRW) .setDiscount(5000.00) .setAttrModel(productAttr1) .setPrice(50000.00) .setQuantity(1) val productModel2 = AdBrixRm.CommerceProductModel() .setProductID("productid_2") .setProductName("상품명2") .setCategory(productCategory) .setCurrency(AdBrixRm.Currency.KR_KRW) .setDiscount(10000.00) .setAttrModel(productAttr2) .setPrice(100000.00) .setQuantity(1) // Set product information arrayList val proList = mutableListOf<AdBrixRm.CommerceProductModel>() proList.add(productModel1) proList.add(productModel2) // Call share API AbxCommerce.share(AdBrixRm.CommerceSharingChannel.KakaoStory, proList, commerceAttr) } catch (e: Exception) { e.printStackTrace() } }
View product list
Analyze events in which users view product lists.
We deliver the following product information you have viewed.
API
AdBrixRm.Commerce.listView( List <AdBrixRm.CommerceProductModel> productModelList, AdBrixRm.AttrModel attrModel // Optional );
AdBrixRm.Commerce.listView( List <AdBrixRm.CommerceProductModel> productModelList, AdBrixRm.AttrModel attrModel //Optional )
Sample Code
void listViewProductsEvent(){ // Set product categories AdBrixRm.CommerceCategoriesModel productCategory = new AdBrixRm.CommerceCategoriesModel() .setCategory("Category 1") .setCategory("Category 2") .setCategory("Category 3") .setCategory("Category 4") .setCategory("Category 5"); // Set additional product information AdBrixRm.AttrModel productAttr1 = new AdBrixRm.AttrModel() .setAttrs("size", 25) .setAttrs("color", "blue") .setAttrs("vip", false); AdBrixRm.AttrModel productAttr2 = new AdBrixRm.AttrModel() .setAttrs("size", 33) .setAttrs("color", "black") .setAttrs("vip", true); // Add event additional information AdBrixRm.AttrModel commmerceAttr = new AdBrixRm.AttrModel() .setAttrs("grade", "vip") .setAttrs("howmany_buy", 36) .setAttrs("discount", true); // Create product information model AdBrixRm.CommerceProductModel productModel_1 = new AdBrixRm.CommerceProductModel().setProductID("5385487400") .setProductName("Special Price for 10 Types of Slacks") .setPrice(10000.00) .setQuantity(1) .setDiscount(1000.00) .setCurrency(AdBrixRm.Currency.KR_KRW) .setCategory(productCategory) .setAttrModel(productAttr1); // Create product information model AdBrixRm.CommerceProductModel productModel_2 = new AdBrixRm.CommerceProductModel().setProductID("145099811") .setProductName("[End of Season Special] Printed Sweatshirt") .setPrice(15500.00) .setQuantity(1) .setDiscount(1200.00) .setCurrency(AdBrixRm.Currency.KR_KRW) .setCategory(productCategory) .setAttrModel(productAttr2); // Create ArrayList of product information models ArrayList productModelArrayList = new ArrayList<>(); productModelArrayList.add(productModel_1); productModelArrayList.add(productModel_2); // Analyze event of viewing product list AdBrixRm.Commerce.listView(productModelArrayList,commmerceAttr); }
fun listViewProductsEvent(){ // Set product category val productCategory = AdBrixRm.CommerceCategoriesModel() .setCategory("Category 1") .setCategory("Category 2") .setCategory("Category 3") .setCategory("Category 4") .setCategory("Category 5") // Set additional product information val productAttr1 = AdBrixRm.AttrModel() .setAttrs("size", 25) .setAttrs("color", "blue") .setAttrs("vip", false) val productAttr2 = AdBrixRm.AttrModel() .setAttrs("size", 33) .setAttrs("color", "black") .setAttrs("vip", true) // Additional event information val commerceAttr = AdBrixRm.AttrModel() .setAttrs("grade", "vip") .setAttrs("howmany_buy", 36) .setAttrs("discount", true) // Product information val productModel1 = AdBrixRm.CommerceProductModel() .setProductID("productid_1") .setProductName("Product Name 1") .setCategory(productCategory) .setCurrency(AdBrixRm.Currency.KR_KRW) .setDiscount(5000.00) .setAttrModel(productAttr1) .setPrice(50000.00) .setQuantity(1) val productModel2 = AdBrixRm.CommerceProductModel() .setProductID("productid_2") .setProductName("Product Name 2") .setCategory(productCategory) .setCurrency(AdBrixRm.Currency.KR_KRW) .setDiscount(10000.00) .setAttrModel(productAttr2) .setPrice(100000.00) .setQuantity(1) // Set product information arrayList val proList = mutableListOf<AdBrixRm.CommerceProductModel>() proList.add(productModel1) proList.add(productModel2) // Analyze product list view event AbxCommerce.listView(proList, commerceAttr) }
View shopping cart
Analyze events in which users view their shopping carts.
We deliver the following product information you have viewed.
API
AdBrixRm.Commerce.cartView( List <AdBrixRm.CommerceProductModel> productModelList, AdBrixRm.AttrModel attrModel // Optional );
AdBrixRm.Commerce.cartView( List <AdBrixRm.CommerceProductModel> productModelList, AdBrixRm.AttrModel attrModel //Optional )
Sample Code
void cartViewProductsEvent(){ // 상품 카테고리 설정 AdBrixRm.CommerceCategoriesModel productCategory = new AdBrixRm.CommerceCategoriesModel() .setCategory("Category 1") .setCategory("Category 2") .setCategory("Category 3") .setCategory("Category 4") .setCategory("Category 5"); //상품 추가 정보 설정 AdBrixRm.AttrModel productAttr1 = new AdBrixRm.AttrModel() .setAttrs("size", 25) .setAttrs("color", "blue") .setAttrs("vip", false); AdBrixRm.AttrModel productAttr2 = new AdBrixRm.AttrModel() .setAttrs("size", 33) .setAttrs("color", "black") .setAttrs("vip", true); // 이벤트 추가 정보 AdBrixRm.AttrModel commmerceAttr = new AdBrixRm.AttrModel() .setAttrs("grade", "vip") .setAttrs("howmany_buy", 36) .setAttrs("discount", true); // 상품 정보 모델 생성 AdBrixRm.CommerceProductModel productModel_1 = new AdBrixRm.CommerceProductModel().setProductID("5385487400") .setProductName("Special Price for 10 Types of Slacks") .setPrice(10000.00) .setQuantity(1) .setDiscount(1000.00) .setCurrency(AdBrixRm.Currency.KR_KRW) .setCategory(productCategory) .setAttrModel(productAttr1); // 상품 정보 모델 생성 AdBrixRm.CommerceProductModel productModel_2 = new AdBrixRm.CommerceProductModel().setProductID("145099811") .setProductName("[Clearance Sale] Printed Sweatshirt") .setPrice(15500.00) .setQuantity(1) .setDiscount(1200.00) .setCurrency(AdBrixRm.Currency.KR_KRW) .setCategory(productCategory) .setAttrModel(productAttr2); // 상품 정보 모델 ArrayList 생성 ArrayList productModelArrayList = new ArrayList<>(); productModelArrayList.add(productModel_1); productModelArrayList.add(productModel_2); //장바구니 조회하기 이벤트 분석 AdBrixRm.Commerce.cartView(productModelArrayList,commmerceAttr); }
fun cartViewProductsEvent(){ // Set product category val productCategory = AdBrixRm.CommerceCategoriesModel() .setCategory("Category 1") .setCategory("Category 2") .setCategory("Category 3") .setCategory("Category 4") .setCategory("Category 5") // Set additional product information val productAttr1 = AdBrixRm.AttrModel() .setAttrs("size", 25) .setAttrs("color", "blue") .setAttrs("vip", false) val productAttr2 = AdBrixRm.AttrModel() .setAttrs("size", 33) .setAttrs("color", "black") .setAttrs("vip", true) // Additional event information val commerceAttr = AdBrixRm.AttrModel() .setAttrs("grade", "vip") .setAttrs("howmany_buy", 36) .setAttrs("discount", true) // Product information val productModel1 = AdBrixRm.CommerceProductModel() .setProductID("productid_1") .setProductName("Product Name 1") .setCategory(productCategory) .setCurrency(AdBrixRm.Currency.KR_KRW) .setDiscount(5000.00) .setAttrModel(productAttr1) .setPrice(50000.00) .setQuantity(1) val productModel2 = AdBrixRm.CommerceProductModel() .setProductID("productid_2") .setProductName("Product Name 2") .setCategory(productCategory) .setCurrency(AdBrixRm.Currency.KR_KRW) .setDiscount(10000.00) .setAttrModel(productAttr2) .setPrice(100000.00) .setQuantity(1) // Set product information arrayList val proList = mutableListOf<AdBrixRm.CommerceProductModel>() proList.add(productModel1) proList.add(productModel2) // Analyze cart view event AbxCommerce.cartView(proList, commerceAttr) }
Enter payment information
Analyze events where users enter payment information.
API
AdBrixRm.Commerce.paymentInfoAdded(AdBrixRm.AttrModel attrModel);
AdBrixRm.Commerce.paymentInfoAdded(AdBrixRm.AttrModel attrModel)
Sample Code
void paymentInfoAddedEvent(){ AdBrixRm.AttrModel commmerceAttr = new AdBrixRm.AttrModel() .setAttrs("grade", "vip") .setAttrs("card", "kbcard") .setAttrs("discount", true); //Payment information entry event AdBrixRm.Commerce.paymentInfoAdded(commmerceAttr); }
fun paymentInfoAddedEvent(){ //Payment information input event val commerceAttr = AdBrixRm.AttrModel() .setAttrs("grade", "vip") .setAttrs("card","kcard") .setAttrs("discount", true) AbxCommerce.paymentInfoAdded(commerceAttr) }
Game event analysis
Analyze game-related events (tutorials, stages, etc.) that occur in the app.
The types of game events provided by DFINERY (Adbrix) are as follows.
- Tutorial completed
- character generation
- Stage completed
- Level achieved
Tutorial completed
Analyze tutorial completion events that occur in the app.
The following tutorial completion information is configured and delivered by setting the value of GameProperties.TutorialComplete.
API
AdBrixRm.Game.tutorialComplete(AdBrixRm.GameProperties.TutorialComplete gameProperties);
AdBrixRm.Game.tutorialComplete(AdBrixRm.GameProperties.TutorialComplete gameProperties)
Sample Code
void tutorialCompleteEvent(){ AdBrixRm.AttrModel gameAttr = new AdBrixRm.AttrModel() .setAttrs("grade", "vip") .setAttrs("level", 36) .setAttrs("google_vip", true); AdBrixRm.GameProperties.TutorialComplete gameProperties = new AdBrixRm.GameProperties.TutorialComplete() .setIsSkip(true) .setAttrModel(gameAttr); //Call tutorial complete event AdBrixRm.Game.tutorialComplete(gameProperties); }
fun tutorialCompleteEvent(){ val gameAttr = AdBrixRm.AttrModel() .setAttrs("grade", "vip") .setAttrs("level", 36) .setAttrs("google_vip", true) val tutorialProperties = AdBrixRm.GameProperties.TutorialComplete() .setIsSkip(false) .setAttrModel(gameAttr) //튜토리얼 완료 이벤트 호출 AbxGame.tutorialComplete(tutorialProperties) }
character generation
Analyze character creation events that occurred in the app.
The character creation information is composed and delivered with the value of GameProperies.CharacterCreated.
API
AdBrixRm.Game.characterCreated(AdBrixRm.GameProperties.CharacterCreated gameProperties);
AdBrixRm.Game.characterCreated(AdBrixRm.GameProperties.CharacterCreated gameProperties)
Sample Code
void characterCreatedEvent(){ AdBrixRm.AttrModel gameAttr = new AdBrixRm.AttrModel() .setAttrs("grade", "vip") .setAttrs("level", 36) .setAttrs("google_vip", true); AdBrixRm.GameProperties.CharacterCreated gameProperties = new AdBrixRm.GameProperties.CharacterCreated() .setAttrModel(gameAttr); //Character creation event call AdBrixRm.Game.characterCreated(gameProperties); }
fun characterCreatedEvent(){ val gameAttr = AdBrixRm.AttrModel() .setAttrs("grade", "vip") .setAttrs("level", 36) .setAttrs("google_vip", true) val characterProperties = AdBrixRm.GameProperties.CharacterCreated() .setAttrModel(gameAttr) //캐릭터 생성 이벤트 호출 AbxGame.characterCreated(characterProperties) }
Stage completed
Analyze stage completion events that occur in the app.
The following stage completion information is delivered by configuring the value of GameProperties.StageCleared.
API
AdBrixRm.Game.stageCleared(AdBrixRm.GameProperties.StageCleared gameProperties);
AdBrixRm.Game.stageCleared(AdBrixRm.GameProperties.StageCleared gameProperties)
Sample Code
void stageClearedEvent(){ AdBrixRm.AttrModel gameAttr = new AdBrixRm.AttrModel() .setAttrs("grade", "vip") .setAttrs("level", 36) .setAttrs("google_vip", true); AdBrixRm.GameProperties.StageCleared gameProperties = new AdBrixRm.GameProperties.StageCleared() .setStageName("1-1") .setAttrModel(gameAttr); //Stage cleared event call AdBrixRm.Game.stageCleared(gameProperties); }
fun stageClearedEvent(){ val gameAttr = AdBrixRm.AttrModel() .setAttrs("grade", "vip") .setAttrs("level", 36) .setAttrs("google_vip", true) val stageProperties = AdBrixRm.GameProperties.StageCleared() .setStageName("stage111") .setAttrModel(gameAttr) AbxGame.stageCleared(stageProperties) }
Level achieved
Analyze level achievement events that occurred in the app.
We deliver the level achievement information as configured in the value of GameProperies.LevelAchieved.
API
AdBrixRm.Game.levelAchieved(AdBrixRm.GameProperties.LevelAchieved gameProperties);
AdBrixRm.Game.levelAchieved(AdBrixRm.GameProperties.LevelAchieved gameProperties)
Sample Code
void levelAchievedEvent(){ AdBrixRm.AttrModel gameAttr = new AdBrixRm.AttrModel() .setAttrs("grade", "vip") .setAttrs("level", 36) .setAttrs("google_vip", true); AdBrixRm.GameProperties.LevelAchieved gameProperties = new AdBrixRm.GameProperties.LevelAchieved() .setLevel(1) .setAttrModel(gameAttr); //Call level achieved event AdBrixRm.Game.levelAchieved(gameProperties); }
fun levelAchievedEvent(){ val gameAttr = AdBrixRm.AttrModel() .setAttrs("grade", "vip") .setAttrs("level", 36) .setAttrs("google_vip", true) val leveProperties = AdBrixRm.GameProperties.LevelAchieved() .setLevel(12) .setAttrModel(gameAttr) //Level achievement event call AbxGame.levelAchieved(leveProperties) }