You can implement meta boxes on other non-post_type admin pages but you need to manually call [`do_meta_boxes()`][1] where you want them to output.  You also need to make sure that [`add_meta_box()`][2] action is run prior.

You can see an example of this in **/wp-admin/edit-form-comment.php**...

    do_action( 'add_meta_boxes', 'comment', $comment );
    do_action( 'add_meta_boxes_comment', $comment );
    do_meta_boxes( null, 'normal', $comment );

They ran two [`do_actions()`][3] but you can just use one if needed and it can be something custom like `do_action( 'add_meta_boxes_banner', $someArgumentIfNeeded )`.  Basically, with your current code the [`add_meta_box`][4] action is never being triggered because the custom page doesn't run a `do_action()` for it.


  [1]: https://developer.wordpress.org/reference/functions/do_meta_boxes/
  [2]: https://developer.wordpress.org/reference/functions/add_meta_box/
  [3]: https://developer.wordpress.org/reference/functions/do_action/
  [4]: https://developer.wordpress.org/reference/hooks/add_meta_boxes/