Tích hợp AdBrix Android SDK [Java]
Theo dõiQuick Start
Chúng tôi sẽ hướng dẫn các bước tích hợp SDK tối thiểu để sử dụng AdBrix.
Sau khi hoàn thành cấu hình [Gradle -> Proguard ] và khởi tạo SDK bạn có thể:
- Xem báo cáo các thông số cơ bản trên console: DAU, Retention
- Truy vết quảng cáo cài đặt ứng dụng thông qua tracking link: Install Count, Re-Install Count
[[인용:경고:보통]] System Requirement
1. Build environment : Sử dụng Android Studio
2. Android Min SDK version : 14 trở lên
Cài đặt Gradle để tải SDK
Cài đặt AdBrix Android SDK thông qua gradle.
Để cấu hình Gradle, chọn Android View như hình bên dưới:
Thêm thông tin địa chỉ lưu trữ AdBrix SDK trên maven vào file [build.gradle (Project: ProjectName)]:
allprojects { repositories { google() jcenter() maven { url 'https://dl.bintray.com/igaworks/AdbrixRmSDK' } } }
Trong file [build.gradle (Module: app)] thêm các dependency sau:
dependencies { implementation 'com.google.android.gms:play-services-ads:15.0.0' implementation 'com.android.installreferrer:installreferrer:1.0' implementation 'com.igaworks.adbrix:abx-common-rm:+' }
[[인용:위험:보통]]* Để phòng chống Fraud Traffic và xác định install attribution trên Play Store, bạn cần cài com.android.installreferrer:installreferrer.
* Để nhận được google adid, bạn cần cài com.google.android.gms:play-service-ads.
Sau khi hoàn thành cấu hình Gradle , chọn đồng bộ project [File > Sync Project with Gradle Files] để Android Studio tiến hành tải SDK về máy.
Sau khi hoàn thành quá trình đồng bộ, bạn kiểm tra lại kết quả như hình:
Cấu hình permission cần thiết
Cấu hình các permission cho AdBrix SDK kết nối mạng internet bằng cách khai báo trong file [AndroidManifest.xml > manifest].
<manifest> ... <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> ... </manifest>
Khởi tạo SDK
Mục đích của bước này là khởi tạo SDK với App Key, Secret Key và cho phép SDK cài đặt ActivityLifecycleCallbacks. Tùy vào vào cách phát triển app, có thể khởi tạo AdBrix SDK bằng 2 cách.
- Sử dụng AbxApplication class
- Sử dụng custom Application class
1. Sử dụng AbxApplication class
Trong trường hợp không cần sử dụng custom Application class, bạn có thể dùng ngay AbxApplication clas để khởi tạo SDK tự động.
Khai báo AbxApplication class vào file [AndroidManifest.xml > application] kèm theo meta-data là app key và secret key nhận từ AdBrix Console.
<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. Sử dụng custom Application class
Trong trường hợp app có Application class riêng, giả sử tên là MyApplicationClass, khai báo trong Manifest:
<application android:name=".MyApplicationClass" ... > </application>
Thêm hàm khởi tạo AdBrix SDK vào onCreate() của MyApplicationClass.
public class MyApplicationClass extends Application { @Override public void onCreate() { super.onCreate(); AbxActivityHelper.initializeSdk(MyApplicationClass.this, "your_adbrix_remastered_app_key", "your_adbrix_remastered_secret_key"); if (Build.VERSION.SDK_INT >= 14) { registerActivityLifecycleCallbacks(new AbxActivityLifecycleCallbacks()); } } }
[[인용:안내:보통]] Kiểm tra App Key & Secret Key
App Key và Secret Key được cấp riêng cho mỗi app khi sử dụng AdBrix. 2 tham số này cần dùng để khởi tạo SDK. Để lấy thông tin 2 Key này, bạn vào AdBrix Console.
_ Cách lấy App Key và Secret Key
_ Mở AdBrix Console
Cấu hình ProGuard
Thêm code sau vào file app / proguard-rule.pro để SDK hoạt động chính xác. Tránh làm Proguard ảnh hưởng tới việc xác định mobile attribution.
-keep class com.google.android.gms.ads.identifier.AdvertisingIdClient {*;} -keep class com.google.android.gms.ads.identifier.AdvertisingIdClient$* {*;} -dontwarn com.android.installreferrer
[[인용:안내:보통]] Chúc mừng bạn đã tích hợp thành công AdBrix SDK!!!
Bạn đã hoàn thành bước tích hợp SDK cho dịch vụ cơ bản của AdBrix. Bây giờ, vào AdBrix Console, bạn có thể kiểm tra event ở SDK đã được đưa lên AdBrix server, hiển thị trên báo cáo.
1. Kiểm tra báo cáo về DAU, MAU, retention
2. Truy vết các chiến dịch cài đặt ứng dụng hình thái nCPI và các hình thái tương tự khác. Kiểm tra thông số install count, re-install count phân bổ theo từng chiến dịch.
Chú ý: Event đầu tiên hiện trên Console hoặc LiveBrix có thể mất 5 phút.
Bước tiếp theo: Để truy vết và phân tích deep-link attribution và các sự kiện trong ứng dụng (in-app event), hãy tiếp tục tích hợp SDK theo hướng dẫn bên dưới. Các sự kiện được định nghĩa theo nhu cầu của ứng dụng một cách linh hoạt. Bạn có thể tham khảo một số ví dụ về event thường gặp trong app như create_account, log_in, register_credit_card, trong e-commerce như purchase, add_to_cart, view_product, trong game như create_character, level_up, v.v
Tích hợp SDK bổ sung
Cấu hình chu kì upload sự kiện
AdBrix SDK cung cấp hàm để ghi log sự kiện vào hàng đợi, sau đó sẽ dựa trên 2 tiêu chí sau đây để upload sự kiện lên server.
- Tiêu chí số event trong hàng đợi của SDK
- Tiêu chí thời gian
[[인용:안내:보통]] * Trong 2 tiêu chí trên, tiêu chí nào đến trước thì sẽ được thực hiện trước
* Hàm cài đặt tham số chu kì upload nên được gọi trong Application class hoặc ở Activity đầu tiên của ứng dụng.
1. Tiêu chí số event trong hàng đợi của SDK
Khi số event trong hàng đợi vừa qua ngưỡng cài đặt, SDK sẽ tiến hành upload toàn bộ dữ liệu lên server.
Hằng số được định nghĩa sẵn trong AdBrix SDK:
- AdBrixRm.AdBrixEventUploadCountInterval.MIN : 10 sự kiện
- AdBrixRm.AdBrixEventUploadCountInterval.NORMAL : 30 sự kiện
- AdBrixRm.AdBrixEventUploadCountInterval.MAX : 60 sự kiện
public class LauncherActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_launcher); // Bạn cài đặt ngưỡng là 10 sự kiện, SDK gửi dữ liệu lên AdBrix nếu số event trong hàng đợi vượt qua ngưỡng này AdBrixRm.setEventUploadCountInterval(AdBrixRm.AdBrixEventUploadCountInterval.MIN); } }
2. Tiêu chí thời gian
SDK sẽ đợi một khoảng thời gian nhất định được cấu hình từ trước. Sau đó, SDK sẽ tải toàn bộ dữ liệu lên server và sau đó tiếp tục đợi phiên tiếp theo.
Hằng số được định nghĩa bởi AdBrix SDK.
- AdBrixRm.AdBrixEventUploadTimeInterval.MIN : 30 giây
- AdBrixRm.AdBrixEventUploadTimeInterval.NORMAL : 60 giây
- AdBrixRm.AdBrixEventUploadTimeInterval.MAX : 120 giây
public class LauncherActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_launcher); // Mỗi chu kì 120 giây, tải dữ liệu lên AdBrix server AdBrixRm.setEventUploadTimeInterval(AdBrixRm.AdBrixEventUploadTimeInterval.MAX); } }
Cài đặt GDPR
Khi người dùng yêu cầu xóa tất cả dữ liệu cá nhân theo luật bảo hộ dữ liệu GDPR, hãy dùng hàm sau. [GDPR là gì?]
void gdprForgetMeEvent() { AdBrixRm.gdprForgetMe(getApplicationContext()); }
[[인용:위험:보통]] Chú ý!!!
Khi gọi hàm gdprForgetMe, SDK sẽ dừng toàn bộ việc thu thập dữ liệu ngay lập tức, bạn sẽ không thể phân tích tất cả event xảy ra trong ứng dụng từ lúc đó. Trạng thái này sẽ duy trì cho đến khi người dùng cài lại ứng dụng.
Deep Linking/ Deferred Deep Linking
Phân tích sự kiện Deep Linking
Deep linking là phương thức để mở một Activity trong ứng dụng thông qua deep link có địa chỉ dạng scheme://host. Android hỗ trợ thêm phương thức App Link, địa chỉ có dạng giống như địa chỉ web https://domain để mở Activity trong app từ mobile browser. Như vậy Android App Link và Deep Link có thể hiểu là một sự kết nối từ bên ngoài vào mobile app. Trường hợp đặc biệt của Deep Link khi app được mở lần đầu tiên sau khi cài đặt được gọi là Deferred Deep Link. AdBrix tracking link hỗ trợ toàn bộ các dạng Deep Link như mô tả ở trên. Khi tạo tracking link, tuỳ theo phương thức mong muốn, tracking link có thể hoạt động như Android AppLink hoặc Deep Link thông thường hoặc Deferred Deep Link.
[[인용:안내:보통]] Deep Link URI format có dạng myscheme://host?key=value. Tham số đính kèm trong link có kiểu dữ liệu dạng String. Tham số được cấu hình dễ dàng trên AdBrix Console.
Thông qua tracking link, người dùng mở ứng dụng ở một màn hình Activity của Android trong ứng dụng bằng phương pháp deep linking. Đây là một sự kiện quan trọng mà marketer cần quan sát và phân tích.
Tùy vào thuộc tính launchMode của Activity class, phương pháp tích hợp sẽ khác nhau. Bởi lẽ, Activity trong Android được tổ chức theo stack và người dùng có thể quay trở lại cùng Activity đã được mở từ deep linking nhiều lần bằng nhiều tracking link, SDK cần cơ chế để thu thập tham số chính xác.
- Trường hợp Activity đích sử dụng chế độ singleTask
- Trường hợp Activity đích không sử dụng chế độ singleTask
[[인용:안내:보통]] Xác định launchMode như thế nào???
Trong file AndroidManifest.xml, xác định Activity được chỉ định nhận deep linking. Trong số các thuộc tính
của Activity đó, bạn có thể tìm thấy thuộc tính android:launchMode.
1. Trường hợp Activity đích sử dụng chế độ singleTask
Trong trường hợp này, Activity đích có thể hoạt động ở chế độ singleTask, làm theo hướng dẫn ở đây. Gọi hàm AdBrixRm.deeplinkEvent trong onNewIntent(). Chú ý, gọi hàm onNewIntent trong onCreate() để SDK ghi log sự kiện ngay cả khi DeeplinkOpenedActivity được khởi tạo lần đầu.
Mỗi khi Activity của ứng dụng được mở bởi phương thức deep linking, chúng ta cần gọi hàm setIntent để ứng dụng cập nhật intent với parameters mới.
public class DeeplinkOpenedActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); onNewIntent(DeeplinkOpenedActivity.this.getIntent()); } @Override protected void onNewIntent(Intent intent) { super.onNewIntent(intent); // Do something with Deeplink Intent Data setIntent(intent); AdBrixRm.deeplinkEvent(DeeplinkOpenedActivity.this); } }
[[인용:경고:보통]] * Toàn bộ hàm onNewIntent(), setIntent(), deeplinkEvent() phải được gọi theo đúng trình tự như trong ví dụ
Cài đặt android:scheme và android:host trong thẻ intent-filter của Activity đích. Mở file [AndroidManifest.xml > manifest > application], khai báo thông tin deep link:
<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>
Trong trường hợp marketer dùng Android App Link, [AndroidManifest.xml > manifest > application] cài đặt android:host với định dạng "your_appkey.adtouch.adbrix.io"
<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="https" android:host="your_appkey.adtouch.adbrix.io" /> </intent-filter>
[[인용:경고:보통]] Tham số your_appkey chính là App Key nhận được từ AdBrix Console.
2. Trường hợp Activity đích không sử dụng chế độ singleTask
Trong trường hợp này, vì lý do nào đó app không thể dùng chế độ android:launchMode="singleTask" cho Activity đích. Bạn sẽ cần sử dụng AbxDefaultDeeplinkActivity có sẵn trong AdBrix SDK cho mục đích phân tích sự kiện Deep Linking. Mở file AndroidManifest.xml, khai báo như code mẫu bên dưới. Thông tin android:scheme và android:host giống như trường hợp 1 trình bày ở trên.
Sau khi AbxDefaultDeeplinkActivity nhận parameters từ deep link, SDK sẽ redirect người dùng tới Activity đích trong app. Thông tin Activity đích cần được khai báo trong android:value của thẻ meta-data.
<activity
android:name="com.igaworks.v2.core.application.AbxDefaultDeeplinkActivity"
android:label="@string/app_name"
android:launchMode="singleTask"
android:theme="@android:style/Theme.Translucent.NoTitleBar.Fullscreen"
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" />
<!--Nhập thông tin scheme và host. Có thể định nghĩa nhiều scheme đồng thời ví dụ adbrix://, https:// -->
<data android:scheme="your_scheme" android:host="your_host" />
</intent-filter>
<!-- AbxDefaultDeeplinkActivity sẽ redirect người dùng tới path đích được định nghĩa trong android:value -->
<meta-data android:name="AbxRedirectActivity" android:value="com.your_company.app"/>
</activity>
Cài đặt logic nhận Deferred Deep Link
Deferred Deep Linking là trường hợp đặc biệt, redirect người dùng tới một Activity cụ thể theo phương thức deep linking tại thời điểm lần đầu tiên người dùng mở app. Chú ý, tính năng này giúp cải thiện trải nghiệm người dùng của app, chứ không ảnh hưởng tới báo cáo analytics trên AdBrix Console. Tính năng này hữu ích nếu ứng dụng cần nhận Deferred Deep Link để đưa người dùng tới màn hình promotion hay màn hình sản phẩm cụ thể người dùng đã xem trước đó khi mở app lần đầu.
Cách hoạt động như sau: Ban đầu, khi người dùng bấm vào banner trong promotion campaign, kích hoạt tracking link ( dạng download + deep link), do app chưa được cài nên người dùng được redirect tới app store. Sau khi cài app, AdBrix xác định người dùng cài app do đã click vào tracking link có sử dụng deep link từ trước. SDK sẽ trả về Deferred Deep Link cho app thông qua AdBrixRM.DeferredDeeplinkListener.
Tùy theo ứng dụng sử dụng custom Application class hay không, theo dõi hướng dẫn tích hợp bên dưới để cấu hình AdBrixRM.DeferredDeeplinkListener
1. Trường hợp sử dụng Custom Application Class
public class MyApplication extends Application implements AdBrixRM.DeferredDeeplinkListener { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); AbxActivityHelper.initializeSdk(MyApplication.this,"your_appKey","your_secretKey"); AdBrixRm.setDeferredDeeplinkListener(this); } @Override public void onReceiveDeferredDeeplink(String urlStr) { // AdbrixRm SDk returns deferred deeplink url as string. 'myscheme://host?key=value' // Use this string value and send your user to certain activity. Log.d("Deferred Deeplink : ", urlStr); } }
2. Trường hợp sử dụng AbxApplication
Cài đặt AdBrixRM.DeferredDeeplinkListener vào Main Activity (màn hình thông thường người dùng sẽ xem khi dùng app). Sau khi Main Activity nhận được Deferred Deep Link, người dùng sẽ được redirect tới Activity đích được cài đặt.
public class MainActivity extends Activity implements AdBrixRM.DeferredDeeplinkListener { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // To get deferred deeplink url, set this listener. AdBrixRm.setDeferredDeeplinkListener(this); } @Override public void onReceiveDeferredDeeplink(String urlStr) { // Adbrix SDK returns deferred deeplink url. 'myscheme://host?key=value' // You can open specific activity, change view or do whatever you want with this 'urlStr' value. Log.d("Deferred Deeplink url : ", urlStr); } }
[[인용:경고:보통]] Listener không được gọi!!!
Nếu không thấy DeferredDeeplinkListener được gọi, hãy kiểm tra:
1. Người dùng có được chuyển đổi từ tracking link hay không. (install attribution check)
2. Tracking link có hỗ trợ deep link hay không.
[[인용:경고:보통]] App mở 2 lần!!!
Trường hợp này có thể xảy ra khi người dùng thông qua tracking link (sử dụng deeplink) và cài ứng dụng trên Google Play Store, sau đó bấm nút CONTINUE trên Google Play Store để tiếp tục thay vì mở app từ icon ở màn hình Home. Khi đó người dùng được đưa trên Activity đích theo deep link được cài đặt qua tracking link theo tính năng Deferred Deep Link được hỗ trợ trên Google Play Store.
Để tránh việc mở Activity đích 2 lần, một lần từ phương thức Deferred Deep linking của Play Store và một lần từ DeferredDeeplinkListener, ứng dụng nên có logic để phòng việc này.
Phân tích in-app event
Adbrix có thể phân tích in-app event xảy là trong app và gửi event postback lại cho media để tối ưu hóa chiến dịch quảng cáo. Để thực hiện việc phân tích in-app event, sử dụng các hàm ghi log dữ liệu dưới đây. Ví dụ chỉ mang tính chất minh họa, tùy vào nhu cầu phân tích, bạn có thể ghi log sự kiện linh hoạt.
Adbrix hỗ trợ 5 nhóm event như sau:
- User Analysis
- Login / Logout Event
- User information
- Location information
- Custom Analysis
- General Analysis
- Registration/Signup
- App update
- User invitation
- Credit Usage
- Purchase
- Commerce Event 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 Analytics
Login / Logout Event
Phân tích sự kiện người dùng login/logout.
void loginAndLogoutEvent() { if(isLogin){ // Khi người dùng login thành công, "user_1234" là id của người dùng được ghi lại AdBrixRm.login("user_1234"); }else{ AdBrixRm.logout(); } }
* Để đảm bảo tính bảo mật thông tin cá nhân, user_id ( ví dụ: phone number, email) nên được mã hóa (BASE64, MD5, SHA1, v.v)
User Properties
Phân tích thông tin liên quan tới người dùng như tuổi, giới tính, tình trạng kết hôn v.v
void userPropertyUpdate() {
// Age
AdBrixRm.setAge(30);
// Gender
AdBrixRm.setGender(AdBrixRm.AbxGender.MALE);
// Other user properties
AdBrixRm.UserProperties userProperties = new AdBrixRm.UserProperties();
userProperties.setAttrs("user_nick", "yen-igaw")
.setAttrs("place","Viet Nam")
.setAttrs("height",170)
.setAttrs("married",false);
AdBrixRm.saveUserProperties(userProperties);
}
[[인용:위험:보통]] Chú ý khi thiết lập UserProperty và AttrModel
1. Attribute có dạng Key/Value. SDK sẽ không xử lý số attribute nhiều hơn 100.
2. Key có kiểu dữ liệu string, không quá 256 kí tự. Key chỉ chứa kí tự trong bảng chữ cái tiếng Anh, viết thường , chữ số. (Không hỗ trợ chữ viết hoa và kí tự đặc biệt ngoại trừ gạch ngang: - và gạch dưới: _)
3. Giá trị của Value không được quá 1024 byte.
Location Data
Nếu app cần phân tích thông tin vị trí người dùng, bạn cần activate tính năng này.
void locationUpdate() { // cho phép SDK thu thập thông tin định vị tự động AdBrixRm.setEnableLocationListening(true); }
* Để SDK thu thập thông tin định vị, cần thiết lập permissionandroid.permission.ACCESS_COARSE_LOCATION
trong file [AndroidManifest > manifest].
Custom Event
In-app event là những sự kiện xảy ra trong app, chúng ta cần ghi log những sự kiện quan trọng trong app để sử dụng cho mục đích phân tích tối ưu app. Trước khi triển khai code, bạn cần lên kế hoạch event gì cần được ghi lại, hiểu được mục tiêu của việc ghi log là gì. Sử dụng hàm AdBrixRm.event để đưa event lên AdBrix server.
Chú ý: Trong mục này, chúng ta đề cập tới các sự kiện đặc trưng cho app của bạn, sử dụng hàm ghi event tổng quát là AdBrixRm.event. Các event liên quan tới commerce được trình bày riêng ở mục khác. Các event thường gặp ở hầu hết các ứng dụng có những hàm riêng đã được định nghĩa sẵn trong AdBrix SDK cũng sẽ được trình bày bên dưới ở mục riêng.
Ví dụ một số in-app event như: "Button Click", "Character Creation", "Tutorial Complete", "Level Up". Mỗi event lại có những thuộc tính để mô tả đặc điểm của event đó, sử dụng AdBrixRm.AttrModel để lưu những giá trị này.
void userCustomEvent() {
// Addtional event parameters
AdBrixRm.AttrModel eventAttr = new AdBrixRm.AttrModel()
.setAttrs("address","New York")
.setAttrs("age", 27)
.setAttrs("firsttime",true);
// Click a button "Invite a friend"
AdBrixRm.event("invite_button_click", eventAttr);
// Complete "Character creation"
AdBrixRm.event("create_character_complete",eventAttr);
// Complete "Tutorial view"
AdBrixRm.event("tutorial_complete", eventAttr);
// Achieve "Level 10"
AdBrixRm.event("level_10", eventAttr);
}
[[인용:위험:보통]] AdBrix chỉ hỗ trợ tối đa 100 custom event.
※ Chú ý
Custom event cần được tổ chức hợp lý tiện cho việc phân tích. Ví dụ dưới đây cho thấy việc ghi log sự kiện thay đổi "Level" của người dùng trong app không hiệu quả. Cách ghi log như này không giúp cho việc phân tích, đồng thời rất khó để quản lý.
AdBrixRm.event("Level-301-Achieved-at-01:23:45.1234567");
AdBrix đánh custom event name theo index để phân tích và truy vấn dữ liệu. Thuộc tính của event giúp marketer theo dõi event ở những dimension khác nhau. Ví dụ dưới đây về việc viết lại sự kiện người dùng lên level mới trong game ở trên.
// Thuộc tính mô tả event được lưu trong AttrModel AdBrixRm.AttrModel eventAttr = new AdBrixRm.AttrModel() .setAttrs("level",37) .setAttrs("clear_time_mile", 39238); // Gọi custom event kèm theo thuộc tính đi kèm mô tả event đó AdBrixRm.event("level_clear", eventAttr);
Common/ General Event Analytics
AdBrixRm.event cung cấp hàm ghi custom event mà bạn có sử dụng linh hoạt. Bên cạnh đó, AdBrix cung cấp các hàm ghi những event thường gặp ở hầu hết các ứng dụng để tiện cho việc tích hợp và phân tích.
Trong mục này, chúng ta sẽ cùng xem các hàm liên quan tới sự kiện:
- Registration/ Sign Up
- App Update
- User Invitation
- Credit Usage
- Purchase
* Chú ý: Để theo dõi báo cáo về doanh thu theo kênh quảng cáo, bạn phải tích hợp sự kiện "Purchase"
Registration/ Sign Up
Ví dụ về việc phân tích sự kiện đăng kí hội viên sử dụng hàm AdBrixRm.Common.signUp.
Thông tin liên quan tới sự kiện được nhóm trong AdBrixRm.CommonProperties.SignUp class.
void userRegister() {
try {
// Registered user information
AdBrixRm.AttrModel commonAttr = new AdBrixRm.AttrModel()
.setAttrs("user_id", "user1234")
.setAttrs("gender", "male")
.setAttrs("age", 36)
.setAttrs("married", true);
AdBrixRm.CommonProperties.SignUp signupUserInfo = new AdBrixRm.CommonProperties.SignUp()
.setAttrModel(commonAttr);
//Call registration API
AdBrixRm.Common.signUp(AdBrixRm.CommonSignUpChannel.Google,signupUserInfo);
} catch (JSONException e) {
e.printStackTrace();
}
}
App Update
Phân tích event người dùng update ứng dụng sử dụng hàm AdBrixRm.Common.appUpdate.
Thông tin liên quan tới sự kiện được nhóm trong AdBrixRm.CommonProperties.AppUpdate class.
void appUpdate() {
try {
// App update information
AdBrixRm.AttrModel commonAttr = new AdBrixRm.AttrModel()
.setAttrs("update_content", "Fixed bug");
AdBrixRm.CommonProperties.AppUpdate updateInfo = new AdBrixRm.CommonProperties.AppUpdate()
.setPrevVersion("1.0.0a")
.setCurrVersion("1.0.1a")
.setAttrModel(commonAttr);
//Call app update API
AdBrixRm.Common.appUpdate(updateInfo);
} catch (JSONException e){
e.printStackTrace();
}
}
User Invitation
Phân tích sự kiện gửi invitation dùng hàm AdBrixRm.Common.invite.
Thông tin liên quan tới sự kiện được nhóm trong AdBrixRm.CommonProperties.Invite class
void userInvite() { try { // Thông tin người mời AdBrixRm.AttrModel commonAttr = new AdBrixRm.AttrModel() .setAttrs("user_id", "user1234") .setAttrs("gender", "male") .setAttrs("age", 36) .setAttrs("married", true); AdBrixRm.CommonProperties.Invite inviteInfo = new AdBrixRm.CommonProperties.Invite() .setAttrModel(commonAttr); //Gọi hàm ghi log AdBrixRm.Common.invite(AdBrixRM.CommonInviteChannel.Facebook,inviteInfo); } catch (JSONException e){ e.printStackTrace(); } }
Credit Usage
Gọi khi người dùng sử dụng credit trong app với hàm AdBrixRm.Common.useCredit.
Thông tin liên quan tới sự kiện được nhóm trong AdBrixRm.CommonProperties.UseCredit class.
void usingCredit() { try { // Thông tin số tiền/credit sử dụng AdBrixRm.AttrModel commonAttr = new AdBrixRm.AttrModel() .setAttrs("user_id", "user1234") .setAttrs("gender", "male") .setAttrs("credit", 10000) .setAttrs("age", 36) .setAttrs("married", true); AdBrixRm.CommonProperties.UseCredit userCreditInfo = new AdBrixRm.CommonProperties.UseCredit() .setAttrModel(commonAttr); // Ghi sự kiện sử dụng credit AdBrixRm.Common.useCredit(userCreditInfo); } catch (JSONException e){ e.printStackTrace(); } }
Purchase
Phân tích purchase event sử dụng hàm AdBrixRm.Common.purchase.
Thuộc tính của purchase event lưu trong AdBrixRm.CommonProperties.Purchase class (Wrapper class, vai trò giống như AttrModel của custom event).
Hàm AdBrixRm.Common.purchase có thể nhận tham số là danh sách sản phẩm hàng hóa mà kiểu dữ liệu là arrayList. Thông tin mỗi sản phẩm được nhóm trong AdBrixRm.CommerceProductModel class.
Ý nghĩa của tham số:
- order id : (yêu cầu bắt buộc) mã đơn hàng
- product id : (yêu cầu bắt buộc) mã sản phẩm
- product name : (yêu cầu bắt buộc) tên sản phẩm
- price : (yêu cầu bắt buộc) đơn giá
- quantity : (yêu cầu bắt buộc) số lượng đặt hàng
- discount : (thuộc tính không bắt buộc) số tiên giảm giá
- currency string : (thuộc tính không bắt buộc) đơn vị tiền tệ
- category : (thuộc tính không bắt buộc) hạng mục sản phẩm
- extra attr : (thuộc tính không bắt buộc) thuộc tính sản phẩm
- delivery charge : (thuộc tính không bắt buộc) phí vận chuyển
- payment method : (thuộc tính không bắt buộc) phương thức thanh toán
Để ghi lại thuộc tính của nhóm sản phẩm, sử dụng AdBrixRm.CommerceCategoriesModel class
void purchaseEvent() { try { // Nhóm của sản phẩm AdBrixRm.CommerceCategoriesModel productCategory = new AdBrixRm.CommerceCategoriesModel() .setCategory("Category 1") .setCategory("Category 2") .setCategory("Category 3") .setCategory("Category 4") .setCategory("Category 5"); // Thuộc tính của sản phẩm 1 AdBrixRm.AttrModel productAttr1 = new AdBrixRm.AttrModel() .setAttrs("size", 25) .setAttrs("color", "blue") .setAttrs("vip", false);
// Thuộc tính của sản phẩm 2 AdBrixRm.AttrModel productAttr2 = new AdBrixRm.AttrModel() .setAttrs("size", 33) .setAttrs("color", "black") .setAttrs("vip", true); // Thuộc tính bổ sung của sự kiện Purchase 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); // Thông tin sản phẩm thứ 1 AdBrixRm.CommerceProductModel productModel_1 = new AdBrixRm.CommerceProductModel().setProductID("5385487400") .setProductName("슬랙스 10종 특가") .setPrice(10000.00) .setQuantity(1) .setDiscount(1000.00) .setCurrency(AdBrixRm.Currency.KR_KRW) .setCategory(productCategory) .setAttrModel(productAttr1); // Thông tin sản phẩm thứ 2 AdBrixRm.CommerceProductModel productModel_2 = new AdBrixRm.CommerceProductModel().setProductID("145099811") .setProductName("[이월특가] 나염 맨투맨") .setPrice(15500.00) .setQuantity(1) .setDiscount(1200.00) .setCurrency(AdBrixRm.Currency.KR_KRW) .setCategory(productCategory) .setAttrModel(productAttr2); // Tạo danh sách ArrayList các sản phẩm người dùng mua ArrayList productModelArrayList = new ArrayList<>(); productModelArrayList.add(productModel_1); productModelArrayList.add(productModel_2); // Event thanh toán hoàn tất AdBrixRm.Common.purchase("290192012", productModelArrayList, 0.00, 3500.00, AdBrixRm.CommercePaymentMethod.MobilePayment,purchaseat); } catch (JSONException e) { e.printStackTrace(); } }
Commerce Event Analytics
Phân tích các sự kiện liên quan tới mua bán sản phẩm như xem chi tiết sản phẩm, bỏ vào giỏ hàng v.v
AdBrix cung cấp những hàm sau đây:
- Home/ Main page view
- Category page/ event page view
- Product detail view
- Add to cart
- Add to wishlist
- View an order
- Cancel an order
- Search a product
- View product list
- Share the product
- View cart
- Fill in payment information
Home/ Main Page View
void viewHomeEvent(){ // Ghi lại sự kiện người dùng truy cập Home Page AdBrixRm.Commerce.viewHome(); }
Category / Event Page View
Phân tích sự kiện người dùng vào trang Category/ Event Page dùng hàm AdBrixRm.Commerce.categoryView.
Thông tin liên quan tới sản phẩm thể hiện trong AdBrixRm.CommerceProductModel class.
- product id : (yêu cầu bắt buộc) mã sản phẩm
- product name : (yêu cầu bắt buộc) tên sản phẩm
- price : (yêu cầu bắt buộc) đơn giá
- quantity : (yêu cầu bắt buộc) số lượng sản phẩm
- discount : (thuộc tính không bắt buộc) tiền giảm giá
- currency string : (thuộc tính không bắt buộc) đơn vị tiền tệ
- category : (thuộc tính không bắt buộc) hạng mục sản phẩm
- extra attr : (thuộc tính không bắt buộc) thuộc tính sản phẩm
void viewCategoryEvent(){
// product category
AdBrixRm.CommerceCategoriesModel productCategory = new AdBrixRm.CommerceCategoriesModel()
.setCategory("category1")
.setCategory("category2")
.setCategory("category3")
.setCategory("category4")
.setCategory("category5");
//Additional product info
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 info
AdBrixRm.AttrModel commmerceAttr = new AdBrixRm.AttrModel()
.setAttrs("grade", "vip")
.setAttrs("howmany_buy", 36)
.setAttrs("discount", true);
// product model
AdBrixRm.CommerceProductModel productModel_1 =
new AdBrixRm.CommerceProductModel().setProductID("5385487400")
.setProductName("productName1")
.setPrice(10000.00)
.setQuantity(1)
.setDiscount(1000.00)
.setCurrency(AdBrixRm.Currency.KR_KRW)
.setCategory(productCategory)
.setAttrModel(productAttr1);
// product model
AdBrixRm.CommerceProductModel productModel_2 =
new AdBrixRm.CommerceProductModel().setProductID("145099811")
.setProductName("productName2")
.setPrice(15500.00)
.setQuantity(1)
.setDiscount(1200.00)
.setCurrency(AdBrixRm.Currency.KR_KRW)
.setCategory(productCategory)
.setAttrModel(productAttr2);
// product ArrayList
ArrayList productModelArrayList = new ArrayList<>();
productModelArrayList.add(productModel_1);
productModelArrayList.add(productModel_2);
// Analyze category view events
AdBrixRm.Commerce.categoryView(productCategory, productModelArrayList, commmerceAttr);
}
Product Detail View
Phân tích sự kiện người dùng xem chi tiết một sản phẩm dùng hàm AdBrixRm.Commerce.productView.
Thông tin liên quan tới sản phẩm thể hiện trong AdBrixRm.CommerceProductModel class.
- product id :(yêu cầu bắt buộc) mã sản phẩm
- product name : (yêu cầu bắt buộc) tên sản phẩm
- price : (yêu cầu bắt buộc) đơn giá
- quantity : (yêu cầu bắt buộc) số lượng sản phẩm
- discount : (thuộc tính không bắt buộc) số tiên giảm giá
- currency string : (thuộc tính không bắt buộc) đơn vị tiền tệ
- category : (thuộc tính không bắt buộc) hạng mục sản phẩm
- extra attr : (thuộc tính không bắt buộc) thuộc tính sản phẩm
void viewProductDetailEvent(){
try {
// product category
AdBrixRm.CommerceCategoriesModel productCategory = new AdBrixRm.CommerceCategoriesModel()
.setCategory("category1")
.setCategory("category2")
.setCategory("category3")
.setCategory("category4")
.setCategory("category5");
//Additional product info
AdBrixRm.AttrModel productAttr1 = new AdBrixRm.AttrModel()
.setAttrs("size", 25)
.setAttrs("color", "blue")
.setAttrs("vip", false);
// Additional event info
AdBrixRm.AttrModel commmerceAttr = new AdBrixRm.AttrModel()
.setAttrs("grade", "vip")
.setAttrs("howmany_buy", 36)
.setAttrs("discount", true);
// product model
AdBrixRm.CommerceProductModel productModel_1 =
new AdBrixRm.CommerceProductModel().setProductID("5385487400")
.setProductName("productName1")
.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();;
}
}
Add to Cart
Phân tích sự kiện đưa danh sách sản phẩm vào giỏ hàng dùng hàm AdBrixRm.Commerce.addToCart.
Thông tin liên quan tới sản phẩm thể hiện trong AdBrixRm.CommerceProductModel class.
- product id : (yêu cầu bắt buộc) mã sản phẩm
- product name : (yêu cầu bắt buộc) tên sản phẩm
- price : (yêu cầu bắt buộc) đơn giá
- quantity : (yêu cầu bắt buộc) số lượng đặt hàng
- discount : (thuộc tính không bắt buộc) số tiên giảm giá
- currency string : (thuộc tính không bắt buộc) đơn vị tiền tệ
- category : (thuộc tính không bắt buộc) hạng mục sản phẩm
- extra attr : (thuộc tính không bắt buộc) thuộc tính sản phẩm
void addToCartEvent(){
try {
// product category
AdBrixRm.CommerceCategoriesModel productCategory = new AdBrixRm.CommerceCategoriesModel()
.setCategory("category1")
.setCategory("category2")
.setCategory("category3")
.setCategory("category4")
.setCategory("category5");
//Additional product info
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 info
AdBrixRm.AttrModel commmerceAttr = new AdBrixRm.AttrModel()
.setAttrs("grade", "vip")
.setAttrs("howmany_buy", 36)
.setAttrs("discount", true);
// product model
AdBrixRm.CommerceProductModel productModel_1 =
new AdBrixRm.CommerceProductModel().setProductID("5385487400")
.setProductName("productName1")
.setPrice(10000.00)
.setQuantity(1)
.setDiscount(1000.00)
.setCurrency(AdBrixRm.Currency.KR_KRW)
.setCategory(productCategory)
.setAttrModel(productAttr1);
// product model
AdBrixRm.CommerceProductModel productModel_2 =
new AdBrixRm.CommerceProductModel().setProductID("145099811")
.setProductName("productName2")
.setPrice(15500.00)
.setQuantity(1)
.setDiscount(1200.00)
.setCurrency(AdBrixRm.Currency.KR_KRW)
.setCategory(productCategory)
.setAttrModel(productAttr2);
// product ArrayList
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();
}
}
Add to Wishlist
Phân tích sự kiện đưa một sản phẩm vào wishList dùng hàm AdBrixRm.Commerce.addToWishList.
Thông tin liên quan tới sản phẩm thể hiện trong AdBrixRm.CommerceProductModel class.
void addToWishListEvent(){
try {
// product category
AdBrixRm.CommerceCategoriesModel productCategory = new AdBrixRm.CommerceCategoriesModel()
.setCategory("category1")
.setCategory("category2")
.setCategory("category3")
.setCategory("category4")
.setCategory("category5");
//Additional product info
AdBrixRm.AttrModel productAttr1 = new AdBrixRm.AttrModel()
.setAttrs("size", 25)
.setAttrs("color", "blue")
.setAttrs("vip", false);
// Additional event info
AdBrixRm.AttrModel commmerceAttr = new AdBrixRm.AttrModel()
.setAttrs("grade", "vip")
.setAttrs("howmany_buy", 36)
.setAttrs("discount", true);
// product model
AdBrixRm.CommerceProductModel productModel_1 =
new AdBrixRm.CommerceProductModel().setProductID("5385487400")
.setProductName("productName1")
.setPrice(10000.00)
.setQuantity(1)
.setDiscount(1000.00)
.setCurrency(AdBrixRm.Currency.KR_KRW)
.setCategory(productCategory)
.setAttrModel(productAttr1);
// Analyze add-to-wishlist event
AdBrixRm.Commerce.addToWishList(productModel_1,commmerceAttr);
}catch (JSONException e){
e.printStackTrace();
}
}
View an Order
Sự kiện người dùng kiểm tra lại đơn hàng trước sự kiện đặt mua dùng hàm AdBrixRm.Commerce.reviewOrder.
Thông tin đặt hàng và sản phẩm bao gồm:
- order id : (yêu cầu bắt buộc) mã đơn hàng
- product id : (yêu cầu bắt buộc) mã sản phẩm
- product name : (yêu cầu bắt buộc) tên sản phẩm
- price : (yêu cầu bắt buộc) đơn giá
- quantity : (yêu cầu bắt buộc) số lượng đặt hàng
- discount : (thuộc tính không bắt buộc) số tiên giảm giá
- currency string : (thuộc tính không bắt buộc) đơn vị tiền tệ
- category : (thuộc tính không bắt buộc) hạng mục sản phẩm
- extra attr : (thuộc tính không bắt buộc) thuộc tính sản phẩm
- delivery charge : (thuộc tính không bắt buộc) phí vận chuyển
void reviewOrderEvent(){
try {
// product category
AdBrixRm.CommerceCategoriesModel productCategory = new AdBrixRm.CommerceCategoriesModel()
.setCategory("category1")
.setCategory("category2")
.setCategory("category3")
.setCategory("category4")
.setCategory("category5");
//Additional product info
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 info
AdBrixRm.AttrModel commmerceAttr = new AdBrixRm.AttrModel()
.setAttrs("grade", "vip")
.setAttrs("howmany_buy", 36)
.setAttrs("discount", true);
// product model
AdBrixRm.CommerceProductModel productModel_1 =
new AdBrixRm.CommerceProductModel().setProductID("5385487400")
.setProductName("productName1")
.setPrice(10000.00)
.setQuantity(1)
.setDiscount(1000.00)
.setCurrency(AdBrixRm.Currency.KR_KRW)
.setCategory(productCategory)
.setAttrModel(productAttr1);
// product model
AdBrixRm.CommerceProductModel productModel_2 =
new AdBrixRm.CommerceProductModel().setProductID("145099811")
.setProductName("productName2")
.setPrice(15500.00)
.setQuantity(1)
.setDiscount(1200.00)
.setCurrency(AdBrixRm.Currency.KR_KRW)
.setCategory(productCategory)
.setAttrModel(productAttr2);
// product ArrayList
ArrayList productModelArrayList = new ArrayList<>();
productModelArrayList.add(productModel_1);
productModelArrayList.add(productModel_2);
// Analyze view-an-order event
AdBrixRm.Commerce.reviewOrder("290192012", productModelArrayList, 0.00, 3500.00,commmerceAttr);
} catch (JSONException e) {
e.printStackTrace();
}
}
Cancel an Order / Refund
Sự kiện người dùng yêu cầu hủy đơn hàng hoặc hoàn tiền sử dụng hàm AdBrixRm.Commerce.refund.
Thông tin sản phẩm và đặt hàng gồm:
- order id : (yêu cầu bắt buộc) mã đơn hàng
- product id : (yêu cầu bắt buộc) mã sản phẩm
- product name : (yêu cầu bắt buộc) tên sản phẩm
- price : (yêu cầu bắt buộc) đơn giá
- quantity :(yêu cầu bắt buộc) số lượng đặt hàng
- discount : (thuộc tính không bắt buộc) số tiên giảm giá
- currency string : (thuộc tính không bắt buộc) đơn vị tiền tệ
- category : (thuộc tính không bắt buộc) hạng mục sản phẩm
- extra attr : (thuộc tính không bắt buộc) thuộc tính sản phẩm
- penalty charge : (thuộc tính không bắt buộc) tiền hủy đơn
void refundOrderEvent(){
try {
// product category
AdBrixRm.CommerceCategoriesModel productCategory = new AdBrixRm.CommerceCategoriesModel()
.setCategory("category1")
.setCategory("category2")
.setCategory("category3")
.setCategory("category4")
.setCategory("category5");
//Additional product info
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 info
AdBrixRm.AttrModel commmerceAttr = new AdBrixRm.AttrModel()
.setAttrs("grade", "vip")
.setAttrs("howmany_buy", 36)
.setAttrs("discount", true);
// product model
AdBrixRm.CommerceProductModel productModel_1 =
new AdBrixRm.CommerceProductModel().setProductID("5385487400")
.setProductName("productName1")
.setPrice(10000.00)
.setQuantity(1)
.setDiscount(1000.00)
.setCurrency(AdBrixRm.Currency.KR_KRW)
.setCategory(productCategory)
.setAttrModel(productAttr1);
// product model
AdBrixRm.CommerceProductModel productModel_2 =
new AdBrixRm.CommerceProductModel().setProductID("145099811")
.setProductName("productName2")
.setPrice(15500.00)
.setQuantity(1)
.setDiscount(1200.00)
.setCurrency(AdBrixRm.Currency.KR_KRW)
.setCategory(productCategory)
.setAttrModel(productAttr2);
// product ArrayList
ArrayList productModelArrayList = new ArrayList<>();
productModelArrayList.add(productModel_1);
productModelArrayList.add(productModel_2);
// Analyze order cancelation/ refund event
AdBrixRm.Commerce.refund("290192012", productModelArrayList, 0.00,commmerceAttr);
} catch (JSONException e) {
e.printStackTrace();
}
}
Search a Product
Phân tích sự kiện người dùng tìm kiếm sản phẩm dùng hàm AdBrixRm.Commerce.search
Thông tin sản phẩm và kết quả tìm kiếm gồm
- keyword : (yêu cầu bắt buộc) từ khóa tìm kiếm
- product id : (yêu cầu bắt buộc) mã sản phẩm
- product name : (yêu cầu bắt buộc) tên sản phẩm
- price : (yêu cầu bắt buộc) đơn giá
- quantity :(yêu cầu bắt buộc) số lượng đặt hàng
- discount : (thuộc tính không bắt buộc) số tiên giảm giá
- currency string : (thuộc tính không bắt buộc) đơn vị tiền tệ
- category : (thuộc tính không bắt buộc) hạng mục sản phẩm
void searchProductEvent(){
// product category
AdBrixRm.CommerceCategoriesModel productCategory = new AdBrixRm.CommerceCategoriesModel()
.setCategory("category1")
.setCategory("category2")
.setCategory("category3")
.setCategory("category4")
.setCategory("category5");
//Additional product info
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 info
AdBrixRm.AttrModel commmerceAttr = new AdBrixRm.AttrModel()
.setAttrs("grade", "vip")
.setAttrs("howmany_buy", 36)
.setAttrs("discount", true);
// product model
AdBrixRm.CommerceProductModel productModel_1 =
new AdBrixRm.CommerceProductModel().setProductID("5385487400")
.setProductName("productName1")
.setPrice(10000.00)
.setQuantity(1)
.setDiscount(1000.00)
.setCurrency(AdBrixRm.Currency.KR_KRW)
.setCategory(productCategory)
.setAttrModel(productAttr1);
// product model
AdBrixRm.CommerceProductModel productModel_2 =
new AdBrixRm.CommerceProductModel().setProductID("145099811")
.setProductName("productName2")
.setPrice(15500.00)
.setQuantity(1)
.setDiscount(1200.00)
.setCurrency(AdBrixRm.Currency.KR_KRW)
.setCategory(productCategory)
.setAttrModel(productAttr2);
// product ArrayList
ArrayList productModelArrayList = new ArrayList<>();
productModelArrayList.add(productModel_1);
productModelArrayList.add(productModel_2);
// Analyze product-search event
AdBrixRm.Commerce.search("your_search_word", productModelArrayList,commmerceAttr);
}
Share a Product
Phân tích sự kiện người dùng chia sẻ sản phẩm với hàm AdBrixRm.Commerce.share.
Thông tin sản phẩm được chia sẻ gồm
- product id : (yêu cầu bắt buộc) mã sản phẩm
- product name : (yêu cầu bắt buộc) tên sản phẩm
- price : (yêu cầu bắt buộc) đơn giá
- quantity :(yêu cầu bắt buộc) số lượng đặt hàng
- discount : (thuộc tính không bắt buộc) số tiên giảm giá
- currency string : (thuộc tính không bắt buộc) đơn vị tiền tệ
- category : (thuộc tính không bắt buộc) hạng mục sản phẩm
- extra attr : (thuộc tính không bắt buộc) thuộc tính sản phẩm
void shareProductEvent(){
// product category
AdBrixRm.CommerceCategoriesModel productCategory = new AdBrixRm.CommerceCategoriesModel()
.setCategory("category1")
.setCategory("category2")
.setCategory("category3")
.setCategory("category4")
.setCategory("category5");
//Additional product info
AdBrixRm.AttrModel productAttr1 = new AdBrixRm.AttrModel()
.setAttrs("size", 25)
.setAttrs("color", "blue")
.setAttrs("vip", false);
// Additional event info
AdBrixRm.AttrModel commmerceAttr = new AdBrixRm.AttrModel()
.setAttrs("grade", "vip")
.setAttrs("howmany_buy", 36)
.setAttrs("discount", true);
// product model
AdBrixRm.CommerceProductModel productModel_1 =
new AdBrixRm.CommerceProductModel().setProductID("5385487400")
.setProductName("productName1")
.setPrice(10000.00)
.setQuantity(1)
.setDiscount(1000.00)
.setCurrency(AdBrixRm.Currency.KR_KRW)
.setCategory(productCategory)
.setAttrModel(productAttr1);
// Analyze share-a-product event
AdBrixRm.Commerce.share(AdBrixRm.CommerceSharingChannel.KakaoTalk, productModel_1, commmerceAttr);
}
View a Product List
Phân tích sự kiện người dùng xem một danh sách sản phẩm với hàm AdBrixRm.Commerce.listView
void listViewProductsEvent(){ // 상품 카테고리 설정 AdBrixRm.CommerceCategoriesModel productCategory = new AdBrixRm.CommerceCategoriesModel() .setCategory("카테고리 1") .setCategory("카테고리 2") .setCategory("카테고리 3") .setCategory("카테고리 4") .setCategory("카테고리 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("슬랙스 10종 특가") .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("[이월특가] 나염 맨투맨") .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.listView(productModelArrayList,commmerceAttr); }
View a Cart
Sự kiện người dùng xem giỏ hàng với hàm AdBrixRm.Commerce.cartView
void cartViewProductsEvent(){
// product category
AdBrixRm.CommerceCategoriesModel productCategory = new AdBrixRm.CommerceCategoriesModel()
.setCategory("category1")
.setCategory("category2")
.setCategory("category3")
.setCategory("category4")
.setCategory("category5");
//Additional product info
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 info
AdBrixRm.AttrModel commmerceAttr = new AdBrixRm.AttrModel()
.setAttrs("grade", "vip")
.setAttrs("howmany_buy", 36)
.setAttrs("discount", true);
// product model
AdBrixRm.CommerceProductModel productModel_1 =
new AdBrixRm.CommerceProductModel().setProductID("5385487400")
.setProductName("productName1")
.setPrice(10000.00)
.setQuantity(1)
.setDiscount(1000.00)
.setCurrency(AdBrixRm.Currency.KR_KRW)
.setCategory(productCategory)
.setAttrModel(productAttr1);
// product model
AdBrixRm.CommerceProductModel productModel_2 =
new AdBrixRm.CommerceProductModel().setProductID("145099811")
.setProductName("productName2")
.setPrice(15500.00)
.setQuantity(1)
.setDiscount(1200.00)
.setCurrency(AdBrixRm.Currency.KR_KRW)
.setCategory(productCategory)
.setAttrModel(productAttr2);
// product ArrayList
ArrayList productModelArrayList = new ArrayList<>();
productModelArrayList.add(productModel_1);
productModelArrayList.add(productModel_2);
//Analyze cart viewing event
AdBrixRm.Commerce.cartView(productModelArrayList,commmerceAttr);
}
Fill in Payment Information
Phân tích sự kiện người dùng nhập thông tin thanh toán dùng hàm AdBrixRm.Commerce.paymentInfoAdded
void paymentInfoAddedEvent(){
AdBrixRm.AttrModel commmerceAttr = new AdBrixRm.AttrModel()
.setAttrs("grade", "vip")
.setAttrs("howmany_buy", 36)
.setAttrs("card", "kbcard")
.setAttrs("discount", true);
//Event of filling in payment information
AdBrixRm.Commerce.paymentInfoAdded(commmerceAttr);
}
Gaming Event Analytics
Phân tích sự kiện xảy ra trong game
AdBrix cung cấp sẵn những hàm để ghi những sự kiện sau:
- Tutorial completion
- Character creation
- Stage cleared
- Level achieved
Tutorial Completion
Phân tích sự kiện người chơi hoàn thành Tutorial.
Sử dụng GameProperies.TutorialComplete class để lưu thông tin thuộc tính sự kiện hoàn thành Tutorial.
- setIsSkip : (yêu cầu bắt buộc) Giá trị boolean thể hiện việc bỏ qua(skip) màn tutorial
void tutorialCompleteEvent(){
AdBrixRm.AttrModel gameAttr = new AdBrixRm.AttrModel()
.setAttrs("grade", "vip")
.setAttrs("howmany_buy", 36)
.setAttrs("discount", true);
AdBrixRm.GameProperties.TutorialComplete gameProperties
= new AdBrixRm.GameProperties.TutorialComplete()
.setIsSkip(true)
.setAttrModel(gameAttr);
//Call tutorial completion event
AdBrixRm.Game.tutorialComplete(gameProperties);
}
Character Creation
Phân tích sự kiện tạo ra nhân vật trong game.
Sử dụng GameProperies.CharacterCreated class để nhóm thuộc tính của event này
void characterCreatedEvent(){
AdBrixRm.AttrModel gameAttr = new AdBrixRm.AttrModel()
.setAttrs("grade", "vip")
.setAttrs("howmany_buy", 36)
.setAttrs("discount", true);
AdBrixRm.GameProperties.CharacterCreated gameProperties
= new AdBrixRm.GameProperties.CharacterCreated()
.setAttrModel(gameAttr);
//Call character creation event
AdBrixRm.Game.characterCreated(gameProperties);
}
Stage Cleared
Phân tích sự kiện người chơi qua bàn.
Sử dụng GameProperies.StageCleared class để lưu thông tin thuộc tính sự kiện này.
- setStageName : (yêu cầu bắt buộc) Tên của bàn/ stage trong game
void stageClearedEvent(){ AdBrixRm.AttrModel gameAttr = new AdBrixRm.AttrModel() .setAttrs("grade", "vip") .setAttrs("howmany_buy", 36) .setAttrs("discount", true); AdBrixRm.GameProperties.StageCleared gameProperties = new AdBrixRm.GameProperties.StageCleared() .setStageName("1-1") .setAttrModel(gameAttr); //스테이지 완료 완료 이벤트 호출 AdBrixRm.Game.stageCleared(gameProperties); }
Level Achieved
Phân tích sự kiện người chơi lên level mới.
Sử dụng GameProperies.LevelAchieved class để lưu thuộc tính của event.
- setLevel : (yêu cầu bắt buộc) Cấp độ level (1~10000)
void levelAchievedEvent(){
AdBrixRm.AttrModel gameAttr = new AdBrixRm.AttrModel()
.setAttrs("grade", "vip")
.setAttrs("howmany_buy", 36)
.setAttrs("discount", true);
AdBrixRm.GameProperties.LevelAchieved gameProperties
= new AdBrixRm.GameProperties.LevelAchieved()
.setLevel(1)
.setAttrModel(gameAttr);
//Call level achieved event
AdBrixRm.Game.levelAchieved(gameProperties);
}
Bình luận
0 bình luận
Bài viết bị đóng bình luận.