In terms of quality of data, the current event style wasn't super useful since it spread the collections out into separate categories.
This change makes separate events for each collection found, with the category field being updated. This way in GA we can count within each collection.
Also, the way debouncing was working to help keep down the number of duplicate calls wasn't sufficient in most cases. This is because the debounce method doesn't care about whether the calls are actually duplicate just that they are being triggered in quick succession. So we were getting some lost events and still some duplicated.
This PR sets up a simple debouncing-cache that has short-lived cache entries that are checked against incoming events to decide whether to block or not.
In terms of quality of data, the current event style wasn't super useful since it spread the collections out into separate categories.
This change makes separate events for each collection found, with the
category
field being updated. This way in GA we can count within each collection.Also, the way debouncing was working to help keep down the number of duplicate calls wasn't sufficient in most cases. This is because the debounce method doesn't care about whether the calls are actually duplicate just that they are being triggered in quick succession. So we were getting some lost events and still some duplicated.
This PR sets up a simple debouncing-cache that has short-lived cache entries that are checked against incoming events to decide whether to block or not.