mozilla / price-tracker

Price Tracker is a Firefox extension that spots price drops on things you’re interested in.
https://addons.mozilla.org/en-US/firefox/addon/price-tracker/
Mozilla Public License 2.0
53 stars 17 forks source link

Uniquely identifying products #43

Open Osmose opened 6 years ago

Osmose commented 6 years ago

Currently, products are identified by their full URL. Several shopping sites offer the same product under different URLs, often for SEO purposes.

There's a few options:

biancadanforth commented 6 years ago

We should do something, since currently we are using the URL of the page as the product ID, and that's Category 3+ data (for the MVP, we want to keep everything Category 1/2 per @chuckharmston ), since we will be sending the product ID along with many telemetry events.

We could seed a UUID from some of the product information (I'm not sure if generating one from the URL would be considered Category 3+; I've asked rrayborn).

Chuck gave me some examples of UUID modules:

Python's uuid module lets you do that with uuid.uuid5(uuid.NAMESPACE_URL, 'http://www.whatever.com') Node does too, I just can't speak for it as personally. https://www.npmjs.com/package/uuid

biancadanforth commented 6 years ago

Sharing this from my discussion with Osmose earlier over Vidyo:

Using URLs to identify the product locally is not a problem. It’s when that data gets sent away from the client's computer that it becomes a problem.

From a data collection perspective, there’s no way to send a product id that identifies a product across users without something that’s category 3+.

What we can do is use a product id locally and send an alternate identifier (e.g. a primary key that is a UUID or ever-increasing number) to Mozilla. This alternate identifier would allow us to identify a product uniquely from the collection of products for a particular user, but it would prevent us from knowing the exact product or page that the user was on.