First, a lot of really genuinely good comedy. You aren't going to laugh at dirty jokes, you aren't going to laugh at corny jokes, you're going to laugh at genuinely well written and performed comedy. In fact, probably soon to be one of the most iconic comedic moments in superhero movies to date with Shazam and his foe.
Second, this movie has more than one cameo. The entire team did a great job of keeping a secret cameo (and it's not the one that people might think of at the very end).
Third, this has such a great portrayal of Foster families. Very often movies have these really negative, terrible portrayals of Foster kids and the families they go into. The family that Billy gets into genuinely care about each other. It's easy to see why Billy would want to accept them. Especially after you find out some information which I will not reveal here.
One common criticism is that this movie forces drama between the comedic parts and that it doesn't work well. This is only somewhat true. The drama is believable, but it's a little forced, but let me play devil's advocate. We have gotten very used to incredibly great dramas, but not every movie can have this. It's a superhero movie. In all honesty, the drama in most superhero movies always comes second. It is never really THAT captivating. This shouldn't be held up to the standard of great dramas films. Really, no superhero movie should. With that being said, I find the motivation for the villain to be persuasive. Imagine that you are a child that is being bullied. Typically if you cannot rely on your family and friends to help, you're going to probably grow up with anger in your heart. In this case, he has no friends and his family ARE the bullies. Someone criticized this, but they're completely wrong. That's a strong motivation to be someone who wants to take his anger out on others (especially family).
Another thing I love about this movie is that Billy is never really just motivated to start doing good. He shows that he is willing to do good. He protects Freddy from being beat up, but only when it's gone too far. He's chosen by the Wizard not because he is some perfect, good-hearted child, but because he has the potential to be exactly that. The fact that he's willing to protect Freddy from bullies and that he gets his powers, then doesn't immediately start to save everyone shows the writers knew exactly what they were doing. This isn't some shortcut to being a good person. It doesn't show that he does all of the very funny things he does just to.make the audience last. He's learning. He's still not perfect. It's only when he has to save people from a problem that he created that he even remotely starts to start trying to understand the responsibility he carries. It's not until he begins to accept his foster family as his real family does he really understand the importance of helping others. You have to remember that he's always been a loner. He's never really experienced love since.. well, you'll see, but NEVER. In fact, I don't even think he's fully understood by the end of the movie. He's still learning. And why wouldn't he be? He's only 14.
This movie is absolutely great. It's much more than okay. It's honestly better than most comic book movies I've seen in awhile, but for different reasons than the other traditional superhero movies (like I said, this movie has those traditional elements, but also much more). The only way that it is "just okay" is if you have some serious superhero fatigue.