目录
此内容是否有帮助?

# iOS

::: Tips

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

iOS SDK 対応システムバージョンはiOS 8.0以上必要です

iOS SDK ( Framework 形式) サイズ約 8.1MB

:::

最新バージョン: 2.8.3

更新時間: 2022-11-08

ダウンロード:FrameWork (opens new window)Source Code (opens new window)

# SDK実装

# 1.1 自動実装

  • CocoaPods を利用してSDK実装
  1. Podfileを作成・編集(既存があればそのまま編集):

Podfileを作成し、プロジェクト(.xcodeproj)のファイルの同カタログの元で以下のコードを実行

pod init

Podfile の以下の内容を編集:

platform :ios, '9.0'
target 'YourProjectTarget' do
  pod 'ThinkingSDK'  #ThinkingSDK
end

2.プロジェクトのルートディレクトリに、以下のインストールコードを実行

pod install

成功後には、ターミナルで以下のヒントが提示される:

  1. インポート成功したら、ワークスペースを起動

コード実行成功後、.xcworkspaceのファイルが生成されるとiOS SDKがインポート成功です。.xcworkspaceを起動してください。(注意:その際に同時に.xcodeprojのファイルを起動することができません)

  • Carthageを利用してSDKインストール

1.Cartfile ファイルの中で、以下設定を追加します

github "ThinkingDataAnalytics/ios-sdk"

2.carthage update --platform iOSを実行し、ThinkingSDK.frameworkをプロジェクト内に追加します

# 1.2 手動実装

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

2.ThinkingSDK.frameworkを XCode Project Workspace へ移動

  1. XcodeでTargetsを探し出し、Build SettingsのメニューのOther linker flagsのオプションに-ObjCを追加

4.XcodeでTargetsを探し出しBuild Phasesのメニューに、Link Binary With Librariesの元で以下の依存項目を追加:libz.dylibSecurity.frameworkSystemConfiguration.frameworklibsqlite3.tbd

# 初期設定

パラメータ説明:

  • APPID: プロジェクトのAPPID、TEプロジェクト管理画面にて取得可能
  • SERVER_URL: データ送信URL
    • SaaSの場合はプロジェクト管理→データアクセスURLにて確認してください
    • プライベート構築の場合は、データ送信URLを指定することが可能

# メイン機能

メイン機能を利用する前に、ユーザー識別ルールを確認してくだ;

SDKはゲストIDを自動で作成し、ローカルで保存される;ユーザーがログインする前に、ゲストIDを身分識別IDとして使われます。

注意:ゲストIDはユーザーがアプリを再インストール時にリセットされます。

# 3.1 アカウントIDを設置

ユーザーがログインする時に、loginを呼び出して、ユーザーのアカウントIDを設定できます。TEプラットフォームはアカウントIDを身分識別IDとしてlogoutを呼び出しする前までに保留します。loginを数回呼び出すと、前のアカウントIDが上書きされます。

この方法ではログインイベントを送信されません

# 3.2 共通イベントプロパティ設定

共通イベントプロパティは全てのイベントに含まれるプロパティとなります。setSuperPropertiesを呼び出しして設定することできます。イベント送信する前に、共通イベントプロパティを設定しておいてください。

例えば:プレイヤーのレベル、戦闘力、所持資源などのプロパティ

共通イベントプロパティはキャッシュに保存され、Appを起動する度に呼び出す必要はありません。もし呼び出す場合はsetSuperProperties:以前設定した共通イベントプロパティは上書きされます。

  • イベントのプロパティは一つNSDictionaryの対象となり、エレメントごとでプロパティを分けられます
  • Key は当プロパティの名称でstringタイプで、英文字と数字、 "_"を含め、最大50文字。TEシステムは一律で小英文字に統一されます
  • Value は当プロパティの値で、String, Number, Bloon, Time, object, array, list objectを対応しております。
  • Bloonタイプのプロパティをアップロードしたい場合は、@YES@NOまたは [NSNumber numberWithBool:YES][NSNumber numberWithBool:NO]で値を付与してください。@true@false@TRUE@FALSE利用してはいけません。

イベントプロパティ、ユーザープロパティは共通イベントプロパティと一致する必要があります。

# 3.3 自動収集イベントのOn/Off

クライアント SDKは一部イベントを自動収集することが可能で、実際業務状況に応じてon/offにしてください。以下は参考となります。詳しくは自動収集ガイド

// enable autotrack event
[[ThinkingAnalyticsSDK sharedInstanceWithAppid:APP_ID]enableAutoTrack:ThinkingAnalyticsEventTypeAppInstall | ThinkingAnalyticsEventTypeAppStart |ThinkingAnalyticsEventTypeAppEnd];

# 3.4 イベント送信

trackを呼び出してイベントの送信を行います。事前にデータプランをご用意の上、送信してください。以下はモデルコードとなります。例:アイテム購入

イベント名はstringタイプで、英文字と数字、 "_"を含め、最大50文字まで入力可能です。

# 3.5 ユーザープロパティ設定

一般のユーザープロパティに関しては、user_setを利用して設定することができますが、 UserSetは元の値を上書きされます。本来該当プロパティに値がない場合は、プロパティが新規作成されます。以下はコード例となります。

# コード例のまとめ

以下のコード例で全ての操作が含まれます、以下の順で利用推奨しております:

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
      NSMutableDictionary *superProperties = [NSMutableDictionary new];
      [superProperties setValue:@"te" forKey:@"channel"]; //string
      [superProperties setValue:@1 forKey:@"age"]; //number
      [superProperties setValue:@YES forKey:@"isSuccess"]; //boolean
      [superProperties setValue:[NSDate now] forKey:@"birthday"]; //time
      [superProperties setValue:@{@"key":@"value"} forKey:@"object"]; //object
      [superProperties setValue:@[@{@"key":@"value"}] forKey:@"object_arr"]; //array object
      [superProperties setValue:@[@"value"] forKey:@"arr"]; //array
      [instance setSuperProperties:superProperties]; //set super properties
      
      //enable autotrack event
      [[ThinkingAnalyticsSDK sharedInstanceWithAppid:APP_ID]enableAutoTrack:ThinkingAnalyticsEventTypeAppInstall | ThinkingAnalyticsEventTypeAppStart |ThinkingAnalyticsEventTypeAppEnd];
      
      //send event
      NSDictionary *eventProperties = @{ @"product_name": @"アイテム名"};
      [instance track:@"product_buy" properties:eventProperties];
      
      //Set user properties
      [instance user_set:@{@"username": @"TE"}];
    }
}