Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Reliable technique for tracking invitations to mobile installations

We allow our existing mobile app users to invite their friends via email, text message, or Facebook request. We can track the "accepted" invitations as long as the invited user signs up the same way they were invited (ie by the same email, phone number, or Facebook). Otherwise they go untracked.

We know there's a reliable way to identify a device at the time the invited user taps the link (in the email, text message invitation), and then once the app is installed, recognize the device as the same one, and make the match. We've seen an app that pulls it off.

We need a solution for both iOS and Android. And the big challenge is both platforms sandbox the webView, so no cookie left when the invitation link was originally tapped is detectable from a webview from within the newly-installed app. And, we don't want to compromise the user experience with any kind of app-swap gyration of launching the browser, then having it re-launch our app.

None of the techniques we've explored seem to be ideal. We've looked into: matching caller IP addresses (within in a smallish time window); browser "fingerprinting"; a clipboard copy/paste scheme; et.al. Further, none of these approaches seem to be what's being used by the aforementioned app with the special magic :)

like image 502
leontx Avatar asked Feb 05 '14 20:02

leontx


1 Answers

I think a good solution is to use device fingerprinting. (See this article and this PDF.)

How Device Fingerprinting Works: Device fingerprinting works by redirecting a user through a tracking link and collecting publicly available HTTP headers about the device. This information is used to create a "fingerprint" about the click of the tracking link. ... When a user installs the mobile app, the SDK collects the same data points from within the mobile app and sends them to our platform.

Other solutions: (See article on Pros and Cons of Tracking Methods)

  • MAC Address
  • Open Device Identifier Number (ODIN)

I'm pretty sure K-Invite is using one or more of these solutions.

A fallback approach:

I assume all invitations can be associated with some random key (e.g. "xHj4RK"). When the user clicks the invitation link, take them first to the browser where it displays this key and then a link to download the app. When the user first starts the app, you could prompt them to enter this key in order to provide their friend with credit for the referral. It's not the best user experience, but wouldn't require any fancy tracking.

like image 198
Luke Avatar answered Oct 16 '22 04:10

Luke