Tích hợp bằng cách sử dụng các mô hình ngôn ngữ lớn (LLMs) (AI) – Sử dụng lời nhắc sau:
Thêm Tenjin SDK vào dự án của tôi bằng cách sử dụng: https://raw.githubusercontent.com/tenjin/sdk-llm-guides/main/guides/android/llm-guide.md
Bắt đầu sử dụng SDK Android #
Bộ công cụ phát triển phần mềm (SDK) Tenjin Android cho phép người dùng theo dõi các sự kiện và lượt cài đặt trong các ứng dụng Android của họ. Để tìm hiểu thêm về Tenjin và các sản phẩm của chúng tôi, vui lòng truy cập https://www.tenjin.com.
- Vui lòng tham khảo Ghi chú phát hành của chúng tôi để xem lịch sử các thay đổi chi tiết theo từng phiên bản.
- Chúng tôi khuyên bạn nên sử dụng phiên bản mới nhất của Android Studio.
- Để tích hợp với Unity, vui lòng truy cập https://github.com/tenjin/tenjin-unity-sdk.
- Nếu có bất kỳ vấn đề nào hoặc cần hỗ trợ, vui lòng liên hệ: support@tenjin.com.
Tích hợp cơ bản #
Cài đặt thủ công #
Vui lòng thực hiện theo các bước được liệt kê bên dưới trong phần ‘Android Studio’.’
Maven #
Nếu bạn sử dụng Maven, hãy thêm phần triển khai com.tenjin:android-sdk:VERSION vào các phụ thuộc Gradle của bạn và thêm mavenCentral() vào danh sách kho lưu trữ nguồn nếu nó chưa có sẵn.
Xưởng Android #
- Tải xuống SDK Android phiên bản mới nhất từ đây.
- Thêm Tenjin SDK vào dự án Android Studio của bạn. Truy cập Project Navigator trong Android Studio. Chọn tùy chọn
Projecttrong Project Navigator. Bạn sẽ tìm thấy thư mụclibstrong mô-đunappcủa dự án Android Studio. - Bạn cần thêm tệp
tenjin.jarhoặctenjin.aarvào thư mụclibs.
- Trong dự án Android Studio của bạn, tại mô-đun
app, hãy chọn tệpbuild.gradle, và thêm đoạn mã sau vào khối dependencies:
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar', '*.aar'])
implementation files('libs/tenjin.aar')
}> Chúng tôi có một dự án demo – [tenjin-android-sdk-demo][31] – minh họa cách tích hợp tenjin-android-sdk. Bạn có thể tham khảo dự án này để hiểu cách tích hợp tenjin-android-sdk.
Google Play hoặc cửa hàng Amazon #
Nếu bạn phân phối ứng dụng của mình trên Google Play Store hoặc Amazon store, hãy thực hiện các bước thiết lập ban đầu sau đây.
Quyền #
Tenjin SDK yêu cầu các quyền sau:
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <!-- Required to get network connectivity (i.e. wifi vs. mobile) -->Google Play Services yêu cầu tất cả các ứng dụng ở cấp API 32 (Android 13) sử dụng advertising_id (Android Advertising ID (AAID)) phải khai báo quyền AD_ID của Google Play Services (như được hiển thị bên dưới) trong tệp manifest của ứng dụng.
<uses-permission android:name="com.google.android.gms.permission.AD_ID"/>Mã nhận dạng quảng cáo Android (AAID) và Nguồn giới thiệu cài đặt #
Thêm ID quảng cáo Android (AAID) và Install Referrer, sau đó thêm chúng vào tệp build.gradle của bạn.
dependencies {
implementation 'com.google.android.gms:play-services-ads-identifier:{version}'
implementation 'com.android.installreferrer:installreferrer:{version}'
}Để có thể thu thập thông tin nguồn giới thiệu cài đặt của Meta, hãy thêm các truy vấn sau vào tệp Android Manifest của bạn:
<queries>
<package android:name="com.facebook.katana" />
</queries>
<queries>
<package android:name="com.instagram.android" />
</queries>Tiếp theo, hãy thêm giá trị này vào tệp strings.xml của bạn:
<string name="facebook_app_id" translatable="false">YOUR_META_APP_ID</string>App Store #
Theo mặc định, chưa được chỉ định là App Store mặc định. Hãy cập nhật giá trị App Store thành googleplay hoặc amazon, tùy thuộc vào ứng dụng của bạn.
AndroidManifest.xml:
<meta-data
android:name="TENJIN_APP_STORE"
android:value="googleplay" />setAppStore():
TenjinSDK instance = TenjinSDK.getInstance(this, " ");
instance.setAppStore(TenjinSDK.AppStoreType.googleplay);Các tùy chọn trên App Store #
TenjinSDK.AppStoreType.googleplay // Google Play App Store
TenjinSDK.AppStoreType.amazon // Amazon AppStore
TenjinSDK.AppStoreType.other // OtherKhởi tạo ứng dụng #
- Hãy lấy
SDK_KEYtừ trang ứng dụng của bạn. Lưu ý:SDK_KEYlà duy nhất cho mỗi ứng dụng của bạn. Bạn có thể tạo tối đa 3 khóa cho cùng một ứng dụng.

