Getting Started Tutorial on Dynamically Generating Custom Applications

By dynamically customizing the content of the introductory tutorial based on the user's context information, the problem that the introductory tutorial in the prior art cannot be personalized is solved, and the user experience and device efficiency are improved.

CN114579122BActive Publication Date: 2025-02-25GOOGLE LLC
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202210118183.1
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2016-12-30
Filing Date
2017-09-30
Publication Date
2025-02-25
Estimated Expiration
2037-09-30

AI Technical Summary

Technical Problem

Introductory tutorials for existing applications are usually universal and cannot be customized according to the user's personal interests and preferences, resulting in poor user experience.

Method used

By determining the context information associated with the user by the application executed on the computing device, dynamically selecting the graphical user interface template, and populating the content based on the context information, to personalize the introduction tutorial.

Benefits of technology

It provides introductory tutorials customized to meet user interests and preferences, which improve user experience and memory effects, reduce user input and monitor turn-on time, and reduce the power consumption of computing devices.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN114579122B_ABST
    Figure CN114579122B_ABST
Patent Text Reader

Abstract

The present disclosure relates to dynamically generating a customized application onboarding tutorial. A method includes determining whether an application has been previously executed by a computing device. The method includes: in response to determining that the application has not been previously executed by the computing device, determining, by the application, context information associated with the computing device. The method also includes: determining, based at least in part on the context information, content to be included in at least one template graphical user interface of a plurality of template graphical user interfaces for an onboarding tutorial for the application. At least one template graphical user interface is associated with at least one feature of the application. The method also includes: generating at least a first graphical user interface of the onboarding tutorial based on the at least one template graphical user interface and the content. The method also includes outputting an indication of the first graphical user interface of the onboarding tutorial.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] Description of the case

[0002] This application is a divisional application of Chinese invention patent application No. 201710915939.4, filed on September 30, 2017. Technical Field

[0003] This application is related to the introductory tutorial of dynamically generating customized applications. Background Art

[0004] Some computing devices (e.g., mobile phones, tablet computers, computerized watches, etc.) may come with applications pre-installed, or allow users to install applications from an application library. When such an application is initially executed, the application may provide an initial tutorial to teach the user about the functionality of the application. The tutorial is the same for all users of the application. Summary of the invention

[0005] The disclosed subject matter relates to specific techniques for dynamically generating and displaying customized application onboarding tutorials. An application executed at a computing device may determine content to be included in an onboarding tutorial based on information associated with a user of the computing device. This information may only be used by the computing device if the user provides explicit authorization to the computing device to access and utilize such information. The application may personalize the onboarding tutorial for the user by at least dynamically selecting a template graphical user interface associated with the onboarding tutorial and populating the selected template graphical user interface with determined content. In this way, the technology of the present disclosure can provide an onboarding tutorial that is customized solely based on the interests and preferences of the user of the device.

[0006] In one example, the present disclosure describes a method, including determining, by an application executed at a computing device, whether the application has been previously executed by the computing device. The method includes, in response to determining that the application has not been previously executed by the computing device, determining, by the application, context information associated with the computing device. The method also includes determining, based at least in part on the context information, content to be included in at least one template graphical user interface of a plurality of template graphical user interfaces for an introductory tutorial for the application. At least one template graphical user interface from the plurality of template graphical user interfaces is associated with at least one feature of the application. The method also includes, in response to determining content to be included in the at least one template graphical user interface, generating, by the application and based on the at least one template graphical user interface and the content, at least a first graphical user interface of the introductory tutorial. The method also includes outputting, by the application, an indication of a first graphical user interface of the introductory tutorial for display at a display device.

[0007] In another example, the present disclosure describes a computing device, comprising: at least one processor and a memory. The memory includes instructions that, when executed by the at least one processor, cause the at least one processor to determine whether an application executed at the computing device has been previously executed by the computing device. The instructions cause the at least one processor to: determine context information associated with the computing device in response to determining that the application has not been previously executed by the computing device. The instructions also cause the at least one processor to: determine, based at least in part on the context information, content to be included in at least one template graphical user interface of a plurality of template graphical user interfaces for an introductory tutorial for the application. At least one template graphical user interface from the plurality of template graphical user interfaces is associated with at least one feature of the application. The instructions further cause the at least one processor to: generate at least a first graphical user interface of the introductory tutorial based on the at least one template graphical user interface and the content in response to determining the content to be included in the at least one template graphical user interface. The instructions also cause the at least one processor to: output an indication of the first graphical user interface of the introductory tutorial for display at a display device.

[0008] In another example, the present disclosure describes a computer-readable storage medium encoded with instructions that, when executed by at least one processor of a computing device, cause the at least one processor to determine whether an application executed at the computing device was previously executed by the computing device. The instructions cause the at least one processor to determine context information associated with the computing device. The instructions also cause the at least one processor to determine, based at least in part on the context information, content to be included in at least one template graphical user interface of a plurality of template graphical user interfaces for an introductory tutorial for an application. At least one template graphical user interface from a plurality of template graphical user interfaces is associated with at least one feature of an application. The instructions further cause the at least one processor to generate, in response to determining that the content is included in the at least one template graphical user interface, at least a first graphical user interface of an introductory tutorial based on the at least one template graphical user interface and the content. The instructions also cause the at least one processor to output an indication of a first graphical user interface of an introductory tutorial for display at a display device.

[0009] In another example, the present disclosure describes a system that includes a device for determining whether an application has been previously executed by a computing device. The system includes a device for determining context information associated with the computing device. The system also includes a device for determining content to be included in at least one of a plurality of template graphical user interfaces for an introductory tutorial for the application based at least in part on the context information, wherein at least one template graphical user interface from the plurality of template graphical user interfaces is associated with at least one feature of the application. The system also includes a device for generating at least a first graphical user interface of the introductory tutorial based on the at least one template graphical user interface and the content. The system also includes a device for outputting an indication of the first graphical user interface of the introductory tutorial displayed at a display device.

[0010] The details of one or more examples are set forth in the accompanying drawings and the description below. Other features, objects, and advantages of the disclosure will be apparent from the description and drawings, and from the claims. BRIEF DESCRIPTION OF THE DRAWINGS

[0011] Figure 1 is a conceptual diagram illustrating an example system for dynamically generating and displaying a customized introductory tutorial in accordance with one or more aspects of the present disclosure.

[0012] Figure 2 is a block diagram illustrating an example computing device configured to dynamically generate and display a customized introductory tutorial in accordance with one or more aspects of the present disclosure.

[0013] Figure 3A is a conceptual diagram illustrating an example graphical user interface including a dynamically generated customized introductory tutorial in accordance with one or more aspects of the present disclosure.

[0014] Figure 3B is a conceptual diagram illustrating an example graphical user interface including suggested information categories in accordance with one or more aspects of the present disclosure.

[0015] Figure 4 is a flow diagram illustrating example operations of a computing device configured to dynamically generate and display a customized introductory tutorial in accordance with one or more aspects of the present disclosure.

[0016] Figure 5 is a conceptual diagram illustrating an example graphical user interface including a dynamically generated customized introductory tutorial in accordance with one or more aspects of the present disclosure. DETAILED DESCRIPTION

[0017] Figure 11 is a conceptual diagram illustrating an example system for dynamically generating and displaying a customized introductory tutorial according to one or more aspects of the present disclosure. System 100 may include a computing device 110, an information server system (ISS) 117, and one or more remote computing devices 118 communicatively coupled to computing device 110 via a network 116.

[0018] Remote computing device 118 is a device such as a smart phone, a computerized wearable device (e.g., a watch, glasses, a ring, a necklace, etc.), a speaker, a television, an automobile head unit (e.g., an “infotainment system”), or any other type of computing device configured to send and receive information via a network such as network 116. Remote computing device 118 may include one or more applications, such as media applications (e.g., music, video, etc.), messaging applications (e.g., email, text, etc.), or any other type of application. Remote computing device 118 may exchange information with computing device 110 via network 116. For example, remote computing device 118 may send information to computing device 110 and may receive information from computing device 110. Remote computing device 118 may also exchange information with computing device 110 without traversing network 116, for example, using direct link 107. Direct link 107 may be any communication protocol or mechanism that enables two computing devices to communicate directly (i.e., without requiring a network switch, hub, or other intermediate network device), such as a wireless router. Wi- , near field communication, etc.

[0019] ISS 117 represents any suitable remote computing system capable of sending and receiving information via a network such as network 116, such as one or more desktop computers, laptop computers, mainframes, servers, cloud computing systems, etc. ISS 117 may host applications and data such as contextual information, music, weather information, traffic information, messaging information (e.g., email, text messaging), calendar information, social media, news information, etc. ISS 117 may represent a cloud computing system that provides information to computing device 110 via network 116, so that computing device 110 may output at least a portion of the information provided by ISS 117 to a user.

[0020] The network 116 represents any public or private communication network for transmitting data between computing systems, servers, and computing devices, such as cellular, Wi-Fi, and / or other types of networks. The network 116 may include one or more network hubs, network switches, network routers, or any other network devices that are operably interconnected to provide information exchange between the computing device 110, the ISS 117, and the remote computing device 118. The computing device 110, the ISS 117, and the remote computing device 118 may send and receive data via the network 116 using any suitable communication technology. The computing device 110, the ISS 117, and the remote computing device 118 may send and receive data via different types of networks 116. For example, the ISS 117 may exchange data with the computing device 110 via a cellular network, and the computing device 110 may exchange data with the remote computing device 118 via Wi-Fi.

[0021] Computing device 110, ISS 117, and remote computing device 118 may each be operatively coupled to network 116 using respective network links 104, 105, and 106. Computing device 110, ISS 117, and remote computing device 118 may be operatively coupled to network 116 using different network links. The links coupling computing device 110, ISS 117, and remote computing device 118 to network 116 may be Ethernet, ATM, or other types of network connections, and such connections may be wireless and / or wired connections.

