# Send Metrics The metrics collection and analysis plan for Send, a forthcoming Test Pilot experiment. ## Analysis Data collected by Send will be used to answer the following high-level questions: - Do users send files? - How often? How many? - What is the retention? - What is the distribution of senders? - How do recipients interact with promotional UI elements? - Are file recipients converted to file senders? - Are non-Firefox users converted to Firefox users? - Where does it go wrong? - How often are there errors in uploading or downloading files? - What types of errors to users commonly see? - At what point do errors affect retention? ## Collection Data will be collected with Google Analytics and follow [Test Pilot standards](https://github.com/mozilla/testpilot/blob/master/docs/experiments/ga.md) for reporting. ### Custom Metrics - `cm1` - the size of the file, in bytes. - `cm2` - the amount of time it took to complete the file transfer, in milliseconds. Only include if the file completed transferring (ref: `cd2`). - `cm3` - the rate of the file transfer, in bytes per second. This is computed by dividing `cm1` by `cm2`, not by monitoring transfer speeds. Only include if the file completed transferring (ref: `cd2`). - `cm4` - the amount of time until the file will expire, in milliseconds. - `cm5` - the number of files the user has ever uploaded. - `cm6` - the number of unexpired files the user has uploaded. - `cm7` - the number of files the user has ever downloaded. - `cm8` - the number of downloads permitted by the uploader. ### Custom Dimensions - `cd1` - the method by which the user initiated an upload. One of `drag`, `click`. - `cd2` - the reason that the file transfer stopped. One of `completed`, `errored`, `cancelled`. - `cd3` - the destination of a link click. One of `experiment-page`, `download-firefox`, `twitter`, `github`, `cookies`, `terms`, `privacy`, `about`, `legal`, `mozilla`. - `cd4` - the location from which the user copied the URL to an upload file. One of `success-screen`, `upload-list`. - `cd5` - the referring location. One of `completed-download`, `errored-download`, `cancelled-download`, `completed-upload`, `errored-upload`, `cancelled-upload`, `testpilot`, `external`. - `cd6` - identifying information about an error. Exclude if there is no error involved. **TODO:** enumerate a list of possibilities. ### Events _NB:_ due to how files are being tracked, there are no events indicating file expiry. This carries some risk: most notably, we can only derive expiration rates by looking at download rates, which is prone to skew if there are problems in data collection. #### `upload-started` Triggered whenever a user begins uploading a file. Includes: - `ec` - `sender` - `ea` - `upload-started` - `cm1` - `cm5` - `cm6` - `cm7` - `cd1` - `cd5` #### `upload-stopped` Triggered whenever a user stops uploading a file. Includes: - `ec` - `sender` - `ea` - `upload-stopped` - `cm1` - `cm2` - `cm3` - `cm5` - `cm6` - `cm7` - `cd1` - `cd2` - `cd6` #### `download-limit-changed` Triggered whenever the sender changes the download limit. Includes: - `ec` - `sender` - `ea` - `download-limit-changed` - `cm1` - `cm5` - `cm6` - `cm7` - `cm8` #### `password-added` Triggered whenever a password is added to a file. Includes: - `cm1` - `cm5` - `cm6` - `cm7` #### `download-started` Triggered whenever a user begins downloading a file. Includes: - `ec` - `recipient` - `ea` - `download-started` - `cm1` - `cm4` - `cm5` - `cm6` - `cm7` #### `download-stopped` Triggered whenever a user stops downloading a file. - `ec` - `recipient` - `ea` - `download-stopped` - `cm1` - `cm2` (if possible and applicable) - `cm3` (if possible and applicable) - `cm5` - `cm6` - `cm7` - `cd2` - `cd6` #### `exited` Fired whenever a user follows a link external to Send. - `ec` - `recipient`, `sender`, or `other`, as applicable. - `ea` - `exited` - `cd3` #### `upload-deleted` Fired whenever a user deletes a file they’ve uploaded. - `ec` - `sender` - `ea` - `upload-deleted` - `cm1` - `cm2` - `cm3` - `cm4` - `cm5` - `cm6` - `cm7` - `cd1` - `cd4` #### `copied` Fired whenever a user copies the URL of an upload file. - `ec` - `sender` - `ea` - `copied` - `cd4` #### `restarted` Fired whenever the user interrupts any part of funnel to return to the start of it (e.g. with a “send another file” or “send your own files” link). - `ec` - `recipient`, `sender`, or `other`, as applicable. - `ea` - `restarted` - `cd2` #### `unsupported` Fired whenever a user is presented a message saying that their browser is unsupported due to missing crypto APIs. - `ec` - `recipient` or `sender`, as applicable. - `ea` - `unsupported` - `cd6`