自動追跡モジュール
画面のビューを自動的に追跡します。
自動追跡モジュールは、追加コードを最小限に抑えつつ、アプリの画面ビューの自動追跡を追加します。
以下のプラットフォームがサポートされています:
- iOS
- tvOS
- watchOS
- macOS
仕組み
ビルドと初期化に自動追跡モジュールを追加することで、自動的な画面ビューの追跡を利用できます。モジュールには、追跡する画面とその命名方法を制御するためのいくつかのオプションがあります。
自動追跡モジュールは、以下の2つの追跡モードをサポートしています:
- フルトラッキング
- UIKit - すべての画面ビューを自動的に追跡し、ブロックリストを使用して画面を省略するオプションがあります。
- SwiftUI - サポートされていません。
- 部分的な追跡
- UIKit - 追跡する各ビューに対して、ビューコントローラのサブクラスを作成します。
- SwiftUI - 追跡する各ビューに対して、ビューモディファイアを作成するか、Tealiumの追跡コンテナにビューを埋め込みます。
フルトラッキング
フルトラッキングは、UIKitアプリでのみ利用可能です。
UIKitでは、自動追跡モジュールはViewController
のviewDidAppear
インスタンスメソッドにメソッドスワッピングを使用します。追跡されるイベントの名前は、UIViewController.title
プロパティに構成されます。それが利用できない場合は、“ViewController"接尾辞を削除した後のUIViewController
クラス名に構成されます。
部分的な追跡
自動追跡とパフォーマンスの最適化をより制御するために、部分的な追跡を使用します。このアプローチは、ViewController
コード内の注釈を使用して、必要なビューのみを追跡します。このアプローチは、特定のアプリデザインパラダイムに依存せず、UIKitアプリまたはSwiftUIアプリで動作します。
ブロックリスト
フルトラッキングモードでブロックリスト機能を使用して、特定の追跡呼び出しを抑制します。 ブロックリストは、文字列の単一配列を含むJSONファイルです。文字列は、自動追跡から省略するビューを表します。ブロックリストにある文字列がビューコントローラ名のどこかに現れると、それは追跡されません。文字列の比較は大文字と小文字を区別しません。
例えば、“Settings"や"Profile"という文字列を含むビューコントローラ名を追跡したくない場合、ブロックリストには以下のように含めることができます:
[
"settings", "profile"
]
ブロックリストファイルは、アプリ内にローカルに保存するか、URLとしてリモートにホストすることができます。
ブロックリストを使用するには、以下のTealiumConfig
プロパティのいずれかを使用します:
必要条件
UIKit
またはSwiftUI
UIApplication
インストール
CocoaPodsまたはCarthageを使用して自動追跡モジュールをインストールします。
CocoaPods
CocoaPodsで自動追跡モジュールをインストールするには、以下のpodをPodfileに追加します:
pod 'tealium-swift/Autotracking'
iOS向けのCocoaPodsインストールについて詳しくはこちらをご覧ください。
Carthage
Carthageで自動追跡モジュールをインストールするには、以下の手順に従います:
-
Xcodeでアプリターゲットの一般構成ページに移動します。
-
以下のフレームワークをEmbedded Binariesセクションに追加します:
TealiumAutotracking.framework
iOS向けのCarthageインストールについて詳しくはこちらをご覧ください。
初期化
自動追跡モジュールを初期化するには、TealiumConfig.collectors
プロパティに追加します。
config.collectors = [Collectors.Autotracking]
必要なコレクタを正しく指定する方法については、Collectorsのドキュメンテーションを参照してください。
部分的な追跡の構成
UIKit
UIKitアプリでは、追跡したいビューコントローラのみを変更して部分的な追跡を実装します。
フルトラッキングをオフにして部分的な追跡を追加するには、まずアプリケーションのinfo.plist
にTealiumAutotrackingViewControllersEnabled
エントリを追加し、値をfalse
に構成します:
<key>TealiumAutotrackingViewControllersEnabled</key>
<false/>
特定のビューコントローラを自動的に追跡するには、TealiumViewController
のサブクラスを作成します:
class MyAutomaticallyTrackedViewController: TealiumViewController {
// ...
}
あるいは、TealiumViewControllerTrackable
に準拠し、ビューコントローラのviewDidAppear
メソッドでtrackViewControllerAppearence
を呼び出すこともできます。
class MyViewController: UITableViewController, TealiumViewControllerTrackable {
@objc
open override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
trackViewControllerAppearence()
}
}
SwiftUI
SwiftUIで特定のビューを自動的に追跡するには、以下のアプローチのいずれかまたは両方を実装します:
- 追跡したい各ビューにカスタム修飾子を追加します。
- 追跡したい各ビューをTealiumの自動追跡コンテナに埋め込みます。
以下のビューモディファイアのいずれかを使用します:
autoTracking(viewSelf:) -> some View
この修飾子を使用して、クラス名を使用してビューを自動的に追跡します。
追跡したいビューの本体にこの修飾子を適用し、パラメータとしてself
を渡します:
struct SomeView: View {
var body: some View {
Group {
Spacer()
Text("Some Text")
Spacer()
}.autoTracking(viewSelf: self)
}
}
autoTracking(viewClass:) -> some View
この修飾子を使用して、ビュークラスのクラス名を使用してビューを自動的に追跡します。
追跡したいビューの本体にこの修飾子を適用し、追跡したいクラスの名前を渡します(オブジェクトインスタンスにアクセスできない場合):
struct SomeContainerView: View {
var body: some View {
SomeOtherView {
Spacer()
Text("Some Text")
Spacer()
}.autoTracking(viewClass: SomeOtherView.self)
}
}
autoTracked(constantName:) -> some View
この修飾子を使用して、カスタム定数名でビューを自動的に追跡します。
定数を取る変数を変更しても、追跡される名前は変わりません。
ここに状態変数を渡さないでください。onDisappear
呼び出しと競合する可能性があります。
状態変数を渡したい場合は、代わりにバインディング値を渡し、オーバーロードされたメソッドを使用します。
struct SomeView: View {
var body: some View {
Group {
Spacer()
Text("Some Text")
Spacer()
}.autoTracked(constantName: "Some Constant Name")
}
}
autoTracked(name: Binding<String>) -> some View
この修飾子を使用して、カスタム状態変数名でビューを自動的に追跡します。
この場合、変数を変更すると、次回の自動追跡呼び出しで異なるイベント名が結果として得られます。
このメソッドは、状態変更に対してonAppear
がonDisappear
の後に呼び出される問題を解決し、次回の自動追跡名に対して変数名を変更することを可能にします。
struct SomeView: View {
@State var name = "Some Variable Name"
var body: some View {
Group {
Spacer()
Text("Some Text")
Spacer()
}.autoTracked(name: $name)
}
}
自動追跡コンテナの埋め込み
ビューモディファイアの代わりに、追跡したい各ビューに自動追跡コンテナTealiumViewTrackable
を埋め込みます。
このアプローチには3つのオプションがあります:
- コンテンツビューで初期化
初期化子にコンテンツビューを渡して、コンテンツクラス名を自動的に追跡します。TealiumViewTrackable { SomeView() }
- 定数名とコンテンツビューで初期化
コンテンツクラス名の代わりに追跡する状態変数を指定して定数名を指定します。TealiumViewTrackable(constantName: "Some Constant Name") { SomeView() }
- 状態変数のバインディング名とコンテンツビューで初期化
ビューの状態変数からバインディングを渡します。これはonAppear
がトリガーされたときの状態変数の現在の値を使用します。@State var name: String = "Some Variable Name" var body: some View { TealiumViewTrackable(viewName: $name) { SomeView() } }
データレイヤー
このモジュールによってトリガーされる各追跡呼び出しには、以下の変数が含まれます:
変数 | 説明 | 例 |
---|---|---|
autotracked |
自動追跡モジュールによって追跡されたすべてのイベントに構成されます。 | true |
APIリファレンス
最終更新日 :: 2024年May月15日