@ewatts
I’ve been having a look into this a bit more, and have noticed that there is a script missing on your website that loads the Google script from the Google server. Without this script, the badge won’t be able to load.
I’ve gone through my own production sites and my staging site that I use to develop the plugin, and the script is being outputted with no problems. I can only assume that there is a plugin conflict that is stopping the script from being outputted.
The code that is missing is this:
<script src="https://apis.google.com/js/platform.js?onload=renderBadge" async defer></script>
My guess is that it may be WPRocket that is the culprit, because you say that you can see the badge when you are logged in as an admin. I’m not too familiar with WPRocket, but I do know that it has an option for the cache to be turned off for logged in users, so that may be what is the case here.