Online media contents have been provided on web pages of mobile devices to entice mobile device users to install applications that would allow the users to purchase, lease or use products or services. A clickable link may be provided in a given area of media content to allow a mobile device user to install an application associated with the online media content. In the current state of the art, however, the mobile device user may have to wait for an appreciable amount of time, for example, on the order of several seconds in some instances, between the time of clicking the online media content on the mobile device and the time of landing the media content on a resulting application installation page which would allow the user to download the application.
According to an embodiment of the disclosed subject matter, a method of providing an application in response to selection of a media item on a user device includes: prior to receiving a request from the user device to download an application, preparing, by a media content serving platform, application installation information of an application associated with the media item, the application installation information comprising information selected from the group consisting of an application installation page and application installation metadata; and transmitting, by the media content serving platform, the application installation information to an application distribution platform, to cause the application distribution platform to make the application installation information available for the user device to download the application prior to receiving the request from the user device to download the application.
According to an embodiment of the disclosed subject matter, an apparatus for providing an application in response to selection of a media item on a user device includes a memory and a processor communicably coupled to the memory. The processor is configured to execute instructions to: prepare application installation information of an application associated with the media item, the application installation information comprising information selected from the group consisting of an application installation page and application installation metadata, prior to receiving a request from the user device to download an application; and transmit the application installation information to an application distribution platform, to cause the application distribution platform to make the application installation information available for the user device to download the application prior to receiving the request from the user device to download the application.
According to an embodiment of the disclosed subject matter, an apparatus for providing an application in response to selection of a media item on a user device includes an application distribution platform and a media content serving platform communicably coupled to the application distribution platform. The media content serving platform is configured to: prepare application installation information of an application associated with the media item, the application installation information comprising information selected from the group consisting of an application installation page and application installation metadata, prior to receiving a request from the user device to download an application; and transmit the application installation information to the application distribution platform, to cause the application distribution platform to make the application installation information available for the user device to download the application prior to receiving the request from the user device to download the application.
According to an embodiment of the disclosed subject matter, an apparatus for providing an application in response to selection of a media item on a user device includes: means for preparing application installation information of an application associated with the media item, the application installation information comprising information selected from the group consisting of an application installation page and application installation metadata, prior to receiving a request from the user device to download an application; and means for transmitting the application installation information to an application distribution platform, to cause the application distribution platform to make the application installation information available for the user device to download the application prior to receiving the request from the user device to download the application.
Additional features, advantages, and embodiments of the disclosed subject matter may be set forth or apparent from consideration of the following detailed description, drawings, and claims. Moreover, it is to be understood that both the foregoing summary and the following detailed description are illustrative and are intended to provide further explanation without limiting the scope of the claims.
The accompanying drawings, which are included to provide a further understanding of the disclosed subject matter, are incorporated in and constitute a part of this specification. The drawings also illustrate embodiments of the disclosed subject matter and together with the detailed description serve to explain the principles of embodiments of the disclosed subject matter. No attempt is made to show structural details in more detail than may be necessary for a fundamental understanding of the disclosed subject matter and various ways in which it may be practiced.
In conventional online advertising, a large amount of time delay or latency may exist between the time of clicking an online advertisement on a web page by a user of a mobile device and landing the advertisement on a resulting application installation page which would allow the user to download an application associated with the online advertisement. In some instances, there may be multiple seconds of latency between clicking the online advertisement and landing the online advertisement on the resulting application installation page, thus producing undesirable user experiences and making the user reluctant to install applications associated with online advertisements in the future. Moreover, the user may not be able to access or use other applications on the mobile device while waiting for the advertisement to land on the application installation page which would allow the user to initiate downloading of the application, thus slowing the speed of operation of the mobile device.
The presently-disclosed subject matter relates to methods and apparatuses for coordinating between a media content serving platform and an application distribution platform to reduce the latency between the time the user clicks an online advertisement and the time the advertisement lands on an application installation page which would allow the user to download an application associated with the advertisement. The media content serving platform, which may be an advertisement serving platform, prepares application installation information of an application associated with an advertisement based on one or more events, examples of which are described in further detail below. The media content serving platform then transmits the application installation information of the application to the application distribution platform. The application distribution platform makes the application installation information immediately available for the user device to download the application from an application store. In one implementation, the media content serving platform determines probabilities of consumer interest in certain online advertisements and directs the application distribution platform to pre-cache the installation pages of those applications. In another implementation, the media content serving platform builds a signaling mechanism which allows the application distribution platform to pre-fetch application installation information for an application associated with an advertisement which is hosted in another application that is being run on the user device. In another implementation, the media content serving platform builds a serving mechanism by creating a cryptographically signed bundle that includes application installation metadata. The media content serving platform transmits the bundle to the application distribution platform, which, upon receiving the cryptographically signed bundle, unpacks the bundle and makes application installation pages corresponding to the application installation metadata available to the user device prior to receiving a user request for downloading. By making the application immediately available at the application store for downloading onto a user device, the speed of operation of the user device is improved.
As used herein, a “user device” is any device in which one or more applications may be run, including but not limited to a mobile device such as a smartphone, a smartwatch, a tablet, or the like, or a laptop computer, a desktop computer, or the like. As used herein, an “application” is a computer program or software code with an interface, such as a user interface, which enables a user to accomplish a task on a user device. The user interface for an application may include an icon or soft key on a touchscreen, a physical key or button, a stylus, a voice input, or any other type of user input that allows the user to interact with the application. An application may be developed by one or more software developers. As used herein, an “application store” is an online portal through which computer programs are made available for download by users of mobile devices. Applications may be purchased or downloaded free of charge under restricted or unrestricted licenses. An application that is made available in an application store may or may not be developed by the same entity as the entity that owns or operates the application store.
As used herein, a “platform” is a system that includes a hardware device or architecture, an operating system, or a combination thereof, on which one or more applications, programs or processes may run. As used herein, an “application distribution platform” is a platform that distributes one or more applications to one or more user devices through wired or wireless connections. An application distribution platform may host an application store which makes applications available for downloading by the user device, for example, by displaying the applications to be installed as icons on an application installation page. As used herein, a “media content serving platform” is a platform that serves online media contents such as advertisements, at least some of which may include clickable areas or links to one or more applications. As used herein, a “software development kit” (“SDK”) includes a set of software development tools that allows the creation of applications for a certain software package, software framework, hardware platform, computer system, video game console, operating system, or another development platform. To enrich applications with functionalities such as advertisements, push notifications, or the like, application developers may implement specific SDKs for such functionalities.
The network 102 may be a personal area network (PAN), local area network (LAN), wide area network (WAN), the Internet, or any other suitable communication network or networks, and may be communicate with the media content serving platform 104, the application distribution platform 106, or any of the user devices 108, 110, and 112, through a wired or wireless connection, or a combination thereof. In some implementations, one or more of the media content serving platform 104, the application distribution platform 106, or any of the user devices 108, 110 and 112 may access the network 102 through cloud computing arrangements and services (not shown). In some implementations, security measures, such as encryption and decryption, authentication using login and password, or authentication using biometric measures, may be implemented at one or more of the platforms or devices. Various network arrangements may be implemented within the scope of the disclosed subject matter. Examples of processes described below may be implemented in various network configurations different from the configuration shown in
The bus 221 allows data communication between the central processor 224 and the memory 227, which may include read-only memory (ROM) or flash memory (neither shown), and random access memory (RAM) (not shown), as previously noted. The RAM is generally the main memory into which the operating system and application programs are typically loaded. The ROM or flash memory may contain, among other code, the Basic Input-Output System (BIOS) which controls basic hardware operation such as the interaction with peripheral components. Applications resident within the computer 200 may be stored on and accessed via a computer readable medium, such as a hard disk drive (e.g., fixed storage 223), an optical drive, floppy disk, or other storage media such as removable media 225, or in a memory such as a flash or non-volatile memory.
The fixed storage 223 may be integral with the computer 200 or may be separate and accessed through other interfaces. A network interface 229 may provide a direct connection to a remote server via a wired or wireless telephone link, a cable link, an optical fiber link, a satellite link, or the like, to the Internet via an Internet service provider (ISP), or a direct connection to a remote server via a direct network link to the Internet via a POP (point of presence) or other technique. The network interface 229 may provide such connection using wireless techniques, including digital cellular telephone connection, Cellular Digital Packet Data (CDPD) connection, digital satellite data connection or the like. The network interface 229 may allow the computer to communicate with other computers via one or more local-area, wide-area, or other networks, as shown in
Many other devices or components (not shown) may be connected in a similar manner (e.g., document scanners, digital cameras and so on). Conversely, all of the components shown in
More generally, various implementations of the presently disclosed subject matter may include or be implemented in the form of computer-implemented processes and apparatuses for practicing those processes. The processes also may be implemented in the form of a computer program product having computer program code containing instructions implemented in non-transitory and/or tangible media, such as floppy diskettes, CD-ROMs, hard drives, USB (universal serial bus) drives, flash memory, or any other machine readable storage medium, wherein, when the computer program code is loaded into and executed by a computer, the computer becomes an apparatus for practicing implementations of the disclosed subject matter. The processes also may be implemented in the form of computer program code, for example, whether stored in a storage medium, loaded into and/or executed by a computer, or transmitted over some transmission medium, such as over electrical wiring or cabling, through fiber optics, or via electromagnetic radiation, wherein, when the computer program code is loaded into and executed by a computer, the computer becomes an apparatus for practicing implementations of the disclosed subject matter. When implemented on a general-purpose microprocessor, the computer program code segments configure the microprocessor to create specific logic circuits.
In some configurations, a set of computer-readable instructions stored on a computer-readable storage medium may be implemented by a general-purpose processor, which may transform the general-purpose processor or a device containing the general-purpose processor into a special-purpose device configured to implement or carry out the instructions. The processes may be implemented by using hardware that may include a processor, such as a general purpose microprocessor and/or an Application Specific Integrated Circuit (ASIC) that implements all or part of the techniques according to implementations of the disclosed subject matter in hardware and/or firmware. The processor may be coupled to memory, such as RAM, ROM, flash memory, a hard disk or any other device capable of storing electronic information. The memory may store instructions adapted to be executed by the processor to perform the techniques according to implementations of the disclosed subject matter.
In block 304, the media content serving platform transmits the application installation information of the application associated with the advertisement to an application distribution platform. In block 306, the application distribution platform, which may host an application store, for example, makes the application installation information immediately available for the user device to download the application from the application store, prior to receiving an actual request from the user device to download the application. In block 308, the application distribution platform detects a request from a user device to download the application associated with the advertisement onto the user device. For example, the user of the device may request downloading of the application by clicking a certain area of the advertisement, a hyperlink, or the like, on a touchscreen of a mobile device, or by other methods of input, such as a voice command. In response to the request from the user device, the application distribution platform transmits the program code for the application to the user device in block 310. The user device may download the program code for the application from the application distribution platform, through a wired or wireless connection, in a network arrangement such as the one shown in
In various implementations, the probability of consumer interest may be the probability that a particular user would be interested in an advertisement, or the probability that a group of similar users in a given demographic, geographic region, or the like would be interested in the advertisement. Based on the probability of consumer interest in each advertisement in the inventory, the media content serving platform compiles a list of “instant” advertisements with high probabilities of consumer interest and transmits a list of applications associated with the instant advertisements to the application distribution platform in block 406. In some implementations, among a large inventory of online advertisements served by the media content serving platform, only those advertisements that are determined to have probabilities of consumer interest above a threshold probability level, for example, 80%, may be placed on a list of instant advertisements whose associated applications are to be pre-cached.
Upon receiving the list of instant advertisements, the application distribution platform pre-stores (e.g., pre-caches) the application installation pages corresponding to the instant advertisements at the application store in block 408, prior to receiving an actual request from the user device to download one of the applications. When a user clicks an online advertisement on a web page, and that advertisement is one of the instant advertisements based on the probable level of consumer interest as determined by the media content serving platform, the application distribution platform makes the pre-cached application installation page immediately available for the user to download the application on the user device in block 410. Because the installation page of the application was pre-cached in the application store prior to the request by the user to download the application, the downloading of the application may start immediately, thereby improving the speed of operation of the mobile device.
When the advertisement starts during the running of the host application, an advertisement functionality in the host application may signal the application distribution platform that the advertisement is being displayed on the user device in block 506. In response to detecting a signal from the host application indicating that the advertisement is being displayed on the user device, the application distribution platform receives or fetches application installation information for the advertised application from the media content serving platform in block 508. In some implementations, the application installation information, which may include the application installation page and/or the metadata for application installation, may be fetched by the application distribution platform before the user clicks on the advertisement to download the application on the mobile device. As discussed above, the application installation information will have been compiled and stored in advance. If the user clicks the advertisement on the user device, the application distribution platform makes the application installation page and/or metadata for installing the advertised application immediately available in the application store in block 510.
The advertising entity may be the same as or different from the entity that owns or operates the application store. When the host application starts displaying an advertisement for an advertised application during the running of the host application, a signal may be transmitted to the media content serving platform to pre-fetch the installation page and/or metadata for the advertised application and load the installation page and/or metadata in the application store. Once the application store receives the signal indicating that the advertisement is being displayed on the mobile device, the application store may pre-fetch the page and/or metadata to allow the mobile device to load the corresponding advertised application immediately, thus improving the speed of operation of the mobile device.
Upon receiving the cryptographically signed bundle from the media content serving platform, the application distribution platform unpacks and decrypts the bundle in block 606 to generate an unpacked and decrypted bundle, and retrieves the application installation metadata for applications associated with online advertisements from the unpacked and decrypted bundle in block 608. Unpacking and decrypting of a cryptographically signed bundle may be performed in manners known to persons skilled in the art. The application installation metadata is then provided to the application store to load application installation pages for advertised applications in block 610. When a user clicks an online advertisement, which may be provided on a web page or by a host application, such as an online game application, the application installation metadata for the online advertisement retrieved from the unpacked and decrypted bundle allows the application store to load the application installation page before the user actually clicks on the advertisement. By retrieving the metadata for the advertised application from the cryptographically signed bundle and making the application available at the application store before the user clicks on the advertisement, the speed of operation of the mobile device may be improved.
When the user clicks an area of the online advertisement 704 that includes a link to the advertised application, the mobile device 110 opens an application store 706 which displays an application installation icon 708 for the advertised application, as shown in
When the user clicks an area of the advertisement 804 that includes a link to the advertised application, the mobile device 110 opens an application store 806 which displays an application installation icon 808 for the advertised application, as shown in
More generally, in situations in which the systems discussed here collect personal information about users, or may make use of personal information, the users may be provided with an opportunity to control whether programs or features collect user information (e.g., information about a user's social network, social actions or activities, profession, a user's preferences, or a user's current location), or to control whether and/or how to receive content from the content server that may be more relevant to the user. In addition, certain data may be treated in one or more ways before it is stored or used, so that personally identifiable information is removed. For example, a user's identity may be treated so that no personally identifiable information can be determined for the user, or a user's geographic location may be generalized where location information is obtained (such as to a city, ZIP code, or state level), so that a particular location of a user cannot be determined. As another example, although the identity of the device may be monitored for multiple repeated playbacks of online audio or video content, personal information associated with the user of that device may not be necessary for a system to compile histories or statistics of legitimate or inflated playbacks of online audio or video content on that particular device. Thus, the user may have control over how information is collected about the user and used by a system as disclosed herein.
The foregoing description, for purpose of explanation, has been described with reference to specific embodiments. However, the illustrative discussions above are not intended to be exhaustive or to limit embodiments of the disclosed subject matter to the precise forms disclosed. Many modifications and variations are possible in view of the above teachings. The embodiments were chosen and described in order to explain the principles of embodiments of the disclosed subject matter and their practical applications, to thereby enable others skilled in the art to utilize those embodiments as well as various embodiments with various modifications as may be suited to the particular use contemplated.