iOS
最新バージョン: v3.5.3
更新日: 2026-09-22
このドキュメントはv3.0.0以降のバージョンに適用されます。以前のバージョンについては、iOS接続ガイド(V2)、SDKダウンロード(v2.8.4)を参照してください
1. SDKの統合
1.1 自動統合
- CocoaPodsでSDKをインストールする
1. Podfileを作成して編集します(すでにある場合は直接編集します):
Podfileを作成します。プロジェクト(.xcodeproj)ファイルと同じディレクトリで、コマンドラインから次のコマンドを実行します:
pod init
Podfileを次のように編集します:
platform :ios, '9.0'
target 'YourProjectTarget' do
pod 'ThinkingSDK', '3.5.3'
end
2. プロジェクトのルートディレクトリで、インストールコマンドを実行します
pod install
成功すると、ターミナルに次のメッセージが表示されます:
Analyzing dependencies
Downloading dependencies
Installing ThinkingDataCore
Installing ThinkingSDK
Generating Pods project
Integrating client project
Pod installation complete! There is 1 dependency from the Podfile and 2 total pods installed.
3. インポートに成功したら、プロジェクトを起動します
コマンドの実行に成功すると.xcworkspaceファイルが生成されます。これはiOS SDKのインポートに成功したことを示します。.xcworkspaceファイルを開いてプロジェクトを起動します(注意:このとき.xcodeprojファイルを同時に開くことはできません)
1.2 手動統合
1. iOS SDKをダウンロードして解凍します
2. ThinkingSDK.xcframeworkとThinkingDataCore.xcframeworkを、XCode Project Workspaceのプロジェクトにドラッグします
3. Targetsを開き、Build SettingsメニューのOther linker flagsオプションに-ObjCを追加します
4. Build Phasesタブに切り替え、Link Binary With Librariesセクションに次の依存関係を追加します:
libz.tbd、Security.framework、SystemConfiguration.framework、libsqlite3.tbd
2. 初期化
- Objective-C
- Swift
#import <ThinkingSDK/ThinkingSDK.h>
NSString *appid = @"APPID";
NSString *url = @"SERVER_URL";
//方法1
[TDAnalytics startAnalyticsWithAppId:appid serverUrl:url];
//方法2
TDConfig *config = [[TDConfig alloc] init];
config.appid = appid;
config.serverUrl = url;
[TDAnalytics startAnalyticsWithConfig:config];
// SDK needs to be initialized on the main thread
let appid = "APPID";
let url = "SERVER_URL";
//方法1
TDAnalytics.start(withAppId: appid, serverUrl: url)
//方法2
let config = TDConfig(appId: appid, serverUrl: url)
TDAnalytics.start(with: config)
パラメータの説明:
-
APPID: プロジェクトのAPPIDです。AEの「プロジェクト管理」ページで取得できます -
SERVER_URL: データの送信先URL- クラウドサービスをご利用の場合は、次を入力します: https://global-receiver-ta.thinkingdata.cn
- プライベートデプロイ版をご利用の場合は、データ収集アドレスにドメインをバインドし、HTTPS証明書を設定してください:https://データ収集アドレスにバインドしたドメイン
3. よく使う機能
よく使う機能を使用する前に、まずユーザー識別ルールを確認することをお勧めします。SDKはデフォルトでデバイスID_インストール回数をゲストIDとして使用し、ゲストIDをローカルに永続的に保存します。ユーザーがログインするまでは、ゲストIDが識別IDとして使われます。注意:ゲストIDは、ユーザーがAppを再インストールしたり、デバイスを変更したりすると変わります。
3.1 アカウントIDの設定
ユーザーがログインする際にloginを呼び出して、ユーザーのアカウントIDを設定できます。AEプラットフォームはアカウントIDを識別IDとして使用し、設定したアカウントIDはlogoutを呼び出すまで保持されます。loginを複数回呼び出すと、以前のアカウントIDが上書きされます。
- Objective-C
- Swift
// ユーザーのログイン時の一意の識別子。このデータは送信データの#account_idに対応し、この場合#account_idの値はTDになります
[TDAnalytics login:@"TD"];
// ユーザーのログイン時の一意の識別子。このデータは送信データの#account_idに対応し、この場合#account_idの値はTDになります
TDAnalytics.login("TD")
このメソッドはログインイベントを送信しません
3.2 共通イベントプロパティの設定
共通イベントプロパティとは、すべてのイベントに付与されるプロパティのことです。setSuperPropertiesを呼び出して共通イベントプロパティを設定できます。イベントを送信する前に、共通イベントプロパティを設定しておくことを推奨します。ユーザーの会員レベルや流入チャネルなどの重要なプロパティは、すべてのイベントに設定する必要があります。その場合は、これらのプロパティを共通イベントプロパティとして設定できます。
- Objective-C
- Swift
NSDictionary *superProperties = @{
@"channel": @"ta",
@"age": @1,
@"isSuccess": @YES,
@"birthday": [NSDate date],
@"object": @{
@"key":@"value"
},
@"object_arr":@[
@{
@"key":@"value"
}
],
@"arr": @[@"value"],
};
[TDAnalytics setSuperProperties:superProperties];
var superProperties: [String : Any] = [:]
superProperties["channel"] = "ta"
superProperties["age"] = 1
superProperties["isSuccess"] = true
superProperties["birthday"] = Date()
superProperties["object"] = [
"key": "value"
]
superProperties["object_arr"] = [["key": "value"]]
superProperties["arr"] = ["value"]
TDAnalytics.setSuperProperties(superProperties)
共通イベントプロパティはキャッシュに保存されるため、Appを起動するたびに呼び出す必要はありません。setSuperPropertiesを呼び出して、以前に設定済みの共通イベントプロパティを設定した場合は、以前のプロパティが上書きされます。
- イベントのプロパティは
NSDictionaryオブジェクトで、各要素が1つのプロパティを表します。 - Keyはそのプロパティの名前で、文字列型です。英字で始まり、数字、英字、アンダースコア "_" を含めることができます。最大長は50文字で、英字の大文字と小文字は区別されません。AEはすべて小文字に変換します
- Valueはプロパティの値で、文字列、数値、ブール値、時間、オブジェクト、オブジェクトグループ、配列に対応しています
- ブール型のプロパティを送信する場合は、
@YESと@NO、または[NSNumber numberWithBool:YES]と[NSNumber numberWithBool:NO]で値を代入してください。@true、@false、@TRUE、@FALSEでブール型のデータを代入することはできません。
イベントプロパティとユーザープロパティの要件は、共通イベントプロパティと同じです
3.3 自動収集の有効化
次のコード例では、インストール、起動、終了イベントを有効にしています。SDKの自動収集機能について詳しくは、自動収集機能の詳細を参照してください
- Objective-C
- Swift
[TDAnalytics enableAutoTrack:TDAutoTrackEventTypeAppInstall | TDAutoTrackEventTypeAppStart | TDAutoTrackEventTypeAppEnd];
TDAnalytics.enableAutoTrack([.appStart, .appEnd, .appInstall])
3.4 イベントの送信
trackを呼び出してイベントを送信できます。整理したトラッキングドキュメントに従って、イベントのプロパティと送信条件を設定することをお勧めします。ここでは、ユーザーが商品を購入する場合を例にします:
- Objective-C
- Swift
NSDictionary *eventProperties = @{@"product_name": @"book"};
[TDAnalytics track:@"product_buy" properties:eventProperties];
let properties = ["product_name": "book"] as [String: Any]
TDAnalytics.track("product_buy", properties: properties)
イベント名は文字列型で、英字で始まり、数字、英字、アンダースコア"_"を含めることができます。最大長は50文字です。
3.5 ユーザープロパティの設定
一般的なユーザープロパティは、userSetを呼び出して設定できます。このインターフェースで送信したプロパティは、既存のプロパティ値を上書きします。そのユーザープロパティが以前に存在しない場合は新しく作成され、タイプは渡されたプロパティのタイプと同じになります。ここでは、ユーザー名の設定を例にします:
- Objective-C
- Swift
//この時点で"username"は"ThinkingData"
[TDAnalytics userSet:@{@"username": @"ThinkingData"}];
//この時点で"username"は"TA"
[TDAnalytics userSet:@{@"username": @"TA"}];
//この時点で"username"は"ThinkingData"
TDAnalytics.userSet(["username": "ThinkingData"])
//この時点で"username"は"TA"
TDAnalytics.userSet(["username": "TA"])
4. ベストプラクティス
次のサンプルコードには、上記のすべての操作が含まれています。次の手順で使用することをお勧めします:
- Objective-C
- Swift
if (プライバシーポリシーに同意済み) {
//SDKの初期化
NSString *appid = @"APPID";
NSString *url = @"SERVER_URL";
TDConfig *config = [[TDConfig alloc] init];
config.appid = appid;
config.serverUrl = url;
[TDAnalytics startAnalyticsWithConfig:config];
//自動収集を有効にする
[TDAnalytics enableAutoTrack:TDAutoTrackEventTypeAppInstall | TDAutoTrackEventTypeAppStart | TDAutoTrackEventTypeAppEnd];
[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];
NSDictionary *eventProperties = @{@"product_name": @"book"};
[TDAnalytics track:@"product_buy" properties:eventProperties];
[TDAnalytics userSet:@{@"username": @"ThinkingData"}];
}
if (プライバシーポリシーに同意済み) {
//SDKの初期化
let appid = "app_id";
let url = "server_url";
let config = TDConfig(appId: appid, serverUrl: url)
TDAnalytics.start(with: config)
//自動収集を有効にする
TDAnalytics.enableAutoTrack([.appStart, .appEnd, .appInstall])
TDAnalytics.login("TD")
var superProperties: [String : Any] = [:]
superProperties["channel"] = "ta"
superProperties["age"] = 1
superProperties["isSuccess"] = true
superProperties["birthday"] = Date()
superProperties["object"] = [
"key": "value"
]
superProperties["object_arr"] = [["key": "value"]]
superProperties["arr"] = ["value"]
TDAnalytics.setSuperProperties(superProperties)
let eventProperties : [String: Any] = ["product_name": "book"]
TDAnalytics.track("test", properties: eventProperties)
TDAnalytics.userSet(["level": "1"])
}

