PATENT DOCUMENT

Publication Number: US-12214258-B2
Application Number: US-202217992253-A
Country: US
Kind Code: B2

Title: Wearable computer with fitness machine connectivity for improved activity monitoring

Abstract:
A method of generating a calibration factor is described. In an example, the method may include establishing a wireless communication connection with a fitness machine. The method may also include obtaining first machine data from the fitness machine. The first machine data may specify a type of the fitness machine. The method may also include initiating a workout session on the wearable computer based on the first machine data. During the workout session, the method may also include obtaining sensor data, obtaining second machine data, and determining the calibration factor based on the second machine data and the sensor data. The method may also include generating a workout session summary based on the calibration factor.

Claims:
What is claimed is: 
     
       1. A computer-implemented method, comprising:
 establishing, by a wearable computer, a wireless communication connection with a fitness machine; 
 obtaining first machine data from the fitness machine, the first machine data specifying a type of the fitness machine; 
 initiating a workout session on the wearable computer based on the first machine data; 
 during the workout session:
 obtaining first sensor data generated by the wearable computer; 
 obtaining second machine data from the fitness machine; 
 
 determining a calibration factor based on the second machine data and the first sensor data;
 storing the calibration factor on the wearable computer; and 
 scaling second sensor data generated by the wearable computer using the calibration factor to define first scaled sensor data; and 
 
 generating a workout session summary based on the first scaled sensor data. 
 
     
     
       2. The computer-implemented method of  claim 1 , further comprising, during the workout session, launching a pedometer calibration application on the wearable computer to obtain the first sensor data. 
     
     
       3. The computer-implemented method of  claim 2 , wherein the first sensor data comprises pedometer data comprising at least one of a step count or a distance traveled. 
     
     
       4. The computer-implemented method of  claim 1 , wherein the calibration factor comprises a ratio formed from the second machine data over the first sensor data. 
     
     
       5. The computer-implemented method of  claim 1 , further comprising:
 terminating the workout session; 
 establishing, by the wearable computer, a different workout session on the fitness machine; and 
 during the different workout session:
 obtaining third sensor data generated by the wearable computer; 
 scaling the third sensor data using the calibration factor to define second scaled sensor data; and 
 storing the second scaled sensor data on the wearable computer. 
 
 
     
     
       6. The computer-implemented method of  claim 1 , further comprising obtaining second machine data from the fitness machine. 
     
     
       7. The computer-implemented method of  claim 6 , wherein generating the workout session summary comprises scaling the second machine data using the calibration factor. 
     
     
       8. One or more non-transitory computer-readable storage devices comprising computer-executable instructions that, when executed by one or more processors of a wearable computer, cause the wearable computer to perform operations comprising:
 establishing, by the wearable computer, a wireless communication connection with a fitness machine; 
 obtaining first machine data from the fitness machine, the first machine data specifying a type of the fitness machine; 
 initiating a workout session on the wearable computer based on the first machine data; 
 during the workout session:
 obtaining first sensor data generated by the wearable computer; 
 obtaining second machine data from the fitness machine; 
 determining a calibration factor based on the second machine data and the first sensor data; storing the calibration factor on the wearable computer; and 
 scaling second sensor data generated by the wearable computer using the calibration factor to define first scaled sensor data; and 
 
 generating a workout session summary based on the first scaled sensor data. 
 
     
     
       9. The one or more non-transitory computer-readable storage devices of  claim 8 , further comprising additional computer-executable instructions that when executed cause the wearable computer to perform additional operations comprising, during the workout session, launching a pedometer calibration application on the wearable computer to obtain the first sensor data. 
     
     
       10. The one or more non-transitory computer-readable storage devices of  claim 9 , wherein the first sensor data comprises pedometer data comprising at least one of a step count or a distance traveled. 
     
     
       11. The one or more non-transitory computer-readable storage devices of  claim 8 , wherein the calibration factor comprises a ratio formed from the second machine data over the first sensor data. 
     
     
       12. The one or more non-transitory computer-readable storage devices of  claim 8 , further comprising additional computer-executable instructions that when executed cause the wearable computer to perform additional operations comprising:
 terminating the workout session; 
 establishing, by the wearable computer, a different workout session on the fitness machine; and 
 during the different workout session:
 obtaining third sensor data generated by the wearable computer; 
 scaling the third sensor data using the calibration factor to define second scaled sensor data; and 
 storing the second scaled sensor data on the wearable computer. 
 
 
     
     
       13. The one or more non-transitory computer-readable storage devices of  claim 8 , further comprising additional computer-executable instructions that when executed cause the wearable computer to perform additional operations comprising obtaining second machine data from the fitness machine. 
     
     
       14. The one or more non-transitory computer-readable storage devices of  claim 13 , wherein generating the workout session summary comprises scaling the second machine data using the calibration factor. 
     
     
       15. A system, comprising:
 one or more processors; and 
 memory coupled to the one or more processors and configured to store instructions, which, when executed by the one or more processors, cause the one or more processors to perform operations comprising: 
 establishing, by a wearable computer, a wireless communication connection with a fitness machine; 
 obtaining first machine data from the fitness machine, the first machine data specifying a type of the fitness machine; 
 initiating a workout session on the wearable computer based on the first machine data; 
 during the workout session:
 obtaining first sensor data generated by the wearable computer; 
 obtaining second machine data from the fitness machine; 
 determining a calibration factor based on the second machine data and the first sensor data; 
 storing the calibration factor on the wearable computer; and 
 scaling second sensor data generated by the wearable computer using the calibration factor to define first scaled sensor data; and 
 
 generating a workout session summary based on the first scaled sensor data. 
 
     
     
       16. The system of  claim 15 , wherein the operations further comprise, during the workout session, launching a pedometer calibration application on the wearable computer to obtain the first sensor data. 
     
     
       17. The system of  claim 16 , wherein the first sensor data comprises pedometer data comprising at least one of a step count or a distance traveled. 
     
     
       18. The system of  claim 15 , wherein the calibration factor comprises a ratio formed from the second machine data over the first sensor data. 
     
     
       19. The system of  claim 15 , wherein the operations further comprise:
 terminating the workout session; 
 establishing, by the wearable computer, a different workout session on the fitness machine; and 
 during the different workout session:
 obtaining third sensor data generated by the wearable computer; 
 scaling the third sensor data using the calibration factor to define second scaled sensor data; and 
 storing the second scaled sensor data on the wearable computer. 
 
 
     
     
       20. The system of  claim 15 , wherein the operations further comprise obtaining second machine data from the fitness machine.

