インストール
Tealium SDK for iOS (Swift) のインストール方法を学ぶ。
現在のTealium for Swift SDKのバージョンは2.xです。以前のバージョンについては、Swift 1.xまたはObjective-Cを参照してください。Swiftコードは既存のObjective-Cファイルと同じプロジェクト内で共存し、Objective-C APIへの完全なアクセスが可能で、採用が容易です。
要件
- Xcode 7.0+
- iOS 9.0+, macOS 10.11+, watchOS 3.0+, tvOS 9.2+
- Tealium iQモバイルプロファイル
- Tealiumカスタマーデータハブアカウント
サンプルアプリ
iOS (Swift) のサンプルアプリを探索して、Tealiumライブラリ、トラッキング方法、およびベストプラクティスの実装に慣れることができます。
Tealiumの実装をアプリの他の部分から抽象化するために、ヘルパークラスの使用をお勧めします。これにより、初期化およびトラッキング呼び出しを行うための単一のエントリーポイントが提供されます。また、ヘルパーファイルのコードを更新することで、すべてのView
やSwiftファイルでコードを更新する必要がなくなります。
私たちのサンプルヘルパークラスを探索してください。
インストール
Tealium iOSライブラリはモジュールに分かれています。リソースフットプリントを小さく保つために、必要なモジュールのみをインストールすることをお勧めします。iOS用の利用可能なモジュールについて詳しくはこちら。
Tealium for iOSライブラリは、Swift Package Manager、CocoaPods、またはCarthageでインストールします。
Swift Package Manager (推奨)
Swift Package Managerは、Tealium Swiftライブラリをインストールするための推奨される最も簡単な方法です:
- Xcodeプロジェクトで、File > Add Package Dependenciesを選択します。
- リポジトリURLを入力します:
https://github.com/tealium/tealium-swift
- バージョンルールを構成します。通常は
Up to next major
が推奨されます。現在のTealium Swiftライブラリバージョンがリストに表示されない場合は、Swiftパッケージキャッシュをリセットしてください。 - インストールするモジュールを選択し、モジュールをインストールするアプリターゲットを選択します。
プロジェクトに複数のアプリターゲットがあり、複数のアプリターゲットにTealium Swiftライブラリが必要な場合は、Frameworks and Librariesセクションで手動で追加する必要があります。
追加のアプリターゲットにTealium Swiftライブラリをインストールするには:
- Project NavigatorでXcodeプロジェクトを選択します。
- Xcodeプロジェクトで、TARGETSセクションのアプリターゲットを選択します。
- Frameworks and Librariesに移動し、アプリターゲットに追加するTealium Swiftライブラリを選択します。
Swift Package Managerは、パッケージ内のターゲットを特定のプラットフォームに制限することはできません。たとえば、iOSのみに対応するTagManagement
などのモジュールは、非iOSターゲットにもSPM経由でXCodeに利用可能になりますが、システムライブラリが利用不可能であるため、これらのターゲットにモジュールを追加するとコンパイラがエラーを投げます。この制限は、iOS専用モジュールはiOSアプリにのみ追加されるべきであるため、ユーザーに影響を与えるべきではありません。
CocoaPods
CocoaPodsでTealium for iOSライブラリをインストールするには(推奨):
-
PodfileにTealium Swift pod
"tealium-swift"
を追加します。それぞれのモジュールにはサブスペックがあり、それぞれが"Core"モジュールに依存しています。サブスペックを指定しない場合、デフォルトですべてのモジュールがインストールされます。# 次の行のコメントを外してプロジェクトのグローバルプラットフォームを定義します platform :ios, '11.0' target 'CPodTest' do # 動的フレームワークを使用したくない場合は、次の行のコメントを外します use_frameworks! # CPodTestのPods # Tealium podの新しいエントリ pod 'tealium-swift' # すべてのモジュール # pod 'tealium-swift/TagManagement' # 個々のモジュールのみをインストールする場合は、サブスペックを使用します end
-
必要なモジュールを追加したら、次のコマンドを実行します:
pod install
コマンドが正しいPodsを見つけられない場合は、pod repo update
コマンドを実行してください。
-
.xcworkspace
ファイルを使用してXcodeプロジェクトを開きます(.xcodeproj
ファイルは使用しないでください)。 -
Tealiumをインスタンス化する予定のファイルに次のインポートステートメントを追加します:
import TealiumSwift
推奨されるPodfile
Podfileに追加する推奨モジュールのリストは次のとおりです:
Podfileから特定のモジュールを無効にするには、#
を使用してPodfile内の行をコメントアウトするか、行を削除します。
# ...
# *** 推奨される最小限:
# すべてのポッドはCoreに依存します。すべてのプラットフォームをサポートします。
pod "tealium-swift/Core"
pod "tealium-swift/Lifecycle"
pod "tealium-swift/Collect" # サーバーサイド製品用。例:EventStream - 通常はこれまたはTealiumTagManagementですが、両方を使用することはあまりありません
# または
pod "tealium-swift/TagManagement" # Tealium iQ用
pod "tealium-swift/RemoteCommands"
# *** オプションのモジュール:これらのモジュールが必要ない場合があります。必要に応じて有効にしてください。 *** #
# アプリに訪問のオーディエンスと属性情報を提供します
# pod "tealium-swift/VisitorService"
# iOSのみ。アプリの帰属データと広告IDを収集します。
# pod "tealium-swift/Attribution"
# iOSとtvOSのみ。一般的には推奨されません。モジュールドキュメントの別のメモを参照してください。
# pod "tealium-swift/Autotracking"
# モジュールドキュメントの別のメモを参照してください。
# pod "tealium-swift/Location"
# iOSのみ。詳細なクラッシュ情報を報告します。
# 別のTealiumCrashReporter依存関係をインストールします(PLCrashReporterに基づいています)。
# pod "TealiumCrashModule"
# ...
Carthage
CarthageでiOS (Swift) のTealiumをインストールするには:
-
Cartfileに次の内容を追加します:
github "tealium/tealium-swift"
-
iOS、macOS、tvOS、watchOS用のフレームワークを生成するには、次のコマンドを実行します:
carthage update
-
特定のプラットフォーム、たとえばiOSのみをビルドし、初回ビルド後の後続のビルドを高速化するには、Carthageの
--platform
引数を使用します:carthage update --platform ios --cache-builds
-
必要なフレームワークをXcodeプロジェクトのGeneral > Embedded Binariesセクションにドラッグします。
Tealiumフレームワークがプロジェクト構成のEmbedded Binariesセクションに追加されたことを確認してください。そうでない場合、アプリは起動時にクラッシュします。
- アプリを提出する際に問題が発生しないように、Carthage Getting Startedドキュメントに記載されている関連するビルドフェーズスクリプトを追加する手順に従ってください。
モジュールのインポート
Tealium Swift SDKは、複数のモジュール/フレームワークに分割されています。バイナリサイズを減らし、アプリのパフォーマンスを向上させるために、必要なモジュールのみをインポートしてください。
モジュールインポートステートメント
- TealiumCore - Tealium、TealiumConfig、TealiumInstanceManagerに必要
- TealiumTagManagement - Tealium iQへのトラックコールをディスパッチするために必要
- TealiumCollect - TealiumのCustomer Data Hubへのトラックコールをディスパッチするために必要
- TealiumRemoteCommands - リモートコマンドAPIとのやり取りが必要な場合に必要
- TealiumLifecycle - ライフサイクルイベントと関連データを収集する必要がある場合に必要
import TealiumCore
import TealiumTagManagement
import TealiumCollect
import TealiumRemoteCommands
import TealiumLifecycle
Carthageの制限のため、SDK全体をインポートする利便性と、完全にモジュール化されたインストールの柔軟性とパフォーマンス向上を選択する必要がありました。これによるデメリットは、使用したい各モジュールを個別に追加する必要があることです。
- Carthageは_すべて_のモジュールをビルドし、結果の
.framework
ファイルをCarthageビルドディレクトリに出力します。 - 不要なモジュールを削除し、必要なモジュールをXcodeにドラッグします。
詳細については、推奨されるモジュールリストに関するモジュールを参照してください。
初期化
Tealiumを初期化するには、TealiumConfig
インスタンスを Tealium()
コンストラクタに渡します。
Tealium iOSライブラリの単一のエントリーポイントを提供し、将来のアップグレードを簡素化するトラッキングヘルパークラスを使用して、Tealium
インスタンスを管理します。
class TealiumHelper {
static let shared = TealiumHelper()
let config = TealiumConfig(account: "ACCOUNT",
profile: "PROFILE",
environment: "ENVIRONMENT",
datasource: "DATASOURCE")
var tealium: Tealium?
private init() {
// 必要な構成オプションを追加
config.batchingEnabled = true
config.logLevel = .debug
// 必要なコレクターを追加
config.collectors = [Collectors.Lifecycle,
Collectors.Location,
Collectors.VisitorService]
// 必要なディスパッチャーを追加
config.dispatchers = [Dispatchers.TagManagement,
Dispatchers.RemoteCommands]
tealium = Tealium(config: config)
// オプションの初期化後の処理
tealium?.dataLayer.add(key: "mykey", value: "myvalue", expiry: .forever)
}
public func start() {
_ = TealiumHelper.shared
}
class func trackView(title: String, data: [String: Any]?) {
let tealView = TealiumView(title, dataLayer: data)
TealiumHelper.shared.tealium?.track(tealView)
}
class func trackEvent(title: String, data: [String: Any]?) {
let tealEvent = TealiumEvent(title, dataLayer: data)
TealiumHelper.shared.tealium?.track(tealEvent)
}
}
次の項目を置き換えてください:
ACCOUNT
: ライブラリを初期化するために使用するTealiumアカウント名(小文字で)。PROFILE
: ライブラリを初期化するために使用するTealiumプロファイル名(小文字で)。ENVIRONMENT
: Tealiumを初期化する環境。DATASOURCE
: 使用するTealiumデータソース。
モバイル公開構成はデフォルトで有効になっており、使用しない場合は無効にする必要があります。iQタグ管理でモバイル公開構成を構成するか、config.shouldUseRemotePublishSettings = false
を使用して無効にします。
ログレベル
ログレベルを構成するには、TealiumConfig
インスタンスのlogLevel
プロパティを構成します:
config.logLevel = .debug // または .info, .error, .fault, .silent
デバッグ目的では、.debug
が推奨されます。
デフォルトのログタイプはOSLog
ですが、logType
プロパティを更新することで.print
に変更することができます:
config.logType = .print
また、TealiumLogger
を使用する代わりに、Logger
クラスをTealiumLoggerProtocol
に準拠させ、そのクラスのインスタンスをTealiumConfig
オブジェクトのlogger
プロパティに構成することで、独自のロガーを追加することも可能です。以下はその例です:
class CustomLogger: TealiumLoggerProtocol {
// ... TealiumLoggerProtocolに準拠
// さらに独自のメソッド
}
class TealiumHelper {
let customLogger = CustomLogger()
var tealium: Tealium?
// ...
private init() {
config.logger = customLogger
// ...
}
}
AppDelegateプロキシ
デフォルトでは、Tealium SwiftライブラリにはアプリのAppDelegateのプロキシが含まれており、自動的にディープリンクを追跡し、モバイルトレースツールを使用してTealiumトレースセッションを開始します。この機能を使用したくない場合は、TealiumConfig
インスタンスのappDelegateProxyEnabled
プロパティをfalse
に構成します。
config.appDelegateProxyEnabled = false
イベントバッチ処理
イベントバッチ処理は、TealiumConfig
インスタンスでローカルに構成するか、モバイル公開構成を使用して構成します。ローカル構成はリモート構成を上書きします。
この例では、イベントバッチ処理を有効にし、バッチサイズとキューサイズを構成します。
class TealiumHelper {
var tealium: Tealium?
// ...
private init() {
config.batchingEnabled = true // バッチ処理を有効にする
config.batchSize = 10 // バッチのサイズ
config.dispatchAfter = 25 // 25イベントごとにフラッシュ
config.dispatchQueueLimit = 100 // 最大100イベントをキューに入れる
config.dispatchExpiration = 5 // イベントの有効期限は5日
// ...
}
}
イベントバッチ処理をカスタマイズするための以下のオプションが利用可能です。
プロパティ | 説明 |
---|---|
batchingEnabled |
イベントバッチ処理を有効または無効にします(デフォルト:false )。 |
batchSize |
単一のバッチリクエストに組み合わせるイベントの数を構成します(最大:10)。 |
dispatchAfter |
キューがフラッシュされるイベント数を構成します。 |
dispatchExpiration |
バッチの有効期限を日数で構成します。デバイスが長期間オフラインの場合、この期間を超える古いイベントは削除されます。 |
dispatchQueueLimit |
キューに入れることができるイベントの最大数を構成します。この数に達し、キューがフラッシュされていない場合、最も古いイベントが削除されます。 |
タグ管理
タグ管理とイベントバッチ処理が有効になっている場合、トラッキングコールは個々のJavaScriptコールとして隠されたWebViewにディスパッチされます。
構成されたタグは個別にトリガーされ、デバイスからの複数のリクエストが発生します。これにより、リアルタイムイベントを送信するよりもデバイスの起動頻度が少なくなり、デバイスのパフォーマンスが向上します。
Tealium Collect
このエンドポイントは現在、Tealium SDKによって生成されたバッチデータのみを独自のバッチ形式で受け付けています。
最終更新日 :: 2025年July月30日