目录
此内容是否有帮助?

# Android

::: Tips

実装する前にデータアクセスの準備を確認しておいてください。

Android SDKはAndroid 4.0(API 14)以降のバージョンに対応しております。

Android SDK (aar 形式)のサイズは約176KBとなります。

:::

最新バージョン:2.8.3

更新時間:2022-11-10

ダウンロード: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 手動実装

  1. ダウンロード&解凍 Android SDK (opens new window)

  2. libs フォルダに ThinkingSDK.aarを追加

  3. 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();
       }
    }
}