インストール
要件
- Xcode 7 以降
- iOS 9.0 以降、macOS 10.11 以降、watchOS 3.0 以降、tvOS 9.2 以降
- Tealium iQモバイルプロファイル
- Tealium Customer Data Hubアカウント
サンプルアプリ
Tealium のライブラリ、トラッキング メソッド、ベストプラクティスの実装に精通していただけるよう、iOS (Swift) サンプル アプリ をご確認いただけるようになっています
残りのアプリからTealiumの実装を抽出するためにヘルパークラスを使用することを推奨しています。これはトラッキングコールの初期化と実行の一元的なエントリポイントとなるもので、このアプローチにより、1 つひとつの 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…]> [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 には、次の制限事項があります。
- 混合言語のソースは単一のターゲットに存在しないため、
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, '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 repo update
を実行してみてください。.xcworkspace
ファイルを使用してXcodeプロジェクトを開きます(.xcodeproj
ファイルは使用しないでください)。任意の数のモジュールをインポートするには、Tealiumのインスタンス化の元にするファイルに次のインポートステートメントを追加します。
import TealiumSwift
推奨Podfile
以下は、プロファイルを追加するための推奨モジュールのリストです。
特定のモジュールを Podfile から無効化するには、Podfile で #
を使用してコメント アウトするか、または行を削除します。
# ...
# *** Recommended minimum:
# All pods depend on Core. Supports all platforms.
pod "tealium-swift/Core"
pod "tealium-swift/Lifecycle"
pod "tealium-swift/Collect" # for Server-side products, e.g. EventStream - usually this or TealiumTagManagement, but not often both
# OR
pod "tealium-swift/TagManagement" # for Tealium iQ
pod "tealium-swift/RemoteCommands"
# *** Optional modules: You may not need these modules. Enable as required. *** #
# Provides Visitor Audience and Attiribute information back to the app
# pod "tealium-swift/VisitorService"
# iOS Only. Gathers app attribution data and advertising IDs.
# pod "tealium-swift/Attribution"
# iOS and tvOS only. Generally not recommended. See separate notes in module documentation.
# pod "tealium-swift/Autotracking"
# See separate notes in module documentation.
# pod "tealium-swift/Location"
# iOS only. Reports detailed crash information.
# Installs separate TealiumCrashReporter dependency (based on PLCrashReporter).
# pod "TealiumCrashModule"
# ...
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 を初めて使う方のための ドキュメントに記載された手順に従ってください。
モジュールのインポート
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を1回でインポートできる利便性か、モジュール型のインストールによる柔軟性およびパフォーマンス向上かの、どちらかを選ぶ必要がありました。この方法の欠点は、必要なモジュールを個別に追加する必要があることです。
- Carthageは_全_モジュールをビルドし、結果の
.framework
ファイルをCarthageビルドディレクトリに出力します。 - 不要なモジュールをすべて削除して、必要なモジュールをXcodeにドラッグします。
推奨されるモジュール一覧の詳細については、「モジュール」を参照してください。
初期化
Tealium を初期化するには、 TealiumConfig
インスタンスを Tealium()
コンストラクタに渡します。
トラッキング ヘルパー クラスを用いて Tealium
インスタンスを管理します。これにより、Tealium iOS ライブラリの単一のエントリ ポイントが提供され、今後のアップグレードが簡素化されます。
class TealiumHelper {
static let shared = TealiumHelper()
let config = TealiumConfig(account: "ACCOUNT",
profile: "PROFILE",
environment: "ENVIRONMENT",
datasource: "DATASOURCE")
var tealium: Tealium?
private init() {
// add necessary config options
config.batchingEnabled = true
config.logLevel = .debug
// add desired Collectors - no need to include if want all compiled collectors
config.collectors = [Collectors.Lifecycle,
Collectors.Location,
Collectors.VisitorService]
// add desired Dispatchers - no need to include if want compiled dispatchers
config.dispatchers = [Dispatchers.TagManagement,
Dispatchers.RemoteCommands]
tealium = Tealium(config: config)
// optional post init processing
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)
}
}
モバイル公開設定はデフォルトで有効になっており、使用しない場合は無効にする必要があります。モバイル公開設定を iQ タグ管理で設定するか、 config.shouldUseRemotePublishSettings = false
を使用して無効化します。
ログレベル
ログ レベルを設定するには、 logLevel
プロパティを TealiumConfig
インスタンスで設定します:
config.logLevel = .debug // or .info, .error, .fault, .silent
デバッグ目的のため、 .debug
が推奨されます。
使用されるデフォルト ログ タイプは、 OSLog
ですが、これは、 .print
を用いるために修正可能です。そのためには、 logType
プロパティを、 TealiumConfig
オブジェクトで更新します。
config.logType = .print
TealiumLogger
を使わずに、独自のロガーを追加することも可能です。このためには、 Logger
クラスを TealiumLoggerProtocol
に準拠させ、当該クラスのインスタンスを、 logger
プロパティ (TealiumConfig
オブジェクトで) に設定します。以下に例を示します。
class CustomLogger: TealiumLoggerProtocol {
// ... conforming to the TealiumLoggerProtocol
// plus your own custom methods
}
class TealiumHelper {
let customLogger = CustomLogger()
var tealium: Tealium?
// ...
private init() {
config.logger = customLogger
// ...
}
}
AppDelegate プロキシ
デフォルトでは、Tealium Swift ライブラリには、アプリの AppDelegate 用のプロキシが含まれています。これは、ディープリンクを自動的にトラッキングし、 Mobile Trace Toolを使用して Tealium トレース セッションを開始するものです。この機能を使用しない場合は、 appDelegateProxyEnabled
プロパティを false
(TealiumConfig
インスタンスで) 設定します。
config.appDelegateProxyEnabled = false
イベントバッチ処理
イベント バッチ処理は、ローカルの TealiumConfig
インスタンスで行うか、または モバイル公開設定を使用して行うかのいずれかで設定します。ローカル設定は、リモート設定をオーバーライドします。
この例は、イベントバッチ処理を有効にし、バッチサイズとキューサイズを設定する方法を示しています。
class TealiumHelper {
var tealium: Tealium?
// ...
private init() {
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
タグ管理とイベント バッチ処理が有効になっていると、トラッキング コールは個々の JavaScript コールとして非表示の WebView にディスパッチされます。
設定されたタグは個別にトリガーされます。その結果、イベントごとに複数のリクエストがデバイスから送信されます。これにより、リアルタイムイベントを送信するよりも頻繁にデバイスのスリープが頻繁に解除され、デバイスのパフォーマンスが向上します。
Tealium Collect
このエンドポイントは現在、Tealium SDKによって生成されたバッチデータ(独自のバッチ形式)のみを受け入れます。
このページはお役にたちましたでしょうか?
最終更新日 :: 2022年August月29日