Mobile content delivery optimization

Systems and methods provide for optimizing content delivery in mobile applications. A mobile application executing on a mobile computing device can obtain application interaction data that corresponds to user inputs and sensor data detected by the mobile computing device during execution times of the mobile application. The mobile computing device can send the interaction data to a remote server device that is configured to analyze the data and determine one or more optimal content display factors that are based on identified usage characteristics of the mobile application. The remote server device can then send the determined optimal content display factors back to the mobile computing device, where the timing, sizing, positioning, orientation, and other configurations of third-party content displays are influenced based on this information.

BACKGROUND

Mobile computing devices are employed by users to regularly conduct a variety of both personal and enterprise-related tasks. A large variety of mobile applications that enable the performance of such tasks can be made available for download via application repositories or “app stores.” There can be many, if not hundreds, of different applications directed to performing one particular task. Within the many, only a small percentage of applications become popular and adopted by a large population of users. There are a variety of factors that users may consider when testing out an application before it becomes a “keeper.” Ease of use, functionality, interoperability, and cost are just a few of many factors considered by users when testing out a new mobile application. Not surprisingly, cost is one of the most significant factors considered by users before downloading and/or purchasing a new application for use.

Developers have subsidized the costs of developing free or reduced-cost applications by incorporating, into their application code, code that is based on third-party-content software development kits (SDKs). In other words, developers are programmatically allowing third-party content providers to display third-party content within their applications, so they can generate revenue while offering their applications for free or at reduced cost. These developers have found, however, that the inclusion of third-party content on application graphical user interfaces actually have the tendency to turn users away. Users oftentimes remove an application from consideration when they notice unappealing third-party content consuming valuable screen real estate and taking away from the user experience. It would be beneficial, however, to improve user conversion rates to an application by strategically delivering the revenue-generating content to users without degrading the user experience.

SUMMARY

Embodiments described herein relate to, among other things, optimizing content delivery within mobile applications. In essence, embodiments are broadly directed to analyzing application-user interaction data and providing for display, within the application, third-party content at a determined time and configuration that is based at least in part on the analyzed interaction data. In other words, interaction data corresponding to inputs or sensor data detected by a mobile application can be obtained and analyzed to determine application usage data and user preferences. In this way, the mobile application and/or the underlying SDKs can employ the determined usage data and user preferences to provide an improved user experience by displaying third-party content in a less invasive and more appropriately-timed and/or more appropriately-configured manner.

At a high level, application interaction data (e.g., detected user inputs and/or sensor data) is obtained from a mobile computing device while an application is executing. The interaction data is obtained by the application as the interaction data is detected by the mobile computing device. Interaction data can include, among other things, the positions of detected user inputs corresponding to the application and/or displayed third-party content, screen orientations during application operation, duration of application operation, times of application operation, and/or frequency of application operation.

The obtained application interaction data can be processed locally, or sent to a remote server device to be processed. The obtained application interaction data is processed to determine optimal content display factors that are based at least in part on the obtained application interaction data. In some instances, the optimal content display factors can include, among other things, a time, duration, size, position, and/or orientation to provide for display a piece of third-party content that is customized in accordance with the obtained interaction data. The optimal content display factors can also include a location, genre, or category specific to one or more pieces of third-party content. In some other instances, the third-party content identifier can indicate a third-party content identifier that corresponds to a particular piece of third-party content.

After the optimal content display factors are determined, the application employs the optimal content display factors, or at least a portion thereof, to provide for display a selected piece of third-party content within a user interface of the application. The piece of third-party content can be selected and/or manipulated for presentation in a display configuration that is based at least in part on the determined optimal content display factors.

In some embodiments, the piece of third-party content can be selected from a locally-stored collection of content that was obtained from a remote server device. In even further embodiments, the obtained collection of content can be customized for the mobile computing device, by the remote server device, based at least in part on the determined optimal content display factors.

DETAILED DESCRIPTION

Users of mobile computing devices oftentimes try out new mobile applications to perform various tasks. A majority of such mobile applications are made available to users in a free or trial version that displays revenue-generating third-party content. The inclusion of revenue-generating third-party content in a free or trial version of an application can generally help a developer offset the costs associated with providing the application for free. In many instances, developers hope that users will utilize the application enough to pay for an “unobstructed” version that removes all instances of the revenue-generating third-party content. In this way, a developer can widely distribute an application with hopes that users will give it a try, take a liking to it, and eventually purchase it.

