I’ve used a GoPro 6 on my front glass, a GoPro 3 on my back glass, and sometimes a Fusion out through the moon roof.
My setup was to set the cameras to take one photo per second and just keep taking them, later doing a sweep to delete unnecessary photos when the car is on a red light for example.
Setting up with half a second was problematic. The camera exif looks correct (sub-second timestamps), but something somewhere goes wrong, and the sequence typically gets blocks where the photos are ordered like 1 3 2 5 4 7 6. One photo per second is more than enough.
The GoPro 6 has an amazing GPS, sometimes even better than the iPhone, as it’s using the suction cup on the glass, and always with GPS view.
For the GoPro 3, I just dump a GPX of all photos from the GP6, and then figure out some photo that is in common between the two cameras (e.g. the exact frame where the car starts moving), and then apply the GPX data for the coordinates and the timestamp into the GP3 photos.
With the Fusion I had some cases where it overheated, being outside the car, summer time in Portugal, and whilst it kept on capturing photos, the GPS information was gone. So I used the same trick as above, with the GP6 on the front glass, and if the Fusion goes crazy, I use the coordinates from the GP6 to fix the Fusion.
However, it’s been months since I had time to capture more stuff, so a lot may have changed both on the GP firmware, and in particular on the Mapillary tools.