Description:
CROSS-REFERENCE TO RELATED APPLICATION 
     This application is a continuation of U.S. patent application Ser. No. 17/080,783, filed on Oct. 26, 2020 (now U.S. Pat. No. 11,541,279 B2, issued on Jan. 23, 2023), which is a continuation of and claims priority to U.S. patent application Ser. No. 15/613,131, filed on Jun. 2, 2017 (now U.S. Pat. No. 10,814,167, issued on Oct. 27, 2020), the entire contents of which are incorporated herein by reference. 
    
    
     TECHNICAL FIELD 
     This disclosure relates generally to activity monitoring using wearable computers. 
     BACKGROUND 
     Some wearable computers (e.g., smartwatch, fitness band) include a fitness application that uses a digital pedometer to track a user&#39;s daily movements and provide customized notifications related to progress and workout results, such as distance traveled and calories burned. Some fitness applications also monitor the user&#39;s heart rate, which can be used to calculate calories burned. A typical digital pedometer relies on accelerometer data from an accelerometer to determine when a step is taken. If the wearable computer is worn on the wrist, accelerations due to arm swing may cause inaccurate step counts, resulting in inaccurate distance traveled measurements. The heart rate measurement, however, is often accurate due to the device being worn on the user&#39;s wrist where the user&#39;s heartbeat can be accurately measured. 
     When a user works out in a gym, they will often use a fitness machine that includes a processor that monitors the workout and generates fitness metrics summarizing the workout. For example, a treadmill may display to the user the total distance traveled, elapsed time and total calories burned during the workout. The total distance travelled is typically accurate because it is based on rotation of the treadmill motor shaft rather than accelerometer data, but the total calories burned is often an estimate based on a model that does not include the actual heart rate of the user. 
     SUMMARY 
     Embodiments are disclosed for a wearable computer with fitness machine connectivity for improved activity monitoring. 
     In an embodiment, a method comprises: establishing, by a processor of a wireless device, a wireless communication connection with a fitness machine; obtaining, by the processor, machine data from the fitness machine; determining, by the processor, a workout session according to the machine data; initiating the workout session on the wireless device; during the workout session: obtaining, from a sensor of the computing device, physiological data of a user of the fitness machine; determining, by the processor, fitness data for the user based on the physiological data, the machine data and at least one user characteristic; and sending, by the processor, the fitness data to the fitness machine. 
     In an embodiment, a system comprises: one or more processors; memory coupled to the one or more processors and configured to store instructions, which, when executed by the one or more processors, cause the one or more processors to perform operations comprising: establishing a wireless communication connection with a fitness machine; obtaining machine data from the fitness machine; determining a workout session according to the machine data; initiating the workout session on the wireless device; during the workout session: obtaining physiological data of a user of the fitness machine; determining fitness data for the user based on the physiological data, the machine data and at least one user characteristic; and sending the fitness data to the fitness machine. 
     Other embodiments can include an apparatus, computing device and non-transitory, computer-readable storage medium. 
     The details of one or more implementations of the subject matter are set forth in the accompanying drawings and the description below. Other features, aspects and advantages of the subject matter will become apparent from the description, the drawings and the claims. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         FIG.  1    illustrates an operating environment for an improved activity monitoring system that includes a wearable computer wirelessly connected to a fitness machine, according to an embodiment. 
         FIG.  2    is a block diagram of an example activity monitoring system for improved activity monitoring using wearable computer data combined with fitness machine data, according to an embodiment. 
         FIG.  3    is an example process flow for connecting a wearable computer with a fitness machine, according to an embodiment. 
         FIG.  4    is a swim lane diagram of example connection establishment procedures, according to an embodiment. 
         FIG.  5    is a state diagram illustrating an example state machine implemented by a fitness machine processor for connecting and establishing a session with a wearable computer, according to an embodiment. 
         FIG.  6    is a flow diagram of an example process performed by a wearable computer for calculating fitness data, according to an embodiment. 
         FIG.  7    is a flow diagram of an example process performed by a wearable computer to calibrate a digital pedometer, according to an embodiment. 
         FIG.  8    is example wearable computer architecture for a wearable computer implementing the features and operations described in reference to  FIGS.  1 - 7   . 
     
    
    
     DETAILED DESCRIPTION 
     Example Operating Environment 
       FIG.  1    illustrates an operating environment  100  for an improved activity monitoring system that includes wearable computer  102  wirelessly connected to fitness machine  101 , according to an embodiment. User  100  is wearing computer  102  on her wrist while she runs on fitness machine  101 , which in this example is a treadmill. Other examples of fitness machines include but are not limited to: cross-trainers (elliptical trainers), step/stair climbers, indoor bikes, indoor rowing machines and skiing machines. Wearable computer  102  can be a smart watch, fitness band, chest band, headband, earbud, activity/fitness tracker, headset, smart glasses, or any other wearable computer capable of communicating with fitness machine  101  and calculating a fitness metric. Wearable computer  102  establishes a bi-directional, wireless communication session  103  with a processor in fitness machine  101  using a wireless communication protocol. In an embodiment, session  103  can be a Bluetooth session or near field communication (NFC) session, which can be established using a “pairing” process, as described in reference to  FIGS.  4  and  5   . In an embodiment, fitness machine  101  is authenticated and the user&#39;s consent to share data is confirmed before bi-directional data sharing is allowed between wearable computer  102  and fitness machine  101 . 
     Wearable computer  102  includes a processor and memory that includes instructions for running a fitness application that can be executed by the processor. The fitness application runs on wearable computer  102  during the user&#39;s workout session on fitness machine  101 . A processor in fitness machine  101  monitors the workout session and computes various data (hereinafter referred to as “machine data”) related to the workout session, including but not limited to: total energy used, total distance run, elapsed time, instantaneous speed, average speed, inclination and positive elevation gain. The machine data is transferred over link  103  to computer  102  where it is used by the fitness application, together with data known to computer  102  (hereinafter referred to as “wearable computer data”), to calculate one or more fitness metrics, such as calories burned. As described in further detail below, wearable computer  102  can include a heart rate monitor for determining the user&#39;s heart rate, which can be combined with machine data to determine calories burned. 
     During the workout session, one or more fitness metrics calculated by wearable computer  102  are transferred back to fitness machine  101  where the metrics are displayed on a monitor of fitness machine  101 . During the workout session and/or after the workout session ends, a workout summary including the fitness metrics is transferred to computer  102 . The user can view the details of the workout session at any time on fitness machine  101 , or on wearable computer  102 . In an embodiment, wearable computer  102  displays an in-session view with metrics received from fitness machine  101 , as well as heart rate and calories (total/active) computed by wearable computer  102 . The user can use computer  102  to transfer the workout summary to another device by syncing directly with the other device or indirectly through a network (e.g., the Internet). In an embodiment, the workout session summary can be shared with other user devices in the gym through a wireless local area network (WLAN) or a multi-peer ad hoc mesh network. In this manner, users can compare their fitness metrics with friends, trainers and other individuals for a particular fitness machine while in the gym. In an embodiment, and with the consent of users, anonymous summary data can be processed by a server computer to provide workout statistics for a particular fitness machine over a large sample set. Such statistics can be used by gym operators, fitness machine manufacturers and other interested entities to determine what machines are most popular, the average time spent on a machine and other useful information. 
     In addition to calculating fitness metrics, wearable computer  102  can use machine data to calibrate a digital pedometer running on wearable computer  102 . For example, the total distance traveled during a workout session computed by fitness machine  101  can be used with an estimated distance traveled during the workout session based on pedometer step count to determine a calibration factor (e.g., a ratio of the two numbers). The calibration factor can be used to scale the estimated distance traveled calculated by computer  102  to correct out the error in the estimate. 
     Example System 
       FIG.  2    is a block diagram of an example activity monitoring system for improved activity monitoring using wearable computer data combined with fitness machine data, according to an embodiment. System  200  can be implemented in wearable computer  102 , such as a smartwatch or fitness band. System  200  includes wireless interface  201 , motion sensor(s)  202  (e.g., accelerometers, gyros, magnetometer), fitness application  203 , digital pedometer  204 , activity data  205 , physiological sensor(s)  206  and pedometer data  207 . System  200  can be wired or wirelessly coupled to network  212  through WLAN access point  208  (e.g., a Wi-Fi router) to transfer data and/or sync with activity data  211  through network server computers  210 . 
     In an embodiment, wireless interface  201  includes a wireless transceiver and other hardware (e.g., an antenna) and software (e.g., a software communication stack) for establishing, maintaining and ending a wireless communication session with fitness machine  101 , as described in reference to  FIG.  1   . In an embodiment, wireless interface  201  can also be configured to establish, maintain and end a wireless communication session with WLAN access point  208 , and/or other devices  213  through a multi-peer ad hoc mesh network. 
     In an embodiment, motion sensors, such as accelerometers provide acceleration data that can be used by digital pedometer  204  to determine step count and calculate an estimated distance traveled based on the step count and a stride length of the user. The stride length can be based on average stride length for the user given the gender and height of the user, or it can be determined automatically based on sensor data. Pedometer data  207  including step count and distance traveled can be stored on wearable computer  102  (e.g., stored in flash memory). 
     Fitness application  203  can be a software program that is executed by one or more processors of wearable computer  102 . Fitness application  203  use pedometer data  207  to track a user&#39;s daily movements and provide customize notifications related to progress and workout results, such as distance traveled and calories burned. Fitness application  203  also monitors the user&#39;s heart rate and other physiology of the user, which can be calculated from sensor data provided by physiological sensor(s)  206 . Some examples of physiological sensors  206  include but are not limited to: heart rate (pulse) sensors, blood pressure sensors, skin temperature and/or conductance response sensors and respiratory rate sensors. In an embodiment, physiological sensor(s)  206  include a heart rate sensor comprising a number of light emitting diodes (LEDs) paired with photodiodes that can sense light. The LEDs emit light toward a user&#39;s body part (e.g., the user&#39;s wrist), and the photodiodes measure the reflected light. The difference between the sourced and reflected light is the amount of light absorbed by the user&#39;s body. Accordingly, the user&#39;s heart beat modulates the reflected light, which can be processed to determine the user&#39;s heart rate. The measured heart rate can be averaged over time to determine an average heart rate. 
     A heart rate monitor (HRM) does not measure caloric expenditure. Rather, the HRM estimates caloric expenditure during steady-state cardiovascular exercise using a relationship between heart rate and oxygen uptake (VO2). A commonly accepted method for measuring the calories burned for a particular activity is to measure oxygen uptake (VO2). During steady-state aerobic exercise, oxygen is utilized at a relatively consistent rate depending on the intensity of the exercise. There is an observable and reproducible relationship between heart rate and oxygen uptake. When workload intensity increases, heart rate increases and vice versa. If the user&#39;s resting heart rate, maximum heart rate, maximum oxygen uptake and weight are known, caloric expenditure can be estimated based on a percentage of their maximum heart rate or a percentage of their heart rate reserve. 
     The metabolic equivalent of tasks (MET) is the ratio of the rate of energy expended during a specific physical activity to the rate of energy expended at rest. By convention, the resting metabolic rate (RMR) is 3.5 ml O 2 ·kg −1 ·min −1 , and 1 MET is defined by Equation 1: 
     
       
         
           
             
               
                 
                   
                     1 
                     ⁢ 
                         
                     M 
                     ⁢ 
                     E 
                     ⁢ 
                     T 
                   
                   = 
                   
                     
                       1 
                       ⁢ 
                       
                         kcal 
                         
                           kg 
                           * 
                           h 
                         
                       
                     
                     = 
                     
                       
                         
                           4 
                           . 
                           1 
                         
                         ⁢ 
                         8 
                         ⁢ 
                         4 
                         ⁢ 
                         
                           kJ 
                           
                             kg 
                             * 
                             h 
                           
                         
                       
                       = 
                       
                         1.162 
                         
                           
                             W 
                             kg 
                           
                           . 
                         
                       
                     
                   
                 
               
               
                 
                   [ 
                   1 
                   ] 
                 
               
             
           
         
       
     
     Using Equation [1], a 3 MET activity expends 3 times the energy used by the body at rest. If a person does a 3 MET activity for 30 minutes she has done 3×30=90 MET-minutes of physical activity. Since the rate of energy expenditure is dependent on the intensity of the physical activity, it follows that the energy expenditure is also dependent on the type of fitness machine used in the workout session. For example, a vigorous jog on a treadmill may have a MET greater than 6 and a light workout on a stationary indoor bike may have a MET of 3 or less. 
     In an embodiment, a look-up table of MET values can be stored as activity data  211 . During a workout session, fitness machine  101  sends machine data includes the fitness machine type that can be used by fitness application  203  to identify the physical activity and select a suitable MET for the physical activity. For example, if the fitness machine type indicates a treadmill, then a MET that is suitable for jogging on a treadmill can be selected for calculation of calories expended C using Equation [2]:
 
 C =MET×time (minutes)×weight (kg),  [2]
 
