This article helps you:
Understand how Amplitude defines and uses location properties to enhance your analyses
Understand how Amplitude tracks location properties when IP addresses are blocked or filtered out
Understand how Amplitude parses user agent data to determine device and platform information
Data that highlights user location properties, such as a user's city and country, are crucial for generating insights related to the geographical distribution of your users. They can show you how user preferences and behaviors differ from region to region, and help you better optimize your product. Similarly, device and platform information helps you understand which devices and operating systems your users are using.
Amplitude uses the MaxMind database to look up location information from the user's IP address. Even though MaxMind data is reliable, the accuracy and availability of city and region information can vary by country.
By default, Amplitude uses the GeoIP to gather location property values based on location_lat
and location_long
. You may explicitly define how Amplitude tracks a user's location properties server-side. Amplitude's HTTP API allows you to send your own [Amplitude] City
, [Amplitude] DMA
, [Amplitude] Region
, and [Amplitude] Country
values with your events.
Amplitude supports both disabling IP Address tracking in the SDK configuration, and dropping IP addresses after ingestion. The method you choose impacts how Amplitude can determine location properties.
When you disable IP address tracking in the SDK configuration (for example, Browser SDK, Android-Kotlin SDK, iOS Swift SDK), Amplitude never receives the IP address. As a result, Amplitude's back end services can't attempt to reconcile the user's location, and any location properties remain empty.
If you request Amplitude Support to drop IP addresses after ingestion, Amplitude's back end services process the IP address to determine location, but the IP address itself doesn't persist in Amplitude. As a result, location properties on an event are filled, but IP address remains empty.
Amplitude automatically parses the user agent string from client-side SDKs to extract valuable device and platform information. This information is then added to your events as properties, allowing you to segment and analyze user behavior across different devices and platforms.
When client-side SDKS (for example, Browser, iOS, Android) send events, Amplitude automatically captures and parses the user agent string to find:
iPhone 13
, Samsung Galaxy S21
)iOS 15.4
, Android 12
")Chrome 98.0.4758.102
)iOS
, Android
, Web
)Apple
, Samsung
)Amplitude automatically adds the following device-related properties to events:
Property | Description | Example Values |
---|---|---|
device_brand |
The manufacturer of the device | "Apple", "Samsung", "Google" |
device_manufacturer |
Like device_brand , but may contain more specific information |
"Apple Inc.", "Samsung Electronics" |
device_model |
The specific model of the device | "iPhone13,2", "SM-G998U" |
device_type |
The type of device | "iPhone", "Android" |
os_name |
The name of the operating system | "iOS", "Android", "Windows" |
os_version |
The version of the operating system | "15.4", "12.0", "11" |
platform |
The platform category | "iOS", "Android", "Web" |
browser |
For web traffic, the browser used | "Chrome", "Safari", "Firefox" |
browser_version |
For web traffic, the browser version | "98.0.4758.102", "15.3" |
os_name
, os_version
, or device_model
appear on the request, then those values appear on the final event. If not provided, the user_agent
field is parsed to set those values on the event. Fields such as device_family
and device_type
are derived from a combination of device_brand
, device_manufacturer
, and device_model
. device_manufacturer
and device_brand
are expected to be top-level fields on the event, but can be null.If you want to disable the automatic tracking of certain device properties, you can use the trackingOptions
configuration in the SDK. For example, in the Browser SDK:
amplitude.init(AMPLITUDE_API_KEY, {
trackingOptions: {
platform: false,
language: false
}
});
For mobile SDKs (iOS, Android), Amplitude collects additional device information:
This information can help you understand how your app performs across different device types and OS versions.
If you need to track additional device information not automatically captured by Amplitude, you can add custom properties to your events:
// Example of adding custom device properties
amplitude.track('Button Clicked', {
'screen_resolution': '1920x1080',
'connection_type': 'wifi',
'battery_level': 85
});
August 5th, 2024
Need help? Contact Support
Visit Amplitude.com
Have a look at the Amplitude Blog
Learn more at Amplitude Academy
© 2025 Amplitude, Inc. All rights reserved. Amplitude is a registered trademark of Amplitude, Inc.