Device Fingerprinting FAQ

Learn about one of Singular's methods for mobile app attribution. For general background, see  Understanding Singular Mobile App Attribution.


What is device fingerprinting?

Fingerprinting is one of the methods Singular uses to perform mobile attribution. In the fingerprinting process, Singular collects all the device information passed through the tracking link when a user clicks on an ad. Put together, the information constitutes a unique device fingerprint.

When a user downloads and opens a mobile app, the Singular SDK collects the same data from the device and sends it to the Singular servers, enabling Singular to search for a matching device fingerprint in its database.

How does fingerprinting compare to using device IDs?

Fingerprinting is not as reliable as matching devices by their unique identifier. Singular uses device fingerprinting as a fallback if no device identifiers are available and neither is the Google Install Referrer in case of Android devices.

Device fingerprinting also uses a different attribution lookback window. The data used for fingerprinting, such as the IP address, changes much more often than device identifiers (which users can reset but rarely do so). The accuracy of a fingerprint-based device match decays exponentially after 24 hours. For this reason, Singular limits the lookback window for fingerprinting-based ad engagements to 24 hours.

When is device fingerprinting typically used?

Since device identifiers are only available in mobile app environments, any advertising campaigns that run on a mobile web environment have to rely on fingerprinting when the Google Install Referrer isn't available.

For example:

  • Email campaigns
  • Tracking organic downloads from your mobile web landing page
  • Campaigns with ad networks working with mobile web inventory

What data does Singular collect for device fingerprinting?

Singular relies on data points such as:

  • Platform
  • IP Address
  • OS Name
  • OS Version
  • User Agent
  • Timestamp

Note that this is publicly available information available in the HTTP headers.

Was this article helpful?