Automatically adds device information to all tracking events.
The DeviceData module gathers static device characteristics such as model, CPU type, and OS version, as well as dynamic information such as battery status and screen orientation, and makes them available to all tracking events.
Data layer
Device
The following device attributes are added to each tracking call while the module is enabled:
| Variable | Description | Example |
|---|---|---|
device | Consumer device name | "iPhone 13 Pro Max" |
device_architecture | CPU architecture | "64" |
device_cputype | Detailed CPU type | "ARM64e" |
device_language | Primary device language | "en-US" |
device_manufacturer | Device manufacturer | "Apple" |
device_model | Consumer device name | "iPhone 13 Pro Max" |
device_os_build | OS build number | "20A372" |
device_os_version | Operating system version | "17.0" |
device_type | Platform model identifier | "iPhone14,3" |
model_variant | Model variant identifier | "A2484" |
origin | Device category | "mobile" |
os_name | Operating system name | "iOS" |
platform | Lowercase OS name | "ios" |
Battery and screen
On iOS, the following battery and screen attributes can be enabled or disabled based on your builder settings. On Android, they are always sent. For more information, see Initialize.
| Variable | Description | Example |
|---|---|---|
device_battery_percent | Battery charge percentage | "58" |
device_ischarging | Whether the device is charging | "true" |
device_logical_resolution | Logical screen resolution | "390x844" |
device_orientation | Device orientation | "Portrait" |
device_orientation_extended | (iOS only) Detailed orientation | "Face Up" |
device_resolution | Physical screen resolution | "1170x2532" |
Memory (iOS only)
iOS apps can enable attributes to track memory usage. These memory attributes are disabled by default. For more information, see Initialize.
| Variable | Description |
|---|---|
memory_active | Active memory |
memory_compressed | Compressed memory |
memory_free | Free memory |
memory_inactive | Inactive memory |
memory_physical | Total physical memory (RAM) |
memory_wired | Wired memory |
Install
The DeviceData module is included in prism-core. Add it to your build.gradle file:
implementation(platform("com.tealium.prism:prism-bom:0.7.0"))
implementation("com.tealium.prism:prism-core")
The DeviceData module is included in TealiumPrismCore. Add it as a Swift Package Manager dependency using the repo URL https://github.com/Tealium/tealium-prism-swift, or add it to your Podfile for CocoaPods:
pod 'tealium-prism/Core'
Initialize
The DeviceData module initializes automatically when it is configured. No code changes are required for most integrations. Configure the module in the Tealium platform UI, or bundle a local JSON configuration file with your app.
val config = TealiumConfig.Builder(
application = application,
accountName = "ACCOUNT",
profileName = "PROFILE",
environment = Environment.PROD,
modules = listOf(
Modules.deviceData(),
// other modules...
)
).build()
Use the DeviceDataSettingsBuilder to enable or disable device data types.
For more information, see DeviceDataSettingsBuilder.
let config = TealiumConfig(account: "ACCOUNT",
profile: "PROFILE",
environment: "dev",
modules: [
Modules.deviceData(forcingSettings: { builder in
builder.setDeviceNamesUrl("https://custom-endpoint.example.com/device_names.json")
.setMemoryReportingEnabled(true)
.setBatteryReportingEnabled(false)
.setScreenReportingEnabled(true)
.setEnabled(true)
.setOrder(1)
.setRules(.just("rule_id_from_settings"))
}),
// other modules...
])
This page was last updated: October 28, 2026