The display of revenue-generating third-party content on the face of a mobile application can take away from the user experience. Oftentimes, this reason alone is enough for some users to justify the removal of an application without giving it a fair evaluation. In some situations, a bottleneck in computing resources (e.g., processing power and bandwidth) created by mobile applications displaying revenue-generating third-party content can also negatively impact the user experience. To this end, embodiments described herein are directed to optimizing content delivery within mobile applications.

Ideally, a developer would implement a feature that delays the display of revenue-generating third-party content. The application would be provided as a non-obstructed version on a time trial basis. That is, after the expiration of a predefined duration based on application usage or time from installation, the application can transition from an unobstructed application to displaying the revenue-generating third-party content. Mobile applications generally include portions of code that are based on third-party content software development kits (SDKs) that facilitate the retrieval (e.g., from remote servers) and display of third-party content upon an execution of the application and/or a detected connection to a network, among other scenarios. The developers who include code based on these third-party content SDKs are generally at the mercy of the SDK provider. The process related to the retrieval and display of third-party content is relatively static. That is, the graphical user interface (GUI) of a mobile application includes a code portion that references the third-party content SDK, and that retrieval and display of the third-party content is generally fixed in position and orientation on the application's GUI.

In some situations, a bottleneck in computing resources (e.g., processing power and bandwidth) created by mobile applications displaying revenue-generating third-party content can also negatively impact the user experience. In more detail, mobile applications generally include portions of code based on third-party content SDKs that facilitate the retrieval (e.g., from remote servers) and display of third-party content upon execution of the application or detected connectivity to a network, among other scenarios. In this regard, multiple applications or processes may be simultaneously initialized (e.g., started, resumed, or executed) after a system halt or other re-initialization of running processes, thereby slowing down the system and negatively impacting the user experience. In another instance, when network connectivity becomes available, a plurality of applications may make synchronous calls to retrieve and/or display the third-party content, also undesirably slowing down the system.

As such, in some embodiments, application interaction data based on one or more detected inputs corresponding to an application executing on a mobile computing device can be obtained by the mobile computing device or components thereof. In essence, input events for an application and detected by the mobile computing device can be recorded and stored in memory. The obtained application interaction data can then processed locally, or sent to a remote server device for processing, to determine optimal content display factors for the mobile computing device based at least in part on the application interaction data. The determined optimal content display factors can then be employed by the mobile computing device.

The optimal content display factors can include, among other things, a time, duration, size, and/or orientation to provide for display a piece of third-party content. The mobile computing device or components thereof can provide for display the piece of content within a user interface of the application. The piece of content can be provided for display in accordance with, among other things, a portion of the received optimal content display factors. To this end, in some aspects, third party content can be selected and/or displayed after the user has had a predetermined amount of unobstructed or uninterrupted time to test the application. In other words, no third-party content will be provided for display until a determination is made that the application has been executing beyond a threshold period of time. In other aspects, third party content can be automatically selected and/or displayed in customized positions, sizes, orientations, and other configurations that are better suited for a particular mobile computing device and its associated user.

In further embodiments, a collection of third-party content displayable within one or more mobile applications of a mobile computing device can be obtained from a remote server device, independent of the one or more mobile applications, and stored on the mobile computing device. For instance, a background service can discreetly retrieve a collection of third-party content for local storage. In some further embodiments, the collection can be retrieved in the background, during known down times, and/or with less frequency than traditional methods. Individual pieces of the collection can be made available to the one or more mobile applications. In this way, third-party content retrieval can be conducted independent from the mobile application, thereby mitigating situations where multiple applications or processes performing such operations undesirably slow down the system.

With brief reference toFIG. 1, a block diagram is provided illustrating an exemplary system100of the prior art for providing third-party content within mobile applications. The system100is an example of a suitable architecture for implementing certain aspects of the prior art. Among other components not shown, the system100includes, at a high level, a mobile computing device110(e.g., a mobile phone, tablet, laptop, GPS, wearable, etc.) having at least one application configured to be executed thereon. The mobile computing device110can retrieve, via the application executing thereon, a piece of third-party content from remote server device120for display on a GUI of the executing application. More specifically, the mobile computing device110can request, retrieve, and display a piece of third-party content upon the execution of a mobile application or upon detection of network connectivity by the executing application. The mobile computing device110and remote server device120are in communication via a network120, which may include, without limitation, one or more local area networks (LANs) and/or wide area networks (WANs), such as the Internet. The remote server device120is typically a third-party content server (e.g., an ad server) configured to provide a piece of third-party content to remote computing devices, such as mobile computing device110, in response to a request received therefrom.

