目录
此内容是否有帮助?

# 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"}];
    }
}