モジュール
利用可能なモジュールのリスト。
Tealium Swiftライブラリはモジュラーなアーキテクチャを基に設計されています。必要なモジュールは、ライブラリが初期化されるときにTealiumConfig
インスタンスで指定する必要があります。
すべてのモジュールはTealiumCore
に依存しています。モジュールは、その目的に応じてCollectors
とDispatchers
に分けられます。
Collectors
Collectorsは、デバイスから補足情報を収集し、それをデータレイヤーに追加してからTealium Customer Data Hubに送信するモジュールです。一部のCollectorsはコアライブラリに含まれていますが、他のものはオプションで、別のモジュールとしてインストールされます。
以下の表は、利用可能なCollectorsを一覧にしたものです。
Collector Name | TealiumConfig Reference |
---|---|
AppData * |
Collectors.AppData |
Attribution |
Collectors.Attribution |
Connectivity * |
Collectors.Connectivity |
Device * |
Collectors.Device |
Crash |
Collectors.Crash |
AutoTracking |
Collectors.AutoTracking |
Lifecycle |
Collectors.Lifecycle |
Location |
Collectors.Location |
VisitorService |
Collectors.VisitorService |
アスタリスク (*
) が付いているモジュールはコアライブラリに含まれています。これらはデフォルトで有効になっていますが、以下に説明するようにTealiumConfig
のcollectors
プロパティを使用して無効にすることもできます。
使用方法
Collector
を追加するには、TealiumConfig
インスタンスのcollectors
プロパティで指定します:
import TealiumCore
import TealiumLifecycle
let config = TealiumConfig(account: "ACCOUNT",
profile: "PROFILE",
environment: "ENVIRONMENT",
datasource: "DATASOURCE")
// Adds desired Collectors. If omitted, default Collectors are added.
config.collectors = [Collectors.AppData, Collectors.Device, Collectors.Connectivity, Collectors.Lifecycle]
デフォルトのcollectorsを使用するだけの場合は、初期化コードからconfig.collectors
行を省略またはコメントアウトします。
新しいcollectorsを追加するときは、配列にCollectors.Device
とCollectors.Connectivity
も含めるようにしてください。そうしないと、これらのcollectorsは無効になります。
AppData collectorは、Tealium Visitor IDなどの重要な情報を収集するため、無効にすることはできません。
カスタムCollectors
一般的にはカスタムcollectorsは必要ありませんが、Collector
プロトコルに準拠する自分自身のクラスを作成することで、カスタムcollectorを作成することが可能です。以下の例は、現在の曜日を収集し、それを各トラッキング呼び出しのデータレイヤーに追加するシンプルなcollectorを示しています。
class MyDateCollector: Collector {
var id = "MyDateCollector"
var data: [String : Any]? {
["day_of_week": dayOfWeek]
}
var context: TealiumContext
required init(context: TealiumContext,
delegate: ModuleDelegate?,
diskStorage: TealiumDiskStorageProtocol?,
completion: (ModuleResult) -> Void) {
self.context = context
}
var dayOfWeek: String {
return "\(Calendar.current.dateComponents([.weekday], from: Date()).weekday ?? -1)"
}
}
// Add collector to your config instance prior to Tealium initialization
class TealiumHelper {
// ...
func startTracking() {
let config = TealiumConfig(account: "ACCOUNT",
profile: "PROFILE",
environment: "ENVIRONMENT",
datasource: "DATASOURCE")
// Add desired Collectors. If omitted, default Collectors are added.
config.collectors = [Collectors.AppData,
Collectors.Lifecycle,
MyDateCollector.self]
self.tealium = Tealium(config: config) { _ in }
}
}
Dispatchers
Dispatchersは、データレイヤーからのデータを送信し、それをTealiumエンドポイントに送信するモジュールです。現在利用可能なdispatchersは以下の通りです:
Dispatcher Name | TealiumConfig Reference |
---|---|
Collect |
Dispatchers.Collect |
RemoteCommands |
Dispatchers.RemoteCommands |
TagManagement |
Dispatchers.TagManagement |
少なくとも1つのdispatcherが必要です。dispatcherが指定されていない場合、データはどこにも送信されません。
使用方法
Dispatcher
を追加するには、TealiumConfig
オブジェクトのdispatchers
プロパティで指定します:
import TealiumCore
import TealiumLifecycle
let config = TealiumConfig(account: "ACCOUNT",
profile: "PROFILE",
environment: "ENVIRONMENT",
datasource: "DATASOURCE")
// Add desired Collectors. Do not include if you want to use compiled Collectors
config.dispatchers = [Dispatchers.Collect]
カスタムDispatchers
一般的にはカスタムdispatchersは必要ありませんが、Dispatcher
プロトコルに準拠する自分自身のクラスを作成することで、カスタムDispatcher
を作成することが可能です。以下の例は、各トラックリクエストのイベント名を印刷するシンプルなdispatcherを示しています。カスタムDispatcher
は、データをTealiumエンドポイントに加えて、自分自身のカスタムエンドポイントに送信したい場合に便利です。
class MyCustomDispatcher: Dispatcher {
var isReady: Bool
var id = "MyCustomDispatcher"
var config: TealiumConfig
required init(config: TealiumConfig, delegate: ModuleDelegate, completion: ModuleCompletion?) {
self.config = config
self.isReady = true
}
func dynamicTrack(_ request: TealiumRequest, completion: ModuleCompletion?) {
switch request {
case let request as TealiumTrackRequest:
print("Track received: \(request.event ?? "no event name")")
// perform track action, e.g. send to custom endpoint
case _ as TealiumBatchTrackRequest:
print("Batch track received")
// perform batch track action, e.g. send to custom endpoint
default:
return
}
}
}
// Add dispatcher to your config instance prior to Tealium initialization
class TealiumHelper {
// ...
func startTracking() {
let config = TealiumConfig(account: "ACCOUNT",
profile: "PROFILE",
environment: "ENVIRONMENT",
datasource: "DATASOURCE")
// add desired Dispatchers
config.dispatchers = [Dispatchers.Collect, MyCustomDispatcher.self]
self.tealium = Tealium(config: config) { _ in }
}
推奨モジュール
基本的な実装
基本的な実装のためには、以下のモジュールのリストが推奨されています。どのTealium製品を使用する予定かにより、少なくとも1つのDispatcher
が有効になっている必要があります。
- AppData Collector
- Device Collector
- Lifecycle Collector
クライアントサイド
基本モジュールに加えて、これらのモジュールはTealiumライブラリがTealium iQを使用してクライアントサイドでデータを処理することを可能にします。
- TagManagement Dispatcher - Tealium iQを使用するために必要
- RemoteCommands Dispatcher - Remote Commands機能が必要な場合のみ必要
サーバーサイド
基本モジュールに加えて、これらのモジュールはライブラリがデータをTealiumのサーバーサイド製品(EventStream、AudienceStream、Event Data Framework)に送信することを可能にします。
- Collect Dispatcher - サーバーサイド製品を使用するために必要
- Visitor Service Collector - Tealium AudienceStreamからVisitor Profilesを取得するために必要。
モジュールのインストール
CocoaPodsまたはCarthageを使用してモジュールをインストールします。
CocoaPods
特定のモジュールを含めるまたは除外する方法については、CocoaPodsでのインストールを参照してください。
Carthage
Carthageでインストールするときは、必要なモジュールを明示的にインポートする必要があります。すべてのモジュールをインポートすることもできますが、必要なモジュールだけをインポートすると、アプリが軽くなります。特定のモジュールを含める/除外する方法については、Carthageでのインストールを参照してください。
Swift Package Manager
特定のモジュールを含めるまたは除外する方法については、Swift Package Managerでのインストールを参照してください。
最終更新日 :: 2024年May月15日