By category 1 and category 2, do you mean hard and soft bounces?
One way to do this would be to create these as program statuses, then have flow actions within your program to set the appropriate status when triggered. This way you could look at the campaign overview and see the breakdown of how many people soft and hard bounced for that particular email.
Likewise, you can do the same for unsubscribes, clicks, opens, etc.
I mean hard bounce category 1 (spam) and hard bounce category 2 (invalid email). We already ran the program, this method seems a bit complex. Would it require us to push the leads through the program again? I'm looking for a simple way to present this information in a report.
The closest I got was doing a lead performance report filtering by email bounce. I noticed that grouping by email bounced reason did not work because in the activity of the leads it shows leads go through a suspense phase with a reason of spam blocker and then shows as bounced with a blank reason. I'm wondering why the email bounced reason is showing up blank.