Last I remember the challenge for VizAlerts is that in Tableau Server the user impersonation didn’t/doesn’t respect user filters. What I had to do was re-implement the user filter in the content reference as a parameter like “userparam=jdrummey” and then the viz would have a Tableau parameter named userparam with an associated filter.
Also, FYI, Tableau v2019.3 will have PDF attachments as an option for subscriptions.
Jonathan is correct. VizAlerts does technically handle user impersonation correctly, it's just that the user generating all of the Advanced Alert attachments is the same person (the author of the alert), so all the attachments would default to using their own user filter. The solution Jonathan describes, where each viz being subscribed to would need some kind of parameter that would serve to duplicate the user-filter functionality you're after would be a pretty effort-and-maintenance-intensive solution that probably wouldn't be feasible at any medium to large scale volume. You could also probably customize VizAlerts to solve your problem, but it would require a code change. I could explore that option a bit more if it's very important to you, but overall, I'd recommend 2019.3 as the best option for what you're trying to get.