The Tealium Swift library is designed around a modular architecture. Modules instantiate themselves automatically if they are present, and retrieve their configuration from the TealiumConfig object you create at initialization time.
Disabling unneeded modules
TealiumConfig method
Before version 1.6.5 of the Tealium Swift SDK, the only way to disable unneeded modules if you were using CocoaPods or Carthage was via the TealiumConfig object, by setting an array of enabled/disabled modules (whitelist/blacklist). In this scenario, all the code was still compiled into your final app bundle, but any disabled modules were deactivated. This method is still supported, but we recommend migrating to one of the other methods below to take advantage of the performance gains associated with compiling less code into your app bundle. You can safely leave the module list enabled on the TealiumConfig object, and simultaneously remove unneeded modules. In the case where you attempt to enable a module, but the code is not present in your app bundle, it will not cause any undesired consequences, but will simply have no effect.
Manual install from source code
If you are installing the library manually, you may completely remove unneeded/unwanted modules from your project, and they will not be invoked.
Carthage
When you install with Carthage, you must explicitly import the modules you require. You may import all modules if you prefer, and use the module list, as described above, but your app will be lighter if you only import the modules you need. See Install with Carthage for instructions on including/excluding specific modules.
CocoaPods
See Install with CocoaPods for instructions on including/excluding specific modules.
Module Dependencies
All modules have a dependency on TealiumCore. This means installing any of the optional modules would also install TealiumCore automatically.
Module List
The modules are listed below in priority order (the internal order in which auto-instantiation takes place). Where additional documentation is required/available, this is linked from the module name in the table.
Module Name
ID
Module Priority (Load Order)
Module Group
Description
Supported Platforms
Usage
Notes
ConsentManager
consentmanager
50
-
Aids GDPR/privacy compliance
iOS, macOS, tvOS, watchOS
Recommended
Logger
logger
100
-
Debug logging
iOS, macOS, tvOS, watchOs
Recommended
-
Lifecycle
lifecycle
175
-
Tracks launches, wakes, sleeps, and crash instances. Auto or manually.
iOS, tvOS, watchOS
Recommended
-
Autotracking
autotracking
300
-
Prepares & sends dispatches for most UI, including viewDidAppear, events.
iOS, tvOS
Not Recommended*
-
FileStorage
filestorage
350
Persistent Storage
Adds general persistence capability for any module. Replaces the Defaults Storage module. Backed by NSKeyedArchiver
iOS, macOS, watchOS, tvOS
Recommended*
DefaultsStorage
defaultsstorage
360
Persistent Storage
Adds general persistence capability for any module. Backed by UserDefaults
iOS, tvOS, watchOS, macOS
Recommended*
Attribution
attribution
400
-
Adds IDFA to track data.
iOS
Optional
Requires additional entitlements from Apple. Manual import option only.
AppData
appdata
500
-
Adds app_uuid to track data.
iOS, macOS, tvOS, watchOS
Recommended
-
Datasource
datasource
550
-
Adds an additional config init option for datasource ids.
iOS, macOS, tvOS, watchOS
Recommended
-
DeviceData
devicedata
525
-
Add as additional device info to all track data.
iOS
Recommended
-
PersistentData
persistentdata
600
-
Adds ability to add persistent data to all track data.
iOS, macOS, tvOS, watchOS
Recommended
-
Volatile Data
volatiledata
700
-
Adds ability to add session persistent data to all track data - clears upon app termination/close.
iOS, macOS, tvOS, watchOS
Recommended
Will supersede any Persistent value with the same key(s)
Delegate
delegate
900
-
Adds multicast delegates to monitor or suppress track dispatches.
iOS, macOS, tvOS, watchOS
Optional
-
Connectivity
connectivity
950
-
Adds ability to flag track messages for delayed delivery due to connectivity loss.
iOS, macOS, tvOS
Recommended
Requires SystemConfiguration
DispatchQueue
dispatchqueue
1000
-
Adds persistent storage for queued dispatches
iOS, macOS, tvOS, watchOS
Recommended
-
Collect
collect
1000
Dispatchers
Packages and delivers track call to Tealium Collect or other custom URL endpoint.
iOS, macOS, tvOS, watchOS
Optional*
-
TagManagement
tagmanagement
1100
Dispatchers
UIWebview based dispatch service that permits library to run TIQ/utag.js.
iOS
Optional*
Requires UIWebView
RemoteCommands
remotecommands
1200
-
Permits configurable remote code block execution via URLScheme, UIWebView, or TagManagement.
iOS
Optional*
-
* Please read documentation for full details. Where a module is listed as optional, and it has a "module group" listed, one or both modules of the same module group is required to fulfil the library's tracking requirements. For example, Collect and Tag Management are in the "Dispatchers" group, and you need at least one of these enabled for any data to be sent. Likewise with the Persistent Storage group; you need one or the other to be enabled, or you will not get any persistent storage options.
Recommended Default Modules
Please speak to your account manager if you are unsure which products you are licensed for
These are recommended default modules for most implementations. You are free to add/remove modules as needed.
Option 1: If using Tealium iQ (Tag Management) only
Core Attribution AppData Connectivity Consent Manager DataSource Delegate DeviceData DispatchQueue FileStorage Lifecycle Logger PersistentData RemoteCommands TagManagement VolatileData
Option 2: If using Tealium UDH (Collect) only
Core Attribution AppData Collect Connectivity Consent Manager DataSource Delegate DeviceData DispatchQueue FileStorage Lifecycle Logger PersistentData VolatileData
Option 3: If using Tealium UDH and Tealium iQ together
Please see Collect documentation to decide whether Collect module is actually required.
Core Attribution AppData Collect Connectivity Consent Manager DataSource Delegate DeviceData DispatchQueue FileStorage Lifecycle Logger PersistentData RemoteCommands TagManagement VolatileData
... View more