My company is manufacturing a hardware solution that runs a software on a desktop computer (windows) that is taken to live shows. It basically creates a network within different components to make it work. We would like to track what features of the software are the most used, but because this hardware is most of the time offline and updates happen once a year so this might be complicated.
What I usually do with my team is to store the data locally until the machine connects to the web and then push it to the cloud at that point. The data won't be live but at least it will appear once the PC is online.
Makes sense?
Have the software keep track of things while offline, and store the information in a file. Have the software detect when an internet connection is available, and when it is, upload the data to your server. Put a max memory limit on the data file stored offline so that your software starts overwriting the old data if too long has passed since the last online session.
You could also consider sending the data directly to Google Analytics if you are already familiar/using the platform; the API might help you correlate data with website visitors, but this is a really ambiguous question without more information than 'hardware used in venues/real world events'... if there's no direct internet access available to be wired to the machine, you could easily give it a mobile-data card with the cell services that let you share data plans to multiple devices.
Put a code in the software that requires the user to update the software once a month or whatever interval you want. Have them accept permission to send useage info.