The system200is an example of a suitable architecture for implementing certain aspects of the present disclosure. It should be understood that any number of user devices and servers may be employed within the system200within the scope of the present disclosure. Each of the servers and client devices shown inFIG. 2may be implemented via a computing device, such as computing device1100, later described with reference toFIG. 11, for example. The components may communicate with each other via network230. Each may comprise a single device or multiple devices cooperating in a distributed environment. Additionally, other components not shown may also be included within the system200.

Among other components not shown, the system200includes, at a high level, a mobile computing device210(e.g., a mobile phone, tablet, laptop, GPS, wearable, etc.) having at least one mobile application configured to be executed thereon. In some embodiments, the mobile computing device210can obtain a collection of third-party content from a server device, such as remote server device220. In further embodiments, a generated collection can be obtained from remote server device220at unobtrusive times (e.g., times of inactivity) and stored in a memory (not shown) of the mobile computing device210. In even further embodiments, the collection can be generated locally on the mobile computing device210as pieces of third-party content are individually obtained by the mobile computing device210from the remote server device220, independent from any third-party content displaying application.

In some embodiments, a piece of third-party content can be selected from the locally stored collection of third-party content for display on a GUI of the executing application. More specifically, the mobile computing device210can select and display a piece of third-party content at an optimized time, position, and/or orientation on a GUI of the executing application to improve the user experience. In this way, obtrusive third-party content may not appear upon the initial execution of the application in accordance with some embodiments.

In further embodiments, the mobile computing device210can obtain application interaction information that corresponds to one or more applications executing thereon. That is, user inputs corresponding to an application executing on the mobile computing device210can be monitored, so that the user inputs are logged and, in some instances, stored in a memory or cache of the mobile computing device210. In embodiments, the user inputs can include, among other things, touchscreen inputs, inputs from coupled input devices, device orientation data (e.g., accelerometer data, gyroscope data, magnetometer data, etc.), and locational data (e.g., GPS data, compass data, etc.), among other input data sensed or detected by the mobile computing device210as one or more applications is executing thereon.

The logged application interaction information can be sent from the mobile computing device210to a remote server device configured to analyze the obtained application interaction information and determine, by way of the analysis, optimal content display factors for the mobile computing device210. In some embodiments, the remote server device can be remote server device220configured to both provide the collection of third-party content to the mobile computing device210and determine optimal content display factors for the mobile computing device210. In other embodiments, the remote server device can be another remote server device, such as remote server device225, configured to receive the obtained application interaction information from the mobile computing device210and determine the optimal content display factors therefor. It is contemplated that the third-party content SDK, on which the application is built, can be responsible for at least obtaining the application interaction information, sending the obtained application interaction information to remote server device220or225for analysis, and obtaining the determined optimal content display factors from the remote server device220or225so that the application executing on the mobile computing device210can provide for display a piece of third-party content in a manner that is less obtrusive and optimizes the user experience.

The mobile computing device210and remote server device220,225are in communication via a network220, which may include, without limitation, one or more local area networks (LANs) and/or wide area networks (WANs), such as the Internet. The remote server device220can be a third-party content server (e.g., an ad server) configured to provide at least one piece or collection of third-party content to remote computing devices, such as mobile computing device210, in response to a request received therefrom. In accordance with embodiments described herein, third-party content can include an advertisement, a survey, a product price promotion, a product description, a time-limited offer, subscription content, and the like. The remote server device225can be a server configured to determine optimal content display factors for any mobile computing device from which it can receive application interaction information from. As was noted above, the remote server device220and225can be one remote server device or a plurality of remote server devices configured in a distributed environment.

With reference now toFIG. 3, a block diagram illustrating an exemplary component framework300of the system in accordance with some implementations of the present disclosure is provided. The mobile computing device210ofFIG. 2is represented inFIG. 3as mobile computing device310comprising, among other things, an application320configured to provide for display third-party content. The application320can include a third-party content display component325for determining when and how to provide, for display, third-party content on a GUI of the application320. The application320can also include an application interaction monitor327for obtaining application interaction information that is based on user inputs detected by the mobile computing device310while the application320is executed.

In some embodiments, the mobile computing device310further comprises a third-party content optimization component330configured to optimize the obtaining and provisioning of third-party content to the application320. In embodiments, the third-party content optimization component330can include a third-party content retrieval component332for obtaining the third-party content from a remote server device over a network340, and a third-party content provisioning component334for providing at least a portion of the third-party content to application320in response to a request.

