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.
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.
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.
Fast-reading bad actor accounts can be flagged as abusers through pattern recognition. Since a subscription is necessary, creating numerous accounts to game the system becomes expensive fast.
(I'm excluding Kindle Web Viewer, of course. Perhaps it should not have access to Kindle Unlimited.)
That said, Amazon is already syncing your location,and any annotations you've made[1] so they persist across all kindle devices, so there's already a bunch of tracking in place. Given that there's already some tracking, I wouldn't be too opposed to a per-page bit for whether it was read, triggered when the page has been lingered on for five or more seconds (scaled down to 1 second for partial pages, such as ends of chapters).
1: Anyone remember the big episode years back over Amazon realizing they didn't have the license to a book, then removing it from all Kindle devices automatically, including the annotations made? In what is possibly the most ironic situation I can imagine, the book was 1984.
If you're comfortable browsing the internet, this level of reporting on a Kindle seems almost quaint by comparison.
If Amazon doesn't need the exact pages read, POPCNT the total and send that.
but thats still pretty minor
You would need to fake the logs for paid accounts, and since rev sharing is a formula of all paid subscriptions, you'd be hard pressed to make positive returns.
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.
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...
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.
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.
They're already firing {"current_page":3000}. They just need to start doing something like {"current_page":3000,"pages_seen":5}.