Screen Tracking & Tagging

Screen Tracking and Tagging for enhanced user journey analysis

Overview

Zipy’s SDK seamlessly instruments your app to capture every screen transition and view controller name without any extra setup. As users navigate through your interface, Zipy automatically logs screen appearance, and also it takes screenshots on every transition. This hands‑off approach ensures you get comprehensive visibility into user flows from the moment you integrate Zipy, so you can focus on building features instead of writing tracking code.

Automatic Screen Tracking

The SDK automatically tracks screen transitions with some important behaviors to note:

  • View controllers are tracked automatically with their class names

  • View controllers starting with UI, _UI, PU or WK are ignored to prevent system-level tracking

  • No additional code is required for basic screen tracking

Manual Screen Tagging

While an automatic screen will cover almost all the cases, you can implement manual screen tagging when you need to. This can be used in various use cases like tagging popups, tabs, etc. And also, you can update screen names for dynamic content.

  • Override the default screen name

  • Track custom views, popups, or tab changes

  • Add tracking to views that aren't traditional view controllers

Here is an example on how you can use manual screen tagging

import ZipyiOS

class ProfileViewController: UIViewController {
    override func viewDidAppear(_ animated: Bool) {
        super.viewDidAppear(animated)
        Zipy.tagScreenName("UserProfile")
    }
    
    func showCustomPopup() {
        // Tag custom popup view
        Zipy.tagScreenName("ProfileSettings-Popup")
        // Show popup logic
    }
    
    func onTabChanged(index: Int) {
        // Tag different tabs
        let tabName = ["Overview", "Details", "Settings"][index]
        Zipy.tagScreenName("Profile-\(tabName)Tab")
    }
}

Handling Dynamic Content using Screen Tagging

With dynamic screen tagging, you can enrich your analytics by giving each screen a contextual name that reflects its real‑time content—whether it’s a product category, user segment, or custom UI state. Instead of seeing every product detail view under a generic label, you’ll automatically tag them as “ProductDetails‑Electronics,” “ProductDetails‑Apparel,” or whatever category the user is viewing. This makes it easy to filter session replays.

func showProductDetails(product: Product) {
       Zipy.tagScreenName("ProductDetails-\(product.category)")
}

With both automatic and manual tagging, Zipy gives you full control over how screens are identified and tracked, ensuring your analytics align perfectly with your app’s unique structure.

Last updated