menu
Is this helpful?

# iOS

TIP

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

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

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

最新バージョン: v3.0.1

更新時間: 2024-01-03

ソースコード:Source Code (opens new window) ダウンロード (opens new window)

Beta: v3.0.2-beta.2 ダウンロード (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のファイルを起動することができません)

# 1.2 手動実装

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

  2. ThinkingSDK.xcframeworkThinkingDataCore.xcframeworkをXCode Project Workspaceにドラッグしてください。

  3. Targetsを見つけ、Build SettingsメニューのOther linker flagsオプションに-ObjCを追加してください。

4.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
[TDAnalytics enableAutoTrack:TDAutoTrackEventTypeAppInstall | TDAutoTrackEventTypeAppStart | TDAutoTrackEventTypeAppEnd];

# 3.4 イベント送信

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

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

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

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

# コード例のまとめ

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

if (Authorized Privacy Policy) {
    // enable log
    [TDAnalytics enableLog:NO];
    
    // SDK needs to be initialized on the main thread
    NSString *appid = @"APPID";
    NSString *url = @"SERVER_URL";
    TDConfig *config = [[TDConfig alloc] init];
    config.appid = appid;
    config.serverUrl = url;
    config.mode = TDModeDebug;
    [TDAnalytics startAnalyticsWithConfig:config];
    
    [TDAnalytics login:@"TD"];
    
    NSDictionary *superProperties = @{
        @"channel": @"ta",
        @"age": @1,
        @"isSuccess": @YES,
        @"birthday": [NSDate date],
        @"object": @{
            @"key":@"value"
        },
        @"object_arr":@[
            @{
                @"key":@"value"
            }
        ],
        @"arr": @[@"value"],
    };
    [TDAnalytics setSuperProperties:superProperties];
    
    [TDAnalytics enableAutoTrack:TDAutoTrackEventTypeAppInstall | TDAutoTrackEventTypeAppStart | TDAutoTrackEventTypeAppEnd];
    
    NSDictionary *eventProperties = @{@"product_name": @"book"};
    [TDAnalytics track:@"product_buy" properties:eventProperties];
    
    // "username" is "ThinkingData"
    [TDAnalytics userSet:@{@"username": @"ThinkingData"}];
}