If you can’t use an existing plugin, then you could do something like this: Post views without plugin.
In the linked example, the author calls setPostViews()
from single.php, but if you have a custom single template for your custom post type, then you’d add it there instead. This will increment your post view counts, which you can then query.
One last note: make sure to call wp_reset_postdata()
after your display loop since you looped through a custom WP_Query. This is especially important if the code above is being rendered as a widget of some sort.