[0022] Computing device 110 may represent a mobile device such as a smartphone, tablet computer, laptop computer, computerized watch, computerized glasses, computerized gloves, or any other type of portable computing device. Other examples of computing device 110 include other mobile and non-mobile devices such as desktop computers, televisions, personal digital assistants (PDAs), portable and non-portable gaming systems, digital media players or micro-consoles, e-book readers, mobile television platforms, car navigation and entertainment systems, vehicle cockpit displays, or any other type of wearable and non-wearable mobile or non-mobile computing devices that can access a digital distribution platform for downloading executable software applications for execution at computing device 110.

[0023] The computing device 110 includes a presence sensing display (PSD) 112, a user interface (UI) module 120, and one or more application modules 124A-N (collectively, "application modules 124"). The modules 120 and 124 may perform the described operations using software, hardware, firmware, or a mixture of hardware, software, and firmware resident in and / or executing at the computing device 110. The computing device 110 may execute the modules 120 and 124 with multiple processors or multiple devices. The computing device 110 may execute the modules 120 and 124 as a virtual machine executing on the underlying hardware. The modules 120 and 124 may execute as one or more services of an operating system or computing platform. The modules 120 and 124 may execute as one or more executable programs on the application layer of the computing platform.

[0024] The PSD 112 of the computing device 110 may function as a respective input and / or output device of the computing device 110. The PSD 112 may be implemented using a variety of technologies. For example, the PSD 112 may function as an input device using a presence-aware input screen, such as a resistive touch screen, a surface acoustic wave touch screen, a capacitive touch screen, a projected capacitive touch screen, a pressure-sensitive screen, an acoustic pulse recognition touch screen, or another presence-aware display technology. The PSD 112 may also function as an output (e.g., display) device using any one or more display devices, such as a liquid crystal display (LCD), a dot matrix display, a light emitting diode (LED) display, an organic light emitting diode (OLED), etc.), electronic ink, or a similar monochrome or color display capable of outputting visible information to a user of the computing device 110.

[0025] PSD 112 may receive tactile input from a user of the respective computing device 110. PSD 112 may receive an indication of the tactile input by detecting one or more gestures from the user (e.g., the user touching or pointing to one or more locations of PSD 112 with a finger or stylus). PSD 112 may output information to the user as a user interface (e.g., graphical user interface 114), which may be associated with functionality provided by computing device 110. For example, PSD 112 may present various user interfaces related to applications or other features of a computing platform, operating system, applications, and / or services executed or accessible at computing device 110.

[0026] UI module 120 manages user interactions with PSD 112 and other components of computing device 110. For example, UI module 120 may cause PSD 112 to display a user interface for a user of computing device 110 to view output and / or provide input at PSD 112. UI module 120 may receive one or more input indications from a user as the user interacts with a user interface (e.g., PSD 112). UI module 120 may interpret input detected at PSD 112, and may relay information about the detected input to one or more associated platforms, operating systems, applications, and / or services executing at computing device 110, e.g., to cause computing device 110 to perform functions. For example, UI module 120 may cause PSD 112 to display a graphical user interface 114.

[0027] UI module 120 may receive information and instructions from one or more associated platforms, operating systems, applications, and / or services executing at computing device 110 and / or one or more external computing systems (e.g., ISS 117). In addition, UI module 120 may act as an intermediary between various output devices of computing device 110 (e.g., speakers, LED indicators, audio or electrostatic tactile output devices, etc.) of one or more associated platforms, operating systems, applications, and / or services executing at computing device 110 to generate output (e.g., graphics, flashing lights, sounds, tactile responses, etc.) using computing device 110.

[0028] Application modules 124 represent various individual applications and services that can be executed by computing device 110. One or more application modules 124 can receive an indication of user input to select a graphical element of a user interface (e.g., graphical user interface 114) associated with a particular application module 124, and can cause computing device 110 to perform a function in response to receiving the indication of user input. Examples of application modules 124 include a map or navigation application, a calendar application, an assistance or prediction engine, a search application, a transportation service application (e.g., a bus or train tracking application), a social media application, a game application, an email application, a messaging application, an Internet browser application, or any other application that can be executed at computing device 110. In some examples, one or more application modules 124 can be installed at computing device 110 during production, testing, or otherwise before computing device 110 is manufactured and delivered to a user (e.g., a consumer). In some examples, after delivery to the user, a user of computing device 110 can install one or more application modules 124. For example, a user of computing device 110 may interact with ISS 117 to cause computing device 110 to download and install one or more application modules 124 .

[0029] PSD 112 may output a graphical user interface (GUI) that includes respective indications of one or more applications installed at computing device 110. For example, PSD 112 may output a graphical user interface that includes one or more icons associated with one or more respective application modules 124. Computing device 110 may receive user input to select one of the icons associated with a particular one of application modules 124 (e.g., application module 124A). UI module 120 may detect the user input, determine that the user input corresponds to a location of PSD 112 that corresponds to application module 124A, and may cause computing device 110 to execute application module 124A.

[0030] The application module 124A may include an introductory tutorial. The introductory tutorial may include one or more template graphical user interfaces that describe one or more features of the application module 124A. Figure 1 As shown, the application module 124A (eg, an auxiliary application) may output a graphical user interface 114 that describes one or more auxiliary features of the application module 124A. Figure 1 As shown, features of application module 124A may include the ability to display nearby attractions. In some examples, application module 124A may cause PSD 212 to display an introductory tutorial in response to determining that application module 124A has not been previously executed. Application module 124A may determine whether application module 124A has been previously executed by computing device 110 based on the application usage information. In some examples, application module 124A may only store application usage information if a user of application module 124A affirmatively consents to the collection of such information. Application module 124A may also provide the user with an opportunity to revoke consent, and in such a case, application module 124A may stop collecting or otherwise retaining information associated with that particular user. Application module 124A may store application usage information in any number of different data structures, such as a file, a database, or other data structure.

[0031] In some examples, the application usage information may include information about how much application module 124A is used and / or how often application module 124A is used. In some cases, the application usage information may include a counter indicating how many times application module 124A is used within a predefined amount of time. The application usage information may include an entry for each time application module 124A is executed by computing device 110. For example, the application usage information may include a timestamp (e.g., date and time) indicating each time application module 124A is executed. In some examples, the application usage information includes usage information for a predefined time period (e.g., a week, a month, a year, etc.) and / or usage information for a predefined number of application launches. For example, the application usage information may include a timestamp indicating each time application module 124A was launched in the past two months or a timestamp indicating the first 100 times the application was executed.

[0032] Application module 124A may query the application usage information to determine whether application module 124A has been previously executed. For example, when the application usage information includes a counter, application module 124A may query the application usage information, and if the counter associated with application module 124A is equal to a default value (e.g., zero), it may be determined that application module 124A has not been previously executed by computing device 110. In some examples, application module 124A may query the application usage information and determine that application module 124A has not been previously executed by computing device 110 in response to determining that there is no entry in the application usage information associated with application module 124A. In response to determining that there is no application usage information associated with application module 124A, application module 124A may determine that application module 124A has not been previously executed. In response to determining that application module 124A has not been previously executed by computing device 110, application module 124A may determine to output a getting started tutorial.

[0033] The application module 124A can dynamically customize an introductory tutorial for a user of the computing device 110. For example, the computing device 110 can include one or more user accounts, and the application module 124A can customize the introductory tutorial for the user account that is active when the application module 124A is launched. In some examples, the application module 124A can customize the introductory tutorial by determining one or more template graphical user interfaces displayed at the PSD 112. In other words, the application module 124A can determine a subset of the output template graphical user interfaces. The application module 124A can customize the introductory tutorial by determining the content to be included in one or more template graphical user interfaces of the introductory tutorial. For example, the graphical user interface 114 can include a customizable area 130, a description area 132, a tutorial advancement area 134, and a notification area 136. In some cases, the areas 130, 132 of the graphical user interface 114 can each be customizable. The description area 132 can describe one or more features of the application module 124A associated with the template graphical user interface. The tutorial advancement area 134 can include a graphical element that, when selected, causes the application module 124A to skip to the end of the introductory tutorial. Notification area 136 may display information such as notifications, date, time, cellular reception quality, battery status, and the like.

[0034] In some examples, application module 124A may determine content to be included in at least one template graphical user interface based at least in part on contextual information associated with computing device 110. Contextual information may be stored at computing device 110, ISS 117, and / or remote computing device 118 only if the user of computing device 110 affirmatively consents to such information collection. The computing device may also provide the user with an opportunity to revoke consent, in which case the computing device may stop collecting or otherwise retain information associated with the user. When a computing device stores contextual information associated with a single user, or when the information is generalized among multiple users, all personally identifiable information, such as a name, address, telephone number, and / or email address that links the information back to an individual, may be deleted before it is stored. Computing device 110, ISS 117, and / or remote computing device 118 may further encrypt the information to prevent access to any information stored therein.

[0035] As used throughout this disclosure, the term "context information" is used to describe information that can be used by a computing system and / or computing device (such as computing device 110, ISS 117, and / or remote computing device 118) to define one or more environmental characteristics associated with a computing device and / or a user of the computing device. In other words, context information represents any data that can be used by a computing device and / or computing system to determine a "user context" that indicates the circumstances used to form the experience (e.g., virtual and / or physical) experienced by the user at a specific location at a specific time. In some examples, the context information may include movement and location information. The movement and location information may include past, current, and future physical locations, degree of movement, magnitude of change associated with movement, travel patterns, movement patterns, altitude, etc. In some examples, the context information may include user activity information, such as purchase history, Internet browsing history, search history (e.g., Internet searches, searches of computing device 110, or both), etc. In some examples, the context information includes local environmental conditions, such as date, time, weather conditions, traffic conditions, etc. In some examples, the context information may also include communication information such as information derived from an email message, a text message, a voicemail message or voice conversation, a calendar entry, a task list, social media network related information. In some examples, the context information may include any other information about the user or computing device that may support the determination of the user context. In some examples, the context information may be any combination of these examples of context information.