- Trong Activity của bạn, hãy nhập Tenjin:
import com.tenjin.android.TenjinSDK; - Trong phương thức
onResumecủa lớpActivitychính, hãy thêm dòng mã sau:
TenjinSDK instance = TenjinSDK.getInstance(this, " ");
instance.connect();LƯU Ý: Nếu ứng dụng của bạn có logic yêu cầu sự đồng ý của người dùng giữa onCreate và onResume, hãy sử dụng onCreate thay vì onResume để khởi tạo Tenjin SDK vì những người dùng không đồng ý sẽ không bị theo dõi trong onResume.
LƯU Ý: Vui lòng đảm bảo rằng bạn triển khai đoạn mã này trong mọi phương thức onResume, chứ không chỉ khi ứng dụng được mở lần đầu tiên.
Các cửa hàng Android khác #
Nếu bạn phân phối ứng dụng của mình ngoài Google Play Store hoặc cửa hàng Amazon (cửa hàng Android khác), hãy thực hiện các bước thiết lập ban đầu sau đây.
Quyền #
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <!-- Required to get network connectivity (i.e. wifi vs. mobile) -->Google Play Services yêu cầu tất cả các ứng dụng ở cấp API 32 (Android 13) sử dụng advertising_id (Android Advertising ID (AAID)) phải khai báo quyền AD_ID của Google Play Services (như được hiển thị bên dưới) trong tệp manifest của ứng dụng.
<uses-permission android:name="com.google.android.gms.permission.AD_ID"/>Mã nhận dạng quảng cáo Android (AAID) và Nguồn giới thiệu cài đặt #
Thêm ID quảng cáo Android (AAID) và Install Referrer, sau đó thêm chúng vào tệp build.gradle của bạn.
dependencies {
implementation 'com.google.android.gms:play-services-ads-identifier:{version}'
implementation 'com.android.installreferrer:installreferrer:{version}'
}Nếu bạn đang sử dụng một Mạng quảng cáo nhắm mục tiêu vào IMEI, bạn sẽ cần kích hoạt các quyền sau đây. (Nếu bạn đang phân phối ứng dụng của mình trên Google Play, vui lòng KHÔNG thêm quyền này.)
<uses-permission android:name="android.permission.READ_PHONE_STATE" />OAID #
Tenjin hỗ trợ việc quảng bá ứng dụng của bạn trên các cửa hàng ứng dụng Android khác thông qua mã OAID của Android. Chúng tôi có các yêu cầu sau đây đối với việc tích hợp các thư viện OAID.
MSA OAID #
MSA OAID là mã nhận dạng quảng cáo dành cho các thiết bị được sản xuất tại Trung Quốc do MSA (Mobile Security Alliance) cung cấp. Để tích hợp với thư viện MSA, hãy tải xuống các tệp sau: oaid\_sdk\_1.0.25.aar và supplierconfig.json.
Hãy thêm đoạn mã sau vào tệp Gradle của dự án:
implementation files('libs/oaid_sdk_1.0.25.aar')Hãy nhớ sao chép tệp supplierconfig.json vào thư mục assets của dự án của bạn.
Huawei OAID #
Đối với các khu vực bên ngoài Trung Quốc, bạn có thể thu thập OAID bằng cách sử dụng thư viện do Huawei cung cấp. Để tích hợp với thư viện OAID của Huawei, hãy thêm đoạn mã sau vào dự án của bạn:
Trong tệp build.gradle của bạn, hãy thêm địa chỉ Maven cho các bộ SDK của Huawei:
allprojects {
repositories {
google()
maven { url 'https://developer.huawei.com/repo/' }
}
}dependencies {
implementation 'com.huawei.hms:ads-identifier:{version}'
}Trang giới thiệu cài đặt Huawei #
Nếu bạn đang quảng bá ứng dụng của mình thông qua Huawei App Gallery, hãy thêm cả Huawei OAID SDK ở trên và Install Referrer.
dependencies {
implementation 'com.huawei.hms:ads-identifier:{version}'
implementation 'com.huawei.hms:ads-installreferrer:{version}'
}
App Store #
Theo mặc định, không xác định là App Store mặc định. Hãy cập nhật giá trị của App Store thành khác.
AndroidManifest.xml:
<meta-data
android:name="TENJIN_APP_STORE"
android:value="other" />setAppStore():
TenjinSDK instance = TenjinSDK.getInstance(this, " ");
instance.setAppStore(TenjinSDK.AppStoreType.other);Khởi tạo ứng dụng #
- Hãy lấy
SDK_KEYtừ trang ứng dụng của bạn. Lưu ý:SDK_KEYlà duy nhất cho mỗi ứng dụng của bạn. Bạn có thể tạo tối đa 3 khóa cho cùng một ứng dụng.

