Skip to content
Chris Searle edited this page Nov 19, 2016 · 1 revision

So - you've opted in to analytics/tracking and we really do appreciate it. But what are we actually tracking about you?

The tracking software we use will tell us what device you are using, what version of the operating system it is and also what country you are in. We've turned off all other location reporting - but country seems to be hard coded into the library and we haven't managed to turn that off.

Remember that you can opt in and out of tracking at any time by opening your iOS device settings app, scrolling down to DronePan and toggling the switch there.

In our code - three things are tracked explicitly:

Screen load

We track each time a screen loads. This tells us how people are using the application.

Events

We track certain events. Currently we have 3 categories.

Connection

Detection of connection to product (drone or handheld), camera, lens etc

Panorama

Detection of start and stop, plus some error conditions.

Gimbal Capability

This logs what information we can find out about the gimbal you have. This is likely to be removed fairly soon.

Crashes

If the program raises an exception then we will try to log it - either before the app crashes or on next app start.

Current tracking

This is as of 19th November 2016

Screen View

Command run: git grep trackScreenView | grep -v AnalyticsUtils | sed -e "s/.*track/track/"

trackScreenView("CameraSettingsViewController")
trackScreenView("MainViewController")
trackScreenView("SettingsViewController")

Events

Command run: git grep trackEvent | grep -v AnalyticsUtils | sed -e "s/.*track/track/"

trackEvent(category: "Connection", action: "New Product", label: model)
trackEvent(category: "Connection", action: "Firmware Version", label: firmware)
trackEvent(category: "Connection", action: "New Camera", label: camera.displayName)
trackEvent(category: "Connection", action: "New Lens", label: info)
trackEvent(category: "Gimbal Capability", action: key as! String, label: "\(range.isSupported) \(range.min) - \(range.max)")
trackEvent(category: "Gimbal Capability", action: key as! String, label: "\(capability.isSupported)")
trackEvent(category: "Panorama", action: "Range Extension", label: "Starting panoarama with model \(self.model), camera \(self.cameraController?.camera.displayName) range extension \(self.gimbalController?.supportsRangeExtension) and max pitch \(self.gimbalController?.getMaxPitch())")
trackEvent(category: "Panorama", action: "Running", label: "Stopped by system")
trackEvent(category: "Panorama", action: "Camera", label: "Aborted \(reason)")
trackEvent(category: "Panorama", action: "Camera", label: "Error \(reason)")
trackEvent(category: "Panorama", action: "Gimbal", label: "Aborted \(reason)")
trackEvent(category: "Panorama", action: "Gimbal", label: "Out of range \(reason)")
trackEvent(category: "Panorama", action: "Running", label: "Started by user")
trackEvent(category: "Panorama", action: "Running", label: "Stopped by user")

Clone this wiki locally