[0036] In some examples, application module 124A may determine contextual information associated with computing device 110, such as location and / or movement information. For example, application module 124A may determine the geographic location of computing device 110 based on sensor data (e.g., data from a GPS radio, a WiFi radio, a cellular radio, etc.). In some cases, the sensor data may indicate a general location associated with computing device 110. For example, application module 124A may determine the city in which computing device 110 is located based on the IP address of the WiFi radio signal. In some examples, application module 124A may determine a relatively specific location associated with computing device 110. For example, application module 124A may determine the exact location (e.g., approximately 30 feet or approximately 10 meters) where computing device 110 is located based on GPS data.

[0037] In some examples, context information associated with computing device 110 includes user activity information. In some examples, application module 124A, after receiving affirmative user consent, may query the user activity information to determine topics (e.g., specific restaurants) or categories of topics (e.g., specific styles of restaurants) most frequently browsed and / or searched by the user of computing device 110. For example, application module 124A may query the user activity information to determine a predetermined number of topics and / or categories that the user is most likely interested in receiving information about.

[0038] In some examples, application module 124A determines content to include in at least one template graphical user interface based at least in part on contextual information. For example, contextual information may include the current location of computing device 110, and application module 124A may determine that content displayed at customizable area 130 of graphical user interface 114 should include a map of the nearby area. In some examples, contextual information may include multiple types of contextual information, such as location information (e.g., current location) and environmental information (e.g., current date and time at the current location). Figure 1 As shown, the current time may be 6:30 P.M. on Friday evening. Application module 124A may determine that the contextual information indicates a typical dinner time. Therefore, application module 124A may determine that the content of graphical user interface 114 should include nearby restaurants. As another example, if application module 124A determines that the current date and time is 2:00 P.M. on Saturday, application module 124A may determine that the content to be included in customizable area 130 of graphical user interface 114 should include nearby entertainment, such as local parks and zoos. In other words, application module 124A may customize the content displayed during the onboarding tutorial to be more relevant to the user of computing device 110. By customizing the onboarding tutorial of application module 124A and making the tutorial more relevant to the user, the user may be more likely to remember the features of application module 124A. In other words, customizing the onboarding tutorial may improve the training function of application module 124A.

[0039] Application module 124A can generate graphical user interface 114 in response to determining content to be included in the template graphical user interface associated with the onboarding tutorial. In some examples, application module 124A can generate graphical user interface 114 based on the template graphical user interface and the determined content. For example, after determining that the template graphical user interface associated with the assistive feature of application module 124A should be customized with a map of local restaurants, application module 124A can generate graphical user interface 114 that includes a map of local restaurants in customizable area 130.

[0040] Application module 124A may output an indication of a graphical user interface of the introductory tutorial. For example, application module 124A may output an indication of a customized graphical user interface to UI module 120. UI module 120 may receive graphical user interface 114 and may cause PSD 112 to display graphical user interface 114.

[0041] In this way, the techniques of the present disclosure may enable an application to output a customized introductory tutorial. By outputting a customized introductory tutorial, users of the application may be more likely to remember how to use the application's features. Increasing the user's retention of the application's features may enable the user to type less input and perform operations faster. Similarly, these techniques may enable a computing device to avoid providing tutorials for features that the user is unlikely to be interested in. By increasing the user's memory of application features and / or avoiding outputting tutorials for certain features, these techniques may enable a computing device to receive less user input and reduce the time the display is turned on. By enabling the user to perform actions quickly and / or use less input, the application may enable the computing device to perform fewer operations and / or turn off the display faster, thereby reducing the power consumed by the computing device.

[0042] Figure 2 is a block diagram illustrating an example computing device configured to dynamically generate and display a customized introductory tutorial in accordance with one or more aspects of the present disclosure. Figure 2 The computing device 210 will be described below as Figure 1 An example of a computing device 110 is shown. Figure 2 Only one particular example of computing device 210 is shown, and many other examples of computing device 210 may be used in other instances and may include a subset of the components included in the example computing device 210, or may include Figure 2 Additional components not shown.

[0043] like Figure 2 As shown in the example of , computing device 210 includes presence-aware display 212, one or more processors 240, one or more communication units 242, one or more input components 244, one or more output components 246, and one or more storage components 248. Presence-aware display 212 includes display component 270 and presence-aware input component 272. Storage component 248 of computing device 210 may include UI module 220, one or more application modules 224A-N (collectively referred to as "application modules 224"), contextual information data storage 226, and application usage data storage 228.

[0044] Communication channel 250 can interconnect each of components 212, 240, 242, 244, 246, and 248 for inter-component communication (physically, communicatively, and / or operationally). In some examples, communication channel 250 can include a system bus, a network connection, an inter-process communication data structure, or any other method for transmitting data.

[0045] The one or more communication units 242 of the computing device 210 can communicate with external devices via one or more wired and / or wireless networks by sending and / or receiving network signals on one or more networks. Examples of the communication unit 242 include a network interface card (e.g., an Ethernet card), an optical transceiver, a radio frequency transceiver, a GPS receiver, or any other type of device that can send and / or receive information. Other examples of the communication unit 242 may include a shortwave radio, a cellular data radio, a wireless network radio, and a universal serial bus (USB) controller.

[0046] One or more input components 244 of computing device 210 can receive input. Input examples are tactile, audio and video input. In one example, input component 244 of computing device 210 includes presence sensing display, touch-sensitive screen, mouse, keyboard, voice response system, camera, microphone or any other type of device for detecting input from people. In some examples, input component 244 may include one or more sensor components, one or more position sensors (GPS component, Wi-Fi component, cellular component), one or more temperature sensors, one or more motion sensors (e.g., accelerometer, gyroscope), one or more pressure sensors (e.g., barometer), one or more ambient light sensors and one or more other sensors (e.g., infrared proximity sensor, hygrometer sensor, etc.). Other sensors that only give a few other non-limiting examples may include heart rate sensor, magnetometer, glucose sensor, olfactory sensor, compass sensor, step counter sensor.

[0047] One or more output components 246 of computing device 210 may generate output. Examples of output are tactile, audio, and video output. Output components 246 of computing device 210 may include a presence-aware display, a sound card, a video graphics adapter card, speakers, a cathode ray tube (CRT) monitor, a liquid crystal display (LCD), or any other type of device for producing output to a person or machine.

[0048] The presence sensing display 212 of the computing device 210 includes a display component 270 and a presence sensing input component 272. The display component 270 can be a screen on which the presence sensing display 212 displays information. The presence sensing input component 272 can detect objects at and / or near the display component 270. As an example range, the presence sensing input component 272 can detect an object such as a finger or a stylus within 2 inches or less of the display component 270. The presence sensing input component 272 can determine the location (e.g., (x, y) coordinates) of the display component 270 where the object was detected. In another example range, the presence sensing input component 272 can detect an object 6 inches or less from the display component 270, and other ranges are possible. The presence sensing input component 272 can determine the location of the display component 270 selected by the user's finger using capacitive, inductive and / or optical recognition technology.

[0049] In some examples, presence sensing input component 272 also provides output to the user using tactile, audio, or video stimulation as described with respect to display component 270. Figure 2 As shown, presence-aware display 212 displays a graphical user interface. Although shown as an internal component of computing device 210, presence-aware display 212 may also represent an external component that shares a data path with computing device 210 to send and / or receive input and output. For example, in one example, presence-aware display 212 represents a built-in component of computing device 210 that is located within and physically connected to an external package of computing device 210 (e.g., a screen on a mobile phone). In another example, presence-aware display 212 represents an external component of computing device 210 that is located outside the package of computing device 210 and is physically separated from computing device 210 (e.g., a monitor, projector, etc. that shares a wired and / or wireless data path with a tablet computer).

[0050] One or more processors 240 may implement functions and / or execute instructions within the computing device 210. For example, a processor 240 on the computing device 210 may receive and execute instructions stored by the storage component 248 to perform the functions of the modules 220 and 224. The instructions executed by the processor 240 may cause the computing device 210 to store information within the storage component 248 during program execution. Examples of processors 240 include application processors, display controllers, sensor hubs, and any other hardware configured to function as a processing unit. The modules 220 and 224 may be operated by the processor 240 to perform various actions, operations, or functions of the computing device 210. For example, the processor 240 of the computing device 210 may retrieve and execute instructions stored by the storage device 248 that cause the processor 240 to perform the operations of the modules 220 and 224. When executed by the processor 240, the instructions may cause the computing device 210 to store information within the storage device 248.

[0051] One or more storage components 248 within computing device 210 may store information for processing during operation of computing device 210 (e.g., computing device 210 may store data accessed by modules 220 and 224 during execution of computing device 210). In some examples, storage component 248 is temporary storage, meaning that the primary purpose of storage component 248 is not long-term storage. Storage component 248 on computing device 210 may be configured as volatile memory to store information for a short period of time, so that the stored content is not retained if power is removed. Examples of volatile memory include random access memory (RAM), dynamic random access memory (DRAM), static random access memory (SRAM), and other forms of volatile memory known in the art.

[0052] In some examples, storage component 248 also includes one or more computer-readable storage media. Storage component 248 can be configured to store a larger amount of information than volatile memory. Storage component 248 can also be configured as a non-volatile memory space to store information for a long time and retain information after power on / off cycles. Examples of non-volatile memory include a magnetic hard disk, an optical disk, a floppy disk, a flash memory, or an electrically programmable memory (EPROM) or an electrically erasable and programmable (EEPROM) memory. Storage component 248 can store program instructions and / or information (e.g., data) associated with modules 220 and 224 and data stores 226 and 228.

