added geolocation for mobile (kinda hacky detection), pushstate if supported, GA event push for metrics