Mobile applications (“mobile apps”) are a class of software routines executable on various types of portable network accessible devices such as smart phones, tablets, netbooks, PDAs, smart televisions, gaming systems, etc. Some mobile applications (“preinstalled apps” or “native apps”) are installed into the device during device manufacturing. Other mobile apps (“user installed apps” or “downloaded apps”) are selectively downloadable by a user, allowing the user to customize the device based on personal preferences. User installed mobile apps can take a variety of forms such as games, communication programs, daily planners, ebook readers, geopositioning trackers, alert systems, etc.
Mobile apps are often created by developers and offered for download through an online source such as an “app store.” Developers may offer mobile apps for free or for a nominal amount, and rely on other mechanisms such as embedded advertising (e.g., “mobile ads”) to generate revenue to cover the cost of the mobile app development.
Various embodiments disclosed herein are generally directed to the management of applications in a network accessible device.
In accordance with some embodiments, an application stored in a local memory of a network accessible device is executed to provide an interactive display for a user of the device. An interactive content item is presented to the user on the display during the execution of the application. An interaction command is stored in a memory responsive to selection of the interactive content item by the user. The stored command is thereafter executed responsive to receipt of an indication that the user has terminated execution of the application.
These and other features and advantages which may characterize various embodiments can be understood in view of the following detailed discussion and the accompanying drawings.
The present disclosure generally relates to the management of mobile applications (“mobile apps”) in a network accessible device, and more particularly, to the ability to delay execution of an action by a user during the ongoing execution of an application.
It is becoming increasingly common to display interactive content items, such as advertisements or other sponsored content, within the context of a currently executing mobile app. Configuring an application to accept such items may lead to increased revenue opportunities for the developer of the app.
Some mobile ads include a creative portion which may involve text, graphics, images or video files associated with the advertised service and/or product. Mobile ads displayed in mobile applications may offer an upgrade to the existing mobile app, or may offer other mobile apps that are available from the developer. In addition, the mobile ads may be for third party mobile applications, products or services not directly associated with the developer of the mobile app.
Mobile ads may further have an interactive portion such that user selection (a “click”) of the advertisement will direct the user to additional information related to the advertisement. The interactive portion of an ad can take a variety of forms. For example, advertisements can be configured such that, upon selection, the user is connected to a linked web page with additional information, often referred to as a “landing page.” Some advertisements may have forms or fields to “pre-load” searches or other operations on the landing page associated with the ad.
Other advertisements may have a “click to call” feature that enables a user to call (establish a telephonic connection with) the advertiser directly from the ad via clicking on a virtual button. Still other advertisements may have a “click to chat” feature that opens a chat window directly from a virtual link or button on the advertisement creative to enable the user to chat with a representative associated with the ad.
A “click to purchase” feature allows users to carry out a purchase transaction for an advertised product or service. Similarly, a “click to download” feature can initiate a transaction that takes the user to an app store to purchase the advertised app.
These and other interactive ad formats may result in the termination of the then currently executing mobile app in order to service the ad (e.g., initiate the purchase and download of a new app, etc.). The premature termination of the existing mobile app may lead to an unintended loss of data for the user, such as by losing ongoing progress within a game, losing a partially written communication, etc. Users may thus become reluctant to click on ads or other invitations to action within an existing app, and may not follow up and pursue the download of a new app that was presented to the user once the mobile app is completed.
Accordingly, various embodiments of the present disclosure are generally directed to an apparatus and method for delaying execution of an action selected by a user of an application until the user affirmatively terminates the execution of the app. As explained below, during the execution of a mobile app, the user is presented with an interactive content item that presents an invitation for the user to take action, such as in the form of a mobile ad. The interactive content item is configured such that the user can accept the invitation without terminating the continued execution of the existing mobile app. The action is not actually taken until the user terminates the existing app.
This decoupling of the user's intent to take action, and the actual taking of the action at a later time, reduces the premature loss of ongoing progress in the existing mobile app. This may increase the user's willingness to interact with the presented content.
These and other features and benefits can be understood beginning with a review of
The network accessible device 102 can take a variety of forms, including but not limited to a laptop computer, a tablet, a smart phone or some other portable network accessible appliance adapted to download and execute mobile apps. The device 102 is shown to include a controller 108, local memory (mem) 110 and a graphical user interface (GUI) 112. Other components may be incorporated into the device.
The controller 108 may be a hardware-based or programmable processor which provides top level control of the device 102 responsive to inputs supplied by a user of the device 102 via the GUI 112. The device memory 110 stores information input by the user, programming and/or control information utilized by the controller 108, and information transferred to the device 102 over the network 106.
The GUI 112 may include a keyboard, keypad, mouse, monitor, touch screen, touch pad, microphone, game controller, and/or other suitable components to enable human comprehensible interaction with and/or control of the device 102. It is contemplated, although not necessarily required, that the execution of a downloaded mobile app from the memory 110 can be executed by user interaction with the GUI 112, and the resulting execution of the mobile app will display interactive A/V content on the GUI 112.
The server 104 can take a variety of forms, and is shown in
As explained below, a user of the device 102 can access the server(s) 104 to download a mobile app from the mobile apps manager 118 to local device memory 110. During subsequent execution of the mobile app, the ad manager 120 may supply one or more mobile ads (or other interactive content items) responsive to requests for such by the mobile app.
The native apps 122 will vary depending on the configuration of the device 100 and generally represent software routines loaded onto and supplied with the device by the manufacturer. In some embodiments, the native apps may include routines such as web browsers (e.g., Safari, etc.), telephone communication routines, video/still camera software, weather alert routines, word processing applications, clock and timing utilities, calculator displays, interface links to app stores, and so on.
The mobile apps 124 represent software routines specifically downloaded by the user for use on the device. The mobile apps can take a variety of forms including games, communication programs (e.g., third party email, chat and texting systems, etc.), daily planners, ebook readers, geopositioning trackers, alert systems, and so on. Both the native apps 122 and the user downloaded apps 124 may be represented on the GUI 112 (
The app data space 126 represents a portion of the local memory 110 allocated for the storage of control data associated with the respective execution of the native and downloaded mobile apps 122 and 124. Segregated data areas may be provided for these respective types of apps; for example, separate caches, history and cookie areas may be maintained for the various apps, both by type (native v. user) and on an individual app basis. Device level data, such as a unique device identification value (e.g., a “device ID”) may also be stored in the app data space 126. Depending on device configuration, the user may or may not have direct access to the app data stored in the app data space 126, and may or may not be able to delete, alter or overwrite data stored therein.
The delayed execution module 128 may be a stand-alone module, or may be incorporated as a portion of one or more of the mobile apps 124. In some embodiments, the delayed execution module 128 may form a portion of the software development kit (SDK) functionality of the mobile apps 124 that are configured in accordance with the present disclosure. As explained below, in some embodiments, the delayed execution module 128 operates to locally store data indicative of the user's intent to take action, to detect the user's termination of the mobile app in which the intent was expressed, and to automatically initiate the intended action such as by contacting an appropriate remote site via the network 106 (
The mobile apps manager 118 is shown in
The ad manager 120 includes a mobile ads transfer interface block 134 and an ad database 136. The ad manager 120 generally operates to receive requests for mobile ads and, in response thereto, proceeds to select and transfer one or more appropriate ads from the mobile ad database 136 for display on the local device 102. As before, the ad manager 120 may incorporate a number of additional modules including cloud computing and storage capabilities.
For purposes of providing a concrete example, it is contemplated in
The successful download of the app 1 mobile app results in the display of an associated icon on the GUI 112 of the local device 102. User selection of the icon commences the execution of the app 1 mobile app. User termination of the app 1 mobile app may occur by the user selecting an exit button presented within the display of the app 1 mobile app, or by user selection of a power down or exit button on the device 102. While not limiting, it is contemplated that the app 1 mobile app will constitute an interactive game that involves user manipulation of animated characters presented on the GUI 112, such as incensed fowl which are catapulted by the user at a selectable trajectory toward self-satisfied boar.
The execution of the app 1 routine results in a display on the GUI 112, as generally represented in
The mobile ad may be displayed responsive to a request for communication generated by the execution of app 1. This request may be directed to the mobile apps manager 118 and forwarded to the ad manager 120, or may be transferred directly to the ad manager 120 by the device 102. Regardless, processing of the communication results in the transmission and display of the ad for app 2 from the ad database 136 (see
It will be noted that the ad 138 in
Once the user takes one or more steps to terminate the execution of the app 1 routine 140, an “app 1 complete” signal is provided to the delayed execution manager 142. The signal provides an affirmative indication that the app has terminated execution. Such termination may involve a complete exiting of the routine, or the placement of the routine by the user in a non-executing suspended state. It is not necessarily required that programming instructions associated with the app be removed from local processor cache or other processor memory locations in order for the app to be terminated, although the termination can involve such steps as desired. While a specific communication signal is shown, the manager 142 can detect user termination of the app 1 routine 140 in a variety of ways, including through the detection of commencement of a new application, user selection of a deactivation button on the device 102, etc.
In response to the detected termination of app 1, the manager 142 transmits the queued interaction command to the mobile apps transfer interface block 130 (see
The cached command information in the queue 144 can take a variety of forms. In some embodiments, the command information may include a URL or other network address for use by a native app 122 of the device 102 (e.g., a web browser, etc.) to connect the device 102 to a remote site, such as a landing page. In other embodiments, a unique identifier tag is provided in the embedded mobile ad, and this tag value is stored and subsequently transferred to the mobile apps manager 118 to signify a request for the download of the app 2 mobile app. In further embodiments, information relating to the then-existing app 1 mobile app is included in the command to allow tracking of the effectiveness of the ad campaign.
While local caching of the commands is generally represented in
User termination of the app 1 routine 140 can be carried out in a variety of ways. In some embodiments, selection of an “exit” or “close” button within the GUI 112 presentation of the app 1 content can be detected and used to signify termination of the application. Alternatively, user activation of a power down or main screen activation button can be used. It is contemplated that the queue may be configured to retain the download command in the queue in the event of a loss of power or other interruption of the app 1 routine, such as to service an incoming call, etc. Data transfer or backup techniques can be used to store and/or transfer the command queue to non-volatile memory in order to retain the user's intent to download even in the loss of battery power or intentional power down of the device.
It is noted that mobile apps are often configured to detect a data transfer request (e.g., the downloading of a second mobile app) and to automatically terminate in response. In such case, the delayed execution of the commands as discussed herein enable such mobile apps to operate as normally configured and may not necessarily require modifications to their programming in order to support this delayed execution functionality. This can be beneficial since it is often cumbersome to update the programming of an existing mobile app that has already been downloaded onto a device.
The manager 142 can be configured to maintain a history of downloaded apps that have passed through the processing sequence of
At step 202, a first mobile app is downloaded to the device, such as the app 1 routine 140 in
While the foregoing discussion has contemplated the invitation communication as an advertisement for a second mobile app, such is merely illustrative and not limiting. The invitation to take action may take any variety of forms such as a public service announcement, an advertisement for a political candidate, an opportunity to contribute to a social movement or relief fund, a request to sign a petition or other organized activity, an invitation to comment upon or indicate approval of the first app in a social network, an offer to purchase a physical item such as a book or movie tickets, and so on.
At step 208, the user accepts the invitation extended in step 206. This may be carried out in a variety of ways. The user may “click” on the advertisement by moving a pointer, activating a user button on the device, tapping on a touch screen, or performing some other interactive operation via the GUI 112 to signify acceptance. Alternatively, the user may be given an opportunity to enter information such as making selections or entering text as part of the accepted invitation. A thank you style screen may be displayed upon acceptance, indicating that the requested action (download, etc.) will commence at the conclusion of the app 1 routine.
In some embodiments, one-click shopping may be activated so that, upon selecting the ad, all information necessary to complete the transaction, including payment information, is stored locally such as in the app data space 126 of local memory 110 (
Continuing with the routine 200 of
It is contemplated that the user termination of the first mobile app will trigger immediate execution of the cached command; however, such is not necessarily required. In some embodiments, the cached command may be executed by the device at some other specified time. For example, a timer may be initiated that starts an elapsed time interval counting from the completed execution of the mobile app, so that the command is carried out a selected period of time (e.g., 4 hours, etc.) after termination of the execution of the mobile app by the user. Alternatively, a particular time in the future may be selected (e.g., 2:00 a.m., etc.) to carry out the download or other action after the termination of the app.
In some embodiments, the delayed execution module may ask the user whether the user wishes to proceed with the download now or to wait until the first mobile app is terminated, along with a reminder that any unsaved progress will be lost if the download proceeds. It is noted that such affirmative action on the part of the user would result in the deliberate termination of the first app, so that the user is aware that the first app will not continue execution if the download is commenced now. Thus, for purposes of the appended claims, user termination of the mobile app will be understood consistent with the foregoing discussion to signify a deliberate intention on the part of the user to terminate the application, rather than the termination inadvertently occurring as a result of an action taken by the user.
It is to be understood that even though numerous characteristics and advantages of various embodiments of the present invention have been set forth in the foregoing description, together with details of the structure and function of various embodiments of the invention, this detailed description is illustrative only, and changes may be made in detail, especially in matters of structure and arrangements of parts within the principles of the present invention to the full extent indicated by the broad general meaning of the terms in which the appended claims are expressed.