インストール
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 Customer Data Hubアカウント
サンプルアプリ
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 Packages… > Add Package Dependency」を選択します。
- リポジトリのURL
https://github.com/tealium/tealium-swift
を入力します。 - バージョンルールを設定します。通常は、「Up to next major」が推奨されます。現在のTealium Swiftライブラリのバージョンがリストに表示されない場合は、Swiftパッケージキャッシュをリセットします。
- インストールするモジュールを選択し、モジュールをインストールするアプリのターゲットを選択します。
プロジェクトに複数のアプリターゲットがあり、複数のアプリターゲットでTealium Swiftライブラリが必要な場合は、Frameworks, Libraries, and Embedded Contentセクションに手動で追加する必要があります。
追加のアプリターゲットにTealium Swiftライブラリをインストールするには、次の手順を実行します。
- Project NavigatorでXcodeプロジェクトを選択します。
- Xcodeプロジェクトで、TARGETSセクションのアプリターゲットを選択します。
- General > Frameworks, Libraries & Embedded Contentに移動し、Tealium Swiftライブラリをアプリターゲットに追加します。
Swift Package Managerは、パッケージ内のターゲットを特定のプラットフォームに制限することはできません。たとえば、iOSのみでサポートされるTagManagement
などのモジュールは、非iOSターゲットでも利用できるようになります。これらのモジュールは、理論的にはSPMを使用して非iOSターゲットに追加できますが、これらのターゲットにモジュールを追加すると、使用できないシステムライブラリのためにコンパイラがエラーをスローします。この制限は、iOS専用のモジュールはiOSアプリにのみ追加する必要があるため、ユーザーには影響しません。
CocoaPods
CocoaPodsを使用してTealium for iOSライブラリをインストールするには(推奨):
-
PodfileにTealium Swiftポッド
"tealium-swift"
を追加します。各モジュールには、それぞれ「Core」モジュールに依存するサブスペックがあります。サブスペックを指定しない場合、デフォルトですべてのモジュールがインストールされます。# Uncomment the next line to define a global platform for your project platform :ios, '11.0' target 'CPodTest' do # Comment the next line if you don't want to use dynamic frameworks use_frameworks! # Pods for CPodTest # new entry for Tealium pod pod 'tealium-swift' # all modules # pod 'tealium-swift/TagManagement' # to install individual modules only, use subspecs end
-
必要なモジュールを追加したら、次のコマンドを実行します:
pod install
コマンドが正しいPodを見つけられない場合は、コマンド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"
# *** オプションのモジュール: これらのモジュールは必要ない場合があります。必要に応じて有効にしてください。 *** #
# Visitor AudienceおよびAttribute情報をアプリに提供します
# 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を使用してTealium for iOS(Swift)をインストールするには:
-
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 iOSライブラリの単一のエントリポイントが提供され、将来のアップグレードが簡素化されます。
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
// 必要なCollectorsを追加
config.collectors = [Collectors.Lifecycle,
Collectors.Location,
Collectors.VisitorService]
// 必要なDispatchersを追加
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 Tag Managementでモバイルパブリッシュ設定を構成するか、config.shouldUseRemotePublishSettings = false
を使用して無効にしてください。
ログレベル
ログレベルを設定するには、TealiumConfig
インスタンスのlogLevel
プロパティを設定します:
config.logLevel = .debug // .info、.error、.fault、.silentも指定できます
デバッグ目的では、.debug
が推奨されます。
デフォルトのログタイプはOSLog
ですが、TealiumConfig
オブジェクトの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のプロキシが含まれており、ディープリンクを自動的にトラッキングし、Mobile Trace Toolを使用してTealiumトレースセッションを開始します。この機能を使用しない場合は、TealiumConfig
インスタンスのappDelegateProxyEnabled
プロパティをfalse
に設定してください。
config.appDelegateProxyEnabled = false
イベントバッチング
イベントバッチングは、TealiumConfig
インスタンスでローカルに設定するか、Mobile Publish Settingsを使用して設定できます。ローカルの設定はリモートの設定を上書きします。
次の例では、イベントバッチングを有効にし、バッチサイズとキューサイズを設定しています。
class TealiumHelper {
var tealium: Tealium?
// ...
private init() {
config.batchingEnabled = true // バッチングを有効にする
config.batchSize = 10 // バッチのサイズ
config.dispatchAfter = 25 // 25回のイベント後にキューをフラッシュする
config.dispatchQueueLimit = 100 // キューに格納できる最大イベント数
config.dispatchExpiration = 5 // 5日後にイベントが期限切れ/削除される
// ...
}
}
イベントバッチングをカスタマイズするために使用できるオプションは次のとおりです。
プロパティ | 説明 |
---|---|
batchingEnabled |
イベントバッチングを有効または無効にします(デフォルト:false )。 |
batchSize |
1つのバッチリクエストに結合するイベントの数を設定します(最大:10)。 |
dispatchAfter |
キューがフラッシュされるまでのイベント数を設定します。 |
dispatchExpiration |
バッチの有効期限を日数で設定します。デバイスが長時間オフラインの場合、この期限を超えたイベントは削除されます。 |
dispatchQueueLimit |
キューに格納できる最大イベント数を設定します。この数に達した場合、キューがフラッシュされずに最も古いイベントが削除されます。 |
タグ管理
タグ管理とイベントバッチングが有効になっている場合、トラッキングコールは個別のJavaScriptコールとして非表示のWebViewにディスパッチされます。
設定されたタグは個別にトリガされ、イベントごとに複数のリクエストがデバイスを出ます。これにより、リアルタイムイベントを送信するよりもデバイスのパフォーマンスが向上します。
Tealium Collect
このエンドポイントは現在、Tealium SDKによって生成されたバッチデータのみを、独自のバッチ形式で受け入れます。
最終更新日 :: 2024年April月17日