In accordance with embodiments described herein, the application320can be an executable mobile application that is configured to obtain one or more pieces of third-party content that can be provided for display in an optimized configuration that is based at least in part on determined optimal content display factors. The application320can be any preinstalled or downloaded application that can be executed on the mobile computing device310.

Storing Third-Party Content Locally for Subsequent Provisioning

In some embodiments, the application320can obtain the piece of third-party content by retrieving it from a collection of third-party content stored in a memory of the mobile computing device310. For instance, a plurality of pieces of third-party content can be stored in memory as a collection, which can be apportioned by individual pieces to one or more applications configured to retrieve pieces of third-party content therefrom. In some embodiments, the collection can be sorted by categories or can include metadata that facilitates a selection of certain pieces of third-party content based on user location, application usage, time and/or date, and other factors. While embodiments described herein illustrate configurations where the application320is configured to obtain third-party content stored locally on the mobile computing device310, it is contemplated that in some other embodiments, the application320can bypass the third-party content retrieval component332to obtain third-party content by retrieving pieces directly from a remote server device, such as content-providing remote server device350.

The collection of third-party content displayable within the application320can be obtained from a remote server device and stored on the mobile computing device via a third-party content retrieval component332resident on the mobile computing device. In embodiments, the third-party content retrieval component332is configured to execute independent of the application320. For example, the third-party content retrieval component332can be an application or service that runs in the background, and can be configured to retrieve a collection of third-party content from a third-party content server (e.g., content-providing remote server device350) for local storage. The third-party content retrieval operations performed by the third-party content retrieval component332are executed independently from the application320. In fact, in some embodiments, the application320may be configured only to retrieve third-party content when the application320, or any foreground application for that matter, is not running.

In some further embodiments, the collection can be retrieved by the third-party content retrieval component332from the content-providing remote server device350in the background (e.g., as a daemon), during known mobile computing device310down times (e.g., typical user sleep times, while charging, while no physical movements are detected, etc.), at predetermined or dynamic intervals, and/or with less frequency than traditional methods. Individual pieces of the collection can be made available to the application320via a third-party content provisioning component334that is resident on the mobile computing device310. In this way, third-party content retrieval can be conducted independent from the mobile application executing on the mobile computing device310, thereby mitigating situations where multiple applications or processes performing such operations may undesirably slow down the system.

Responding to Requests for Locally-Stored Third-Party Content

The third-party content provisioning component334can receive requests for one or more pieces of third-party content from application320executing on the mobile computing device. The request can be generated by the application320as a result of the application320including code associated with a third-party content SDK in accordance with the present disclosure. Instead of sending a network request for third-party content to a third-party content server, as performed in traditional systems, the application320can include executable instructions or code that, when executed by a processor, can generate a request for third-party content to a locally-executing third-party content provisioning component334. The third-party content provisioning component334can select one or more pieces of third-party content based on a number of pieces requested in the received request.

In some embodiments, the third-party content provisioning component334can select one or more pieces of third party content utilizing information received by a remote server device that is configured to determine optimal content display factors for any mobile computing device from which it can receive application interaction information from. Here, interaction-analyzing remote server device360can be a server configured for analyzing application interaction information received from the application320executing on mobile computing device310. In accordance with embodiments described herein, application interaction information can include information related to user inputs corresponding to the application320executing on the mobile computing device210.

Monitoring Application Interaction for Analysis

As described hereinabove, the executing application320can be monitored such that its corresponding interactions from a user are logged and, in some instances, stored in a memory or cache of the mobile computing device310. In some embodiments, the application320can include an application interaction monitor327that can monitor, among other things, when the application320is being executed, where the application320is being executed, how the application320is being utilized, and the detected user inputs/interactions corresponding to a running instance of the application320. The application interaction monitor327can store or log application interaction data, including information corresponding to application320start and stop times and dates, touchscreen inputs, inputs from coupled input devices, position and duration of inputs, general device orientation data (e.g., accelerometer data, gyroscope data, magnetometer data, etc.), specific device orientation data (e.g., device orientation when a user input is detected), and/or locational data (e.g., GPS data, compass data, etc.), among other data sensed or detected by the mobile computing device310while the application320is executing. In essence, all interaction data between the user and the executing application320can be logged, such that an analysis thereof can provide optimal times and configurations for displaying third-party content to the user of the mobile computing device310.

The application interaction monitor327can be implemented by including code associated with the third-party content SDK into at least some portions of the application320code. In some embodiments, the code for monitoring the detected user inputs is included in the GUI components of the application320code. However, it is contemplated that in some configurations, a simple programmatic reference to implement features of the SDK can facilitate the monitoring of any or all user inputs corresponding to the application320executing on the mobile computing device310. In this regard, the application interaction monitor327can detect user input events that are typically thrown as a result of detected user inputs, and caught by methods in the application320code to perform some sort of function. It is also contemplated that the application interaction monitor327can detect user input events that aren't necessarily programmed to be detected by methods of the application320code to perform predefined functions. In this regard, additional user inputs unrelated to the application (e.g., device movements, location, angles at which the device is held, etc.) can also be logged by the application interaction monitor327for subsequent analysis.

Remote Server Device(s) for Providing Third-Party Content and Analyzing Application Interaction Data

Although described here as separate server devices, it is contemplated that interaction-analyzing remote server device360and content-providing remote server device350can be the same device or configured in a distributed environment, as indicated by dotted line345. The functionality of each remote server device350,360is described utilizing different server devices merely to simplify the provided disclosure.

The content-providing remote server device350can be any computing device configured to provide one or more pieces of third-party content to a requesting computing device, such as mobile computing device310. In some embodiments, the content-providing remote server device350can be in communication with a third-party content data store352that includes a plurality of pieces of third-party content to be served to consumers via their personal computing devices. In embodiments, the content-providing remote server device350can be coupled with the data store352configured to store the plurality of pieces of third-party content. In some embodiments, the data store352can identify particular pieces of third-party content based on associated identifiers, genres, categories, or other forms of associated metadata that can uniquely identify one or more pieces of third-party content.

In some embodiments, the content-providing remote server device350can respond to requests to receive third-party content in the form of individual pieces. That is, for each request, a single piece of third-party content is provided to the requesting entity in response to the request. In further embodiments, the content-providing remote server device350can respond to requests to receive third-party content in the form of a collection. In this regard, for each request, a single collection of third-party content is provided to the requesting entity in response to the request. In even further embodiments, the content-providing remote server device350can respond to either type of request accordingly, based on the type (e.g., requesting a piece or a collection of third-party data) of request received.

The interaction-analyzing remote server device360can be any computing device configured to receive application interaction data obtained by a mobile computing device (e.g., mobile computing device310) and process the received application interaction data by analyzing it to determine optimal content display factors for the mobile computing device from which the application interaction data was received. In other words, the interaction-analyzing remote server device360can receive user interaction data detected and logged by the application interaction monitor327to determine information that can be helpful to optimize the user's experience with the application320, and in some instances, optimize the configuration of third-party content for optimizing user interaction therewith. In some embodiments, these determined “optimal content display factors” can be communicated to the mobile computing device310and employed by the third-party content display component325to determine when and how to provide for display the third-party content.

In embodiments, the interaction-analyzing remote server device360can be coupled with another data store362configured to store the received user interaction data from a plurality of mobile computing devices. In some embodiments, the interaction-analyzing remote server device360or its data store362can designate a unique identifier or profile for each mobile computing device and/or applications thereof so that user interaction data received therefrom can be referenced back to the corresponding device and/or application. In some embodiments, the unique identifier can be based on one or more identifying characteristics of the received user interaction data, which may include, among other things, a username, a phone number, an email address, a device identifier or IMEI, a device serial number, or any combination thereof.

Optimized Display of Third-Party Content

The third-party content display component325can be configured to receive one or more optimal content display factors from the interaction-analyzing remote server device360. In some embodiments, the third-party content display component325can request the optimal content display factors from the interaction-analyzing remote server device360, and the interaction-analyzing remote server device360can send the optimal content display factors determined thereon to the third-party content display component325of mobile computing device310in response to the request. In some other embodiments, the interaction-analyzing remote server device360can push the determined optimal content display factors to the third-party content display component325of mobile computing device325. The determined optimal content display factors can be pushed to the mobile computing device310at predefined intervals, when analysis of received application interaction data is completed, and/or every time the determined optimal content display factors change based on received application interaction data.

After receiving the optimized content display factors, the third-party content display component325can determine when and how to provide one or more pieces of third-party content for display via the application320.

By way of example only, an analysis of the application interaction data corresponding to the application320can indicate a total amount of time that the application320has been executing (e.g., starting after initial execution) on the mobile computing device310. In this regard, a threshold duration may be preconfigured (e.g., preset by a developer of the application320or a managing entity of the third-party content SDK) such that the third-party content display component325does not provide any third-party content for display until a determination is made that the threshold duration has been met and/or exceeded. In some embodiments, the determination is made by the third-party content display component325utilizing the optimized content display factors, which may include an elapsed time of use to compare to the threshold duration defined within the application320code.

In some other embodiments, the determination can be made by the interaction analyzing remote server device360to determine an optimal date and/or time to begin providing third-party content for display based on received interaction information. Such determinations made on the interaction-analyzing remote server device360can be sent to the mobile computing device310in the form of optimal content display factors in accordance with embodiments described herein. In this way, the optimized content display factors utilized by the third-party content display component325may enable a user of the mobile computing device310to experience an unobstructed version of the application, which may consequentially increase user conversion rates for regularly utilizing the application.

In another example, an analysis of the application interaction data corresponding to the application320can determine a likelihood that a user of the mobile computing device310is right or left handed, or in some instances that the user prefers landscape orientations or portrait orientations, based on recorded angles, orientations, placement of detected user inputs on the touchscreen of the mobile computing device310, or any combination including at least one of the foregoing interaction characteristics logged by the application interaction monitor327. In this regard, the interaction-analyzing remote server device360can determine a preferred size and/or screen location at which to provide for display a piece of third party content. This determination can be sent in the form of an optimal content display factor and sent to the mobile computing device310. In this way, in accordance with some embodiments, the third-party content display component325can request (for instance, from third-party content provisioning component334) a particular configuration (e.g., size or orientation) of third-party content, so that the third-party content display component325can provide the optimally configured piece of third-party content in a configuration that is based on the optimal content display factors.

In another example, an analysis of the application interaction data corresponding to the application320can indicate a particular location that the application320has been executing on the mobile computing device310. In this regard, the interaction-analyzing remote server device360can generate optimal content display factors that indicate particular pieces, genres, and/or categories of third-party content that may be relevant to the location(s) at which the application320is typically executed. The third-party content display component325can utilize this information to request (for instance, from third-party content provisioning component334) one or more pieces of third-party content based on an identifier, genre, location, category, and the like. In this way, a user of the mobile computing device310is presented with third-party content that may be relevant to the user's location at the time of execution.

In another example, an analysis of the application interaction data corresponding to the application320can indicate particular times, days, seasons, and other temporal indicators describing when the application320has been executing on the mobile computing device310. As such, the interaction-analyzing remote server device360can generate optimal content display factors that indicate particular pieces, genres, and/or categories of third-party content that may be relevant to the time(s) and/or date(s) at which the application320is typically executed. The third-party content display component325can utilize this information to request (for instance, from third-party content provisioning component334) one or more pieces of third-party content based on an identifier, genre, category, time of day, day of week, season, holiday, and the like. In this way, a user of the mobile computing device310is presented with third-party content that may be relevant to the time of application320execution.

The foregoing examples are intended to be non-limiting and merely a few examples of many potential embodiments covered by embodiments described herein. It is contemplated that any combination of pieces of application interaction information analyzed by the interaction-analyzing remote server device360can generate optimal content display factors that can optimize either or both the user's experience with an application configured to display third-party content, or the third-party content provider's exposure and rates of user interaction with third-party content displayed via an application.

Methods for Optimizing Content Retrieval and Delivery in Mobile Applications

Having described various aspects of the present disclosure, exemplary methods are described below for optimizing content delivery in mobile applications. Referring toFIG. 4in light ofFIGS. 1-3,FIG. 4is a flow diagram showing a method400for optimizing content retrieval and delivery in mobile applications. Each block of method400and other methods described herein comprises a computing process that may be performed using any combination of hardware, firmware, and/or software. For instance, various functions may be carried out by a processor executing instructions stored in memory. The methods may also be embodied as computer-usable instructions stored on computer storage media. The methods may be provided by a standalone application, a service or hosted service (standalone or in combination with another hosted service), or a plug-in to another product, to name a few.

At block410, a third-party content servicing application (for instance, third-party content optimization component330ofFIG. 3) obtains a collection of content from a remote server device. The collection of content can be obtained in a background process associated with the third-party content servicing application. The background process can be configured to obtain the collection piece by piece or in its entirety. The background process can also be configured to execute at determined downtimes (e.g., when the mobile computing device is charging and/or not detecting movement, or during known non-peak timeframes). The collection of content can include a plurality of pieces of third-party content that are each displayable within one or more mobile applications of the mobile computing device. In some embodiments, the remote server device can be an advertisement server configured to provide one or more pieces of third-party content in response to a request received from the third-party content servicing application. In further embodiments, the remote server device can also provide a collection of third-party content in response to a request for the collection from the third-party content servicing application. The servicing application can be configured to obtain and store the collection of third-party content from the remote server device for purposes of providing one or more pieces of the collection to the mobile application and other applications of the mobile computing device configured to obtain third-party content from the servicing application. In accordance with embodiments described herein, a piece of third-party content can comprise an advertisement, a survey, a product price promotion, a product description, a time-limited offer, subscription content, and the like.

At block420, the obtained collection of content is stored in a memory of the mobile computing device by the third-party content servicing application. The collection of content can be stored in a memory location or directory that is associated with the third-party content servicing application, and not associated with the one or more mobile applications for which the pieces of third-party content is displayable in.

At block430, a request for a piece of content from the stored collection is received from the mobile application while it is executing on the mobile computing device. The request can be generated by at least a portion of mobile application code that is based in part on a third-party content SDK. The code can, in essence, generate the request based on optimal content display factors determined by and received from the remote server device and provided to one or more components (e.g., third-party content display component325ofFIG. 3) of the mobile application. In accordance with embodiments described herein, the remote server device (for instance, interaction-analyzing remote server device360) can be configured to analyze application interaction data obtained by the application (e.g., via the third-party content SDK) and sent to the remote server device for analysis. The remote server device can analyze the application interaction data to generate, among other things, one or more optimal content display factors that can dictate when and how third-party content is to be provided for display on the mobile computing device via a graphical user interface of the executing mobile application.

At block440, the executing mobile application is provided with at least a first piece of content from the stored collection of content. The first piece of content can be provided to the mobile application from the third-party content servicing application in response to a request received therefrom. The mobile application or a portion thereof can be configured to generate the request for third-party content based on the received optimal content display factors. In some embodiments, the request can include one or more of a third-party content identifier that identifies a particular piece of third-party content, a genre of third-party content, a category of third-party content, an author of third-party content, or any other identifier (e.g., location, time, date, age, demographic, etc.) that can narrow the collection of third-party content such that a relevant piece of third-party content is provided to the requesting mobile application based on the request.

Methods for Optimizing Content Display Configurations in Mobile Applications

Referring toFIG. 5in light ofFIGS. 1-3,FIG. 5is a flow diagram showing a method500for optimizing content display configurations in mobile applications. Each block of method500and other methods described herein comprises a computing process that may be performed using any combination of hardware, firmware, and/or software. For instance, various functions may be carried out by a processor executing instructions stored in memory. The methods may also be embodied as computer-usable instructions stored on computer storage media. The methods may be provided by a standalone application, a service or hosted service (standalone or in combination with another hosted service), or a plug-in to another product, to name a few.

At block510, application interaction data that is based on one or more detected inputs, among other things, and corresponding to a mobile application executing on a mobile computing device is obtained. In accordance with some embodiments, the detected inputs can comprise any one of touchscreen data, accelerometer data, gyroscope data, magnetometer data, proximity sensor data, infrared receiver data, GPS sensor data, and the like. In some further embodiments, the application interaction data can be further based on a duration, frequency, time, day, and/or location of mobile application use.

At block520, the obtained application interaction data is sent to a remote server device (for instance, interaction-analyzing remote server device360ofFIG. 3) to determine optimal content display factors for the mobile application of the mobile computing device. The optimal content display factors are determined by the remote server device based on the application interaction data it received from the mobile application executing on the mobile computing device. In accordance with some embodiments described herein, the remote server device can also be configured to provide the mobile computing device with a collection of third-party content in response to a request received therefrom.

At block530, the optimal content display factors determined by the remote server device are received by the mobile application executing on the mobile computing device. As described herein, the optimal content display factors can dictate when and how pieces of third-party content are to be configured when provided for display on the mobile computing device via the executing mobile application.

At block540, at least one piece of content within a user interface of the executing mobile application is provided for display in accordance with one or more of the received optimal content display factors.

Methods for Providing Optimized Content Configurations for Mobile Applications

Referring toFIG. 6in light ofFIGS. 1-3,FIG. 6is a flow diagram showing a method600for providing optimal content display configurations for mobile applications. Each block of method600and other methods described herein comprises a computing process that may be performed using any combination of hardware, firmware, and/or software. For instance, various functions may be carried out by a processor executing instructions stored in memory. The methods may also be embodied as computer-usable instructions stored on computer storage media. The methods may be provided by a standalone application, a service or hosted service (standalone or in combination with another hosted service), or a plug-in to another product, to name a few.

At block610, a server device (for instance, interaction-analyzing remote server device360ofFIG. 3) receives application interaction data from a remotely located mobile computing device (for instance, mobile computing device310ofFIG. 3). A mobile application executing on the mobile computing device, such as mobile application320ofFIG. 3, can be configured to monitor and generate a log of detected user inputs and detected data from device sensors on the mobile computing device, while executing, to obtain the corresponding application interaction data. The server device can be configured to receive the application interaction data from the mobile computing device when the mobile computing device and server device are associated to each other via a common third-party content SDK. In essence, the mobile application can comprise code corresponding to the third-party content SDK that can direct communications between the mobile computing device and server device. In some embodiments, the server device can also be configured to send the mobile computing device310pieces and/or a collection of third-party content in response to a request received therefrom.

At block620, the server device determines optimal content display factors for the remote mobile computing device based on the application interaction data received therefrom. In some embodiments, at least a portion of the optimal content display factors can be determined by analyzing the application interaction data to determine correlations therein, which indicate statistically significant usage or interaction characteristics of the mobile application executing on the mobile computing device. Statistically significant usage or interaction characteristics can be determined when a percentage of the characteristics exceed a predetermined probability threshold (e.g., a minimal percentage—51%, 90%). In this way, the optimal content display factors can be utilized to optimize third-party content placement, orientation, selection, sizing, and the like.

By way of example, the application interaction data may indicate that about 90% of the time, the user of the mobile computing device prefers to hold it in a landscape orientation. Also, while holding in landscape mode, about 87% of the detected touch inputs were directed to the right half of the touchscreen display of the mobile computing device. In this regard, the server device may determine that the interaction characteristic of holding the mobile computing device in landscape mode is statistically significant for purposes of selecting a particular size of third-party content for display on the mobile computing device. For instance, a piece of third-party content provided for display in landscape mode may necessitate a longer width and shorter height in comparison to portrait mode.

Further, the server device may determine that the interaction characteristic of touch inputs on the right half of the touchscreen display, only when the mobile computing device is held in landscape mode, may be statistically significant for purposes of positioning the third-party content within the GUI of the mobile application. For instance, if the intention is to provide a less obtrusive experience and prevent unintentional interactions with the third-party content, then a piece of third-party content may be sized and positioned to appear on the left half of the display. On the other hand, if the intention is to increase user interaction with the third-party content, then the piece of third-party content may be sized and positioned to appear on the right half of the display where the user is statistically more likely to interact with the displayed third-party content.

In some further embodiments, some of the optimal content display factors can be determined by aggregating common portions of interaction data to indicate usage history. In this regard, application usage history can be compared to predefined threshold durations before a decision is made (e.g., by the mobile application) to provide third-party content for display on the mobile computing device.

At block630, the determined optimal content display factors are sent to the remote mobile computing device. The remote mobile computing device can be configured to receive the determined optimal content display factors and further display, in accordance with a least some of them, one or more pieces of third-party content within a GUI of the executing mobile application.

It is contemplated herein that the determined optimal content display factors can also be communicated to other components of the system described herein. For instance, the interaction-analyzing remote server device360ofFIG. 3can communicate the determined optimal content display factors to the content-providing remote server device350so that customized collections of third-party content are generated for the mobile computing device310. In another instance, the interaction-analyzing remote server device360ofFIG. 3can communicate the determined optimal content display factors to the third-party content optimization component330, or components thereof, to facilitate the generation of customized requests for particularly relevant pieces or collections of third-party content for the mobile computing device310. It is also contemplated that the determined optimal content display factors can be communicated between components of the mobile computing device310to facilitate the customization of third-party content in accordance with embodiments described herein.

Memory712includes computer-storage media in the form of volatile and/or nonvolatile memory. The memory may be removable, non-removable, or a combination thereof. Exemplary hardware devices include solid-state memory, hard drives, optical-disc drives, etc. Computing device700includes one or more processors that read data from various entities such as memory712or I/O components720. Presentation component(s)716present data indications to a user or other device. Exemplary presentation components include a display device, speaker, printing component, vibrating component, etc.

As described above, implementations of the present disclosure relate to techniques for optimizing content delivery within mobile applications. The present invention has been described in relation to particular embodiments, which are intended in all respects to be illustrative rather than restrictive. Alternative embodiments will become apparent to those of ordinary skill in the art to which the present invention pertains without departing from its scope.