@Broonster
Hello, I was battling with this issue as well and found this worked for me:
$StartDate = (Get-Date).Adddays(-31)
$xEmail = "******@x.com"
$AllUserSigninsDuringLast30Days = Get-AzureADAuditSignInLogs -Filter "startsWith(userPrincipalName ,'$($xEmail)') and createdDateTime gt $StartDate"|Where{$_.IsInteractive -eq $TRUE}
$Success = $AllUserSigninsDuringLast30Days |Where{$.status.errorcode -eq 0}
$Failures = $AllUserSigninsDuringLast30Days |Where{$.status.errorcode -ne 0}
$Success.count
$Failures.count
Multiple filter statements, including variables was the complicating factor for me and I didn't have success adding the IsInteractive in the filter, so used Where{} to filter results.
My goal was just to see if they were actually authenticating during the last approximate 30 days as I was creating users and some had already been provisioned, not knowing if they had logged on or not.
If no interactive login activity, the user could be provisioned, and if already existed in AD, but never logged in, password could be changed.
Good Luck.