I've been trying to find a way to detect when a user reads the full article on my blog so I can compare impressions verses actual reads (a bit like Medium does). Does anyone know of a plugin that does this (I've searched and cannot find any), or a way to detect this using Google Analytics as an event or something? Thanks for your help!
Haven't seen a plugin that does this, since each theme would differ. But for a custom solution that would work with Google Analytics events see #9 here: https://searchenginewatch.com/sew/how-to/2287906/10-google-analytics-custom-events-that-track-the-untrackable
OP also found this more specific article: http://cutroni.com/blog/2014/02/12/advanced-content-tracking-with-universal-analytics/
(These are in comments above, just posted to make it faster for those looking for something similar to find an accepted answer.)
First off, I know of no out of the box plugin that does this.
However, I can break the problem into small pieces for you to potentially solve.
The word count divided by the average reader's speed will yield you a figure to convert into milliseconds, for the next step.
Fire an event using window.setTimeout(), where the time for that event is made up by the figure you calculated in step 1. This event will fire any sort of notifications or database interactions to track that the user has read the article.
As a sort of backup protection against users just staying on the page make sure to detect and measure scroll depth. Check this out http://scrolldepth.parsnip.io/. You only want to fire the event from step 2 when a user has achieved a specific scroll depth.