Screen Tracking
Track which screens your contacts visit to understand navigation patterns and build segments based on in-app behavior.
Manual tracking
Call trackScreen in viewDidLoad or any other lifecycle method where the screen becomes active:
override func viewDidLoad() {
super.viewDidLoad()
UserSDK.default?.trackScreen(with: "Home")
}
The screen name is a free-form string - use whatever naming convention makes sense for your app.
trackScreen requires a contact to exist. Call ping() first if you haven't identified the contact yet. See Contact Data.Automatic tracking via subclassing
For controllers where you just want tracking without writing any code, subclass one of the built-in trackable view controllers. Each one calls trackScreen automatically in viewDidLoad, using the class name as the screen name.
| Your base class | Use instead |
|---|---|
UIViewController | TrackableViewController |
UITableViewController | TrackableTableViewController |
UICollectionViewController | TrackableCollectionViewController |
UIPageViewController | TrackablePageViewController |
UISplitViewController | TrackableSplitViewController |
class HomeViewController: TrackableViewController {
// trackScreen(with: "HomeViewController") is called automatically
}
To use a custom name instead of the class name, override screenName:
class HomeViewController: TrackableViewController {
override var screenName: String { "Home" }
}