[0053] The UI module 220 may include Figure 1The UI module 120 of the computing device 110 may be configured to perform functions similar to the UI module 120 of the computing device 110 and may perform operations similar to the UI module 120. For example, the UI module 220 of the computing device 210 may receive information from the application module 224, which includes information for outputting (e.g., displaying or playing audio) a graphical user interface (e.g., Figure 1 The UI module 220 may receive information from the application module 224 via the communication channel 250 and use the data to generate a user interface. The UI module 220 may send display or audible output commands and associated data via the communication channel 250 to cause the PSD 212 to display the user interface at the PSD 212.

[0054] In some examples, UI module 220 may receive indications of one or more user inputs detected at PSD 212, and may output information about the user inputs to application module 224. For example, PSD 212 may detect input from a user input (e.g., voice or touch input) and send data about the user input to UI module 220. In some cases, UI module 220 may receive data about the user input and may output indications of the user inputs to application module 224.

[0055] Application modules 224 may include Figure 1 The computing device 110 may also include an application module 124 of the computing device 110 and perform operations similar to the application module 224. For example, one or more application modules 224 may cause the computing device 210 to perform a function in response to receiving an indication of a user input at a user interface (e.g., a graphical user interface) associated with a particular application module 224 (e.g., application module 224A).

[0056] The application module 224A may include an introductory tutorial that describes one or more features of the application module 224A. In some examples, the introductory tutorial includes one or more template graphical user interfaces that describe one or more features of the application module 224A.

[0057] In response to executing application module 224A, application module 224A may determine whether to output an onboarding tutorial. In response to determining that application module 224A has not been previously executed by computing device 210, application module 224A may determine that PSD 212 should output an initial onboarding tutorial. In some examples, application module 224A may determine whether application module 224A has been executed based on application usage information stored in application usage data storage 228. Application module 224A may only store application usage information if a user of application module 224A affirmatively consents to the collection of such information, and may stop collecting and storing the information if the user withdraws consent.

[0058] The application usage data storage 228 may include one or more files, tables, databases, or other data structures that store application usage information. The application usage information may include information about how many application modules 224A are used and / or how often the application modules are used. In some examples, the application usage data storage 228 may include a corresponding counter indicating how many times the corresponding application module 224A has been executed by the computing device 210. The application usage data storage 228 may store information indicating when the specific application module 224A is executed and / or how long the specific application module 224A is executed each time the specific application module 224A is executed. In some cases, the application usage data storage 228 may store information indicating which features of the application 224A are used by the user, when the features are used, and / or how long the features are used. For example, an operating system executed at the computing device 210 or the application module 224A may store application usage information at the application usage data storage 228, or update existing application usage information of the application module 224A.

[0059] Application module 224A may query application usage data storage 228 to determine whether application module 224A has been previously executed. For example, application module 224A may query application usage data storage 228 and, in response to receiving an indication that the value of a counter associated with application module 224A satisfies a default value (e.g., is less than or equal to zero), determine that application module 224A has not been previously executed. In some examples, application module 224A may determine that application module 224A has not been previously executed in response to a query returning no results (e.g., there is no entry in application usage data storage 228 associated with application module 224A). In response to determining that application module 224A has not been previously executed, application module 224A may cause PSD 212 to output an initial introductory tutorial.

[0060] Although described as application module 224A performing a query to determine whether application 224A was previously executed, in some examples, an operating system executing at computing device 210 may provide an indication to application module 224A whether application module 224A was previously executed. For example, in response to initiation of execution of application module 224A, the operating system may query application usage data store 228. In the event that the query returns no results (e.g., the application was not previously executed, was deleted and reinstalled, etc.), the operating system may provide an indication to application module 224A that application module 224A was not previously executed. In the event that the query returns information about the usage of application module 224A, the operating system may provide at least one of the application usage information to application module 224A, such as the date and / or time application module 224A was last executed, the frequency with which application module 224A was executed, etc.

[0061] If application module 224A has not been executed, or if application module 224A has not been executed within at least a threshold amount of time (e.g., the last week, last month, last quarter, last year, etc.), application module 224A may determine that an onboarding tutorial should be presented to a user of computing device 210. In response to determining that an onboarding tutorial should be displayed, application module 224A may dynamically customize an onboarding tutorial (e.g., an initial tutorial or a subsequent tutorial) for a particular user account of computing device 210. For example, computing device 210 may be configured with one or more user accounts, where a particular user account from the one or more configured user accounts may be active when application module 224A is launched. Application module 224A may determine which user account is the active user account, and may dynamically customize the onboarding tutorial for the active user. In some examples, application module 224A may customize the onboarding tutorial by determining one or more template graphical user interfaces displayed at PSD 212. In some examples, application module 224A may customize the onboarding tutorial by determining content to be included in at least one of the at least one or more template graphical user interfaces.

[0062] In response to determining that application module 224A has not been previously executed, application module 224A may determine to output an initial onboarding tutorial. In some examples, application module 224A outputs a graphical user interface corresponding to each template graphical user interface included in application module 224A. For example, when the initial onboarding tutorial is output (e.g., the first time application module 224A is executed), application module 224A may output a corresponding graphical user interface corresponding to each template graphical user interface. In other words, if application module 224A has not been executed by computing device 210 in the past (e.g., when a particular active user is logged in), application module 224A may cause PSD 212 to display the entire onboarding tutorial.

[0063] The application module 224A may determine content to be included in at least one template graphical user interface of the introductory tutorial based at least in part on the context information. The computing device 210 and / or the application module 224A may store the context information in the context information data store 226 only if the user affirmatively consents to store the data. The computing device 210 and / or the application module 224A may stop collecting and storing the context information in response to the user withdrawing consent. The context information data store 226 may include one or more files, tables, or databases storing context information, such as movement and location information, user activity information, local environmental conditions, communication information, or any other information about the user or computing device that may support determining the user context.

[0064] The application module 224A (e.g., the auxiliary application) can customize at least one template GUI of the onboarding tutorial. In some examples, the first template GUI of the onboarding tutorial module can describe features, so that the application module 224A can predict and / or suggest nearby attractions (e.g., Figure 1 114). The second template graphical user interface of the introductory tutorial may describe that the application module 224A may proactively provide features of weather information, traffic information, news information, etc. The application module 224A may customize the first and second template graphical user interfaces by determining content to be included in the corresponding template graphical user interfaces based on context information. For example, the context information may include location information indicating that the computing device 210 is currently located at or near Wrigley Field. In this example, the application module 224A may determine that the content to be included in the first template graphical user interface (e.g., describing the feature of providing "Nearby Attractions") should include a map of the area around Wrigley Field and related attractions, such as sports bars. As another example, the context information may indicate that the current date is Friday, October 28, 2016 ("Friday, October 28, 2016"), so that the application module 224A may determine that the content to be included in the second template graphical user interface (e.g., describing the feature of providing weather information) should include a weekend forecast for Chicago.

[0065] In some examples, application module 224A may determine that application module 224A has been previously executed by computing device 210. For example, application module 224A may query application usage information data storage 228. In response to the query, application module 224A may receive an indication that the value of a counter associated with application module 224A is equal to 10. Application module 224A may determine that the value of the counter does not satisfy a default value (e.g., is not equal to zero). Therefore, application module 224A may determine that application module 224A has been previously executed.

[0066] In response to determining that application module 224A has been executed, application module 224A may determine whether to cause PSD 212 to output a subsequent onboarding tutorial corresponding to application module 224A. In some examples, application module 224A determines whether to output a subsequent onboarding tutorial by comparing the amount of time since application module 224A was last executed by computing device 210 to a threshold amount of time. Application module 224A may determine when the application was last executed based on application usage information stored in application usage data storage 228. In some cases, the threshold amount of time is a predetermined amount of time (e.g., one month, ninety days, one year, etc.). The threshold amount of time may be variable. For example, the threshold amount of time may be the number of days since application module 224A was last updated, the number of days since a new feature was added to application module 224A, or the number of days since a new template graphical interface describing a feature was added to the application. For example, if application module 224A was last used 61 days ago, and the threshold time is equal to 60 days, application module 224A may determine that the amount of time that has passed since application module 224A last executed satisfies (e.g., is greater than or equal to) threshold amount of time 242A. In response to determining that the amount of time that has passed since application module 224A last executed satisfies (e.g., is greater than or equal to) the threshold amount of time, application module 224A may determine to cause PSD 212 to display a subsequent onboarding tutorial.

[0067] The application module 224A may customize the subsequent onboarding tutorial by determining which template graphical user interface to display at the PSD 212. For example, the application module 224A may determine a corresponding relevance score associated with at least one feature that is associated with the corresponding template graphical user interface. The corresponding relevance score may indicate a probability that the user is interested in the feature associated with the corresponding template graphical user interface of the application module 224A. In other words, the application module 224A may determine whether the user is likely to be interested in a particular feature of the application module 224A described by the particular template graphical user interface. In some examples, the particular feature may include a new feature, an existing feature associated with a new template graphical user interface, or an existing feature that has not been used by the user within a threshold amount of time.

[0068] The application module 224A can be from a cloud computing system (e.g., Figure 1The ISS 117 of the application module 224A receives an update including new features and / or new template graphical user interfaces describing existing features of the application module 224A. For example, the application module 224A may include a new template graphical user interface associated with a new feature (e.g., providing movement suggestions) and a new template graphical user interface associated with an existing feature (e.g., providing translation from one language to another language). The application module may determine whether to include a graphical user interface describing a new feature (e.g., movie recommendations) or to include a new template graphical user interface describing an existing feature (e.g., language translation) in a subsequent onboarding tutorial. In some examples, the application module 224A may determine whether to include a template graphical user interface associated with an existing feature that the user has not used for a threshold amount of time (e.g., three months, six months, etc.). In other words, if the application module 224A includes a specific feature that the user has not used for a period of time, the application module 224A may determine whether to output a graphical user interface describing the specific feature as part of a subsequent onboarding tutorial. In some examples, the application module 224A may determine whether to include a specific template graphical user interface describing a specific feature by determining a relevance score associated with the specific feature.

[0069] Application module 224A can determine the relevance score associated with the corresponding feature of application module 224A based at least in part on context information. For example, context information data storage 226 can include user activity information such as Internet search history. Application module 224A can determine the relevance score corresponding to a specific feature based on context information associated with the specific feature. In response to determining that application module 224A includes a new template graphical user interface describing a feature for providing movie suggestions, application module 224A can query context information data storage 226 to determine whether the user activity information includes information associated with movie recommendations. For example, if the user activity information in context information data storage 226 indicates that the user frequently searches for new movie releases, application module 224A can assign a high relevance score (e.g., 70 out of 100) to the template graphical user interface associated with the mobile recommendation feature of application module 224A. Similarly, application module 224A can query context information data storage 226 to determine whether the user may be interested in the feature of providing language translation. In some cases, location information (e.g., historical GPS locations) may indicate that the user frequently travels to foreign countries, such that application module 224A may assign a medium relevance score (e.g., 50 out of 100) to the language translation feature of application module 224A. As another example, contextual information data store 226 may include information that the user has explicitly indicated an interest in certain topics and / or indicated a lack of interest in other topics.

[0070] In some examples, application module 224A can determine the relevance score based on the amount of usage of a particular feature by one or more other users (e.g., users similar to the active user). The active user may be similar to other users who are of a similar age (e.g., plus or minus five years, ten years, etc.), reside in a similar location (e.g., the same city, state, country, etc.), have similar application modules installed on computing device 210, or have other common characteristics. In some cases, application module 224A can determine the relevance score by querying a cloud computing system (e.g., Figure 1 The application module 224A may determine the usage of the feature by similar users by using the ISS 117 of the application module 224A, and may receive information indicating the usage of the feature by similar users from the ISS 117. In some examples, the more a group of similar users utilize a particular feature, the higher the relevance score the application module 224A may assign to the particular feature. For example, the more a group of similar users also utilize a particular feature, the more likely the active user is to use the particular feature.

[0071] Application module 224A can determine whether the relevance score associated with the corresponding feature of application module 224A meets the threshold relevance score. In some examples, the threshold relevance score can be a predetermined threshold relevance score. For example, if the threshold relevance score is equal to 60 out of 100, application module 224A can determine that the relevance score associated with the movie recommendation feature meets the threshold relevance score (e.g., because 70 is greater than 60), and the relevance score associated with the language translation feature does not meet the threshold relevance score (e.g., because 50 is less than 60). In some examples, the threshold relevance score can be variable. For example, when outputting a subsequent introductory tutorial, application module 224A can be configured to output no more than a predetermined number of template graphical user interfaces (e.g., one, two, etc.). For example, if the predetermined number is equal to 2, and application module 224A determines the relevance scores associated with five features associated with different template graphical user interfaces (e.g., template graphical user interfaces corresponding to new features and / or unused features of application module 224A), application module 224A can determine that the threshold relevance score is equal to the second highest relevance score.

[0072] In response to determining that one or more corresponding relevance scores satisfy the threshold relevance score, application module 224A can generate a graphical user interface indicating that the corresponding relevance scores satisfy the characteristics of the threshold relevance score. For example, as described above, application module 224A determines content to include in a graphical user interface based at least in part on the contextual information, and can generate a graphical user interface that includes the determined content. Application module 224A can output an indication of the graphical user interface to UI module 220.

[0073] UI module 220 may receive an indication of a graphical user interface corresponding to an onboarding tutorial (e.g., an initial or subsequent onboarding tutorial). In response to receiving the indication of the graphical user interface, UI module 220 may output the graphical user interface and may cause PSD 212 to display the graphical user interface.

[0074] Figure 3A is a conceptual diagram according to one or more aspects of the present disclosure, illustrating an example graphical user interface including a dynamically generated customized introductory tutorial. Figure 3A As shown, Figure 2 The application module 224A may cause the PSD 212 to display a graphical user interface 314A indicating an introductory tutorial associated with one or more features of the application module 224A. For example, the application module 224A may include a feature to which a user can add categories of information of interest to the user. In some examples, the graphical user interface 314A includes a customizable area 330, a description area 332, a tutorial advancement area 334, and a notification area 336. In some cases, the areas 330, 332 of the graphical user interface 314 may each be customizable. The tutorial advancement area 334 may include a graphical element that, when selected, causes the application module 324 to skip to the end of the introductory tutorial. The notification area 336 may display information such as notifications, date, time, cellular reception quality, battery status, etc.

[0075] Application module 224A may include one or more template graphical user interfaces associated with one or more features of application module 224A. In some examples, application module 224A may include a template graphical user interface associated with a feature, whereby application module 224A provides information related to a category of information that may be of interest to a user. In other words, application module 224A may actively provide information to a user, and may include a template graphical user interface associated with a feature that actively provides information. For example, customizable area 330 of graphical user interface 314A may include a search bar that enables a user to search for a category of certain information. The category of information may be broad (e.g., "sports") or may be relatively specific (e.g., a specific sports team (local football team, local hockey team)).

[0076] Application module 224A can customize the introductory tutorial by dynamically determining the content to be included in the introductory tutorial. In some examples, application module 224A can customize regions 390A and 390B (collectively referred to as "region 390") of the template graphical user interface. In some examples, application module 224A can customize region 390 by determining the content included at region 390. For example, application module 224A can customize region 390 to include information categories that the user may be interested in receiving information. Application module 224A can determine the content (e.g., categories of information) to be included in region 390 based on contextual information. In some examples, contextual information can be stored in contextual information data storage 226. For example, application module 224A can determine that the user may be interested in financial information about food-related companies based on querying user activity information (e.g., search history) in contextual information data storage 226. Therefore, application module 224A can determine that graphical element 396 of region 390B of graphical user interface 314A should include the code symbol "EAT", and graphical element 398 should include the code symbol "CAKE". Similarly, application module 224A may determine that the user may be interested in information about local sports teams. Therefore, application module 224A may determine one or more local sports teams based on contextual information such as the current location, and may determine that graphical element 392 of area 390A of graphical user interface 314A should include the name of a local football team and graphical element 394 should include the name of a local hockey team.

[0077] In response to determining content to include in the template GUI, application module 224A can generate GUI 314A based on the determined content. For example, application module 124 can use the determined content to populate a template GUI describing features of application module 124 that provide information that may be of interest to the user. In other words, application module 224A can generate GUI 314A that includes graphical elements that indicate the categories of information that application module 224A determined may be of interest to the user. For example, Figure 3A As shown, graphical user interface 314A may include local sports teams identified at region 390A and financial information identified at region 390B.

[0078] Application module 224A can receive an indication of a selection of one or more categories of information displayed by graphical user interface 314A. For example, presence sensing input component 272 of PSD 212 can detect user input to select graphical element 392 labeled "local football team" in area 390A. UI module 220 can interpret the user input as a selection of graphical element 392 and can send information about the selection to application module 224A. In response to receiving information about the selection from UI module 220, application module 224A can store information about the selection (e.g., in contextual information data storage 226). For example, application module 224A can store data indicating that the user is interested in local football teams. Similarly, computing device 210 can receive user input indicating a command for searching for items of interest. For example, input component 244 (e.g., microphone) can detect verbal input "Hello phone, add this particular famous singer to my interest list". UI module 220 can interpret the user input and can send an indication of the user input to application module 224A. Application module 224A may receive an indication of user input and may store data indicating that the user is interested in a particularly famous singer.

[0079] Presence sensing input component 272 of PSD 212 may detect user input at tutorial advancement region 334 of graphical user interface 314A. In response to receiving an indication of user input at tutorial advancement region 334, application module 224A may exit the onboarding tutorial.

[0080] Figure 3B is a conceptual diagram illustrating an example graphical user interface including suggested information categories according to one or more aspects of the present disclosure. Figure 3B As shown, application module 224A can output an indication of a graphical user interface 314B that includes information associated with at least one of the interest categories selected by the user. In some examples, graphical user interface 314B includes one or more areas that display cards, such as areas 382 and 386. The information displayed at areas 382 and 386 can be based on the interests selected during the onboarding tutorial.

[0081] Application module 224A may determine information associated with at least one of the categories of information selected by the user. For example, because the user selected a particular famous singer as the category of information of interest to the user, application module 224A may determine that PSD 212 should display information associated with the singer. For example, application module 224A may determine that the information about the singer includes a link to purchase tickets for a concert performance at a local event center. Similarly, because the user selected a local football team as the category of information of interest to the user, application module 224A may determine that information associated with the local football team. For example, application module 224A may determine that the information about the football team includes a news story that the football team fired a player who lost an extra point during the game and signed a fan from the stands. In response to determining information associated with at least one of the categories of information selected by the user, application module 224A may output an indication of a graphical user interface 314B including information associated with at least one category. The UI module may receive the indication of the graphical user interface 314B and may cause display component 270 of PSD 212 to display the graphical user interface 314B. For example, as Figure 3B As shown, graphical user interface 314B includes a link at area 382 indicating the purchase of concert tickets and a graphical element at area 386 of a news story about a local football team.

[0082] In some examples, application module 224A can determine one or more suggested categories of information related to at least one category of information included in graphical user interface 314B. In other words, if graphical user interface 314B includes information associated with a particular category, application module 224A can suggest one or more categories related to the particular category. Application module 224A can suggest related categories to help users select additional interests without going through many setting options or searching for related categories multiple times. As an example, if a particular category of information includes a person (e.g., a famous singer), application module 224A can determine that the relevant categories of information include the location where the famous singer performed, the spouse of the famous singer, and other musicians of the same style. Similarly, if a particular category of information includes a sports team, application module 224A can determine that the relevant categories of information include people in the team, opponent teams, other sports teams in the same city, etc. In response to determining one or more suggested categories of information related to a particular category, application module 224A can include suggested related categories of information as part of graphical user interface 314B. UI module 220 may receive information about graphical user interface 314B, including information about a particular category of information and an indication of one or more categories related to the particular category, and may cause display component 270 of PSD 212 to display graphical user interface 314B. Figure 3BAs shown, region 382 includes information about a particular category of information (e.g., famous singers), and includes suggested categories 384A and 384B related to famous singers. Similarly, region 386 includes information about another particular category of information (e.g., local football teams), and includes suggested categories 388A and 388B related to local football teams.

[0083] PSD 212 can detect user input to select one of the suggested categories of information (e.g., categories 384A, 384B, 388A, 388B) that are related to a particular category of information. In response to receiving information regarding the selection of at least one suggested category of information, application module 224A can store an indication of the selected suggested category (e.g., to contextual information data store 226).

[0084] In contrast to some examples that suggest only broad topics (e.g., "sports" or "news") and / or output information related to a specific topic only after the user has searched for specific information multiple times, application module 224A can enable the user to select specific items of interest more quickly and reduce the number of inputs and / or searches to receive customized information. By reducing the number of inputs received and / or the number of searches performed, application module 224A can reduce the time that a display is turned on and / or reduce calculations performed by the computing device, which can improve performance and reduce power consumption of the computing device.

[0085] Figure 4 is a flow diagram illustrating example operations of a computing device configured to dynamically generate and display a customized introductory tutorial in accordance with one or more aspects of the present disclosure. Figure 4 The process may be performed by one or more processors of a computing device such as computing devices 110 and 210. Figure 1 and Figure 2 For the purpose of illustration, the following Figure 1 and Figure 2 The computing devices 110 and 210 are described in the context of Figure 4 .

[0086] Computing device 210 may execute a particular application module 224 (e.g., application module 224A) (402). For example, UI module 220 receives an indication of one or more user inputs (e.g., touch input or voice input) corresponding to a command to execute application module 224A. In response to receiving the indication of a command to execute application module 224A, computing device 210 may launch application 224A.

[0087] Application module 224A may determine whether application module 224A was previously executed (404). In some examples, application module 224A determines whether application module 224A was previously executed based on application usage information stored at application usage data storage 228. Application module 224A may store the application usage information if a user of application module 224A affirmatively consents to the collection of such information. Application module 224A may query application usage information data storage 228, and if the value of a counter associated with application module 224A satisfies a default value (e.g., is equal to zero), or if the query returns no results, it may be determined that application module 224A has been previously executed. However, if the query returns entries (e.g., rows of data), etc., if the value of the counter does not satisfy (e.g., is not equal to) the default value, application module 224A may determine that application module 224A has been previously executed.

[0088] In response to determining that application module 224A has not been previously executed (the "No" branch of 404), application module 224A may determine content to be included in the first template graphical user interface on the initial introductory tutorial (406). In some examples, application module 224A may determine content to be included in the first template graphical user interface based on contextual information. In some cases, after the user affirmatively consents to the collection of such data, application module 224A and / or computing device 210 may store contextual information in contextual information data storage 226. Application module 224A may determine content associated with features of the first template graphical user interface based on contextual information. For example, if the first template graphical user interface describes features of application module 224A, whereby application module 224A predicts nearby activities that the user may be interested in, and the contextual information indicates that the user is currently located near Central Park in New York City, application module 224A may determine that the content to be included in the first template graphical user interface includes a map of Central Park and attractions within Central Park.

[0089] Application module 224A may generate a first graphical user interface (408). For example, application module 224A may generate the first graphical user interface based on the first template graphical user interface and the determined content associated with the first template graphical user interface. In other words, continuing with the example where the content includes a map of Central Park, application module 224A may generate a first graphical user interface that includes a map of Central Park. In response to generating the first graphical user interface, application module 224A may output an indication of the first graphical user interface (410). For example, application module 224A may output an indication of the first graphical user interface to UI module 220, which may cause PSD 212 to display a first graphical user interface that includes a map of Central Park and describes an auxiliary feature that predicts nearby attractions that may be of interest to the user.

[0090] In response to determining that application module 224A has been previously executed ("yes" branch of 404), application module 224A may determine whether the amount of time since application module 224A was last executed satisfies a threshold amount of time (412). The threshold amount of time may be predetermined (e.g., two weeks, two months, etc.). In some examples, the threshold amount of time may be variable. For example, the threshold amount of time may be equal to the amount of time since the application was last updated. Application module 224A may determine when application module 224A was last used by querying application usage data storage 228, determining the amount of time since application module 224A was last used, and comparing the amount of time since application module 224A was last used to the threshold amount of time.

[0091] In response to determining that the amount of time since application module 224 last executed satisfies (e.g., is greater than or equal to) a threshold amount of time (the "yes" branch of 412), application module 224A may determine a relevance score corresponding to a particular feature of application module 224A (414). In some examples, the particular feature may be a new feature, a feature recently added to the template graphical user interface of application module 224A, or a feature that is rarely used by the user. Application module 224A may determine the relevance score based on contextual information. For example, if the particular feature includes the ability to provide language translation, application module 224A may query contextual information data store 226 to determine whether the contextual information (e.g., user activity information) includes a previous Internet search to translate text and / or speech. In response to receiving an indication of contextual information associated with a particular feature, application module 224A may assign a relevance score to the particular feature. Continuing with the example where the feature includes language translation, if the query returns an indication that the user has requested language translation relatively frequently (eg, more frequently than a typical user), then application module 224A may assign a relatively high relevance score (eg, 65 out of 100) to the language translation function.

[0092] Application module 224A may determine whether the relevance score associated with the particular feature of application module 224A satisfies a threshold relevance score (416). In response to determining that the particular relevance score associated with the particular application does not satisfy the threshold relevance score (the "no" branch of 416), application module 224 may determine whether the relevance score associated with a different feature satisfies the threshold relevance score (416). In other words, if the threshold relevance score is equal to 70, and the relevance score associated with the particular feature (e.g., language translation) is equal to 65, application module 224A may determine that the relevance score associated with the language translation does not satisfy the threshold relevance score and may determine whether the relevance score associated with the different feature (e.g., movie recommendations) satisfies the threshold relevance score.

[0093] In response to determining that the relevance score associated with the particular feature satisfies the threshold relevance score (“yes” branch of 416), application module 224A may determine content to include in the second template graphical user interface (418). For example, if the particular feature is a movie recommendation feature, application module 224A may query Figure 1 The ISS 117 determines content to be included in the second graphical user interface to determine the nearest movie theaters and the movies currently playing in local theaters.

[0094] In response to determining the content to include in the second graphical user interface, application module 224A can generate a second graphical user interface (420). The second graphical user interface can be based on the second template graphical user interface and the determined content associated with the second template graphical user interface. For example, continuing with the example that the feature is a movie recommendation feature, application module 224A can generate a graphical user interface that describes the movie recommendation feature of application module 224A and includes the address of the nearest location movie theater and showtimes for later that day.

[0095] Application module 224 may output an indication of a second graphical user interface (422). UI module 220 of computing device 210 may receive the indication of the second graphical user interface and may cause PSD 212 to display a subsequent introductory tutorial describing the particular feature. In other words, in some examples, UI module 220 may receive an indication of an introductory tutorial and cause PSD 212 to display the introductory tutorial via a graphical user interface.

[0096] In some examples, application module 224A may determine that the amount of time since application module 224A was last executed does not satisfy (e.g., is not greater than) a threshold amount of time (the "NO" branch of 412). In response to determining that the amount of time since application module 224 was last executed does not satisfy the threshold amount of time, application module 224A may output a third graphical user interface associated with application module 224A (424). The third graphical user interface may include a graphical user interface associated with a default screen (e.g., a home screen) of application module 224A. In other words, application module 224A may refrain from outputting a getting started tutorial. Instead, application module 224A may output an indication of a default graphical user interface such that UI module 220 may cause PSD 212 to display the home screen of application module 224A.

[0097] Figure 5 is a conceptual diagram illustrating a graphical user interface including a dynamically generated introductory tutorial according to one or more aspects of the present disclosure. Figure 5 , Figure 2 The application module 224A may cause the PSD 212 to display a graphical user interface 514 indicating an introductory tutorial associated with one or more features of the application module 224A. For example, the application module 224A may include a feature to which a user can add information categories of interest to the user. Figure 5 In the example of , graphical user interface 514 includes a customizable area 530 , a description area 532 , a tutorial advancement area 534 , and a notification area 536 .

[0098] In response to executing application module 224A, application module 224A may determine whether application module 224A has been previously executed based on application usage information stored in application usage data storage 228. Application usage information may include information about how many times application module 224A has been used and / or how frequently application module 224A has been used. For example, application usage data storage 228 may include a corresponding counter indicating how many times a corresponding application module 224A has been executed. As another example, application usage data storage 228 may store an indication of when a particular application module 224A was executed and / or how long a particular application module 224A was executed each time application module 224A is executed. Application module 224A may query application usage data storage 228 to determine whether application module 224A has been previously executed. For example, if the query returns a value of a counter that does not meet (e.g., is not equal to) a default value, or if the query returns more than one row of data, application module 224A may determine that application module 224A has been previously executed. In some examples, application module 224A may cause PSD 212 to display an initial introductory tutorial in response to determining that application module 224A has not been previously executed.

[0099] In some examples, application module 224A may determine whether to cause PSD 212 to output a subsequent onboarding tutorial in response to determining that application module 224A has been previously executed. In some examples, application module 224A determines whether to output a subsequent onboarding tutorial by comparing the amount of time since application module 224A was last executed by computing device 210 to a threshold amount of time. The threshold amount of time may be a predetermined amount of time (e.g., one month, two months, etc.). The threshold amount of time may be variable. For example, the threshold amount of time may be the number of days since application module 224A was last updated, the number of days since a new feature was added to application module 224A, or the number of days since a new template graphical interface describing a feature was added to the application. In response to determining that the amount of time that has passed since application module 224A was last executed meets (e.g., is greater than or equal to) the threshold amount of time, application module 224A may determine to cause PSD 212 to display a subsequent onboarding tutorial.

[0100] In response to determining to output a subsequent introductory tutorial, the application module 224A can dynamically customize the subsequent introductory tutorial. The application module 224A can customize the subsequent introductory tutorial by determining which template graphical user interface to display at the PSD 212. For example, the application module 224A can determine a corresponding relevance score associated with at least one feature associated with the corresponding template graphical user interface. The corresponding relevance score can indicate the probability that the user is interested in the corresponding feature. In other words, the application module 224A can determine whether the user is likely to be interested in the features of the application module 224A described by the particular template graphical user interface. In some examples, the application module 224A can determine a relevance score associated with a new feature of the application module 224A, a relevance score associated with a new template graphical user interface for the introductory tutorial, a relevance score associated with an infrequently used feature, or any combination thereof.

[0101] Application module 224A may determine a relevance score associated with a corresponding feature of application module 224A based at least in part on contextual information associated with the corresponding feature. As an example, application module 224A may include a travel assistance feature, whereby application module 224A helps a user arrive at an airport on time. Application module 224A may determine a relevance score associated with such a feature based on contextual information. For example, application module 224A may determine whether a user's email and / or calendar includes a reference to a flight time. Application module 224A may assign a relevance score based on contextual information. For example, if contextual information indicates that a user flies once a year, application module 224A may assign a low (e.g., 10 out of 100) relevance score to the travel assistance feature. On the other hand, contextual information may indicate that a user flies relatively frequently (e.g., once a month) compared to most users, and a high (e.g., 90 out of 100) relevance score may be assigned to the travel assistance feature.

[0102] In response to determining that the relevance score associated with a particular feature of application module 224A satisfies a threshold relevance score, application module 224A may customize a template graphical user interface associated with the particular feature. Application module 224A may customize the template graphical user interface by determining content to be included in at least one template graphical user interface of an introductory tutorial. Application module 224A may determine content to be included in the template graphical user interface based at least in part on contextual information associated with one of the features described by the template graphical user interface. For example, application module 224A determines content to be included in a template graphical user interface associated with a travel assistance that includes the date, time, and location of a user's next flight. Therefore, application module 224A may query contextual information data storage 226 to determine when and / or where the user's next flight is scheduled to depart.

[0103] In some examples, in response to determining that the relevance score associated with the particular feature satisfies a threshold relevance score, application module 224A may determine to cause PSD 212 to display a graphical user interface describing the particular feature. However, in some examples, if the associated relevance score satisfies the threshold relevance score and the user has not used the particular feature within a threshold amount of time, application module 224A may determine to cause PSD 212 to display a graphical user interface describing the particular feature. For example, the threshold amount of time may be a fixed amount of time, or may be variable (e.g., since the particular feature was added to application module 224A). In some examples, application module 224A may cause PSD 212 to display a customized graphical user interface indicating the particular feature. In other words, application module 224A may populate the template graphical user interface with content associated with the particular feature of the template graphical user interface. In response to generating graphical user interface 514, application module 224A may output an indication of graphical user interface 514 to UI module 220.

[0104] UI module 220 may receive an indication of a graphical user interface corresponding to an onboarding tutorial (e.g., an initial or subsequent onboarding tutorial). In response to receiving the indication of the graphical user interface, UI module 220 may output the graphical user interface and may cause PSD 212 to display the graphical user interface.

[0105] The following numbered examples may illustrate one or more aspects of the present disclosure:

[0106] Example 1. A method, comprising: determining, by an application executed at a computing device, whether the application has been previously executed by the computing device; in response to determining that the application has not been previously executed by the computing device: determining, by the application, context information associated with the computing device; determining, by the application at least in part based on the context information, content to be included in at least one template graphical user interface of a plurality of template graphical user interfaces for an introductory tutorial for the application, wherein at least one template graphical user interface from the plurality of template graphical user interfaces is associated with at least one feature of the application; in response to determining content to be included in the at least one template graphical user interface, generating, by the application and based on the at least one template graphical user interface and the content, at least a first graphical user interface of the introductory tutorial; and outputting, by the application, an indication of the first graphical user interface of the introductory tutorial for display at a display device.

[0107] Example 2. The method of Example 1 further includes: in response to determining that the application has been previously executed by the computing device: determining, by the application at least in part based on the context of the computing device, a corresponding relevance score associated with at least one feature associated with a corresponding template graphical user interface, wherein each corresponding relevance score indicates a probability that a user will be interested in the feature associated with the corresponding template graphical user interface; and in response to determining that at least one of the corresponding relevance scores satisfies a threshold relevance score, outputting by the application an indication of at least a second graphical user interface of the feature associated with the corresponding relevance score for display at the display device.

[0108] Example 3. The method of Example 2, wherein determining the respective relevance score is in response to determining, by the application, that a threshold amount of time has passed since the computing device last executed the application.

[0109] Example 4. The method of Example 3, wherein the threshold amount of time is equal to an amount of time since a new feature was added to claim the application.

[0110] Example 5. The method of any combination of Examples 2-4, wherein the second user interface indicates a particular feature, and wherein outputting the second graphical user interface is further responsive to a determination by the application that the particular feature has not been used within a second threshold amount of time.

[0111] Example 6. A method of any combination of Examples 2-5, wherein determining the relevance score comprises determining the corresponding relevance score based on usage of at least one feature associated with the corresponding relevance score by one or more other users having one or more common features with the active user of the computing device.

[0112] Example 7. The method of any combination of Examples 1-6, further comprising: receiving, by the application, an indication of a selection of one or more categories of information included in the first graphical user interface; and storing, by the application, an indication of the one or more categories of information.

[0113] Example 8. The method of Example 7 also includes: the application determining, based on one or more categories of information selected by the user, information associated with at least one of the one or more categories; and the application outputting an indication of a second graphical user interface for display at the display device that includes information associated with the at least one category.

[0114] Example 9. The method of Example 8 further includes: the application determining one or more suggested categories of information related to the at least one category based on the at least one category, wherein the second graphical user interface also includes an indication of one or more suggested categories of information related to the at least one category.

[0115] Example 10. A computing device comprising: at least one processor; and a memory comprising instructions, which, when executed by the at least one processor, cause the at least one processor to: determine whether an application executed at the computing device has been previously executed by the computing device; in response to determining that the application has not been previously executed by the computing device: determine context information associated with the computing device; determine content to be included in at least one template graphical user interface of a plurality of template graphical user interfaces for an introductory tutorial for the application based at least in part on the context information, wherein at least one template graphical user interface from the plurality of template graphical user interfaces is associated with at least one feature of the application; in response to determining content to be included in the at least one template graphical user interface, generate at least a first graphical user interface of the introductory tutorial based on the at least one template graphical user interface and the content; and output an indication of the first graphical user interface of the introductory tutorial for display at a display device.

[0116] Example 11. A computing device of Example 10, wherein the memory includes additional instructions that, when executed by the at least one processor, cause the at least one processor to perform the following operations in response to determining that the application has been previously used by the computing device: determine a corresponding relevance score associated with at least one feature associated with a corresponding template graphical user interface based at least in part on the context of the computing device, wherein each corresponding relevance score indicates a probability that a user will be interested in the feature associated with the corresponding template graphical user interface; and in response to determining that at least one of the corresponding relevance scores satisfies a threshold relevance score, output an indication of at least a second graphical user interface for display at the display device for the feature associated with the corresponding relevance score.

[0117] Example 12. The computing device of Example 11, wherein the instructions causing the at least one processor to determine the corresponding relevance score cause the at least one processor to: determine the corresponding relevance score in response to a determination by the application that a threshold amount of time has passed since the computing device last executed the application.

[0118] Example 13. The computing device of Example 12, wherein the threshold amount of time is equal to an amount of time since a new feature was added to the application.

[0119] Example 14. A computing device of any combination of Examples 11-14, wherein the second user interface indicates a specific feature, and wherein the instructions causing the at least one processor to output the second graphical user interface cause the at least one processor to: also output the second graphical user interface in response to determining that the specific feature has not been used within a second threshold amount of time.

[0120] Example 15. A computing device of any combination of Examples 11-14, wherein the instructions causing the at least one processor to determine the corresponding relevance score cause the at least one processor to: determine the corresponding relevance score based on usage of at least one feature associated with the corresponding relevance score by one or more other users having one or more common features with an active user of the computing device.

[0121] Example 16. A computing device of any combination of Examples 10-15, wherein the memory includes additional instructions that, when executed by the at least one processor, cause the at least one processor to: receive an indication of a selection of one or more categories of information included in the first graphical user interface; and store an indication of the one or more categories of information.

[0122] Example 17. A computing device of Example 16, wherein the memory includes additional instructions that, when executed by the at least one processor, cause the at least one processor to: determine information associated with at least one of the one or more categories of information selected by the user; and output an indication of a second graphical user interface for display at the display device that includes information associated with the at least one category.

[0123] Example 18. A computing device of Example 17, wherein the memory includes additional instructions that, when executed by the at least one processor, cause the at least one processor to: determine one or more suggested categories of information related to the at least one category based on the at least one category, wherein the second graphical user interface also includes an indication of one or more suggested categories of information related to the at least one category.

[0124] Example 19. A computer-readable storage medium encoded with instructions that, when executed by at least one processor of a computing device, cause the at least one processor to: determine whether an application executed at the computing device has been previously executed by the computing device; in response to determining that the application has not been previously executed by the computing device: determine context information associated with the computing device; determine content to be included in at least one template graphical user interface of a plurality of template graphical user interfaces for an introductory tutorial for the application based at least in part on the context information, wherein at least one template graphical user interface from the plurality of template graphical user interfaces is associated with at least one feature of the application; in response to determining content to be included in the at least one template graphical user interface, generate at least a first graphical user interface of the introductory tutorial based on the at least one template graphical user interface and the content; and output an indication of the first graphical user interface of the introductory tutorial for display at a display device.

[0125] Example 20. The computer-readable storage medium of Example 19 further includes instructions that, when executed by the at least one processor, cause the at least one processor to: in response to determining that the application has been previously executed by the computing device: determine, based at least in part on the context of the computing device, a corresponding relevance score associated with at least one feature associated with a corresponding template graphical user interface, wherein each corresponding relevance score indicates a probability that a user will be interested in the feature associated with the corresponding template graphical user interface; and in response to determining that at least one of the corresponding relevance scores satisfies a threshold relevance score, output an indication of at least a second graphical user interface of the feature associated with the corresponding relevance score for display at the display device.

[0126] Example 21. A system comprising: a device for determining whether an application has been previously executed by a computing device; in response to determining that the application has not been previously executed by the computing device: a device for determining context information associated with the computing device; a device for determining content to be included in at least one template graphical user interface of a plurality of template graphical user interfaces for an introductory tutorial for the application based at least in part on the context information, wherein at least one template graphical user interface from the plurality of template graphical user interfaces is associated with at least one feature of the application; in response to determining content to be included in the at least one template graphical user interface, a device for generating at least a first graphical user interface of the introductory tutorial based on the at least one template graphical user interface and the content; and a device for outputting an indication of the first graphical user interface of the introductory tutorial for display at a display device.

[0127] Example 22. The system of Example 21 further includes: in response to determining that the application has been previously executed by the computing device: a device for determining a corresponding relevance score associated with at least one feature associated with a corresponding template graphical user interface based at least in part on the context of the computing device, wherein each corresponding relevance score indicates a probability that a user will be interested in the feature associated with the corresponding template graphical user interface; and in response to determining that at least one of the corresponding relevance scores satisfies a threshold relevance score, a device for outputting an indication of at least a second graphical user interface of the feature associated with the corresponding relevance score for display at the display device.

[0128] Example 23. The system of Example 22, further comprising means for determining that a threshold amount of time has passed since the computing device last executed the application, wherein determining the corresponding relevance score is in response to determining that a threshold amount of time has passed since the computing device last executed the application.

[0129] Example 24. The system of Example 23, wherein the threshold amount of time is equal to an amount of time since a new feature was added to the application.

[0130] Example 25. A system of any combination of Examples 22-24, wherein the second user interface indicates a specific feature, the system further comprising means for determining that the specific feature has not been utilized within a second threshold amount of time, wherein outputting the second graphical user interface is also in response to determining that the specific feature has not been used within the second threshold amount of time.

[0131] Example 26. A system of any combination of Examples 22-25, wherein the means for determining the relevance score comprises: means for determining the corresponding relevance score based on usage of at least one feature associated with the corresponding relevance score by one or more other users having one or more common features with the active user of the computing device.

[0132] Example 27. The system of any combination of Examples 21-26, further comprising: means for receiving an indication of a selection of one or more categories of information included in the first graphical user interface; and means for storing indications of one or more categories of information.

[0133] Example 28. The system of Example 27 further includes: a device for determining information associated with at least one of the one or more categories of information selected by the user based on one or more categories; and a device for outputting an indication of a second graphical user interface for display at the display device that includes information associated with the at least one category.

[0134] Example 29. The system of Example 28 further includes: a device for determining one or more suggested categories of information related to the at least one category based on the at least one category, wherein the second graphical user interface also includes an indication of one or more suggested categories of information related to the at least one category.

[0135] In one or more examples, the functions described may be implemented in hardware, software, firmware, or any combination thereof. If implemented in software, the functions may be stored as one or more instructions or codes on a computer-readable medium or transmitted through a hardware-based processing unit. Computer-readable media may include computer-readable storage media, which corresponds to tangible media such as data storage media, or communication media including any media that facilitates, for example, transferring a computer program from one place to another according to a communication protocol. In this manner, computer-readable media may generally correspond to (1) tangible computer-readable storage media that is non-temporary, or (2) communication media such as signals or carrier waves. Data storage media may be any available media that can be accessed by one or more computers or one or more processors to retrieve instructions, codes, and / or data structures for implementing the techniques described in the present disclosure. A computer program product may include a computer-readable medium.

[0136] As an example and not limitation, such computer-readable storage media may include RAM, ROM, EEPROM, CD-ROM or other optical disk storage, disk storage or other magnetic storage devices, flash memory or any other medium that can be used to store the required program code in the form of instructions or data structures and can be accessed by a computer. In addition, any connection is appropriately referred to as a computer-readable medium. For example, if a coaxial cable, fiber optic cable, twisted pair, digital subscriber line (DSL) or wireless technology (such as infrared, radio and microwave) is used to send instructions from a website, server or other remote source, then the coaxial cable, fiber optic cable, twisted pair, DSL or wireless technologies such as infrared, radio and microwave are all included in the definition of the medium. However, it should be understood that computer-readable storage media and data storage media do not include connections, carriers, signals or other transient media, but point to non-transient tangible storage media. The disks and optical disks used include compact disks (CDs), laser optical disks, optical disks, digital versatile disks (DVDs), floppy disks and blue-ray disks, where the disks usually reproduce data magnetically, and the optical disks reproduce data optically by lasers. The above combination should also be included in the scope of computer-readable media.

[0137] Instructions may be executed by one or more processors, such as one or more digital signal processors (DSPs), general purpose microprocessors, application specific integrated circuits (ASICs), field programmable logic arrays (FPGAs), or other equivalent integrated or discrete logic circuits. Thus, the term "processor" as used may refer to any of the above structures or any other structure suitable for implementing the described techniques. Furthermore, in some aspects, the described functionality may be provided within dedicated hardware and / or software modules. Moreover, these techniques may be fully implemented in one or more circuits or logic elements.

[0138] The techniques of the present disclosure may be implemented in a wide variety of devices or apparatuses, including wireless handsets, integrated circuits (ICs), or a set of ICs (e.g., chipsets). Various components, modules, or units are described in the present disclosure to emphasize functional aspects of devices configured to perform the disclosed techniques, but do not necessarily need to be implemented by different hardware units. Instead, as described above, the various units may be combined in a hardware unit, or by a collection of cooperating hardware units including one or more processors as described above in combination with appropriate software and / or firmware.

[0139] Various embodiments have been described. These and other examples are within the scope of the following claims.

Claims

1. A method comprising: determining, by an application executing at a computing device, an amount of time that a user has not used a particular feature of the application, the particular feature of the application being one of a plurality of features of the application; In response to determining that the user has not used the particular feature within a threshold amount of time, determining to generate and output a customized graphical user interface including an onboarding tutorial associated with the particular feature of the application, the onboarding tutorial including a plurality of template graphical user interfaces describing the plurality of features of the application; Responsive to determining generating and outputting the customized graphical user interface associated with the specific feature: Determining, by the application, content to be included in a template graphical user interface of the plurality of template graphical user interfaces of the introductory tutorial for the application based on given context information in the context information associated with the computing device, wherein the template graphical user interface is associated with the particular feature of the application; In response to determining the content to be included in the template GUI, generating, by the application, the customized GUI based on the template GUI and the content; and An indication of the customized graphical user interface is output by the application for display at a display device for presentation to the user of the computing device.

2. The method according to claim 1, further comprising: determining, by the application, that at least some of the context information associated with the computing device is related to the particular feature; Wherein, determining whether to generate and output the customized graphical user interface is further based on determining that at least some of the context information is related to the specific feature.

3. The method according to claim 2, further comprising: determining a relevance score associated with the particular feature based at least in part on the contextual information associated with the computing device; Wherein, determining whether to generate and output the customized graphical user interface includes: A determination is made based on the relevance score whether to include the customized graphical user interface describing the particular feature.

4. The method according to claim 2, wherein: At least some of the contextual information is based on at least one of past internet search history, past physical locations, or future physical locations.

5. The method according to claim 1, wherein: The given contextual information used to determine the content to include in the template graphical user interface includes at least one geographic location of the computing device determined based on sensor data of the computing device.

6. A computing device comprising: at least one processor; as well as a memory comprising instructions that, when executed by the at least one processor, cause the at least one processor to: determining, by an application executing at the computing device, an amount of time that a user has not used a particular feature of the application, the particular feature of the application being one of a plurality of features of the application; In response to determining that the user has not used the particular feature within a threshold amount of time, determining whether to generate and output a customized graphical user interface including an onboarding tutorial associated with the particular feature of the application, the onboarding tutorial including a plurality of template graphical user interfaces describing the plurality of features of the application; Responsive to determining generating and outputting the customized graphical user interface associated with the specific feature: Determining, by the application, content to be included in a template graphical user interface of the plurality of template graphical user interfaces of the introductory tutorial for the application based on given context information in the context information associated with the computing device, wherein the template graphical user interface is associated with the particular feature of the application; In response to determining the content to be included in the template GUI, generating, by the application, the customized GUI based on the template GUI and the content; and An indication of the customized graphical user interface is output by the application for display at a display device for presentation to the user of the computing device.

7. The computing device of claim 6, wherein: The instructions further cause the at least one processor to: determining, by the application, that at least some of the context information associated with the computing device is related to the particular feature; Wherein, determining whether to generate and output the customized graphical user interface is further based on determining that at least some of the context information is related to the specific feature.

8. The computing device of claim 7, wherein: The instructions further cause the at least one processor to: determining a relevance score associated with the particular feature based at least in part on the contextual information associated with the computing device; Wherein, the instructions for determining whether to generate and output the customized graphical user interface include instructions for: A determination is made based on the relevance score whether to include the customized graphical user interface describing the particular feature.

9. The computing device of claim 7, wherein: At least some of the contextual information is based on at least one of past internet search history, past physical locations, or future physical locations.

10. The computing device of claim 6, wherein: The given contextual information used to determine the content to include in the template graphical user interface includes at least one geographic location of the computing device determined based on sensor data of the computing device.

Citation Information

Patent Citations

  • Providing information to users based on context

    CN102521019A

  • Method and device for guiding browse paths of application program

    CN104932920A