メインコンテンツまでスキップ

iOS

最終更新 2026/10/03
ヒント

iOS SDKの最小システムバージョンはiOS 9.0です

最新バージョン:v1.3.1

更新日:2026-07-24

リソースのダウンロード:ダウンロード

Betaバージョン:なし

1. 概要​

AE 4.4から、エンゲージモジュールに「構成センター」機能がリリースされました。AE管理画面で機能パラメータの構成を追加し、クライアントSDKでAppに取得することで、プレイヤーとのインタラクション内容をきめ細かくカスタマイズできます。

このドキュメントでは、クライアントSDKの統合手順を説明します。App側はThinkingData SDKとのやり取りだけを考慮すればよく、AE管理画面のタスクの詳細を気にする必要はありません。

2. SDKの統合​

2.1 SDKの自動統合​

  1. コンピューターにCocoaPodsパッケージ管理ツールがインストールされていることを確認します

  2. プロジェクトにPodfileファイルがない場合は、プロジェクトファイル(.xcodeproj)と同じディレクトリで、コマンドラインから次のコマンドを実行する必要があります:

    pod init
  3. Podfileを次のように編集します:

    platform :ios, '9.0'
    target 'YourProjectTarget' do
    pod 'TDRemoteConfig'
    end
  4. プロジェクトのルートディレクトリで、インストールコマンドを実行します

    pod install

    成功すると、ターミナルに次のメッセージが表示されます:

    Analyzing dependencies
    Downloading dependencies
    Installing TDRemoteConfig (x.x.x)
    Installing ThinkingDataCore (x.x.x)
    Installing ThinkingSDK (x.x.x)
    Generating Pods project
    Integrating client project
    Pod installation complete! There is 1 dependency from the Podfile and 3 total pods installed.
  5. インポートに成功したら、プロジェクトを起動します

コマンドの実行に成功すると.xcworkspaceファイルが生成されます。これはiOS SDKのインポートに成功したことを示します。.xcworkspaceファイルを開いてプロジェクトを起動します(注意:このとき.xcodeprojファイルを同時に開くことはできません)

2.2 SDKの手動統合​

構成センターには、次のThinkingData SDKが必要です:

SDK名説明バージョン要件
ThinkingSDKデータの収集と処理を行います>= 3.1.0
TDRemoteConfigAE管理画面の設定情報を取得します>= 1.0.0
ThinkingDataCore基本コンポーネントの機能を提供します>= 1.1.0
  1. ページ上部のリソースのダウンロードリンクをクリックし、SDKをダウンロードして解凍します
  2. ThinkingSDK.xcframework、ThinkingDataCore.xcframework、TDRemoteConfig.xcframeworkをXCode Project Workspaceのプロジェクトにドラッグします
  3. Targetsを開き、Build SettingsメニューのOther linker flagsオプションに-ObjCを追加します

3. 初期化​

メインスレッドでSDKを初期化します

#import <ThinkingDataCore/ThinkingDataCore.h>

// SDK needs to be initialized on the main thread
// TDSettingsの設定の詳しい使い方は【応用ガイド】を参照してください
TDSettings *settings = [[TDSettings alloc] init];
settings.mode = TDSDKModeNomal;
settings.appId = @"APPID";
settings.serverUrl = @"SERVER_URL";
[TDApp startWithSetting:settings];

4. 使用方法​

4.1 データ構造のサンプル​

"configId" : {
"templateId" : [
{
"#strategy_id" : "f712dff93afb1e79caefdf094bda4ba2",
"paramater_x" : "1111",
"#ops_receipt_properties" : {}
}
],
"#custom_params" : {

}
}

補足:

configId:エンゲージ管理画面の構成センターモジュールで作成した「構成項目ID」。業務モジュールの情報を識別するために使用します。構成項目の詳細は構成項目管理を参照してください

templateId:業務側で「構成項目」の下に追加した「テンプレートID」。具体的な機能モジュールの情報を識別するために使用します。構成テンプレートの詳細は構成テンプレート管理を参照してください

#strategy_id:戦略の一意のID。戦略のライフサイクル管理に使用します。構成戦略の詳細は構成戦略管理を参照してください

paramater_x:構成テンプレートのパラメータ。機能モジュールに必要な構成パラメータに対応します

