インストール
要件
- Xcode 7 以降
- iOS 9.0 以降、macOS 10.11 以降、watchOS 3.0 以降、tvOS 9.2 以降
- Tealium iQモバイルプロファイル
- Tealium Customer Data Hubアカウント
サンプルアプリ
Tealiumのライブラリ、トラッキングメソッド、ベストプラクティスの実装に精通していただけるよう、Swiftサンプルアプリをご確認いただけるようになっています。
残りのアプリからTealiumの実装を抽出するためにヘルパークラスを使用することを推奨しています。これはトラッキングコールの初期化と実行の一元的なエントリポイントとなるもので、このアプローチにより、1つひとつのViewController
またはSwiftファイルではなく、ヘルパーファイル内でコードをアップデートできるようにもなります。
サンプルヘルパークラスをご確認ください。
インストール
Tealium iOSライブラリはモジュールに分割されています。リソースフットプリントを小さく保てるよう、必要なモジュールのみをインストールすることをお勧めします。iOSで使用可能なモジュールの詳細については、こちらを参照してください。
Tealium for iOSライブラリをSwift Package Manager、CocoaPods、またはCarthageによってインストールします。
同意管理が必要ない場合は、Consent Managerモジュールを除外または無効化してください。Consent Managerモジュールはデフォルトで有効になっており、初期設定ではトラッキングコールが送信されません。トラッキングコールを可能にするには、同意ステータスを.consented
に設定します。
Swift Package Manager(推奨)
バージョン1.9.0以降でサポートされているSwift Package Managerは、Tealium Swiftライブラリをインストールするために推奨される最も簡単な方法です。
- Xcode プロジェクトで、次のように選択していきます: [File] > [Add Package]…> [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 ライブラリをインストールするには:
- プロジェクト ナビゲーターで 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
Tealium for iOSライブラリをCocoaPodsによってインストールするには(推奨):
Tealium Swiftポッド
"tealium-swift"
をPodfileに追加します。モジュールごとにサブスペックがあり、それぞれが「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 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
Tealium for iOS(Swift)をCarthageによってインストールするには:
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セクションに追加しておいてください。そうしないと、アプリが起動時にクラッシュします。
関連するBuild Phasesスクリプトを追加する際は、アプリ提出時に問題が起きないように、Carthageを初めて使う方のためのドキュメントに記載された手順に従ってください。
モジュールについて(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を1回でインポートできる利便性か、モジュール型のインストールによる柔軟性およびパフォーマンス向上かの、どちらかを選ぶ必要がありました。この方法の欠点は、必要なモジュールを個別に追加する必要があることです。
- 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 // required for 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 // enable batching
config.batchSize = 10 // size of batch
config.dispatchAfter = 25 // flush after every 25 events
config.dispatchQueueLimit = 100 // 100 max queued events
config.dispatchExpiration = 5 // events expire/delete after 5 days
// ...
}
}
以下のオプションは、イベントバッチ処理をカスタマイズするために使用できます。
Property | 説明 |
---|---|
batchingEnabled |
イベントバッチ処理を有効または無効にします(デフォルト:false )。 |
batchSize |
単一のバッチリクエストにまとめるイベントの数を設定します(最大:10)。 |
dispatchAfter |
イベント数が何個になったらキーをフラッシュするかを設定します。 |
dispatchExpiration |
バッチの有効期限を日数で設定します。デバイスが長期間オフラインになると、この値よりも古いイベントは削除されます。 |
dispatchQueueLimit |
キューに追加されるイベントの最大数を設定します。この値に達したときに、キューがまだフラッシュされていない場合は、最も古いイベントが削除されます。 |
Tag Management
Tag Managementとイベントバッチ処理が有効になっていると、トラッキングコールは個々のJavaScriptコールとして非表示のWebViewにディスパッチされます。
設定されたタグは個別にトリガーされます。その結果、イベントごとに複数のリクエストがデバイスから送信されます。これにより、リアルタイムイベントを送信するよりも頻繁にデバイスのスリープが頻繁に解除され、デバイスのパフォーマンスが向上します。
Tealium Collect
このエンドポイントは現在、Tealium SDKによって生成されたバッチデータ(独自のバッチ形式)のみを受け入れます。
このページはお役にたちましたでしょうか?
最終更新日 :: 2022年August月29日