• Platforms
  • Partners
  • Forums
  • 日本語
  • TLC Tealium Learning Center Tealium Learning
    Community
  • Discussions & Ideas Dicussions & Ideas
  • Product Guides Product Guides
  • Knowledge Base Knowledge Base
  • Developer Docs Developer Docs
  • Education Education
  • TLC Blog TLC Blog
  • Support Desk Support Desk
  • CDH Customer Data Hub Customer Data Hub

Table of Contents

  • Supported Platforms
  • How It Works
    • Automatic Triggers
    • Manual Triggers
  • Data Layer
GETTING STARTED

Timed Events

Learn how to track the duration of events.

Supported Platforms

The following platforms support timed events:

  • Android (Kotlin)
  • iOS (Swift v2.x)

How It Works

A timed event measures the duration of an event or the time between two events and is set with automatic or manual triggers. When a timed event is complete it sends an event named timed_event to Tealium EventStream with the name of the timed event and the timing details.

Use automatic triggers to measure the duration between Tealium events that are already tracked in your app. A timed event is triggered automatically when the specified start event occurs and stops when the specified stop event occurs.

Use manual triggers to measure the duration between events that are not tracked by Tealium or that involve a complex sequence of events. A timed event is triggered manually by starting and stopping the timed event in the app code based on your custom logic.

Each timed event has a name that is set to the event attribute timed_event_name. An event name may be reused after the timed event has ended, but multiple concurrent timed events may not use the same name.

Timed events are not persistent and are discarded if the app terminates before the event ends.

Learn how to use timed events for:

  • Android Kotlin
  • iOS (Swift v2.x)

Automatic Triggers

