Tomas Janu

|

October 4, 2024

New attribution method using device fingerprinting technology

Cookie attribution in Shopify's managed app install flow is no longer working, so we developed a new technology using device fingerprints. How does it work?

A few months back, Shopify introduced a new managed install flow for app developers. Although the app installation is smoother for the merchant, it no longer works with our original cookie-based attribution model. So, we developed a unique technology that uses the device fingerprint.

We already implemented it into Candy Rack, and it works very smoothly. It is probably even better than the original cookie-based attribution. If, for some reason, the attribution fails, the publisher can always submit the referral manually.

What is the device fingerprint

The device (or browser, in our case) fingerprint is a unique identifier of each browser based on its specific parameters. To generate the fingerprint we are using open-source public library thumbmarkjs. The list of parameters may include the following data:

  • HTTP request headers
  • User-agent string
  • Installed plugins
  • Client time zone
  • Information about the client device: screen resolution, touch support, operating system, and language
  • List of installed fonts
  • List of mime-types
  • Timestamp

Once the fingerprint is generated, it's stored in our database (i.e., server-side). Unlike cookies that are stored on the client side.

How does the attribution work

When someone clicks on the PartnerJam referral link, we create the device fingerprint.

Later, when the app is installed, we create another device fingerprint and compare it with our records. If there is a match, it means the installation was delivered from the specific referral link, and we attribute it to the proper publisher.

By default, the attribution window is set to 60 days.

How to integrate your app

Besides the better attribution, the whole integration is also much simpler. All you need to do is insert a small snippet (only 15 rows of code!) into your app (i.e., footer).

Please see our integration guide for more details.