インストール
iOS(Swift)用のTealium SDKのインストール方法
最新のTealium for iOSはSwift 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アカウント
サンプルアプリ
Swiftのサンプルアプリを使って、Tealiumライブラリ、トラッキングメソッド、およびベストプラクティスの実装に慣れるのに役立ちます。
Tealiumの実装をアプリの他の部分から抽象化するために、ヘルパークラスの使用を推奨します。これにより、初期化とトラッキング呼び出しのための単一のエントリポイントが提供されます。また、ヘルパーファイルのコードを更新するだけで、すべてのViewController
またはSwiftファイルを更新する必要はありません。
サンプルヘルパークラスをご覧ください。
インストール
Tealium iOSライブラリはモジュールに分割されています。リソースの使用量を減らすために、必要なモジュールのみをインストールすることをお勧めします。iOSで利用可能なモジュールについては、詳細をご覧ください。
Swift Package Manager、CocoaPods、またはCarthageを使用してTealium for iOSライブラリをインストールします。
同意管理が不要な場合は、同意管理モジュールを除外または無効にしてください。同意管理モジュールはデフォルトで有効になっており、最初はトラッキング呼び出しが送信されないようになっています。トラッキング呼び出しを許可するには、同意ステータスを.consented
に構成してください。
Swift Package Manager(推奨)
バージョン1.9.0以上でサポートされているSwift Package Managerは、Tealium Swiftライブラリをインストールするための推奨される最も簡単な方法です。
- Xcodeプロジェクトで、ファイル > パッケージの追加… > パッケージの依存関係を追加を選択します。
- リポジトリのURL
https://github.com/tealium/tealium-swift
を入力します。 - バージョンルールを構成します。通常は
Up to next major
が推奨されます。現在のTealium Swiftライブラリのバージョンがリストに表示されない場合は、Swiftパッケージキャッシュをリセットしてください。 - インストールするモジュールを選択し、モジュールをインストールするアプリのターゲットを選択します。
プロジェクトに複数のアプリターゲットがあり、複数のアプリターゲットでTealium Swiftライブラリが必要な場合は、Frameworks、Libraries、およびEmbedded Contentセクションに手動で追加する必要があります。
追加のアプリターゲットにTealium Swiftライブラリをインストールするには:
- Project NavigatorでXcodeプロジェクトを選択します。
- Xcodeプロジェクトで、TARGETSセクションのアプリターゲットを選択します。
- General > Frameworks、Libraries & Embedded Contentに移動し、Tealium Swiftライブラリをアプリターゲットに追加します。
Swift Package Managerには以下の制限があります。
- 単一のターゲット内の混在言語ソースがないため、
CrashReporter
およびAutoTracking
モジュールはSwift Package Managerを介してサポートされていません。これらのモジュールが必要ないことを確認してから、Swift Package Managerを使用してください。 - パッケージ内のターゲットを特定のプラットフォームに制限することはできません。iOSのみでサポートされている
TagManagement
などのモジュールも、非iOSのターゲットで利用できるようになります。これらのモジュールの1つを非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, '9.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/TealiumTagManagement' # to install individual modules only, use subspecs end
-
必要なモジュールを追加したら、次のコマンドを実行します:
pod install
コマンドが正しいPodを見つけられない場合は、コマンド
pod repo update
を実行してみてください。-
.xcworkspace
ファイルを使用してXcodeプロジェクトを開きます(.xcodeproj
ファイルは使用しないでください)。 -
インポートするモジュールの数に関係なく、Tealiumをインスタンス化するファイルに次のインポートステートメントを追加します:
import TealiumSwift
-
推奨されるPodfile
以下は推奨されるPodfileです。
Podfileで特定のモジュールを無効にするには、Podfileでコメントアウトしてください。
# Podfile
# replace CPodTest with your target
target 'CPodTest' do
# Comment the next line if you're not using Swift and don't
# want to use dynamic frameworks
use_frameworks!
# Pods for CPodTest
# *** Recommended minimum:
# Only disable if you're sure you don't need them. ***
# All pods depend on Core. Supports all platforms.
pod "tealium-swift/Core"
# All platforms. Provides important info about
# the app bundle.
pod "tealium-swift/TealiumAppData"
# All platforms. Sends data to Tealium Customer Data Hub.
pod "tealium-swift/TealiumCollect"
# All platforms. Assists with GDPR/privacy compliance.
pod "tealium-swift/TealiumConsentManager"
# iOS, macOS, tvOS only. Detects connectivity state and queues track calls while offline.
# Should be used in conjunction with TealiumDispatchQueue module.
pod "tealium-swift/TealiumConnectivity"
# DataSource is included in the Core for Swift 1.8.0+. Uncomment for prior versions.
# All platforms. Adds "tealium_datasource" to each dispatch, and extends TealiumConfig class.
# pod "tealium-swift/TealiumDataSource"
# FileStorage is included in the Core for Swift 1.8.0+. Uncomment for prior versions.
# All platforms. Stores persistent data to File Storage.
# Bundles PersistentData module.
# Should not be used if DefaultsStorage module is in use.
# Pick the option that best suits you.
# pod "tealium-swift/TealiumFileStorage"
# All platforms. Enables the use of delegates
# and completion handlers on the Tealium class.
pod "tealium-swift/TealiumDelegate"
# All platforms. Adds device information to each dispatch.
pod "tealium-swift/TealiumDeviceData"
# All platforms. Enables offline storage of queued events.
# (required for Consent, Connectivity).
pod "tealium-swift/TealiumDispatchQueue"
# All platforms. Add app lifecycle information to each dispatch.
pod "tealium-swift/TealiumLifecycle"
# All platforms. Enables logging information to the LLDB console.
pod "tealium-swift/TealiumLogger"
# iOS only. Used with the TagManagement module to trigger Remote Commands
pod "tealium-swift/TealiumRemoteCommands"
# iOS only. Enables Tealium iQ Tag Management.
pod "tealium-swift/TealiumTagManagement"
# All platforms. Adds important data to each dispatch, and enables temporary storage of data for the current session.
pod "tealium-swift/TealiumVolatileData"
# *** Optional modules: You may not need these modules. Enable as required. *** #
# iOS Only. Gathers app attribution data and advertising IDs.
# pod "tealium-swift/TealiumAttribution"
# iOS and tvOS only. Generally not recommended. See separate notes in module documentation.
# pod "tealium-swift/TealiumAutotracking"
# DefaultStorage is included in the Core for Swift 1.8.0+. Uncomment for prior versions.
# All platforms. Stores persistent data to UserDefaults. Bundles PersistentData module. Should not be used if FileStorage module is in use.
# pod "tealium-swift/TealiumDefaultsStorage"
# iOS only. Reports detailed crash information. Installs separate TealiumCrashReporter dependency (based on PLCrashReporter).
# pod "tealium-swift/Crash"
end
完全なPodfile
完全なPodfileは、すべてのモジュールを含むTealium for iOS(Swift)をインポートします。
# Uncomment the next line to define a global platform for your project
platform :ios, '9.0'
target 'CPodTest' do
# Comment the next line if you're not using Swift and don't want to use dynamic frameworks
use_frameworks!
# Pods for CPodTest
# new entry for Tealium pod
pod 'tealium-swift'
end
特定のモジュールを無効にするには、TealiumConfig
クラスのTealiumModulesList
構造体と関連するメソッドを参照して、モジュールをブラックリストに登録します。
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ドキュメントにリストされている手順に従って、関連するビルドフェーズスクリプトを追加します。
モジュールについて(1.6.5+)
バージョン1.6.5以降、Tealium Swift SDKは個別のモジュール/フレームワークに分割されています。これにより、使用するモジュールのフレームワークのみをインポートする必要があります。これにより、バイナリサイズが減少し、アプリのパフォーマンスが向上します。
モジュールのインポートステートメント
import TealiumCore // required for Tealium, TealiumConfig, TealiumInstanceManager
import TealiumVolatileData // required if you wish to store volatile data through the Volatile Data API
//import TealiumFileStorage // Included in TealiumCore for Swift 1.8.0+. Import for prior versions.
//import TealiumDefaultsStorage // Included in TealiumCore for Swift 1.8.0+. Import for prior versions if you need to store persistent data
import TealiumRemoteCommands // required if you need to interact with the Remote Commands API
import TealiumDelegate // required if you need to set up a tracking delegate
//import TealiumDataSource // Included in TealiumCore for Swift 1.8.0+. Import for prior versions to
// allow datasource param to be set on the TealiumConfig class instance
import TealiumLifecycle // only required if you need to manually call the Lifecycle API
Carthageの制限により、SDK全体をインポートする便利さと、完全にモジュール化されたインストールの柔軟性とパフォーマンスの向上の間で選択する必要がありました。これにより、使用するモジュールを個別に追加する必要があるため、手間がかかることがあります。
- Carthageはすべてのモジュールをビルドし、結果の
.framework
ファイルをCarthageのビルドディレクトリに出力します。 - 不要なモジュールを削除し、必要なモジュールをXcodeにドラッグします。
推奨されるモジュールリストについての詳細は、モジュールを参照してください。
初期化
Tealium
クラスの初期化を管理することをお勧めします。これにより、Tealium iOSライブラリの単一のエントリポイントが提供され、将来のアップグレードが簡素化されます。
Tealiumを初期化するには、TealiumConfig
インスタンスをTealium()
コンストラクタに渡します。次の例に示すようにします。
class TealiumHelper {
static let shared = TealiumHelper()
var tealium: Tealium?
private init() {
initTealium()
}
private func initTealium() {
let config = TealiumConfig(account: "ACCOUNT",
profile: "PROFILE",
environment: "ENVIRONMENT",
datasource: "DATASOURCE")
// add config options as required
config.setLogLevel(.verbose)
// initialize and keep a reference to Tealium
tealium = Tealium(config: config) { moduleResponses in
// Completion block; perform post-init tasks here
}
}
}
バージョン1.9.0以上では、モバイルパブリッシュ構成がデフォルトで有効になっており、使用しない場合は無効にする必要があります。iQ Tag Managementでモバイルパブリッシュ構成を構成するか、config.shouldUseRemotePublishSettings = false
を使用して無効にしてください。
ログレベル
ログレベルを構成するには、setLogLevel()
メソッドを使用して、TealiumConfig
インスタンスに次のいずれかの値を指定します。
none
.errors
.warnings
.verbose
デバッグ目的であれば、.verbose
が推奨されます。次の例に示すようにします。
config.setLogLevel(.verbose)
イベントバッチング
バージョン1.9.0以前では、Tealium Swiftライブラリはモバイルパブリッシュ構成を使用していませんでした。そのため、SDKの初期化時にイベントバッチングを有効にして構成する必要があります。バージョン1.9.0以降では、モバイルパブリッシュ構成のサポートが提供され、イベントバッチングをリモートで構成できるようになりました。
次の例では、イベントバッチングを有効にし、バッチサイズとキューサイズを構成しています。
import TealiumDispatchQueue // event batching optionsを使用するために必要
class TealiumHelper {
var tealium: Tealium?
// ...
private func initTealium() {
let config = TealiumConfig(account: "ACCOUNT",
profile: "PROFILE",
environment: "ENVIRONMENT",
datasource: "DATASOURCE")
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呼び出しとして非表示のWebビューに送信されます。
構成されたタグは個別にトリガされ、イベントごとに複数のリクエストがデバイスから送信されます。これにより、リアルタイムのイベントを送信するよりもデバイスのパフォーマンスが向上します。
Tealium Collect
このエンドポイントは現在、Tealium SDKによって生成されたバッチデータのみを、独自のバッチ形式で受け入れています。
最終更新日 :: 2024年March月29日