At a glance: User location is determined using the device IP address which is mapped to the general location of the user (city, state, country, and so on). User location impacts creatives selection, campaign cost, engagement, and user quality.
Determining user location
User actions in the device are reported to AppsFlyer. The actions (events) contain various data fields including the device IP address.
In some cases, the true device IP is masked by a VPN, mechanism like iOS 15 Private Relay, or SKAN postback proxy servers. Consequently, the IP address to geo-location conversion described in this article may be wrong or misleading. AppsFlyer has no control over this.
The IP address is converted by AppsFlyer into geo-location information using data provided by Digital Element, the global IP location leader.
- The geo-location information can include:
- Territory (country): ISO 3166 (alpha-2) codes, or EU (Europe) or AS (Asia) if no territory-specific information is available.
- City: This can correlate to a neighborhood or district within the city without being directly related to the actual city boundaries.
- DMA (designated market area, regions, or geographic areas for television viewing measured by the Nielsen company. Metro codes in CSV file.
- Region: The geographic region or continent.
- State or province: See table of localized state names in CSV file. We use the region field in this table. This consists of up to 3 letters or numbers.
- Postal code.
- IP address to geo-location tables are updated at regular intervals, usually weekly.
Example: Conversion of IP address to geolocation
Note regarding the United Kingdom (UK)
- In the platform, the United Kingdom is denoted using the code UK.
- The ISO 3166 code for the United Kingdom is GB. UK is reserved, but not allocated, by ISO for the United Kingdom.
In some cases, there may be differences in the derived location of users between AppsFlyer and other platforms, even if other platform uses Digital Element to resolve IP addresses. Possible reasons for location discrepancy are:
- Database updates: to enable fast attribution, AppsFlyer resolves the IP addresses into location data internally. AppsFlyer fetches the global map from Digital Element periodically and not in real-time. If AppsFlyer and the other platform fetch Digital Element data at different times this can explain differences.
- ISP changes: Digital Element databases change rapidly as service providers (ISPs) change their IP mappings.
- Different plans/methods: Digital Element offers different package plans based on the required level of granularity. Other platforms using different Digital Element packages or different methods for defining a device's ID, may provide different results.
- Proxy, or VPN: If a user implements a VPN or proxy, then we won't know the true user IP address. The Geo resolution will be according to the VPN/proxy address.
- Related reading: IP geolocation myths by Digital Element.