- Trong Activity của bạn, hãy nhập Tenjin:
import com.tenjin.android.TenjinSDK; - Trong phương thức
onResumecủa lớpActivitychính, hãy thêm dòng mã sau:
TenjinSDK instance = TenjinSDK.getInstance(this, " ");
instance.connect();LƯU Ý: Vui lòng đảm bảo rằng bạn triển khai đoạn mã này trên mọi , không chỉ khi mở ứng dụng lần đầu tiên. Nếu chúng tôi phát hiện bạn không tuân thủ khuyến nghị của chúng tôi, chúng tôi sẽ không thể cung cấp hỗ trợ thích hợp cho bạn hoặc tài khoản của bạn có thể bị tạm ngưng.onResume
Cài đặt Proguard #
-keep class com.tenjin.** { *; }
-keep public class com.google.android.gms.ads.identifier.** { *; }
-keep public class com.google.android.gms.common.** { *; }
-keep public class com.android.installreferrer.** { *; }
-keep class * extends java.util.ListResourceBundle {
protected java.lang.Object[][] getContents();
}
# Keep the signatures that Gson/TypeToken rely on
-keepattributes Signature
-keepattributes *Annotation*
# General Gson/TypeToken protection
-keep class com.google.gson.reflect.TypeToken { *; }
-keep class * extends com.google.gson.reflect.TypeTokenKhông được làm mờ mã các lớp oaid:
-keep class XI.CA.XI.**{*;}
-keep class XI.K0.XI.**{*;}
-keep class XI.XI.K0.**{*;}
-keep class XI.xo.XI.XI.**{*;}
-keep class com.asus.msa.SupplementaryDID.**{*;}
-keep class com.asus.msa.sdid.**{*;}
-keep class com.bun.lib.**{*;}
-keep class com.bun.miitmdid.**{*;}
-keep class com.huawei.hms.ads.identifier.**{*;}
-keep class com.samsung.android.deviceidservice.**{*;}
-keep class com.zui.opendeviceidlibrary.**{*;}
-keep class org.json.**{*;}
-keep public class com.netease.nis.sdkwrapper.Utils {public <methods>;}Nếu bạn đang sử dụng các thư viện của Huawei, bạn có thể sử dụng các cài đặt sau:
-keep class com.huawei.hms.ads.** { *; }
-keep interface com.huawei.hms.ads.** { *; }Tích hợp bổ sung #
GDPR #
Quy định chung về bảo vệ dữ liệu (EU) (GDPR) là một quy định trong hệ thống pháp luật của Liên minh Châu Âu (EU) về bảo vệ dữ liệu và quyền riêng tư tại Liên minh Châu Âu (EU) và Khu vực Kinh tế Châu Âu (EEA).
Bạn cần xin sự đồng ý của người dùng về việc họ có cho phép theo dõi hay không ngay khi ứng dụng được mở lần đầu tiên, sau đó ghi kết quả vào checkOptInValue() . Sau đó, bạn có thể thực hiện tích hợp như dưới đây. Nếu ứng dụng của bạn không cần tuân thủ GDPR, vui lòng bỏ qua toàn bộ phần này.
Trong khuôn khổ việc tuân thủ GDPR, với SDK của Tenjin, bạn có thể cho phép hoặc từ chối thu thập dữ liệu từ các thiết bị/người dùng, hoặc chọn các tham số cụ thể liên quan đến thiết bị để cho phép hoặc từ chối thu thập. optOut() sẽ không gửi bất kỳ yêu cầu API nào đến Tenjin, và chúng tôi sẽ không xử lý bất kỳ sự kiện nào.
Để đăng ký/hủy đăng ký:
import com.tenjin.android.TenjinSDK;
public class TenjinDemo extends ActionBarActivity {
@Override
public void onResume() {
//standard code
super.onResume()
//Integrate TenjinSDK connect call
String apiKey = " ";
TenjinSDK instance = TenjinSDK.getInstance(this, apiKey);
boolean userOptIn = checkOptInValue();
if (userOptIn) {
instance.optIn();
}
else {
instance.optOut();
}
instance.connect();
//Your other code...
//...
}
protected boolean checkOptInValue(){
// check opt-in value
// return true; // if user opted-in
return false;
}
}Để chọn tham gia hoặc từ chối các tham số cụ thể liên quan đến thiết bị, bạn có thể sử dụng optInParams() hoặc optOutParams().
optInParams()sẽ chỉ gửi các tham số liên quan đến thiết bị đã được chỉ định.optOutParams()sẽ gửi tất cả các tham số liên quan đến thiết bị, trừ những tham số được chỉ định.- Xin lưu ý rằng chúng tôi yêu cầu tham số sau đây để theo dõi thiết bị một cách chính xác trong hệ thống của Tenjin. Nếu thiếu tham số bắt buộc này, sự kiện sẽ không được xử lý hoặc ghi lại.
advertising_id
- Nếu bạn đang nhắm mục tiêu đến các mạng quảng cáo dựa trên IMEI và/hoặc OAID, các tham số sau đây là bắt buộc:
imeioaid
- Nếu bạn có ý định sử dụng Google AdWords, các tham số sau đây là bắt buộc:
platformos_versionapp_versionlocaledevice_modelbuild_idadvertising_id
Nếu bạn chỉ muốn lấy các tham số cụ thể liên quan đến thiết bị, hãy sử dụng optInParams(). Trong ví dụ dưới đây, chúng tôi sẽ chỉ lấy các tham số liên quan đến thiết bị sau: ip_address, advertising_id, limit_ad_tracking, và referrer.
String apiKey = " ";
TenjinSDK instance = TenjinSDK.getInstance(this, apiKey);
String[] optInParams = {"ip_address", "advertising_id", "limit_ad_tracking", "referrer"};
instance.optInParams(optInParams);
instance.connect();Nếu bạn muốn gửi TẤT CẢ các tham số ngoại trừ các tham số cụ thể liên quan đến thiết bị, hãy sử dụng optOutParams(). Trong ví dụ dưới đây, chúng ta sẽ gửi TẤT CẢ các tham số liên quan đến thiết bị ngoại trừ:
String apiKey = " ";
TenjinSDK instance = TenjinSDK.getInstance(this, apiKey);
String[] optOutParams = {"locale", "timezone", "build_id"};
instance.optOutParams(optOutParams);
instance.connect();Chọn tham gia/từ chối thông qua CMP #
Bạn có thể tự động chọn tham gia hoặc từ chối tham gia bằng cách sử dụng các quyền đồng ý CMP (mục đích 1) đã được lưu trữ sẵn trên thiết bị của người dùng. Phương thức này trả về một giá trị boolean để thông báo cho bạn biết người dùng đã chọn tham gia hay từ chối tham gia.
optInOutUsingCMP()
TenjinSDK instance = TenjinSDK.getInstance(this, " ");
optInOut = instance.optInOutUsingCMP(); Các thông số liên quan đến thiết bị #
| Tham số | Mô tả |
|---|---|
| địa chỉ IP | Địa chỉ IP |
| id_quảng_cáo | ID quảng cáo của thiết bị |
| giới hạn theo dõi quảng cáo | Đã bật tính năng giới hạn theo dõi quảng cáo |
| oaid | Mã nhận dạng quảng cáo mở |
| IMEI | Số IMEI của thiết bị |
| nền tảng | Nền tảng |
| nguồn giới thiệu | Nguồn giới thiệu cài đặt từ Google Play |
| os_version | phiên bản hệ điều hành |
| thiết bị | tên thiết bị |
| nhà sản xuất thiết bị | nhà sản xuất thiết bị |
| mẫu thiết bị | mẫu thiết bị |
| thương hiệu_thiết_bị | thương hiệu thiết bị |
| thiết bị_sản phẩm | sản phẩm thiết bị |
| nhà mạng | nhà mạng di động |
| loại kết nối | mạng di động hoặc Wi-Fi |
| chiều rộng màn hình | chiều rộng màn hình thiết bị |
| chiều cao màn hình | chiều cao màn hình thiết bị |
| os_version_release | phiên bản hệ điều hành |
| build_id | ID bản dựng |
| địa phương | cài đặt ngôn ngữ của thiết bị |
| quốc gia | vùng ngôn ngữ, quốc gia |
| múi giờ | múi giờ |
Các sự kiện mua sắm #
Để hiểu rõ hơn về doanh thu từ người dùng và hành vi mua hàng, các nhà phát triển có thể gửi các sự kiện giao dịch đến Tenjin. Tenjin sẽ xác thực các biên lai giao dịch cho bạn. Xin lưu ý rằng hiện tại chúng tôi chỉ hỗ trợ các giao dịch mua trong ứng dụng (IAP) từ Google Play.
QUAN TRỌNG: Bạn cần thêm khóa công khai của ứng dụng vào bảng điều khiển Tenjin (trong trang ‘chỉnh sửa’ của ứng dụng). Bạn có thể lấy khóa công khai RSA được mã hóa Base64 từ Google Play Developer Console \> Chọn ứng dụng của bạn > Kiếm tiền > Cài đặt kiếm tiền > Thanh toán Google Play > Cấp phép: Khóa công khai RSA được mã hóa Base64. Xin lưu ý rằng đối với Android, hiện tại chúng tôi chỉ hỗ trợ các giao dịch IAP từ Google Play.

