It is normal to see unsubscriptions (opt-out = uninstall = deleted tokens) at the level of campaign analytics or globally on the days you send campaigns.
Here are the three spots to track deleted tokens :
1
Analytics > Reach tab
2
Analytics > Audience tab
3
Push > Campaign statistics > Undelivered
Indeed, on web push, we receive by return loop the unsubscriptions that took place between the sending of the last campaign and the campaign of the day. This loop occurs only once a campaign is sent. That's why you'll see deleted tokens only days when a push is made (as in the picture above).
So, instead of reading "the January 20th campaign generated 29 opt-outs", you should interpret it as "between January 10th and January 20th, approximately 29 opted-in users unsubscribed from web push". This highlights the importance of sending campaigns regularly to keep your user base clean.
About the ascent of deleted tokens:
on Firefox: the deleted tokens are sent to us each time an old opt-in connects to the website again, that's why we observe opt-outs even on days when no campaign is sent.
on Chrome: the deleted tokens are sent to us each time a new campaign is sent.