To track a timed event with an automatic trigger, specify the start and stop Tealium event names. These events must already be tracked in your app. The name of an automatic timed event is generated by joining the start and stop event names with two colons (::). For example, when you set an automatic trigger to track the duration between the cart_add event and the purchase event, the event attribute timed_event_name is set to cart_add::purchase.

    val config = TealiumConfig(…).apply {
       timedEventTriggers = mutableListOf(EventTrigger.forEventName(
            "cart_add",
            "purchase"))
    }
    let config = TealiumConfig(...)
    config.timedEventTriggers = [TimedEventTrigger(
        start: "cart_add",
        stop: "purchase")]

    The resulting timed event from an automatic trigger:

    {
      "tealium_event": "timed_event",
      "timed_event_name": "cart_add::purchase",
      "timed_event_start": "1605645967299",
      "timed_event_end": "1605645968401",
      "timed_event_duration": "1102"
    }

    Manual Triggers

    To track a timed event with a manual trigger, specify a name for the timed event then start and stop the timed event manually in your app code. For example, to manually track the time a user spends viewing a product, start the timed event when the product screen is loaded, then stop the timed event when the user leaves the product screen. The name you use for the timed event is set to the value of the event attribute timed_event_name.

    Start a timed event manually:

    tealium.startTimedEvent(name: "TimeSpentViewingProduct")

    Stop a timed event manually:

    tealium.stopTimedEvent(name: "TimeSpentViewingProduct")

    The resulting timed event from a manual trigger:

    {
      "tealium_event": "timed_event",
      "timed_event_name": "TimeSpentViewingProduct",
      "timed_event_start": "1605645967299",
      "timed_event_end": "1605645968401",
      "timed_event_duration": "1102"
    }

    Data Layer

    Timed events are tracked with the event name timed_event and the following attributes:

    Attribute Name Data Type Value
    tealium_event String "timed_event"
    timed_event_name String The name of the timed event (defaults to "start_event_name::stop_event_name" for automatic triggers)
    timed_event_start String Timed event start time (UNIX time in milliseconds)
    timed_event_end String Timed event end time (UNIX time in milliseconds)
    timed_event_duration String Duration of the timed event (total milliseconds: timed_event_end - timed_event_start)

    The following is an example of a timed event:

    {
      "tealium_event": "timed_event",
      "timed_event_name": "cart_add::purchase",
      "timed_event_start": "1605645967299",
      "timed_event_end": "1605645968401",
      "timed_event_duration": "1102"
    }
    Deep Links
    Trace

     
    • Mobile
    • Getting Started
      • Overview
      • Quick Start Guide
      • Mobile Concepts
      • Client-Side
      • Server-Side
      • Tracking Webviews
      • Data Layer
      • Consent Management
      • Event Batching
      • User Location and Geofencing
      • Deep Links
      • Timed Events
      • Trace
      • Hosted Data Layer
      • Feature Comparison
      • Troubleshooting
    • Remote Commands
      • Overview
      • How It Works
      • Integrations
        • AppsFlyer
        • Braze
        • Contentsquare
        • Facebook
        • Firebase
        • Kochava
        • Usabilla
    • Android (Java)
      • Overview
      • Install
      • Track
      • Data Layer
      • Data Management
      • Consent Management
      • Module List
        • Ad Identifier Module
        • Crash Reporter Module
        • Install Referrer Module
        • Lifecycle Tracking Module
        • Location Module
        • Optimizely X Tracking Module
      • Android TV
      • Android Wear
      • API Reference
        • ConsentManager
        • DataSources
        • Lifecycle
        • Tealium
        • Tealium.Config
        • TealiumLocation
      • Release Notes
    • Android (Kotlin)
      • Overview
      • Install
      • Track
      • Data Layer
      • Consent Management
      • Identity Resolution
      • Module List
        • Ad Identifier Module
        • Collect Module
        • Collectors Module
        • Crash Reporter Module
        • Install Referrer Module
        • Lifecycle Tracking Module
        • Location Manager Module
        • RemoteCommands Module
        • Tag Management Dispatcher Module
        • Visitor Service Module
      • Android TV
      • API Reference
        • ConsentCategory
        • ConsentManager
        • CurrentVisit
        • DataLayer
        • Lifecycle
        • LocationManager
        • Tealium
        • TealiumConfig
        • VisitorProfile
        • VisitorService
      • Release Notes
    • Cordova
      • Overview
      • Install
      • Track
      • Data Management
      • Module List
        • Ad Identifier Module
        • Crash Reporter Module
        • Install Referrer Module
      • API Reference
      • Release Notes
    • Flutter
      • Overview
      • Install
      • Track
      • Consent Management
      • Data Management
      • API Reference
      • Release Notes
    • iOS (Objective-C)
      • Overview
      • Install
      • Track
      • Data Layer
      • Data Management
      • Consent Management
      • Tag Management
      • Module List
        • Lifecycle Tracking Module
      • tvOS
      • watchOS
      • API Reference
      • Release Notes
    • iOS (Swift) 1.x
      • Overview
      • Install
      • Track
      • Data Layer
      • Data Management
      • App Extensions
      • Identity Resolution
      • Consent Management
      • Modules
      • Module List
        • AppData Module
        • Attribution Module
        • AutoTracking Module
        • Collect Module
        • Connectivity Module
        • CrashReporter Module
        • DataSource Module
        • DefaultStorage Module
        • Delegate Module
        • DeviceData Module
        • DispatchQueue Module
        • FileStorage Module
        • Lifecycle Module
        • Location Module
        • Logger Module
        • PersistentData Module
        • RemoteCommands Module
        • TagManagement Module
        • VisitorService Module
        • VolatileData Module
      • Feature Comparison
      • Working with Objective-C
      • API Reference
        • TealiumConfig
        • TealiumConsentCategories
        • TealiumConsentManagerDelegate
        • TealiumConsentManager
        • TealiumInstanceManager
        • TealiumPersistentData
        • TealiumVolatileData
        • Tealium
      • Release Notes
    • iOS (Swift) 2.x
      • Overview
      • Install
      • Track
      • Data Layer
      • Consent Management
      • App Extensions
      • Identity Resolution
      • Modules
      • Module List
        • AppData Module
        • Attribution Module
        • AutoTracking Module
        • Collect Module
        • Connectivity Module
        • CrashReporter Module
        • DeviceData Module
        • Lifecycle Module
        • Location Module
        • RemoteCommands Module
        • TagManagement Module
        • VisitorService Module
      • Working with Objective-C
      • API Reference
        • Tealium
        • TealiumConfig
        • TealiumConsentCategories
        • TealiumConsentManager
        • TealiumDataLayer
        • TealiumInstanceManager
      • Release Notes
    • NativeScript
      • Overview
      • Install
      • Track
      • API Reference
        • Tealium
        • TealiumConfig
      • Release Notes
    • React Native 1.x
      • Overview
      • Install
      • Track
      • API Reference
      • Release Notes
    • React Native 2.x
      • Overview
      • Install
      • Track
      • API Reference
      • Release Notes
    • Unity
      • Overview
      • Install
      • Track
      • API Reference
    • Xamarin
      • Overview
      • Install
      • Track
      • Data Management
      • Consent Management
      • API Reference
      • Release Notes
    • Web
    • Getting Started
      • Overview
      • Quick Start Guide
      • Web Concepts
      • Data Layer
        • An Introduction to the Data Layer
        • How the Data Layer Works for Websites
        • Data Layer Best Practices
        • Definitions
          • Retail
          • Publisher
          • Hotel
          • Travel
          • Basic Video Tracking
    • Adobe Launch
      • Overview
      • Install
      • Data Layer
    • AMP
      • Overview
      • Install
      • Track
      • Data Layer
    • Angular
      • Overview
      • Install
      • Track
      • API Reference
    • Google Tag Manager
      • Overview
      • Install
      • Data Layer
    • JavaScript (Web)
      • Overview
      • Install
      • Track
      • Data Layer
      • Universal Data Object (utag_data)
      • Universal Tag (utag.js)
      • Data Layer Object (b)
      • Single-Page Applications
      • Settings
      • Debugging
      • API Reference
        • Cookie Functions
        • GDPR Functions
        • Tracking Functions
        • Utility Functions
      • Release Notes
    • Server
    • C#
      • Overview
      • Install
      • Track
      • Data Layer
      • API Reference
      • Release Notes
    • HTTP API
      • Overview
      • Endpoint
      • Data Layer
    • Java
      • Overview
      • Install
      • Track
      • API Reference
      • Release Notes
    • Node
      • Overview
      • Install
      • Track
      • API Reference
    • Python
      • Overview
      • Install
      • Track
      • API Reference
    • Roku
      • Overview
      • Install
      • Track
      • API Reference
    • Ruby
      • Overview
      • Install
      • Track
      • API Reference

    Was this article helpful?

    This page was last updated: December 9, 2020       Thank you for your feedback!
    • Platforms
    • Partners
    • Forums
    • Mobile
    • Getting Started
    • Remote Commands
    • Android (Java)
    • Android (Kotlin)
    • Cordova
    • Flutter
    • iOS (Objective-C)
    • iOS (Swift) 1.x
    • iOS (Swift) 2.x
    • NativeScript
    • React Native 1.x
    • React Native 2.x
    • Unity
    • Xamarin
    • Web
    • Getting Started
    • Adobe Launch
    • AMP
    • Angular
    • Google Tag Manager
    • JavaScript (Web)
    • Server
    • C#
    • HTTP API
    • Java
    • Node
    • Python
    • Roku
    • Ruby