#ops_receipt_properties:イベントの回収統計に使用します。戦略の効果を自動集計する(未対応)場合は、回収イベントにこのプロパティを含める必要があります

#custom_params:クライアントの構成チャンネルに設定したカスタムパラメータ。クライアントに渡す必要があるユーザープロパティ情報を定義できます。

4.2 ローカルのデフォルト値の設定​

TDRemoteConfig SDKで構成項目のデフォルト値を設定できます。AEサーバーで構成項目が追加されていない場合や、ローカルでリモートの値を取得できなかった場合に、SDKはローカルのデフォルト値を取得します。

形式​

ローカルのデフォルト値の構造は、次の形式にする必要があります:

{
"configId": {
"templateId": [
{
"paramater_x" : ""
}
]
}
}

直接設定​

NSDictionary *params = @{
@"configId": @{
@"templateId": @[
@{@"paramater_x" : @""}
]
}
};
[TDRemoteConfig setDefaultValues:params];

ローカルファイルからの設定​

NSString *filePath = [[NSBundle mainBundle] pathForResource:fileName ofType:nil];
[TDRemoteConfig setDefaultValuesWithJsonFile:filePath];

デフォルト値のクリア​

[TDRemoteConfig clearDefaultValues];

4.3 値の取得​

構成項目の下で、リリース済みで配信中の特定タイプの戦略内容を取得します:

#import <TDRemoteConfig/TDRemoteConfig.h>

TDObject *obj = [TDRemoteConfig getData];
NSArray *arr = obj.get(@"configId").get(@"templateId").arrayValue;

補足:

configId:エンゲージ管理画面の構成センターモジュールで作成した「構成項目ID」。業務モジュールの情報を識別するために使用します。構成項目の詳細は構成項目管理を参照してください

templateId:業務側で「構成項目」の下に追加した「テンプレートID」。具体的な機能モジュールの情報を識別するために使用します。構成テンプレートの詳細は構成テンプレート管理を参照してください

取得ルール​

あるkeyの値を取得する手順:

  • そのkeyに対応するリモート構成の値を優先して取得します
  • リモートでそのkeyが構成されていない場合は、そのkeyのローカルのデフォルト値を探します
  • ローカルのデフォルト値にもそのkeyがない場合は、空を返します。

4.4 更新のリッスン​

SDKの初期化前に、構成の取得成功の通知リスナーを追加します

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(test:) name:kTDRemoteConfigFetchDataSuccess object:nil];

通知名​

kTDRemoteConfigFetchDataSuccess:構成の取得成功

通知に含まれるパラメータ​

ヒント

通知には、デフォルトで今回のリクエストと前回のリクエストの間に一時的に無効化(suspend)、強制オフライン(force_offline)に変更された戦略のステータスが含まれます。業務の要件に応じて利用できます。使用しない場合は無視してかまいません。

次の方法で通知パラメータを取得します

NSDictionary *info = notification.userInfo[kTDRemoteConfigStrategyStatusMap];

kTDRemoteConfigStrategyStatusMapに対応するvalueの構造は次のとおりです。構成項目のテンプレートで戦略IDが20241209の戦略のステータスを表しています。

{
"configId" : {
"templateId" : {
"20241209" : "suspend"
}
}
}

5. テスト送信​

接続の利用可否と構成戦略の有効性をすばやく検証できるよう、SDKはdebugモードを有効にしたテスト送信に対応しています。

TDSettings *settings = [[TDSettings alloc] init];

// debug
settings.mode = TDSDKModeDebug;
settings.enableLog = YES;

settings.appId = @"APPID";
settings.serverUrl = @"SERVER_URL";
[TDApp startWithSetting:settings];

クライアントでdebugモードを有効にすると、5秒ごとにテスト戦略を取得します。AEのエンゲージモジュールではテンプレートテストまたは戦略テストを作成できます。戦略の取得を待っている間は、フロントエンドのページで進捗ノードを確認できます。

操作ドキュメント構成テンプレート管理の、クライアントのテスト送信の部分を参照してください。

クライアントSDKのテスト送信にはテストデバイスが必要です。テストデバイスリストでテストデバイスを選択または追加できます。

このページは役に立ちましたか?