where MET is the MET associated with a particular fitness activity and can be retrieved from, for example, a look-up table stored by wearable computer  102 .
 
     Published MET values and values used by fitness machines for specific physical activities are often averages that are experimentally or statistically derived from a sample of people. The level of intensity at which the user performs a specific physical activity (e.g., walking pace, running speed) will deviate from the average MET values. To personalize caloric expenditure to the user, a more accurate model can be used on wearable computer  102  to calculate caloric expenditure that uses the user&#39;s own historical workout data on a particular machine to determine a MET that is personalized to the user. For example, the conventional conversion of 3.5 ml O2·kg−1·min−1 can be adjusted based on the user&#39;s resting metabolic rate (RMR). 
     Example Use Cases 
       FIG.  3    is an example process flow  300  for connecting a wearable computer with a fitness machine, according to an embodiment. There are four use cases for connecting a wearable computer with a fitness machine: 1) the user pairs first with the fitness machine, then starts their workout, 2) the user starts their workout with the wearable computer and then pairs with the fitness machine, 3) the user starts their workout with the fitness machine and then pairs with the wearable computer, and 4) the user has simultaneous workouts on the wearable computer and the fitness machine. Each use case will be described in turn. 
     In the first use case, the user visits the gym and finds a fitness machine with a badge (e.g., an RFID tag) indicating the machine can be paired to a wearable computer, which in this example is a smartwatch strapped to the user&#39;s wrist. The user starts a new workout session ( 301 ) by placing their wearable computer near the badge to begin pairing. When the wearable computer is near the badge (e.g., less 10 cm) its proximity to the badge is detected using, for example, magnetic induction between loop antennas located in the wearable computer and the badge. 
     If it is the user&#39;s first time pairing with the fitness machine, the user is requested to consent to share data ( 303 ) with the fitness machine. The request for consent can be in the form of a GUI affordance presented on a display of the wearable computer. If the user has already consented (e.g., based on a previous connection with the fitness machine), the user will be requested to pair with the fitness machine. Since, in this first use case, the user is not in a current workout session, step  302  is not applicable. If the user agrees to pair, a pairing/authentication process begins ( 305 ). If an error occurs during the pairing/authentication the error is reported to the user ( 304 ). An error can be due to a connection failure and/or an authentication failure. 
     Since personal physiological data is being transferred to a public fitness machine, the wearable computer and fitness machine perform an authentication procedure before sharing of the user&#39;s personal fitness data is allowed. During the authentication process, and in an embodiment that uses public-private key encryption, the fitness machine generates and securely stores a public key-private key pair, which can be in the format of elliptical curve digital signature algorithm (ECDSA) or any other suitable digital signature algorithm. The fitness machine then calculates a message digest (e.g., a SHA256 message digest) using the private key and other data. The other data can be, for example, a random number, a connection confirmation value, local name data, etc. The fitness machine then uses the encoded public key and message digest to perform the authentication process. Upon successful authentication of the fitness machine, the wearable computer and fitness machine begin pairing. 
     After successful pairing, the user begins the physical workout on the fitness machine ( 306 ) by, for example, starting the machine (e.g., starting the treadmill). During the workout session, the wearable computer displays an affordance indicating that the wearable computer and fitness machine are paired and the workout session is active. During an active workout session all of the current metrics are displayed by the wearable computer. If the fitness machine is paused, the workout session on the wearable computer is also paused, and the wearable computer displays a GUI stating that the workout on the wearable computer cannot pause. If the pause is extended ( 307 ) (e.g., more than 1.5 minutes), the workout session ends ( 309 ) and a workout session summary is displayed to the user ( 310 ). If the wearable computer becomes disconnected from the fitness machine during the workout session, the wearable computer reports to the user that it has disconnected from the fitness machine. If the disconnect is extended ( 308 ) (e.g., more than 1.5 minutes), the workout session ends ( 309 ) and a workout session summary is displayed to the user ( 310 ). In an embodiment, a GUI affordance is displayed by the wearable computer that allows the user to disconnect and end the active workout session on the wearable computer without effecting the workout on the fitness machine. 
     In the second use case, the user is already in a workout session on their wearable computer. For example, the user may have entered the gym after an outdoor run with a workout session running on their wearable computer. In this second use case, the user starts a new workout session ( 301 ) by placing the wearable computer near the badge on the fitness machine. In an embodiment, if the user already consented to share data, the user is prompted with an affordance to end and save the current workout session and begin pairing with the fitness machine. If the user agrees, the current workout session is terminated and saved ( 302 ) and the pairing/authentication process begins ( 305 ). If the user does not agree, the pairing/authentication is not performed and the current workout session remains active on the wearable computer. In an embodiment, the current workout session is automatically terminated and saved by the wearable computer, and a pairing screen is displayed on the wearable computer. 
     After a successful pairing/authentication process, the user begins the physical workout ( 306 ). When the new workout session ends ( 309 ) (including by extended pause  307  or extended disconnect  308 ), data from both the previous and current workout sessions are displayed in a workout session summary ( 310 ). 
     In an embodiment, if the user did not consent to share data, the user is prompted with a GUI affordance requesting the user&#39;s consent to share data ( 303 ), end and save their current workout session and begin the pairing/authentication process. If the user consents to share data, the current workout session is terminated and saved ( 302 ) and the pairing/authentication process begins ( 305 ). If the user does not consent to share data, the pairing/authentication process ends and the current workout session remains active on the wearable computer. In an embodiment, the current workout session is automatically terminated and saved by the wearable computer, and a pairing screen is displayed on the wearable computer. 
     In the third use case, the user starts a new workout session ( 301 ) on the fitness machine but not the wearable computer. During the workout session, the user notices the badge and places their wearable computer near the badge. If the user already consented to share data, the user is prompted to pair. If the user agrees to pair, the pairing/authentication process begins ( 305 ). If the pairing/authentication process is successful, the wearable computer and fitness machine are paired. The user can continue their physical workout on the fitness machine ( 306 ). The fitness data accrued by the user on the fitness machine is ingested into the wearable computer so that the user does not lose any data, even though they may have started the workout session on the wearable computer after they started the workout session on the fitness machine. When the workout session ends ( 309 ) (including by extended pause  307  or extended disconnect  308 ), a summary of the workout session is displayed ( 310 ). 
     If the user did not previously consent to share data, the user is requested to consent ( 303 ). If the user consents, pairing begins ( 305 ). If the pairing/authentication process is successful, the wearable computer and fitness machine are paired. The user continues the physical workout on the fitness machine ( 306 ). When the workout session ends ( 309 ) (including by extended pause  307  or extended disconnect  308 ) a summary of the workout session is displayed ( 310 ). If the user does not consent to share data, pairing/authentication is not performed and the user can continue with the physical workout on the fitness machine without the wearable computer running a workout session. 
     In the fourth use case, the user is simultaneously engaged in a fitness machine workout and a wearable computer workout. The user starts a new workout ( 301 ) by placing their wearable computer near a badge on the fitness machine. In an embodiment, if the user has already consented to share data, the user is prompted to end and save their current workout and begin pairing. If the user agrees, the current workout is terminated and saved ( 302 ) and pairing/authentication begins ( 305 ). If the user does not agree, the pairing/authentication process is not performed. In an embodiment, the current workout session is automatically terminated and saved by the wearable computer, and a pairing screen is displayed on the wearable computer. If the pairing/authentication process is successful, the wearable computer and fitness machine are paired. When the new workout session ends ( 309 ) (including by extended pause  307  or extended disconnect  308 ), both the summary of the previously saved workout session and the new workout session are displayed ( 310 ). 
     If the user has not consented to share data, the user is requested to end and save the current workout session ( 302 ) and consent to sharing data ( 303 ), if the user agrees, the current workout session ends, a summary of the workout session is saved and pairing begins ( 305 ). If the pairing/authentication process is successful, the user begins the new workout ( 306 ). When the new workout session ends ( 309 ) (including by extended pause  307  or extended disconnect  308 ), a summary of the saved workout session and the new workout session are displayed ( 310 ). 
       FIG.  4    is a swim lane diagram illustrating example connection establishment procedures using NFC, according to an embodiment. In the diagram there are three actors including user  401 , wearable computer  402  and fitness machine  403 . Each step in the diagram is indicated by a letter, starting with the letter “a” and ending with the letter “q”. 
     The connection establishment procedures begin when user  401  signals to fitness machine  403  their intent to pair with fitness machine  403  (step “a”) by placing the wearable computer near the badge on the fitness machine. 
     During a timed connecting interval T connectionReady , fitness machine  403  is detected by wearable computer  402  (step “b”), wearable computer  402  sends a SessionID (e.g., a unique number per pairing attempt) and out-of-band (OOB) secret data (unique per connection) to fitness machine  403  (step “c”) and fitness machine  403  calculates an identify digital signature (step “d”) using for example, ECDSA. In an embodiment, the OOB secret data can comply with Security Manager Specification of Bluetooth Core Specification, Volume 3, Part H. Fitness machine  403  can include an NFC reader for reading the SessionID and OOB secret data. 
     During a timed discovery interval T discovery , fitness machine  403  advertises a fitness machine service (FTMS) and the Session ID (step “e”). Wearable computer  402  discovers fitness machine  403  via the advertisement (step “f”) and provides a public key and signature request (step “g”). 
     Fitness machine  403  sends to wearable computer  402  the public key and a signature response (step “h”). Wearable computer  402  sends a consent request to user  401  (step “i”), user  401  grants the request (step “j”). 
     During a timed pairing interval T pair , wearable computer  402  sends an OOB pairing request (step “k”) to fitness machine  403  and fitness machine  403  sends an OOB pairing response to wearable computer  402  (step “1”). 
     During a timed authentication interval T accessoryAuth , wearable computer  402  sends an authentication challenge to fitness machine  403  (step “m”) and receives an authentication response from fitness machine  403  (step “n”). 
     Upon successful authentication, user  401  starts the workout (step “o”), machine data (e.g., fitness machine type, total energy used, elapsed time, total distance) is sent to wearable computer  402  (step “p”) and fitness data (e.g., instantaneous and average heart rate, active and total calories) is sent from wearable computer  402  to fitness machine  403  (step “q”). The data is communicated using, for example, NFC or Bluetooth standard protocols (e.g., Bluetooth Core Specification version 4.2, NFC Suite B version 1.0). 
       FIG.  5    is a diagram illustrating an example state machine  500  implemented by a fitness machine processor for connecting and establishing a session with a wearable computer, according to an embodiment. Each state is indicated by a letter, starting from “a” and ending with “f”. 
     The fitness machine starts in a discovery state  501  (state “a”) where the fitness machine is idle and its NFC reader is ready to rea a user&#39;s tag. When a user intent to connect is detected (“tap”), state  501  transitions to connectable advertising state  502  (state “b”) and the fitness machine advertises at a timed interval T connectionAdv . Included in the advertising packet is the SessionID and FTMS. When a pairing request is received from a wearable computer, state  502  transitions to pairing state  503  (state “c”). In state  503 , the fitness machine responds to an identity verification request, authentication challenge and pairing request. 
     When pairing is complete, state  503  transitions to connected discoverable state  504  (state “d”), where the fitness machine is paired to the wearable computer. If the link is lost, connected discoverable state  504  transitions to a disconnected advertising state  505  (step “e”). In state  505 , the fitness machine is no longer able to communicate with the wearable computer and starts advertising as non-discoverable to facilitate reconnection. When a reconnect time T reconnect  expires, disconnected advertising state  505  transitions to unpairing state  506  (step “f”). In state  506 , the fitness machine deletes its current pairing record. 
     If the fitness machine is in the connected discoverable state  504 , and the user initiates a disconnect, the connected discoverable state  504  transitions to the unpairing state  506 . If the fitness machine is in the disconnected advertising state  505 , and the wearable computer initiates a reconnect, the disconnected advertising state  505  transitions to the disconnected discoverable state  504 . If the fitness machine is in the pairing state  503 , and a pairing time T pair  expires, the pairing state  503  transitions to the discoverable state  501 . If the fitness machine is in the connectable advertising state  502 , and a discovery time T discovery  expires, the connectable advertising state  502  transitions to the discoverable state  501 . 
     In an embodiment, the user may determine how pairing will operate on their wearable computer. The user can select various pairing options using one or more GUI affordances or hardware input mechanisms. For example, a switch can allow the user to turn auto pairing on and off. Auto pairing is where the user does not have to say yes to pairing if they have accepted pairing with a fitness machine in the past. Another switch allows the user to select automatic pairing to be always turned on or turned on only when the user has launched the fitness application on the wearable computer. If automatic pairing is only allowed when the workout application is launched, the user will have to launch the workout application to pair with a fitness machine. In an embodiment, if the wearable computer determines that the user has completed at least one workout session on the wearable computer, then automatic pairing remains turned on regardless of whether or not the fitness application is launched. If the user has not completed a workout session, the user will need to launch the fitness application to turn on automatic pairing. 
     In an embodiment, a GUI affordance or hardware input mechanism can be used to clear a particular fitness machine, or all fitness machines, listed in a pairing record stored on the wearable computer. If, however, the wearable computer was paired with a particular fitness machine in the past, and the user attempts to pair within x days (e.g., 90 days) from the last pairing, the wearable computer will auto-connect with the fitness machine. Otherwise, the user will be prompted to perform a pairing/authentication process with the fitness machine, as described in reference to  FIGS.  3 - 5   . 
       FIG.  6    is a flow diagram of an example process performed by a wearable computer for calculating fitness data, according to an embodiment. Process  600  can be implemented by architecture  600 , as described in reference to  FIG.  8   . 
     Process  600  can begin by establishing wireless communication with a fitness machine ( 601 ). For example, a Bluetooth or NFC session can be established with the fitness machine, as described in reference to  FIGS.  3 - 5   . A unique SessionID and OOB secret data can be calculated on the wearable computer and sent to the fitness machine for use in pairing and authentication. 
     Process  600  continues after pairing by obtaining machine data from the fitness machine ( 602 ). After successful pairing and authentication, machine data can be transferred to the wearable computer using Bluetooth or NFC session data packets. The machine data can include, for example, data that describes the fitness machine, including but not limited to: manufacturer name, model number, hardware revision, software revision, vendor ID, product ID. Additionally, various fitness metrics can be included in the machine data, such as total energy, total distance and elapsed time. Some examples of fitness metrics for different types of fitness machines is described in Table I below. 
     
       
         
           
               
             
               
                 TABLE 1 
               
             
            
               
                   
               
               
                 Fitness Machine Metrics 
               
            
           
           
               
               
               
               
            
               
                 Fitness  
                   
                   
                   
               
               
                 Machine 
                 Metric 
                 Units 
                 Resolution 
               
               
                   
               
            
           
           
               
               
               
               
               
            
               
                 Treadmill 
                 Total Energy 
                 kilo calories 
                 1 
                 kilo calorie 
               
               
                   
                 Total Distance 
                 meters 
                 1 
                 meter 
               
               
                   
                 Elapsed Time 
                 seconds 
                 1 
                 second 
               
               
                   
                 Instantaneous  
                 kilometers per hour 
                 0.01 
                 kilometer per hour 
               
               
                   
                 Speed 
                   
                   
                   
               
               
                   
                 Average Speed 
                 kilometers per hour 
                 0.01 
                 kilometer per hour 
               
               
                   
                 Inclination 
                 percent grade 
                 0.1 
                 percent grade 
               
               
                   
                 Positive Elevation  
                 meters 
                 0.1 
                 meters 
               
               
                   
                 Gain 
                   
                   
                   
               
               
                 Cross  
                 Total Energy 
                 kilo calories 
                 1 
                 kilo calories 
               
               
                 Trainer 
                 Total Distance 
                 meters 
                 1 
                 meters 
               
               
                   
                 Elapsed Time 
                 seconds 
                 1 
                 second 
               
               
                   
                 Positive Elevation  
                 meters 
                 1 
                 meters 
               
               
                   
                 Gain 
                   
                   
                   
               
            
           
           
               
               
               
               
            
               
                   
                 Stride Count 
                 — 
                 1 
               
               
                   
                 Resistance Level 
                 — 
                 1 
               
            
           
           
               
               
               
               
               
            
               
                   
                 Instantaneous  
                 watts 
                 1 
                 watt 
               
               
                   
                 Power 
                   
                   
                   
               
               
                 Step/Stair  
                 Total Energy 
                 kilo calories 
                 1 
                 kilo calorie 
               
               
                 Climber 
                 Elapsed Time 
                 seconds 
                 1 
                 second 
               
               
                   
                 Positive Elevation  
                 meters 
                 1 
                 meters 
               
               
                   
                 Gain 
                   
                   
                   
               
            
           
           
               
               
               
               
            
               
                   
                 Floors 
                 — 
                 1 
               
               
                   
                 Stride/Step Count 
                 — 
                 1 
               
            
           
           
               
               
               
               
               
            
               
                 Indoor/ 
                 Total Energy 
                 kilo calories 
                 1 
                 kilo calorie 
               
               
                 Stationary  
                 Total Distance 
                 meters 
                 1 
                 meters 
               
               
                 Bike 
                 Elapsed Time 
                 seconds 
                 1 
                 second 
               
            
           
           
               
               
               
               
            
               
                   
                 Instantaneous  
                 — 
                 0.5 
               
               
                   
                 Cadence 
                   
                   
               
               
                   
                 Average Cadence 
                 — 
                 0.5 
               
               
                   
                 Resistance Level 
                 — 
                 1 
               
            
           
           
               
               
               
               
               
            
               
                   
                 Instantaneous  
                 watts 
                 1 
                 watt 
               
               
                   
                 Power 
                   
                   
                   
               
               
                   
                 Average Power 
                 watts 
                 1 
                 watt 
               
               
                 Rowing  
                 Total Energy 
                 kilo calories 
                 1 
                 kilo calorie 
               
               
                 Machine 
                 Total Distance 
                 meters 
                 1 
                 meters 
               
               
                   
                 Elapsed Time 
                 seconds 
                 1 
                 second 
               
            
           
           
               
               
               
               
            
               
                   
                 Stroke Count 
                 — 
                 1 
               
               
                   
                 Resistance Level 
                 — 
                 1 
               
            
           
           
               
               
               
               
               
            
               
                   
                 Instantaneous  
                 watts 
                 1 
                 watt 
               
               
                   
                 Power 
               
               
                   
               
            
           
         
       
     
     Process  600  continues by determining a workout session according to the machine data ( 603 ). Based on the machine data, the wearable computer learns the specific physical activity the user will be engaged in during the workout session. For example, if the fitness machine is a tread mill then the wearable computer will know what fitness metrics may be received from the fitness machine and how to calculate fitness data for the workout. This can include adjusting parameters of a calorie model, such as, for example, determining an appropriate MET for calculating calorie expenditure. 
     Process  600  continues by initiating a workout session ( 604 ). For example, the user starts the fitness machine. Process  600  continues by obtaining, during the workout, the user&#39;s physiological data ( 605 ). The physiological data can be any data that measures the physiology of the user during the workout, including but not limited to: heart rate sensors, pulse detectors, blood pressure sensors, skin temperature and/or conductance response sensors, respiratory rate sensors, etc. The sensors can be included in any suitable housing, including but not limited to: a smartwatch or watchband, fitness band, chest band, headband, finger clip, ear clip, earbud, strapless heart rate monitor, etc. 
     Process  600  continues by determining fitness data, during the workout session, for the user based on the physiological data, machine data and user characteristic(s) ( 606 ). For example, calories burned can be calculated using knowledge of the physical activity, the total energy, total distance, elapsed time any other data shown in Table I, that can be used in a calorie expenditure model. Any suitable calorie expenditure model can be used, including models that are dependent on MET and not dependent MET, and models that include any type and combination of user characteristics, such as height, weight, age and gender. 
     Process  600  continues by sending the fitness data, during the workout session, to the fitness machine ( 607 ). After calculating the fitness data, the wearable computer sends the fitness data to the fitness machine where it can be displayed on a monitor of the fitness machine. In an embodiment, the fitness data is also stored on the wearable computer. The stored fitness data can be synced to another device including a network-based server computer and shared with other devices through a client-server architecture. In an embodiment, the fitness data can be shared directly with other devices (e.g., devices owned by friends, trainers, etc.) in a multi-peer ad hoc mesh network. 
       FIG.  7    is a flow diagram of an example process  700  performed by a wearable computer to calibrate a digital pedometer, according to an embodiment. Process  700  can be implemented by architecture  700 , as described in reference to  FIG.  8   . 
     Process  700  begins by establishing wireless communication with a fitness machine ( 701 ). For example, a Bluetooth or NFC session can be established with the fitness machine, as described in reference to  FIGS.  4  and  5   . 
     Process  700  continues by launching a pedometer calibration application on the wearable computer ( 702 ). The pedometer application can measure step counts based on sensor data, such as accelerometer data provided by an accelerometer on the wearable computer. 
     Process  700  continues by obtaining machine data from the fitness machine ( 703 ). After a successful pairing/authentication process, the fitness machine can send data to the wearable computer that indicates the specific physical activity engaged in by the user during the workout. Additionally, the machine data can include information that can be used to calibrated the digital pedometer, such as total distance data from a treadmill. 
     Process  700  continues by obtaining pedometer data ( 704 ). Pedometer data can include step count or distance traveled which can be calculated from the step count and the user&#39;s stride length. 
     Process  700  continues by determining a pedometer calibration factor based on the machine data and the pedometer data ( 705 ). For example, a ratio can be formed from the total distance provided in the machine data over the estimated distance provided by the digital pedometer. The ratio can be used as a calibration scale factor to correct future pedometer measurements by scaling the estimated distance by the ratio. Process  700  continues by storing the calibration factor ( 706 ). The calibration can be performed each time the user uses a treadmill. 
     Exemplary Wearable Computer Architecture 
       FIG.  8    illustrates example wearable computer architecture  800  implementing the features and operations described in reference to  FIGS.  1 - 7   . Architecture  800  can include memory interface  802 , one or more data processors, image processors and/or processors  804  and peripherals interface  806 . Memory interface  802 , one or more processors  804  and/or peripherals interface  806  can be separate components or can be integrated in one or more integrated circuits. 
     Sensors, devices and subsystems can be coupled to peripherals interface  806  to provide multiple functionalities. For example, one or more motion sensors  810 , light sensor  812  and proximity sensor  814  can be coupled to peripherals interface  806  to facilitate motion sensing (e.g., acceleration, rotation rates), lighting and proximity functions of the wearable computer. Location processor  815  can be connected to peripherals interface  806  to provide geo-positioning. In some implementations, location processor  815  can be a GNSS receiver, such as the Global Positioning System (GPS) receiver. Electronic magnetometer  816  (e.g., an integrated circuit chip) can also be connected to peripherals interface  806  to provide data that can be used to determine the direction of magnetic North. Electronic magnetometer  816  can provide data to an electronic compass application. Motion sensor(s)  810  can include one or more accelerometers and/or gyros configured to determine change of speed and direction of movement of the wearable computer. Barometer  817  can be configured to measure atmospheric pressure around the mobile device. 
     Heart rate monitoring subsystem  820  for measuring the heartbeat of a user who is wearing the computer on their wrist. In an embodiment, subsystem  820  includes LEDs paired with photodiodes for measuring the amount of light reflected from the wrist (not absorbed by the wrist) to detect a heartbeat. 
     Communication functions can be facilitated through wireless communication subsystems  824 , which can include radio frequency (RF) receivers and transmitters (or transceivers) and/or optical (e.g., infrared) receivers and transmitters. The specific design and implementation of the communication subsystem  824  can depend on the communication network(s) over which a mobile device is intended to operate. For example, architecture  800  can include communication subsystems  824  designed to operate over a GSM network, a GPRS network, an EDGE network, a Wi-Fi™ network and a Bluetooth™ network. In particular, the wireless communication subsystems  824  can include hosting protocols, such that the mobile device can be configured as a base station for other wireless devices. 
     Audio subsystem  826  can be coupled to a speaker  828  and a microphone  830  to facilitate voice-enabled functions, such as voice recognition, voice replication, digital recording and telephony functions. Audio subsystem  826  can be configured to receive voice commands from the user. 
     I/O subsystem  840  can include touch surface controller  842  and/or other input controller(s)  844 . Touch surface controller  842  can be coupled to a touch surface  846 . Touch surface  846  and touch surface controller  842  can, for example, detect contact and movement or break thereof using any of a plurality of touch sensitivity technologies, including but not limited to capacitive, resistive, infrared and surface acoustic wave technologies, as well as other proximity sensor arrays or other elements for determining one or more points of contact with touch surface  846 . Touch surface  846  can include, for example, a touch screen or the digital crown of a smart watch. I/O subsystem  840  can include a haptic engine or device for providing haptic feedback (e.g., vibration) in response to commands from processor  804 . In an embodiment, touch surface  846  can be a pressure-sensitive surface. 
     Other input controller(s)  844  can be coupled to other input/control devices  848 , such as one or more buttons, rocker switches, thumb-wheel, infrared port and USB port The one or more buttons (not shown) can include an up/down button for volume control of speaker  828  and/or microphone  830 . Touch surface  846  or other controllers  844  (e.g., a button) can include, or be coupled to, fingerprint identification circuitry for use with a fingerprint authentication application to authenticate a user based on their fingerprint(s). 
     In one implementation, a pressing of the button for a first duration may disengage a lock of the touch surface  846 ; and a pressing of the button for a second duration that is longer than the first duration may turn power to the mobile device on or off. The user may be able to customize a functionality of one or more of the buttons. The touch surface  846  can, for example, also be used to implement virtual or soft buttons. 
     In some implementations, the mobile device can present recorded audio and/or video files, such as MP3, AAC and MPEG files. In some implementations, the mobile device can include the functionality of an MP3 player. Other input/output and control devices can also be used. 
     Memory interface  802  can be coupled to memory  850 . Memory  850  can include high-speed random access memory and/or non-volatile memory, such as one or more magnetic disk storage devices, one or more optical storage devices and/or flash memory (e.g., NAND, NOR). Memory  850  can store operating system  852 , such as the iOS operating system developed by Apple Inc. of Cupertino, California Operating system  852  may include instructions for handling basic system services and for performing hardware dependent tasks. In some implementations, operating system  852  can include a kernel (e.g., UNIX kernel). 
     Memory  850  may also store communication instructions  854  to facilitate communicating with one or more additional devices, one or more computers and/or one or more servers, such as, for example, instructions for implementing a software stack for wired or wireless communications with other devices. Memory  850  may include graphical user interface instructions  856  to facilitate graphic user interface processing; sensor processing instructions  858  to facilitate sensor-related processing and functions; phone instructions  860  to facilitate phone-related processes and functions; electronic messaging instructions  862  to facilitate electronic-messaging related processes and functions; web browsing instructions  864  to facilitate web browsing-related processes and functions; media processing instructions  866  to facilitate media processing-related processes and functions; GNSS/Location instructions  868  to facilitate generic GNSS and location-related processes and instructions; and heart rate instructions  870  to facilitate hear rate measurements. Memory  850  further includes activity application instructions for performing the features and processes described in reference to  FIGS.  1 - 7   . 
     Each of the above identified instructions and applications can correspond to a set of instructions for performing one or more functions described above. These instructions need not be implemented as separate software programs, procedures, or modules. Memory  850  can include additional instructions or fewer instructions. Furthermore, various functions of the mobile device may be implemented in hardware and/or in software, including in one or more signal processing and/or application specific integrated circuits. 
     The described features can be implemented advantageously in one or more computer programs that are executable on a programmable system including at least one programmable processor coupled to receive data and instructions from, and to transmit data and instructions to, a data storage system, at least one input device, and at least one output device. A computer program is a set of instructions that can be used, directly or indirectly, in a computer to perform a certain activity or bring about a certain result. A computer program can be written in any form of programming language (e.g., SWIFT, Objective-C, C#, Java), including compiled or interpreted languages, and it can be deployed in any form, including as a stand-alone program or as a module, component, subroutine, a browser-based web application, or other unit suitable for use in a computing environment. 
     While this specification contains many specific implementation details, these should not be construed as limitations on the scope of any inventions or of what may be claimed, but rather as descriptions of features specific to particular embodiments of particular inventions. Certain features that are described in this specification in the context of separate embodiments can also be implemented in combination in a single embodiment. Conversely, various features that are described in the context of a single embodiment can also be implemented in multiple embodiments separately or in any suitable sub combination. Moreover, although features may be described above as acting in certain combinations and even initially claimed as such, one or more features from a claimed combination can in some cases be excised from the combination, and the claimed combination may be directed to a sub combination or variation of a sub combination. 
     Similarly, while operations are depicted in the drawings in a particular order, this should not be understood as requiring that such operations be performed in the particular order shown or in sequential order, or that all illustrated operations be performed, to achieve desirable results. In certain circumstances, multitasking and parallel processing may be advantageous. Moreover, the separation of various system components in the embodiments described above should not be understood as requiring such separation in all embodiments, and it should be understood that the described program components and systems can generally be integrated together in a single software product or packaged into multiple software products. 
     As described above, some aspects of the subject matter of this specification include gathering and use of data available from various sources to improve services a mobile device can provide to a user. The present disclosure contemplates that in some instances, this gathered data may identify a particular location or an address based on device usage. Such personal information data can include location-based data, addresses, subscriber account identifiers, or other identifying information. 
     The present disclosure further contemplates that the entities responsible for the collection, analysis, disclosure, transfer, storage, or other use of such personal information data will comply with well-established privacy policies and/or privacy practices. In particular, such entities should implement and consistently use privacy policies and practices that are generally recognized as meeting or exceeding industry or governmental requirements for maintaining personal information data private and secure. For example, personal information from users should be collected for legitimate and reasonable uses of the entity and not shared or sold outside of those legitimate uses. Further, such collection should occur only after receiving the informed consent of the users. Additionally, such entities would take any needed steps for safeguarding and securing access to such personal information data and ensuring that others with access to the personal information data adhere to their privacy policies and procedures. Further, such entities can subject themselves to evaluation by third parties to certify their adherence to widely accepted privacy policies and practices. 
     In the case of advertisement delivery services, the present disclosure also contemplates embodiments in which users selectively block the use of, or access to, personal information data. That is, the present disclosure contemplates that hardware and/or software elements can be provided to prevent or block access to such personal information data. For example, in the case of advertisement delivery services, the present technology can be configured to allow users to select to “opt in” or “opt out” of participation in the collection of personal information data during registration for services. 
     Therefore, although the present disclosure broadly covers use of personal information data to implement one or more various disclosed embodiments, the present disclosure also contemplates that the various embodiments can also be implemented without the need for accessing such personal information data. That is, the various embodiments of the present technology are not rendered inoperable due to the lack of all or a portion of such personal information data. For example, content can be selected and delivered to users by inferring preferences based on non-personal information data or a bare minimum amount of personal information, such as the content being requested by the device associated with a user, other non-personal information available to the content delivery services, or publically available information.

Metadata:
Filing Date: 20221122
Publication Date: 20250204
Grant Date: 20250204
Priority Date: 20170602
Inventors: BLAHNIK, JAY
LAV, Meghna
O'LOAN, Aidan
MORINIGO, Jorge
SCOTT, GORDON
TOM, Siji Rachel
SHERIDAN, KEVIN
DOOLEY, Craig
GANIR, Chen
MORRISON, Catherine B. B.
LYNCH, KEVIN M.
Assignee: APPLE INC
CPC Classifications: [{"code": "A63B2230/75", "inventive": false, "first": false, "tree": "[]"}, {"code": "A63B2230/06", "inventive": false, "first": false, "tree": "[]"}, {"code": "A63B2230/01", "inventive": false, "first": false, "tree": "[]"}, {"code": "A63B2225/50", "inventive": false, "first": false, "tree": "[]"}, {"code": "A63B2220/836", "inventive": false, "first": false, "tree": "[]"}, {"code": "A63B2220/803", "inventive": false, "first": false, "tree": "[]"}, {"code": "A63B2220/62", "inventive": false, "first": false, "tree": "[]"}, {"code": "A63B2220/17", "inventive": false, "first": false, "tree": "[]"}, {"code": "A63B2071/0658", "inventive": false, "first": false, "tree": "[]"}, {"code": "A63B2071/0625", "inventive": false, "first": false, "tree": "[]"}, {"code": "A63B2024/0065", "inventive": false, "first": false, "tree": "[]"}, {"code": "A63B71/0622", "inventive": true, "first": false, "tree": "[]"}, {"code": "A63B22/02", "inventive": true, "first": false, "tree": "[]"}, {"code": "G16H20/30", "inventive": true, "first": false, "tree": "[]"}, {"code": "A63B2024/0065", "inventive": false, "first": false, "tree": "[]"}, {"code": "A63B2220/836", "inventive": false, "first": false, "tree": "[]"}, {"code": "A63B2225/50", "inventive": false, "first": false, "tree": "[]"}, {"code": "A63B2230/01", "inventive": false, "first": false, "tree": "[]"}, {"code": "A63B2230/75", "inventive": false, "first": false, "tree": "[]"}, {"code": "A63B2230/06", "inventive": false, "first": false, "tree": "[]"}, {"code": "A63B2220/17", "inventive": false, "first": false, "tree": "[]"}, {"code": "A63B2220/62", "inventive": false, "first": false, "tree": "[]"}, {"code": "A63B2220/803", "inventive": false, "first": false, "tree": "[]"}, {"code": "A63B2071/0658", "inventive": false, "first": false, "tree": "[]"}, {"code": "A63B71/0622", "inventive": true, "first": false, "tree": "[]"}, {"code": "A63B22/02", "inventive": true, "first": false, "tree": "[]"}, {"code": "G16H20/30", "inventive": true, "first": false, "tree": "[]"}, {"code": "G16H50/30", "inventive": true, "first": false, "tree": "[]"}, {"code": "G16H40/63", "inventive": true, "first": false, "tree": "[]"}, {"code": "A63B24/0062", "inventive": true, "first": true, "tree": "[]"}, {"code": "A63B24/0062", "inventive": true, "first": true, "tree": "[]"}, {"code": "G16H20/30", "inventive": true, "first": true, "tree": "[]"}, {"code": "A63B2230/75", "inventive": false, "first": false, "tree": "[]"}, {"code": "A63B2230/06", "inventive": false, "first": false, "tree": "[]"}, {"code": "A63B2230/01", "inventive": false, "first": false, "tree": "[]"}, {"code": "A63B2225/50", "inventive": false, "first": false, "tree": "[]"}, {"code": "A63B2220/836", "inventive": false, "first": false, "tree": "[]"}, {"code": "A63B2220/803", "inventive": false, "first": false, "tree": "[]"}, {"code": "A63B2220/62", "inventive": false, "first": false, "tree": "[]"}, {"code": "A63B2220/17", "inventive": false, "first": false, "tree": "[]"}, {"code": "A63B2071/0658", "inventive": false, "first": false, "tree": "[]"}, {"code": "A63B2071/0625", "inventive": false, "first": false, "tree": "[]"}, {"code": "A63B2024/0065", "inventive": false, "first": false, "tree": "[]"}, {"code": "G16H20/30", "inventive": true, "first": false, "tree": "[]"}, {"code": "A63B71/0622", "inventive": true, "first": false, "tree": "[]"}, {"code": "A63B22/02", "inventive": true, "first": false, "tree": "[]"}, {"code": "A63B24/0062", "inventive": true, "first": true, "tree": "[]"}]
Family ID: 63113610