Sau khi nhập Khóa công khai vào bảng điều khiển Tenjin của ứng dụng, bạn có thể sử dụng phương thức Tenjin SDK dưới đây:
public void transaction(String productId, String currencyCode, int quantity, double unitPrice, String purchaseData, String dataSignature)Ví dụ:
public void sendPurchaseEvent(Purchase purchase, Double price, String currencyCode) {
String sku = purchase.getSku();
String purchaseData = purchase.getOriginalJson();
String dataSignature = purchase.getSignature();
TenjinSDK instance = getTenjinInstance();
instance.transaction(sku, currencyCode, 1, price, purchaseData, dataSignature);
}Bạn có thể kiểm tra xem quá trình xác thực IAP có hoạt động bình thường hay không thông qua Công cụ kiểm tra dữ liệu thiết bị trực tiếp của chúng tôi. Bạn sẽ thấy một sự kiện trực tiếp xuất hiện:
Vui lòng đảm bảo đã ‘xác nhận’ sự kiện mua hàng trước khi gửi thông tin này đến Tenjin. Để biết thêm chi tiết, vui lòng đọc tại đây.
Hãy chọn mức hoa hồng doanh thu từ App Store là 0%, 15% hoặc 30% thông qua thiết lập mới của chúng tôi. Các bước thực hiện như sau –
- Chuyển đến CÀI ĐẶT –> Ứng dụng
- Nhấp vào ứng dụng mà bạn muốn thay đổi cài đặt
- Trong phần ‘Phí hoa hồng App Store’, hãy nhấp vào ‘Chỉnh sửa’
- Hãy chọn 30%, 15% hoặc 0% làm mức hoa hồng từ cửa hàng ứng dụng mà bạn mong muốn.
- Chọn ngày bắt đầu và ngày kết thúc (Hoặc bạn có thể để trống ô ngày kết thúc nếu không muốn chỉ định ngày kết thúc)
- Nhấp vào “Lưu” (lưu ý: mức hoa hồng chỉ có thể áp dụng cho các ngày trong tương lai, không áp dụng cho các ngày đã qua. Do đó, vui lòng đặt ngày bắt đầu từ ngày bạn thực hiện thay đổi trở đi)
Ứng dụng Amazon trên App Store
Quá trình xác thực biên lai trên AppStore của Amazon yêu cầu các tham số receiptId và userId.
QUAN TRỌNG: Bạn cần thêm Khóa chia sẻ của ứng dụng Amazon vào bảng điều khiển Tenjin. Khóa chia sẻ này có thể được tìm thấy trong phần "Shared Key" (Khóa chia sẻ) của tài khoản nhà phát triển liên kết với tài khoản Amazon Appstore
Sự kiện tùy chỉnh #
LƯU Ý: Sự kiện khởi tạo connect() phải được thực hiện trước khi gửi bất kỳ sự kiện tùy chỉnh nào.
QUAN TRỌNG: Hạn chế độ dài tên sự kiện tùy chỉnh dưới 80 ký tự. Không được vượt quá 500 tên sự kiện tùy chỉnh khác nhau.
Bạn có thể sử dụng Tenjin SDK để truyền một sự kiện tùy chỉnh: eventWithName(String name).
Các tương tác tùy chỉnh với ứng dụng của bạn có thể được liên kết với chi phí trên mỗi cấp độ từ từng nguồn thu hút người dùng mà bạn sử dụng thông qua dịch vụ của Tenjin. Dưới đây là một ví dụ về cách sử dụng:
String apiKey = <SDK_KEY>;
TenjinSDK instance = TenjinSDK.getInstance(this, apiKey);
//Integrate a custom event with a distinct name - ie. swiping right on the screen
instance.eventWithName("swipe_right");Sự kiện tùy chỉnh có giá trị #
Bạn có thể sử dụng Tenjin SDK để truyền một sự kiện tùy chỉnh có giá trị là số nguyên: eventWithNameAndValue(String name, int value).
Việc truyền một giá trị dạng số nguyên cùng với tên của sự kiện cho phép các nhà tiếp thị tổng hợp và theo dõi giá trị trung bình của các giá trị được truyền cho chỉ số đó trên bảng điều khiển Tenjin. Nếu bạn có kế hoạch sử dụng DataVault, các giá trị này có thể được dùng để tính toán các chỉ số bổ sung có thể hữu ích.
String sdkKey = <SDK_KEY>;
TenjinSDK.instance = TenjinSDK.getInstance(this, sdkKey);
//Integrate a custom event with a distinct name and value - ie. paying 100 virtual coins for an item
instance.eventWithNameAndValue("item", 100);Dựa trên ví dụ trên, bảng điều khiển Tenjin sẽ tính tổng và tính trung bình các giá trị cho tất cả các sự kiện có tên item.
Hãy lưu ý rằng sự kiện này sẽ không hoạt động nếu giá trị được truyền vào không phải là số nguyên.
//Integrate a custom event with a distinct name and value - ie. paying 100 virtual coins for an item
instance.eventWithNameAndValue("item", "1");Tích hợp giữa các máy chủ #
Tenjin cung cấp tích hợp giữa các máy chủ. Tính năng này cho phép bạn gửi các sự kiện cài đặt và sau khi cài đặt trực tiếp từ máy chủ của bạn đến máy chủ của Tenjin mà không cần tích hợp SDK.
Tham số Subversion của ứng dụng dành cho thử nghiệm A/B (yêu cầu DataVault) #
Nếu bạn đang thực hiện các thử nghiệm A/B và muốn báo cáo sự khác biệt, chúng tôi có thể thêm một giá trị số vào phiên bản ứng dụng của bạn bằng cách sử dụng phương thức appendAppSubversion(). Ví dụ: nếu phiên bản ứng dụng của bạn là 1.0.1 và bạn đặt appendAppSubversion(8888), ứng dụng sẽ hiển thị phiên bản là 1.0.1.8888.
Dữ liệu này sẽ xuất hiện trong DataVault, nơi bạn có thể tạo báo cáo bằng cách sử dụng các giá trị phiên bản phụ của ứng dụng.
TenjinSDK instance = TenjinSDK.getInstance(this, " ");
instance.appendAppSubversion(8888);
instance.connect();Chiến dịch LiveOps #
Tenjin hỗ trợ việc truy xuất thông tin về nguồn gốc người dùng (Attribution), chẳng hạn như nguồn quảng cáo mạng quảng cáo và chiến dịch, từ SDK. Điều này sẽ cho phép các nhà phát triển thu thập và phân tích dữ liệu Attribution ở cấp độ người dùng theo thời gian thực. Dưới đây là các trường hợp sử dụng có thể áp dụng với Tenjin LiveOps Campaigns:
- Nếu bạn có công cụ phân tích dữ liệu riêng, tính năng S2S callback sẽ cho phép bạn liên kết dữ liệu Attribution với dữ liệu trong trò chơi ở cấp độ từng thiết bị.
- Hiển thị nội dung ứng dụng khác nhau tùy thuộc vào nguồn truy cập của người dùng. Ví dụ: nếu người dùng A đến từ nguồn truy cập tự nhiên và người dùng B đến từ Meta, đồng thời người dùng B có khả năng tương tác nhiều hơn với ứng dụng của bạn, thì bạn nên hiển thị một ưu đãi đặc biệt trong trò chơi sau khi người dùng cài đặt ứng dụng. Nếu bạn muốn thảo luận về các trường hợp sử dụng cụ thể hơn, vui lòng gửi email đến support@tenjin.com.
Thông tin chi tiết về cách sử dụng LiveOps có thể được tìm thấy tại đây.
ID người dùng của khách hàng #
Bạn có thể thiết lập và lấy ID người dùng của khách hàng để gửi dưới dạng tham số trong các sự kiện.
.setCustomerUserId(userId: "user_id")
.getCustomerUserId()
TenjinSDK instance = TenjinSDK.getInstance(this, " ");
instance.setCustomerUserId(userId: "user_id");
userId = instance.getCustomerUserId(); ID cài đặt Analytics #
Bạn có thể lấy ID phân tích, được tạo ngẫu nhiên và lưu trữ trong bộ nhớ cục bộ của thiết bị. getAnalyticsInstallationId()
TenjinSDK instance = TenjinSDK.getInstance(this, " ");
analyticsId = instance.getAnalyticsInstallationId; Hồ sơ người dùng – Các chỉ số của LiveOps #
Bộ công cụ phát triển phần mềm (SDK) Tenjin Android tự động theo dõi các chỉ số tương tác của người dùng để giúp bạn hiểu rõ hơn về hành vi của người chơi và giá trị trọn đời của họ. Các chỉ số này được thu thập tự động và có thể truy cập thông qua lập trình.
Theo dõi tự động #
SDK sẽ tự động theo dõi:
- Chỉ số phiên: Số phiên, thời lượng, ngày bắt đầu và ngày kết thúc của phiên
- Mua hàng trong ứng dụng (IAP): Số lượng giao dịch, doanh thu theo loại tiền tệ, mã sản phẩm đã mua
- Doanh thu quảng cáo (ILRD): Doanh thu theo lượt hiển thị từ các mạng quảng cáo được hỗ trợ
Truy xuất dữ liệu hồ sơ người dùng #
Lấy đối tượng hồ sơ đầy đủ #
Trả về một đối tượng UserProfileData chứa tất cả các chỉ số:
import com.tenjin.android.TenjinSDK;
import com.tenjin.android.userprofile.UserProfileData;
TenjinSDK instance = TenjinSDK.getInstance(this, "<SDK_KEY>");
UserProfileData profile = instance.getUserProfile();
// Session metrics
int sessionCount = profile.getSessionCount();
long totalTime = profile.getTotalSessionTime();
long avgLength = profile.getAverageSessionLength();
long lastSession = profile.getLastSessionLength();
long currentSession = profile.getCurrentSessionDuration();
Long firstSession = profile.getFirstSessionDate();
Long lastSessionDate = profile.getLastSessionDate();
// IAP metrics
int iapCount = profile.getIapTransactionCount();
Map<String, Double> revenueByCurrency = profile.getIapRevenueByCurrency();
List<String> productIDs = profile.getPurchasedProductIDs();
// ILRD metrics
double totalAdRevenue = profile.getTotalILRDRevenueUSD();
Map<String, Double> revenueByNetwork = profile.getIlrdRevenueByNetwork();Các thuộc tính có sẵn (phương thức getter trong Java):
| Phương pháp | Kiểu trả về | Mô tả |
|---|---|---|
getSessionCount() | int | Tổng số phiên |
getTotalSessionTime() | long | Tổng thời gian tính bằng mili giây |
getAverageSessionLength() | long | Thời gian trung bình của mỗi phiên (tính bằng mili giây) |
getLastSessionLength() | long | Phiên làm việc gần nhất đã hoàn tất (tính bằng mili giây) |
getCurrentSessionDuration() | long | Thời gian phiên hiện tại đang hoạt động (tính bằng mili giây) |
getFirstSessionDate() | Long | Dấu thời gian của phiên đầu tiên (ms kể từ thời điểm khởi đầu) |
getLastSessionDate() | Long | Dấu thời gian của phiên trước (ms kể từ thời điểm khởi đầu) |
getIapTransactionCount() | int | Tổng số IAP |
getIapRevenueByCurrency() | Map<String, Double> | Doanh thu theo mã tiền tệ |
getPurchasedProductIDs() | List<String> | Mã sản phẩm đã được sắp xếp |
getTotalILRDRevenueUSD() | double | Tổng doanh thu quảng cáo (USD) |
getIlrdRevenueByNetwork() | Map<String, Double> | Doanh thu quảng cáo theo mạng |
Lấy hồ sơ dưới dạng từ điển #
Trả về một bản đồ chứa tất cả các chỉ số để dễ dàng chuyển đổi thành định dạng chuỗi:
Map<String, Object> profileDict = instance.getUserProfileDictionary();
// Example usage
Integer sessionCount = (Integer) profileDict.get("session_count");
String firstSession = (String) profileDict.get("first_session_date");
Map<String, Double> iapRevenue = (Map<String, Double>) profileDict.get("iap_revenue_by_currency");
List<String> productIds = (List<String>) profileDict.get("purchased_product_ids");Các khóa từ điển (luôn có):
| Chìa khóa | Loại | Mô tả |
|---|---|---|
session_count | Integer | Tổng số phiên |
total_session_time | Long | Tổng thời gian (mili giây) |
average_session_length | Long | Thời gian trung bình mỗi phiên (mili giây) |
last_session_length | Long | Phiên làm việc gần nhất (mili giây) |
iap_transaction_count | Integer | Tổng số IAP |
total_ilrd_revenue_usd | Double | Tổng doanh thu quảng cáo (USD) |
Các khóa từ điển (Có điều kiện – chỉ khi có sẵn):
| Chìa khóa | Loại | Mô tả |
|---|---|---|
first_session_date | String | Ngày tháng theo định dạng ISO 8601 |
last_session_date | String | Ngày tháng theo định dạng ISO 8601 |
current_session_length | Long | Thời lượng phiên hoạt động (mili giây) |
iap_revenue_by_currency | Map<String, Double> | Bảng chuyển đổi tiền tệ → doanh thu |
purchased_product_ids | List<String> | Danh sách các mã sản phẩm đã được sắp xếp |
ilrd_revenue_by_network | Map<String, Double> | Bản đồ mạng → doanh thu |
Đặt lại hồ sơ #
Xóa toàn bộ dữ liệu hồ sơ người dùng:
instance.resetUserProfile();Cấu hình phiên làm việc #
Tùy chỉnh thời gian chờ của phiên (mặc định là 30 phút):
UserProfileManager.setSessionTimeoutMs(600000); // 10 minutesLàm mới bộ nhớ đệm #
Bạn có thể bật/tắt tính năng thử lại và lưu vào bộ nhớ đệm cho tất cả các sự kiện khi yêu cầu không thành công hoặc người dùng không có kết nối Internet. Các sự kiện này sẽ được gửi đi sau khi một sự kiện mới được thêm vào hàng đợi và người dùng đã khôi phục kết nối.
.setCacheEventSetting(setting: true)
TenjinSDK instance = TenjinSDK.getInstance(this, " ");
instance.setCacheEventSetting(setting: true);Tích hợp doanh thu quảng cáo theo mức độ hiển thị #
Tenjin hỗ trợ khả năng tích hợp với tính năng Doanh thu quảng cáo theo số lần hiển thị (ILRD) từ,
- AppLovin MAX
- Unity LevelPlay
- HyperBid
- AdMob
- TopOn
- CAS
- TradPlus
- CloudX
Tính năng này cho phép bạn nhận các sự kiện liên quan đến doanh thu quảng cáo của bạn, vốn bị ảnh hưởng bởi mỗi lần hiển thị quảng cáo cho người dùng. Bạn có thể truy cập hướng dẫn tích hợp tại đây
Các tham số DMA của Google #
Nếu bạn đã tích hợp CMP, các tham số Google DMA sẽ được SDK Tenjin thu thập tự động. Bạn không cần thực hiện bất kỳ thao tác nào trong SDK Tenjin nếu đã tích hợp CMP. Nếu bạn muốn ghi đè lên CMP hiện có hoặc đơn giản là muốn xây dựng cơ chế xin sự đồng ý của riêng mình, bạn có thể sử dụng các phương án sau:
setGoogleDMAParameters(boolean, boolean)
TenjinSDK instance = TenjinSDK.getInstance(this, " ");
instance.setGoogleDMAParameters(adPersonalization, adUserData); Để quản lý một cách rõ ràng việc thu thập các thông số Google DMA, bạn có thể linh hoạt chọn tham gia hoặc từ chối tham gia bất cứ lúc nào. Mặc dù cài đặt mặc định là tham gia, bạn có thể dễ dàng điều chỉnh các tùy chọn của mình bằng cách sử dụng các phương thức optInGoogleDMA hoặc optOutGoogleDMA, đảm bảo quyền kiểm soát hoàn toàn đối với các cài đặt bảo mật dữ liệu của mình:
instance.optInGoogleDMA();
instance.optOutGoogleDMA(); Kiểm thử #
Bạn có thể kiểm tra xem quá trình tích hợp có hoạt động bình thường hay không thông qua Công cụ kiểm tra dữ liệu thiết bị trực tiếp của chúng tôi. Thêm advertising_id của bạn vào danh sách các thiết bị thử nghiệm. Bạn có thể tìm thấy thông tin này tại mục Hỗ trợ -> Thiết bị thử nghiệm. Truy cập trang Công cụ sự kiện trực tiếp và gửi các sự kiện thử nghiệm từ ứng dụng của bạn. Bạn sẽ thấy các sự kiện trực tiếp được gửi đến:
