Android
接続する前に、まず接続前の準備をお読みください。
Android SDKの最小システムバージョンはAndroid 4.0(API 14)です
Android SDK(aar形式)のサイズは約200 KBです
SDK名:ThinkingData SDK
開発者:数数信息科技(上海)有限公司
バージョン番号:3.5.0
機能:SDKはイベントとユーザープロパティの形式でクライアントのログを収集し、DAU、利用時間、継続などの行動分析を行う機能を備えています。
プライバシーステートメント:ThinkingData SDKプライバシーステートメント
最新バージョン: 3.5.0
更新日: 2026-08-19
このドキュメントはv3.0.0以降のバージョンに適用されます。以前のバージョンについては、Android接続ガイド(V2)、SDKダウンロード(V2)を参照してください
1. SDKの統合
1.1 自動統合
Projectレベルのbuild.gradleファイルに、次の依存関係の設定を追加します
buildscript {
repositories {
jcenter()
mavenCentral()
}
}
Moduleプロジェクトディレクトリのbuild.gradleファイルに依存関係を追加します:
dependencies {
implementation 'cn.thinkingdata.android:ThinkingAnalyticsSDK:3.5.0'
}
1.2 手動統合
- Android SDKをダウンロードして解凍します
- Moduleプロジェクトディレクトリのlibsフォルダーに、TDAnalytics.aarとTDCore.aarを追加します
- Moduleプロジェクトディレクトリのbuild.gradleに、次の設定を追加します
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar','*.aar'])
}
2. 初期化
- Java
- Kotlin
// メインスレッドでSDKを初期化
//方法1
TDAnalytics.init(this, APPID, SERVER_URL);
//方法2
TDConfig config = TDConfig.getInstance(this, APPID, TE_SERVER_URL);
TDAnalytics.init(config);
// メインスレッドでSDKを初期化
//方法1
TDAnalytics.init(this, APPID, SERVER_URL)
//方法2
val config = TDConfig.getInstance(this,APPID,TE_SERVER_URL)
TDAnalytics.init(config);
パラメータの説明:
-
APPID: プロジェクトのAPPIDです。AEの「プロジェクト管理」ページで取得できます -
SERVER_URL: データの送信先URL- クラウドサービスをご利用の場合は、「プロジェクト管理」->「プロジェクト構成」でデータ受信URLを確認してください。
- プライベートデプロイ版をご利用の場合は、データ収集先のURLをカスタマイズできます。
Android 9.0以降ではデフォルトでHTTPリクエストが制限されているため、必ずHTTPSプロトコルを使用してください
3. よく使う機能
よく使う機能を使用する前に、まずユーザー識別ルールを確認することをお勧めします。SDKはデフォルトで乱数を生成してゲストIDとし、ゲストIDをローカルに永続的に保存します。ユーザーがログインするまでは、ゲストIDが識別IDとして使われます。注意:ゲストIDは、ユーザーがAppを再インストールしたり、デバイスを変更したりすると変わります。
3.1 アカウントIDの設定
ユーザーがログインする際にloginを呼び出して、ユーザーのアカウントIDを設定できます。AEプラットフォームはアカウントIDを識別IDとして使用し、設定したアカウントIDはlogoutを呼び出すまで保持されます。loginを複数回呼び出すと、以前のアカウントIDが上書きされます。
- Java
- Kotlin
// ユーザーのログイン時の一意の識別子。このデータは送信データの#account_idに対応し、この場合#account_idの値はTAになります
TDAnalytics.login("TA");
// ユーザーのログイン時の一意の識別子。このデータは送信データの#account_idに対応し、この場合#account_idの値はTAになります
TDAnalytics.login("TA")
このメソッドはログインイベントを送信しません
3.2 共通イベントプロパティの設定
共通イベントプロパティとは、すべてのイベントに付与されるプロパティのことです。setSuperPropertiesを呼び出して共通イベントプロパティを設定できます。イベントを送信する前に、共通イベントプロパティを設定しておくことを推奨します。ユーザーの会員レベルや流入チャネルなどの重要なプロパティは、すべてのイベントに設定する必要があります。その場合は、これらのプロパティを共通イベントプロパティとして設定できます。
- Java
- Kotlin
try {
JSONObject superProperties = new JSONObject();
superProperties.put("channel","ta");//文字列
superProperties.put("age",1);//数値
superProperties.put("isSuccess",true);//ブール値
superProperties.put("birthday",new Date());//時間
JSONObject object = new JSONObject();
object.put("key", "value");
superProperties.put("object",object);//オブジェクト
JSONObject object1 = new JSONObject();
object1.put("key", "value");
JSONArray arr = new JSONArray();
arr.put(object1);
superProperties.put("object_arr",arr);//オブジェクトグループ
JSONArray arr1 = new JSONArray();
arr1.put("value");
superProperties.put("arr",arr1);//配列
//共通イベントプロパティを設定
TDAnalytics.setSuperProperties(superProperties);
} catch (JSONException e) {
e.printStackTrace();
}
val superProperties = JSONObject().apply {
put("channel", "ta") //文字列
put("age", 1) //数値
put("isSuccess", true) //ブール値
put("birthday", Date()) //時間
put("object",JSONObject().apply { //オブジェクト
put("key", "value")
})
put("object_arr",JSONArray().apply { //オブジェクトグループ
put(JSONObject().apply {
put("key", "value")
})
})
put("arr",JSONArray().apply { //配列
put("value")
})
}
TDAnalytics.setSuperProperties(superProperties)
共通イベントプロパティはキャッシュに保存されるため、Appを起動するたびに呼び出す必要はありません。setSuperPropertiesを呼び出して、以前に設定済みの共通イベントプロパティを送信した場合は、以前のプロパティが上書きされます。
- Keyはプロパティの名前で、文字列型です。英字で始まり、数字、英字、アンダースコア"_"のみを含めることができます。最大長は50文字です。英字の大文字と小文字は区別されず、AEではすべて小文字に変換されます
- Valueはプロパティの値で、文字列、数値、ブール値、時間、オブジェクト、オブジェクトグループ、配列に対応しています
イベントプロパティとユーザープロパティの要件は、共通イベントプロパティと同じです
3.3 自動収集の有効化
次のコード例では、インストール、起動、終了イベントを有効にしています。SDKの自動収集機能について詳しくは、自動収集機能の詳細を参照してください
- Java
- Kotlin
//TDAnalytics.TDAutoTrackEventType.APP_INSTALL APPインストールイベント
//TDAnalytics.TDAutoTrackEventType.APP_START APP起動イベント
//TDAnalytics.TDAutoTrackEventType.APP_END APP終了イベント
//自動収集イベントを有効化
TDAnalytics.enableAutoTrack(TDAnalytics.TDAutoTrackEventType.APP_START | TDAnalytics.TDAutoTrackEventType.APP_END
| TDAnalytics.TDAutoTrackEventType.APP_INSTALL);
//TDAnalytics.TDAutoTrackEventType.APP_INSTALL APPインストールイベント
//TDAnalytics.TDAutoTrackEventType.APP_START APP起動イベント
//TDAnalytics.TDAutoTrackEventType.APP_END APP終了イベント
//自動収集イベントを有効化
TDAnalytics.enableAutoTrack(
TDAnalytics.TDAutoTrackEventType.APP_START or TDAnalytics.TDAutoTrackEventType.APP_END
or TDAnalytics.TDAutoTrackEventType.APP_INSTALL
)
3.4 イベントの送信
trackを呼び出してイベントを送信できます。事前に整理したトラッキングドキュメントに従ってイベントのプロパティを設定することをお勧めします。ここでは、ユーザーが商品を購入する場合を例にします:
- Java
- Kotlin
try {
JSONObject properties = new JSONObject();
properties.put("product_name","商品名");
TDAnalytics.track("product_buy", properties);
} catch (JSONException e) {
e.printStackTrace();
}
val properties = JSONObject()
properties.put("product_name", "商品名")
TDAnalytics.track("product_buy", properties)
イベント名は文字列型で、英字で始まり、数字、英字、アンダースコア"_"を含めることができます。最大長は50文字です。
3.5 ユーザープロパティの設定
一般的なユーザープロパティは、userSetを呼び出して設定できます。このインターフェースで送信したプロパティは、既存のプロパティ値を上書きします。そのユーザープロパティが以前に存在しない場合は新しく作成され、タイプは渡されたプロパティのタイプと同じになります。ここでは、ユーザー名の設定を例にします:
- Java
- Kotlin
try {
//この時点でusernameはTA
JSONObject properties = new JSONObject();
properties.put("username","TA");
TDAnalytics.userSet(properties);
//この時点でuserNameはAE
JSONObject newProperties = new JSONObject();
newProperties.put("username","TE");
TDAnalytics.userSet(newProperties);
} catch (JSONException e) {
e.printStackTrace();
}
//この時点でusernameはTA
val properties = JSONObject()
properties.put("username", "TA")
TDAnalytics.userSet(properties)
//この時点でuserNameはAE
val newProperties = JSONObject()
newProperties.put("username", "TE")
TDAnalytics.userSet(newProperties)
4. ベストプラクティス
次のサンプルコードには、上記のすべての操作が含まれています。次の手順で使用することをお勧めします:
- Java
- Kotlin
if (isPrivacyPolicyAccepted) { // ユーザーが『プライバシーポリシー』に同意済み
TDAnalytics.init(this, APPID, SERVER_URL);
//自動収集イベントを有効化
TDAnalytics.enableAutoTrack(TDAnalytics.TDAutoTrackEventType.APP_START | TDAnalytics.TDAutoTrackEventType.APP_END
| TDAnalytics.TDAutoTrackEventType.APP_INSTALL);
//ユーザーがログイン済みの場合は、ユーザーのアカウントIDを一意の識別子として設定できます
TDAnalytics.login("TA");
//共通イベントプロパティを設定すると、すべてのイベントに共通イベントプロパティが付与されます
try {
JSONObject superProperties = new JSONObject();
superProperties.put("channel","ta");//文字列
superProperties.put("age",1);//数値
superProperties.put("isSuccess",true);//ブール値
superProperties.put("birthday",new Date());//時間
JSONObject object = new JSONObject();
object.put("key", "value");
superProperties.put("object",object);//オブジェクト
JSONObject object1 = new JSONObject();
object1.put("key", "value");
JSONArray arr = new JSONArray();
arr.put(object1);
superProperties.put("object_arr",arr);//オブジェクトグループ
JSONArray arr1 = new JSONArray();
arr1.put("value");
superProperties.put("arr",arr1);//配列
//共通イベントプロパティを設定
TDAnalytics.setSuperProperties(superProperties);
} catch (JSONException e) {
e.printStackTrace();
}
//イベントを送信
try {
JSONObject properties = new JSONObject();
properties.put("product_name","商品名");
TDAnalytics.track("product_buy", properties);
} catch (JSONException e) {
e.printStackTrace();
}
//ユーザープロパティを設定
try {
JSONObject userProperties = new JSONObject();
userProperties.put("username","TA");
TDAnalytics.userSet(userProperties);
} catch (JSONException e) {
e.printStackTrace();
}
}
if (isPrivacyPolicyAccepted) { // ユーザーが『プライバシーポリシー』に同意済み
TDAnalytics.init(this, APPID, SERVER_URL);
//ユーザーがログイン済みの場合は、ユーザーのアカウントIDを一意の識別子として設定できます
TDAnalytics.login("TA");
//共通イベントプロパティを設定すると、すべてのイベントに共通イベントプロパティが付与されます
val superProperties = JSONObject().apply {
put("channel", "ta") //文字列
put("age", 1) //数値
put("isSuccess", true) //ブール値
put("birthday", Date()) //時間
put("object",JSONObject().apply { //オブジェクト
put("key", "value")
})
put("object_arr",JSONArray().apply { //オブジェクトグループ
put(JSONObject().apply {
put("key", "value")
})
})
put("arr",JSONArray().apply { //配列
put("value")
})
}
//共通イベントプロパティを設定
TDAnalytics.setSuperProperties(superProperties);
//自動収集イベントを有効化
TDAnalytics.enableAutoTrack(
TDAnalytics.TDAutoTrackEventType.APP_START or TDAnalytics.TDAutoTrackEventType.APP_END
or TDAnalytics.TDAutoTrackEventType.APP_INSTALL
)
//イベントを送信
val properties = JSONObject()
properties.put("product_name", "商品名")
TDAnalytics.track("product_buy", properties)
//ユーザープロパティを設定
val userProperties = JSONObject()
userProperties.put("username","TA")
TDAnalytics.userSet(userProperties)
}

