A page view is just a (t()) call.... its up to you when to send them. It was easier years ago when we defined a page view being a unique HTTP request to our servers OR when more than 50% of the visible content changed by a user action.
These days with webApps and infinite scroll features we have moved to more of a breakpoint solution.
Bounce is a single HIT and gone.... 1 custom link .ad hoc call will do it.
Single page is just that, 1 page view. Could be 100 calls but only 1 page view.
Hope that helps.