Patent Publication Number: US-11044329-B2

Title: Client application user experience tracking

Description:
BACKGROUND 
     Companies are only able to receive a partial picture of their mobile application consumer satisfaction levels. Unless a user reports problems to the company regarding use of the application, the company is unaware of any user problems. The application may cause an electronics device to crash, the user may repeatedly receive client side errors, or the application may not perform all of the functions desired by the user. A large number of application crashes or other problems may make the user frustrated with the company. The company wants to know about these experiences so that they can provide the right messaging and support to a user in order to improve the user&#39;s perception of their brand and also so that the company&#39;s agents can be aware of these events so that they can better interact with the consumer in any interaction. 
     SUMMARY 
     Devices and methods for client application user experience tracking may include generating a user experience score based on tracked operation of the client application and user inputs to the client application. The user experience score is transmitted to an experience tracking service (e.g., remote computer server, application executed locally on computing device) associated with the company responsible for the client application. 
    
    
     
       BRIEF DESCRIPTION OF THE FIGURES 
         FIG. 1  shows a block diagram of an embodiment of a computing device. 
         FIG. 2  shows a block diagram of an embodiment of a computer system. 
         FIG. 3  shows a flowchart of an embodiment of a method for client application user experience tracking. 
     
    
    
     Corresponding reference characters indicate corresponding parts throughout the several views. The exemplifications set out herein illustrate exemplary embodiments of the invention, and such exemplifications are not to be construed as limiting the scope of the invention any manner. 
     DETAILED DESCRIPTION 
     Mobile and desktop computing devices are now ubiquitous. These devices (e.g., smartphones, smartwatches, tablet computers, personal digital assistants, desktop computers) execute client applications (e.g., apps) that are lines of code, stored in memory of the device, that represent instructions for execution by the computing device&#39;s processor. Typical applications may include word processing programs, games, productivity applications, or health and fitness applications. However, the applications may not always work as planned by the company producing the application. For example, the application execution may stop or the application execution may not produce the desired results that it was intended to produce in response to some user inputs. Unfortunately, due to the localized nature of these applications, the responsible company may not be aware of these problems. 
     In order to make a company aware of the performance of its applications and, thus, improve the user&#39;s perception of their brand, the present embodiments generate a user experience score based on tracked operation of the client application and user inputs to the client application. The user experience score may then be transmitted to an experience tracking service (e.g., remote computer server, application executed locally on computing device) associated with the company. In an embodiment, a fault code may be transmitted as well in order to enable the server to determine what may have caused a negative user experience. The company&#39;s customer service agents may then use the user experience score and/or the fault code to better interact with the user through an automatic response from the company&#39;s computer servers or from interaction with the agent. 
       FIG. 1  shows a block diagram of an embodiment of a computing device. The computing device  100  may include a processing unit  102 , memory  104 , a user interface  118 , a location sensor  120 , a communications unit  122  with antenna  123 , and an I/O interface  124 . The computing device  100  elements  102 ,  104   118 ,  120 ,  122 ,  124  may be all linked together over a bus  130 . 
     The processing unit  102  may include one or more processors or other control circuitry. For example, the processing unit  102  may include one or more central processing units (CPUs), microprocessors, and/or dedicated controllers (e.g., application specific integrated circuits (ASIC)). 
     The memory  104  may include any type of long or short term data storage. For example, the memory  104  may include semiconductor memory such as random access memory (RAM), read only memory (ROM), or flash memory (e.g., solid state drive (SSD)). The memory  104  may also include magnetic memory (e.g., hard disk drive (HDD)), optical memory, or tape memory. 
     The memory  104  may store instructions that make up one or more client applications  153  (e.g., apps) executable by the processing unit  102 . The memory  104  may store any user experience scores  150 , fault codes  151 , and/or total user experience scores  152 , as described subsequently, that may be generated by operation of the application. 
     The client applications  153  may include various programs useful to the user such as word processing (e.g., Microsoft Word®, games, utilities (e.g., printing), World. Wide Web browsers (e.g., Firefox®), photography and image processing (e.g., Adobe Photoshop®), inventory control (e.g., NCR Counterpoint Mobile), or e-commerce (e.g., NCR Retail Online). 
     The user interface  118  may include any number of devices that allow a user to interface with computing device. Examples of user interfaces  118  may include a keypad, a keyboard, a microphone, a touchscreen display, or a camera. The user may use any one or more of these user interfaces  118  to provide user inputs to a client application executing on the computing device. 
     Examples of user inputs may include the user operating the keypad, keyboard, or touchscreen display for inputting data into the client application. User inputs may also include the user speaking (e.g., aural expression) into the microphone for inputting data into the client application. In another embodiment, user inputs may include facial expressions of the user as captured by the executing client application accessing the camera of the computing device. 
     The location sensor  120  may be used for determining a location of the computing device. The location sensor  120  may include any sensor that provides latitude and longitude information to allow the computing device  100  to determine its location. For example, the location sensor  120  may include any type of global positioning system (UPS) receiver. 
     The communications unit  122  enables the computing device  100  to communicate over a wired or wireless channel with another computing device, computer server, or network (e.g., local area network, wide area network, personal area network). For example, the communications unit  122  may include radios for communicating over a wireless channel using any radio access technology (e Bluetooth®, WiFi, cellular), Ethernet cards for using Ethernet protocols over a wired channel, or near-field communications modules. Radios in the communications unit  122  may transmit and receive over the antenna  123  coupled to the communications unit  122 . The communications unit  122  may be used for transmitting one or more user experience scores, one or more fault codes, and/or one or more total user experience scores to a computer server, as described subsequently. 
     The input/output (I/O) interface  124  enables the computing device  100  to receive and output information. For example, the I/O interface  124  may include printers, scanners, or monitors. 
     The computing device  100  may be implemented as a personal computer, a network computer, a mainframe, a handheld device, a personal digital assistant, a smartphone, a wearable electronic device (e.g., smartwatch), a tablet computer, a desktop computer, or a computer server. The computing device  100  may be implemented as any microprocessor-based or controller-based electronic device. 
       FIG. 2  shows a block diagram of an embodiment of a computer system. The computer system includes the computing device  100  of  FIG. 1  and one or more computer servers  210 ,  211 . The computer servers  210 ,  211  may be coupled to the computing device  100  through a network  201  that may be a wired or wireless. The network  201  may be the Internet or some local area network. 
     Each of the computer servers  210 ,  211  may be associated with a different, respective company that is associated with a particular application stored in and executable by the computing device  100 . Thus, results such as user experience scores and fault codes generated by a user&#39;s experience with that particular application may be transmitted back to the server  210 ,  211  responsible for the application. 
       FIG. 3  shows a flowchart of an embodiment of a method for client application user experience tracking. The method uses a user experience score that is generated by the computing device and is based on the user&#39;s experience with the client application. The user experience score is generated without intervention by the user. In fact, the user may not even be aware that the user experience score is being generated and transmitted. 
     The user experience score may be a number, a letter, an icon, an emoji, or some other way to provide an indication of a user&#39;s experience with the client application. For example, if the user experience score is a number (e.g., integer), it may be in a range of numbers that each represent a different respective user experience. For example, the range of numbers may be 0-10 where “0” represents an extremely unfavorable user experience, “10” represents an extremely favorable user experience, and any number within this range indicates varying levels of experience from the extremely unfavorable to the extremely favorable. 
     In another example, if the user experience score is an icon or an emoji, an extremely favorable experience may be represented by a smiling face while an extremely unfavorable experience may be represented by a frowning face. A range of other faces between the smiling face and the frowning face may each represent a respective level of user experience between those two extremes. Such a visual user experience score may be more useful if transmitted to a customer service agent than only to a computer server. 
     Referring to  FIG. 3 , in block  301  the success of the operation of the client application and user inputs to the client application are tracked on the computing device. For example, success of the operation of the client application may include whether or not the application has become inoperable (e.g., no longer able to accept inputs or update the display). Success of the operation of the client application may also include whether the execution of the application has slowed down due to execution problems. 
     In block  303 , the user inputs to the client application are monitored to determine what data the user has been inputting to the application that may have caused the client application to become inoperable. In block  305 , the user experience score is generated based on the success of operation of the client application, the client application becoming inoperative, the user inputs during operation of the client application, and the user inputs resulting in the client application becoming inoperative. 
     The user experience score may be generated over a time period. For example, the time period may be a moving window of time that is always within a predetermined time relative to the time of the user inputs. In other words, the user experience score may be generated based on the previous thirty seconds from the present time (e.g., time of the user input). That thirty second window may be fixed relative to the present time. 
     During this time window, the user experience score may be constantly varying based on both positive and negative operation of the client application as well as positive and negative user inputs. For example, when the user first activates the client application to begin execution by the computing device, the user experience score may be high, assuming proper activation. As the user continues to use the client application and the client application continues to operate properly, the user experience score would remain high. When the user first experiences trouble with the client application, the user experience score may drop a relatively small amount. If the user continues to have problems with the application, the user experience score may continue to drop incremental levels. If the problem is no longer experienced, the initial problem that caused the initial drop in the score would be removed from affecting the user experience score as the time period window moves and the time of the initial problem is no longer in the window. 
     In block  307 , the user experience score is transmitted to the experience tracking service. The experience tracking service may be located on a remote computer server, as shown in  FIG. 2 , or another application executed locally on the computing device. The transmission of the score may be continuous (e.g., as the time period window moves, the score is transmitted). In other embodiments, the user experience score may be transmitted at a set interval (e.g., every 10 seconds) or whenever the score changes. In another embodiment, the computing device may collect a plurality of user experience scores and store them in the computing device for later transmission or for use by the computing device to determine when to transmit the user experience scores, as discussed subsequently. 
     In block  309 , the computing device receives a response from the experience tracking service (e.g., computer server, locally executed application) based on the user experience score. For example, the computer server, after receiving a relatively low user experience score indicating an unfavorable user experience with the client application, may transmit an indication (e.g., text, email) to the user that the company is aware of the unfavorable experience and would like to render assistance. 
     When the computing device collects a plurality of user experiences scores and stores them in the computing device that is executing the client application, the computing device may assign a respective weight to each score based on the importance of that particular user score. For example, a user inputting their password incorrectly may not be as important as the client application causing the computing device to slow operation or the client application becoming inoperable. Thus, the user experience score for the incorrect password entry would be assigned a weight that is lower than the weight assigned to the user experience score based on the client application becoming inoperable. These weights may be continuously summed as the plurality of user experience scores are collected. Once the total weight for the plurality of user experience scores exceeds a threshold, a total user experience score may be transmitted to the computer server. 
     In another embodiment, instead of summing the weights for each of the plurality of user experience scores, the user experience scores themselves may be summed as the plurality of scores are collected to generate a total user experience score. In this case, if a relatively low user experience score is considered to be unfavorable, the total user experience score may be transmitted to the computer server when the total user experience score is less than a threshold. If a relatively high user experience score is considered to be unfavorable, then the total user experience score may be transmitted when it is greater than the threshold. 
     The summing of either the weights or the user experience scores may also be performed by the computer server instead of by the computing device that is executing the client application. In that case, the computer server may wait until the total of either the weights or the user experience scores are at a point where a response to the computing device would be helpful. For example, if the total was less than the threshold or greater than the threshold depending on the embodiment, as previously discussed. 
     In another embodiment, a fault code may be generated in response to the client application becoming inoperative or having problems. The fault code may be indicative of why the application became inoperative or had a problem. The fault code may then be transmitted to the computer server so that the company is now aware of what caused the client application to become inoperative. The fault code may be associated with a particular user experience score and transmitted to the computer server at the same time. The response from the computer server may then be based on the fault code. Some less important fault codes (e.g., wrong password) may not necessitate a response while relatively more important fault codes (e.g., application inoperative) may necessitate some kind of response to the user so that the user knows that the company is aware of the problem. 
     The previous detailed description refers to the accompanying drawings. Wherever possible, the same reference numbers are used in the drawings and the description to refer to the same or similar elements. While embodiments and examples are described, modifications, adaptations, and other implementations are possible. For example, substitutions, additions, or modifications may be made to the elements and stages illustrated in the drawings, and the systems and methods described herein may be modified by substituting, reordering, or adding stages to the disclosed methods or elements to the discloses systems. Accordingly, the detailed description does not limit the disclosure. Instead, the proper scope of any invention disclosed herein is defined by the appended claims. 
     It will be readily understood to those skilled in the art that various other changes in the details, material, and arrangements of the parts and method stages which have been described and illustrated in order to explain the nature of the inventive subject matter may be made without departing from the principles and scope of the inventive subject matter as expressed in the subjoined claims.