4 ms·
How would you have fixed it? Assuming you implement the obvious thing -- tracking each page of a book the user has opened -- (a) How could you reliably track
by morley 10y ago
How would you have fixed it?
Assuming you implement the obvious thing -- tracking each page of a book the user has opened --
(a) How could you reliably track this if the user always keeps their Kindle on airplane mode?
(b) How could you track this accurately if the user reads a few hundred pages in the subway, where there's no Internet service?
(c) How could you distinguish that between someone who hopped around a book in that same time period?
(d) If Kindles don't already track page views this way, how do you update the software on all Kindles to start tracking this way? When do you switch your billing script to track purchases like that?
(e) If you're QAing a Kindle and you spot this loophole, how do you do all these fixes? How long are you willing to keep the software from shipping? How certain are you that your theoretical solution is better than what's already shipped?
Product development is hard, and it makes me angry when people handwave it as "gross incompetence" from a position of ignorance.
- LoSboccacc 10y agoWe run a small microsite service for designers and once enabled single page view tracking metrics - we had at the time very few customers and yet manage to smash trough our 50k keen.io event allowance in a single day. Can't imagine it on sonething where books have hundred pages and users running in the million
- phonon 10y agoYou don't think amazon can handle a few GB of log files every day for the entire kindle unlimited service? Really? Worst case you do some sampling.
- LoSboccacc 10y agoI'm sure they can do, they bill themselves at a different price
- coldtea 10y agoIt's not even about the billing. Companies 1/1000 the size of Amazon can afford it.
- LoSboccacc 10y agoyou mean 10 million a year revenue company? I wish we'd be there.
- coldtea 10y agoYep. VC funded startups with 5-10 million in funding can handle GB per day log processing.
- joeld42 10y agoYou can do the aggregation locally on the device. You wouldn't want to send every page view as an immediate event, just send the aggregates every 15 minutes or at the start or end of each session.
- takno 10y agoThat seems like an exceptionally low allowance for any kind of page view tracking. Given that they have the technology in place server-side, and it's not an incredibly hard problem, the server-side costs to Amazon of doing this would be tiny. No comment on the cost of designing a decent algorithm and keeping ahead in the cat and mouse games.
- LoSboccacc 10y agoeh it's the cost of using a prepackaged solution. I'd move to an internal one but up until now developing features for the app had more precedence than developing a state of the art event tracking solution.
- takno 10y agoYeah, the prices aren't that insane overall tbh. The small size of the free-tier suprised me, but my impression is that free tiers on services have been shrinking since last time I was in that size of company
- ceejayoz 10y agoIt needn't be a tracking event per page. They're already firing {"current_page":3000}. They just need to start doing something like {"current_page":3000,"pages_seen":5}.
- Aissen 10y agoAre you serious ? All of this is fixable in software, in a way that would just penalize revenue from (too) fast readers.
- jonnathanson 10y agoRight. There is no easy, tradeoff-free way to automate the tracking and proportional payment process. Which means that Amazon really does need to move to a more Apple-like human curation process for all new authors, and/or for all new titles. Doing so will immediately tank precious vanity metrics like # of titles added to the store each month. But the alternative is an ever-growing jungle of weeds crowding out the legitimate works. The more that happens, the harder it will be to eventually weed the garden.
- deleted 10y ago[deleted]
- phonon 10y agoUh, store a log file of every user action in that book, and send those log files to the mothership periodically, as internet is available? It does not have to be same day, just eventually. Analyzing log files for duration/pages visited is probably easier than the equivalent for web server logs, and there are very many services that will analyze those for you.
- bduerst 10y agoYeah, I'm not getting the "This is a very difficult problem to solve" take on this. The books currently track by location point and you could log on blocks (e.g. every 100 location points progressed). Amazon's books are already DRM'd to hell, meaning the kindle has to use the unlimited books through the marketplace. Then it's just a matter of reporting user stats, which can be covered in the Unlimited TOS.
- vkjv 10y agoThis. It doesn't even really need to be a log. A bitset with each bit representing a page and a `1` representing "this page read" would do the trick. On a massive 8000 page tomb, that's only 1kb. If Amazon doesn't need the exact pages read, POPCNT the total and send that.
- y4mi 10y ago...that wouldn't change anything. They'd just change the report file to to sync straight 1s... no, you still need obfuscation and encryption, bloating it to at least 100kb. but thats still pretty minor
- vkjv 10y agoI don't think you gain much by forging this number on a single device and you wouldn't be able to manipulate this on ALL devices. The reason the scam worked is that it encourages all readers to jump to the end of the book (via a link on the first page). I don't think there would be an equivalent way to force people to page through and pause on each page.
- 10y ago
- deleted 10y ago[deleted]
- lifeformed 10y agoI don't see why it needs to be always online. Just locally record the number of pages that were in view for X amount of time.
- rmc 10y agoKindles could store, locally, the pages that are displayed, and then upload to the server when they have internet connection
- star0zero 10y agoI'm also assuming that they had to take a bit of a lowest common denominator approach to m2m communication given that they have cell-based (read - costs amazon money) and wifi (does not cost amazon money) enabled versions of the device. If they tracked every page read and sent a log periodically, that _could_ get expensive quickly on the part of the cell-based versions depending on what network agreement they have (numerex, for example, still charges by the kb for this type of low byte traffic). Given that the rules needed to be the same for both types of devices, you couldn't necessarily have an if(wifi){ //send log} else { //send last page syncd} code branch. This is just a giant guess given that I know nothing of amazon's partner network agreements.
- coldtea 10y ago>(a) How could you reliably track this if the user always keeps their Kindle on airplane mode? I wouldn't let users always in airplane mode participate in the program. Actually, I'm pretty sure they already can't, as they need to connect to get books from KU. >(b) How could you track this accurately if the user reads a few hundred pages in the subway, where there's no Internet service? By using this magic thing called computer storage, and syncing later... >(c) How could you distinguish that between someone who hopped around a book in that same time period? By observing how much time they spend in each page (with some allowances for different reading speeds, skipping, speed reading etc) and making sure they've legitimately read a good portion of the book. Even if they haven't actually read it, but only mimicked the above, this constraint just made the fraudsters' process much much slower to complete. >(d) If Kindles don't already track page views this way, how do you update the software on all Kindles to start tracking this way? You simply require users to update their software to continue participating in KU, and give them a deadline. Users need to connect to browse/get new books anyway. >When do you switch your billing script to track purchases like that? After the deadline, only people with updated KU software will be there, so no problem, you just switch it. In between, you could always switch it on an account basis (like you already have KU and non-KU account and other tiers) -- those who already updated get the new behavior, etc. >(e) If you're QAing a Kindle and you spot this loophole, how do you do all these fixes? How long are you willing to keep the software from shipping? How certain are you that your theoretical solution is better than what's already shipped? It's not like this things are rocket science. Companies do such QA an keep back BS products for a few months all the time. Even companies losing billions from doing so, like Apple. For Amazon, which barely breaks even and lots of offerings are loss leaders that's even easier. >Product development is hard, and it makes me angry when people handwave it as "gross incompetence" from a position of ignorance. Hard or not, there are always lots of cases of actual, bona fide, certified, 100% legit, "gross incompetence" too...
- moheeb 10y agoI have foobar2000 setup to track my plays for each song. It has an adjustable slider that I have set for 35%. Once 35% of the song has been played it increments the play count. It doesn't even need internet to do this! This stuff isn't that hard.
- tedmiston 10y agoSpotify does it similarly: 30 seconds == a stream.
- cwyers 10y agoNot that any of those are difficult -- and all of the problems you list around connectivity are, uh... it's not like tracking it poorly resolves that problem, they're still finding some way to eventually sync the data up now, it's just lower-quality data. But... even if those ARE difficult problems, shouldn't you try to solve them BEFORE you launch a business model where you promise people (ie, your authors) that you can do these things? Hell, especially if they're difficult problems, you should fix them before telling people you've solved them.
- silverbax88 10y agoAll of these issues were solved over a decade ago by sales contact software.
- tedmiston 10y ago> (a) How could you reliably track this if the user always keeps their Kindle on airplane mode? Spotify's solution is to require a device to sync at least once every 30 days or the offline content expires. > (b) How could you track this accurately if the user reads a few hundred pages in the subway, where there's no Internet service? With a log of events that syncs when they do reconnect. > (c) How could you distinguish that between someone who hopped around a book in that same time period? By measuring the duration spent on each page.