In order to track unique image views in the proper semantic sense of the term, we’ll need to figure out how long people are looking at images. This way we’ll be able to set a threshold when querying the statistics in order to separate images that people flew through instead of actually looked at. The preferred strategy to achieve this is to send a request containing the viewing duration when people move from the current image to another. The catch is to make that also work when people close the current tab or close their browser. In those situations making the request blocking is undesirable as it freezes the browser. As a result, we know that some requests are lost because the browser won’t emit it in time. We don’t know how many we’re losing though, and this is what we intend to measure here.
Currently our “image view” action happens whenever we display an image. By introducing an “image unview” action that will meet the same sampling criteria as the view one, we’ll be able to tell how may unview events we’re not getting compared to their “view” counterparts.