Magnetic_heading accuracy when the camera is vertical

I have tested the magnetic_heading (absolute direction in degree to north), and I get the feeling the camera was intended to be held horizontally to have the direction. I wanted to have confirmation on that, if an user want to use camera direction is he supposed to hold it horizontally? Is it possible to hold it vertically and expect accurate results?