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

iOS

最終更新 2026/10/02

最新バージョン:v1.0.2

更新日:2026-07-24

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

1. 概要​

バージョン6.1から、AEに実験スイート機能が追加されました。AE管理画面で実験を作成し、コントロールグループとテストグループの変数値を設定して、クライアントSDKでAppに取得することで、グループごとに異なるコンテンツをユーザーに表示できます。

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

なお、実験SDKは構成センターSDKと組み合わせて使用する必要があります。

2. 統合​

2.1 CocoaPodsによる自動統合​

  1. プロジェクトのPodfileに依存関係を追加します:
platform :ios, '9.0'
use_frameworks!

target 'YourApp' do
pod 'TDExperiment', '1.0.2'
end
  1. インストールコマンドを実行します:
pod install

インストールが完了したら、.xcworkspaceでプロジェクトを開きます。

2.2 SDKの手動統合​

実験SDKには、次のThinkingData SDKが必要です:

SDK名機能紹介バージョン要件
ThinkingSDKデータの収集と処理を行います>= 3.1.6
TDRemoteConfigAE管理画面の設定情報を取得します>= 1.3.1
  1. ページ上部のリソースのダウンロードリンクをクリックし、SDKをダウンロードして解凍します
  2. ThinkingSDK.xcframework、ThinkingDataCore.xcframework、TDRemoteConfig.xcframework、TDExperiment.xcframeworkをプロジェクトにドラッグし、Embed & Signにチェックを入れます(またはプロジェクトの静的ライブラリの方針に従って設定します)
  3. Build Settingsで、Framework Search Pathsに上記のxcframeworkのパスが含まれていることを確認します

3. 初期化​

実験SDKは分析SDKと組み合わせて使用する必要があります。先にTDAnalyticsの初期化を完了してから、実験SDKを初期化してください。

#import <ThinkingSDK/ThinkingSDK.h>
#import <TDExperiment/TDExperiment.h>

// データ収集SDKを初期化
[TDAnalytics startAnalyticsWithAppId:@"APP_ID" serverUrl:@"https://YOUR_SERVER_URL"];

// 実験SDKを初期化
TDExperimentConfig *config = [[TDExperimentConfig alloc] initWithAppId:@"APP_ID"
serverUrl:@"https://YOUR_SERVER_URL"];
config.automaticExposureTracking = YES;
config.customBucketId = @{ @"bucket_id": @"account_id" };
config.customFetchParams = @{ @"key": @"value" };

TDExperimentTask *startupTask = [[TDExperimentTask alloc] init];
[startupTask addOnSuccessListener:^{
// 実験設定情報の取得に成功
}];
[startupTask addOnFailureListener:^(NSInteger code, NSString *message) {
// 実験設定情報の取得に失敗
}];
config.startupTask = startupTask;

[TDExperiment enableLog:YES];
[TDExperiment startWithConfig:config];

簡易的な起動方法も使用できます:

[TDExperiment startWithAppId:@"APP_ID" serverUrl:@"https://YOUR_SERVER_URL"];

初期化パラメータの説明:

  • appId:APP ID
  • serverUrl:データの送信先URL
  • automaticExposureTracking:デフォルトはYESです。getで実験パラメータを取得するときに、インプレッションイベントを自動的に送信します
  • customBucketId:カスタム振り分け主体
  • customFetchParams:クライアントの構成チャンネルに設定したカスタムパラメータ
  • startupTask:起動時に実験設定を初めて取得する際のコールバックタスク(addOnSuccessListener / addOnFailureListenerで登録)
  • enableLog:デバッグログを有効にするかどうか(TDExperiment.enableLogで設定)

4. 使用方法​

4.1 実験情報の取得​

[TDExperiment getValueAsString:key];
[TDExperiment getValueAsString:key defaultValue:@"default"];

[TDExperiment getValueAsNumber:key];
[TDExperiment getValueAsNumber:key defaultValue:@0];

[TDExperiment getValueAsBoolean:key];
[TDExperiment getValueAsBoolean:key defaultValue:NO];

[TDExperiment getValueAsJson:key];
[TDExperiment getValueAsJson:key defaultValue:@{}];

automaticExposureTrackingがYESの場合、getの際にインプレッションイベントが自動的に送信されます。

4.2 インプレッションイベントの送信​

exposureメソッドを呼び出して、インプレッションイベントを手動で送信できます。

[TDExperiment exposure:key];

4.3 すべての実験情報を能動的に取得​

[TDExperiment fetch];

[[[TDExperiment fetch]
addOnSuccessListener:^{
// 成功
}]
addOnFailureListener:^(NSInteger code, NSString *message) {
// 失敗
}];

4.4 カスタム振り分け主体​

NSDictionary<NSString *, NSString *> *bucketId = @{ @"bucket_id": @"account_id" };
[TDExperiment setCustomBucketId:bucketId];

4.5 カスタムリクエストパラメータ​

NSDictionary<NSString *, NSObject *> *params = @{ @"key": @"value" };
[TDExperiment setCustomFetchParams:params];
このページは役に立ちましたか?