# Android
::: Tips
実装する前にデータアクセスの準備を確認しておいてください。
Android SDKはAndroid 4.0(API 14)以降のバージョンに対応しております。
Android SDK (aar 形式)のサイズは約176KBとなります。
:::
最新バージョン:2.8.5
更新時間:2023-06-02
ダウンロード:AAR (opens new window)、Source Code (opens new window)
# SDK実装
# 1.1 自動実装
Project
レベルのbuild.gradle
のファイルで以下を追加してください。
buildscript {
repositories {
jcenter()
mavenCentral()
}
}
Module
のカタログの元でbuild.gradle
ファイルで以下を追加してください。
dependencies {
implementation 'cn.thinkingdata.android:ThinkingAnalyticsSDK:2.8.3'
}
# 1.2 手動実装
ダウンロード&解凍 Android SDK (opens new window)
libs フォルダに ThinkingSDK.aarを追加
build.gradle
で以下を追加
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar','*.aar'])
}
# 初期設定
//Initialize SDK in the main thread
//Method 1
ThinkingAnalyticsSDK instance = ThinkingAnalyticsSDK.sharedInstance(this, APPID, SERVER_URL);
//Method 2
TDConfig config = TDConfig.getInstance(this, APPID, TE_SERVER_URL);
ThinkingAnalyticsSDK instance = ThinkingAnalyticsSDK.sharedInstance(config);
パラメータ説明:
APPID
: プロジェクトのAPPID、TEプロジェクト管理画面にて取得可能SERVER_URL
: データ送信URL- SaaSの場合はプロジェクト管理→データアクセスURLにて確認してください
- プライベート構築の場合は、データ送信URLを指定することが可能
Android 9.0+ デフォルトでHTTPを制限されているため、HTTPSを使用してください
# メイン機能
メイン機能を利用する前に、ユーザー識別ルールを確認してくだい;
SDKはゲストIDを自動で作成し、ローカルで保存される;ユーザーがログインする前に、ゲストIDをユーザー識別IDとして使われます。
注意:ゲストIDはユーザーがアプリを再インストール時にリセットされます。
# 3.1 アカウントIDを設置
ユーザーがログインする時に、login
を呼び出して、ユーザーのアカウントIDを設定できます。TEプラットフォームはアカウントIDを身分識別IDとしてlogout
を呼び出しする前までに保留します。login
を数回呼び出すと、前のアカウントIDが上書きされます。
// The login unique identifier of the user, corresponding to the #account_id in data tracking. #Account_id now is TE
instance.login("TE");
この方法ではログインイベントを送信されません
# 3.2 共通イベントプロパティ設定
共通イベントプロパティは全てのイベントに含まれるプロパティとなります。setSuperProperties
を呼び出しして設定することできます。イベント送信する前に、共通イベントプロパティを設定しておいてください。
例:プレイヤーのレベル、戦闘力、所持しているアイテム etc
try {
JSONObject superProperties = new JSONObject();
superProperties.put("channel","TE");//string
superProperties.put("age",1);//number
superProperties.put("isSuccess",true);//boolean
superProperties.put("birthday",new Date());//time
JSONObject object = new JSONObject();
object.put("key", "value");
superProperties.put("object",object);//object
JSONObject object1 = new JSONObject();
object1.put("key", "value");
JSONArray arr = new JSONArray();
arr.put(object1);
superProperties.put("object_arr",arr);//array object
JSONArray arr1 = new JSONArray();
arr1.put("value");
superProperties.put(arr1);//array
//set super properties
instance.setSuperProperties(superProperties);
} catch (JSONException e) {
e.printStackTrace();
}
共通イベントプロパティはキャッシュに保存され、Appを起動する度に呼び出す必要はありません。もし呼び出す場合はsetSuperProperties
:以前設定した共通イベントプロパティは上書きされます。
- Key は当プロパティの名称でstringタイプで、英文字と数字、 "_"を含め、最大50文字。TEシステムは一律で小英文字に統一されます
- Value は当プロパティの値で、String, Number, Bloon, Time, object, array, list objectを対応しております。
イベントプロパティ、ユーザープロパティは共通イベントプロパティと一致する必要があります。
# 3.3 自動収集イベントのOn/Off
クライアント SDKは一部イベントを自動収集することが可能で、実際業務状況に応じてon/offにしてください。以下は参考となります。詳しくは自動収集ガイド
List<ThinkingAnalyticsSDK.AutoTrackEventType> eventTypeList = new ArrayList<>();
//APP install event
eventTypeList.add(ThinkingAnalyticsSDK.AutoTrackEventType.APP_INSTALL);
//APP start event
eventTypeList.add(ThinkingAnalyticsSDK.AutoTrackEventType.APP_START);
//APP end event
eventTypeList.add(ThinkingAnalyticsSDK.AutoTrackEventType.APP_END);
//enable autotrack event
ThinkingAnalyticsSDK.sharedInstance(this, TE_APP_ID).enableAutoTrack(eventTypeList);
# 3.4 イベント送信
track
を呼び出してイベントの送信を行います。事前にデータプランをご用意の上、送信してください。以下はモデルコードとなります。例:アイテム購入
try {
JSONObject properties = new JSONObject();
properties.put("product_name","アイテム");
instance.track("product_buy",properties);
} catch (JSONException e) {
e.printStackTrace();
}
イベント名はstringタイプで、英文字と数字、 "_"を含め、最大50文字まで入力可能です。
# 3.5 ユーザープロパティ設定
一般のユーザープロパティに関しては、UserSet
を利用して設定することができますが、 UserSet
は元の値を上書きされます。本来該当プロパティに値がない場合は、プロパティが新規作成されます。以下はコード例となります。
try {
//the username now is TA
JSONObject properties = new JSONObject();
properties.put("username","TA");
instance.user_set(properties);
//the userName now is TE
JSONObject newProperties = new JSONObject();
newProperties.put("username","TE");
instance.user_set(newProperties);
} catch (JSONException e) {
e.printStackTrace();
}
# コード例のまとめ
以下のコード例で全ての操作が含まれます、以下の順で利用推奨しております:
ThinkingAnalyticsSDK instance;
if (privacy policy is authorized) {
instance = ThinkingAnalyticsSDK.sharedInstance(this, TE_APP_ID, TE_SERVER_URL);
if(instance != null)
{
//if the user has logged in, the account ID of the user could be set as the unique identifier
instance.login("TE");
//After setting super properties, each event would have super properties
try {
JSONObject superProperties = new JSONObject();
superProperties.put("channel","te");//string
superProperties.put("age",1);//number
superProperties.put("isSuccess",true);//boolean
superProperties.put("birthday",new Date());//time
JSONObject object = new JSONObject();
object.put("key", "value");
superProperties.put("object",object);//object
JSONObject object1 = new JSONObject();
object1.put("key", "value");
JSONArray arr = new JSONArray();
arr.put(object1);
superProperties.put("object_arr",arr);//array object
JSONArray arr1 = new JSONArray();
arr1.put("value");
superProperties.put(arr1);//array
//set super properties
instance.setSuperProperties(superProperties);
} catch (JSONException e) {
e.printStackTrace();
}
//Enable auto-tracking
List<ThinkingAnalyticsSDK.AutoTrackEventType> eventTypeList = new ArrayList<>();
eventTypeList.add(ThinkingAnalyticsSDK.AutoTrackEventType.APP_INSTALL);
eventTypeList.add(ThinkingAnalyticsSDK.AutoTrackEventType.APP_START);
eventTypeList.add(ThinkingAnalyticsSDK.AutoTrackEventType.APP_END);
instance.enableAutoTrack(eventTypeList);
//upload events
try {
JSONObject properties = new JSONObject();
properties.put("product_name","product name");
instance.track("product_buy",properties);
} catch (JSONException e) {
e.printStackTrace();
}
//Set user properties
try {
JSONObject userProperties = new JSONObject();
userProperties.put("username","TE");
instance.user_set(userProperties);
} catch (JSONException e) {
e.printStackTrace();
}
}
}