The present technology relates generally to delivering advertising creatives and applications to computing devices and, more specifically, to delivering advertising creatives and associated applications in advance of an opportunity to display advertising creatives.
Online and other electronic advertising allows advertisers to display advertisements (or ads) to end users, including those who are potential customers. For example, an application can include one or more opportunities for inserting advertisements (e.g., space for a banner advertisement, overlays, etc.). When a computing device (e.g., a mobile computing device such as a phone or tablet) is running an application in the foreground, an advertising opportunity can arise within the application. The application can request an advertisement from an advertising decision server (or ad decision server) for the advertising opportunity. The ad decision server can select an advertisement creative (e.g., an ad) for display within the area of the application display associated with the advertising opportunity. For example, the ad decision server can select a banner ad from a particular advertiser from a set of multiple banner ads from multiple advertisers for display to the user in the banner ad space of the application.
In some instances, requesting, by a computing device, an advertising creative for an advertising opportunity after the advertising opportunity has arisen can be undesirable. For example, mobile computing devices can have limited bandwidth. Requesting an advertising creative after the advertising opportunity has arisen can result in a delay in displaying the advertising creative while it is being downloaded. In some cases, the type of media that can be included in the advertising creative can be limited due to download time considerations. As another example, mobile computing devices can have intermittent network connectivity. An application can be unable to request an advertising creative after the advertising opportunity has arisen if the mobile computing device cannot reach the network. Accordingly, there is a need for delivering advertising creatives in advance of an opportunity to display advertising creatives. In some instances, an advertising creative can be associated with an application that can run on the computing device. The advertising creative can be for the application itself and/or for a use of the application. For example, interaction with the advertising creative can cause the application to be installed and/or executed. Downloading the application after the associated advertising creative is displayed can interrupt the user experience due to the time required for downloading the application. Accordingly, there is a need for delivering the application in advance of the opportunity to display the associated advertising creative.
In one aspect, there is a method performed by a computing device. The method includes sending, by the computing device, to an ad decision server, a request including request data, the request data including one or more identifiers. The method includes receiving, asynchronously with respect to the request, by the computing device, from the ad decision server, payload data, wherein the payload data includes advertising creative retrieval data for downloading one or more generated advertising creatives generated based at least in part on the request data. The method includes downloading, by the computing device, from one or more servers, one or more advertising creatives of the one or more generated advertising creatives based on the advertising creative retrieval data. The method includes generating, by the computing device, an advertising creative display opportunity. The method includes selecting, by the computing device, a first advertising creative of the one or more advertising creatives based on advertising selection criteria. The method includes displaying, by the computing device, the first advertising creative in the advertising creative display opportunity.
In some embodiments, the computing device is a mobile computing device. In some embodiments, the one or more generated advertising creatives include one or more of text data, HTML, XML, JSON, executable scripts, video data, 3D model data, and image data. In some embodiments, the method includes receiving, by the computing device, a push notification including the payload data. In some embodiments, the request data further includes one or more of application data, sensor data, computing device data, tracking data, and computing device location data. In some embodiments, the advertising selection criteria specifies selection of the first advertising creative of the one or more advertising creatives based on at least one of profile data associated with at least one of the one or more identifiers, application data, sensor data, computing device data, tracking data, advertising creative priority, advertising creative expected click rate, advertising creative display window, and device location.
In some embodiments, the method includes receiving, by the computing device, from the ad decision server, a message to display a second advertising creative; and displaying, by the computing device, the second advertising creative. In some embodiments, the message is a push notification. In some embodiments, the second advertising creative is one of the one of more advertising creatives. In some embodiments, the one or more identifiers include a device identifier associated with the computing device. In some embodiments, the one or more identifiers include a push token associated with the computing device. In some embodiments, generating, by the computing device, the advertising creative display opportunity includes generating the advertising creative display opportunity on a desktop or home screen of the computing device. In some embodiments, generating, by the computing device, the advertising creative display opportunity includes generating the advertising creative display opportunity in an application executed by the computing device.
In some embodiments, the method includes generating, by the computing device, the advertising creative display opportunity; selecting, by the computing device, the first advertising creative of the one or more advertising creatives based on advertising selection criteria; and displaying, by the computing device, the first advertising creative in the advertising creative display opportunity while the computing device is disconnected from the internet and/or other networks. In some embodiments, receiving the payload data and downloading the one or more advertising creatives of the one or more generated advertising creatives is performed by an application finning in the background on the computing device.
In another aspect, there is a method performed by a computing device. The method includes receiving, by the computing device, a state change notification. The method includes, in response to the state change notification, sending, by the computing device, to an ad decision server, a request including request data, the request data including one or more identifiers. The method includes, in response to the request, receiving, by the computing device, from the ad decision server, advertising creative retrieval data for downloading one or more generated advertising creatives generated based at least in part on the request data. The method includes downloading, by the computing device, from one or more servers, one or more advertising creatives of the one or more generated advertising creatives based on the advertising creative retrieval data. The method includes generating, by the computing device, an advertising creative display opportunity. The method includes selecting, by the computing device, a first advertising creative of the one or more advertising creatives based on advertising selection criteria. The method includes displaying, by the computing device, the first advertising creative in the advertising creative display opportunity.
In some embodiments, the state change notification is a callback from an operating system executing on the computing device. In some embodiments, the computing device is a mobile computing device. In some embodiments, the one or more generated advertising creatives include one or more of text data, HTML, XML, JSON, executable scripts, video data, 3D model data, and image data. In some embodiments, the request data further includes one or more of profile data, application data, sensor data, computing device data, tracking data, and computing device location data. In some embodiments, the advertising selection criteria specifies selection of the first advertising creative of the one or more advertising creatives based on at least one of profile data associated with at least one of the one or more identifiers, application data, sensor data, computing device data, tracking data, advertising creative priority, advertising creative expected click rate, advertising creative display window, and device location. In some embodiments, the one or more identifiers include a device identifier associated with the computing device. In some embodiments, generating, by the computing device, the advertising creative display opportunity includes generating the advertising creative display opportunity on a desktop or home screen of the computing device. In some embodiments, generating, by the computing device, the advertising creative display opportunity includes generating the advertising creative display opportunity in an application executed by the computing device.
In some embodiments, the method includes generating, by the computing device, the advertising creative display opportunity; selecting, by the computing device, the first advertising creative of the one or more advertising creatives based on advertising selection criteria; and displaying, by the computing device, the first advertising creative in the advertising creative display opportunity while the computing device is disconnected from the internet and/or other networks. In some embodiments, receiving the advertising creative retrieval data and downloading the one or more advertising creatives of the one or more generated advertising creatives is performed by an application running in the background on the computing device.
In another aspect, there is a method performed by an ad decision server. The method includes receiving, by the ad decision server, from a computing device, a request including request data, the request data including one or more identifiers. The method includes generating, by the ad decision server, one or more generated advertising creatives based at least in part on the request data. The method includes sending, by the ad decision server, to the computing device, payload data, wherein the payload data includes advertising creative retrieval data for downloading the one or more generated advertising creatives, wherein the wherein the payload data is sent prior to the computing device generating an advertising creative display opportunity for the one of the one or more generated advertising creatives.
In some embodiments, the method includes generating, by the ad decision server, second one or more generated advertising creatives based at least in part on a determination to update the one or more generated advertising creatives; and sending, by the ad decision server, to the computing device, second payload data, wherein the second payload data includes second advertising creative retrieval data for downloading the second one or more generated advertising creatives.
In some embodiments, the one or more generated advertising creatives include one or more of text data, HTML, XML, JSON, executable scripts, video data, 3D model data, and image data. In some embodiments, the method includes sending, by the ad decision server, to the computing device, a push notification including the payload data. In some embodiments, the request data further includes one or more of profile data, application data, sensor data, computing device data, tracking data, and device location. In some embodiments, the method includes generating, by the ad decision server, the one or more generated advertising creatives based on one or more of the profile data, application data, the sensor data, the computing device data, the tracking data, and the computing device location. In some embodiments, the method includes sending, by the ad decision server, to the computing device, a message to display a second advertising creative. In some embodiments, the message is a push notification. In some embodiments, the second advertising creative is one of the one of more generated advertising creatives. In some embodiments, the request for one or more advertising creatives is received from an application running in the background on the computing device.
In another aspect, there is a method performed by a computing device. The method includes sending, by the computing device, to an ad decision server, a request including request data, the request data including one or more identifiers. The method includes receiving, by the computing device, from the ad decision server, payload data, the payload data includes advertising creative retrieval data for downloading an advertising creative generated based at least in part on the request data and application retrieval data for downloading one or more application installation files for an application, the advertising creative is associated with the application. The method includes downloading, by the computing device, from one or more servers, the advertising creative based on the advertising creative retrieval data. The method includes, if the application is not installed on the computing device, downloading, by the computing device, from a second one or more servers, the one or more application installation files based on the application retrieval data. The method includes generating, by the computing device, an advertising creative display opportunity. The method includes displaying, by the computing device, the advertising creative in the advertising creative display opportunity. The method includes, if a user interaction with the advertising creative is detected and the application is not installed on the computing device, installing, by the computing device, the application from the downloaded one or more application files. In some embodiments, the one or more application installation files include one or more Android Application Package files.
In some embodiments, the method includes, after installation of the application completes, registering, by the computing device, an installation status of the application. In some embodiments, the computing device is a mobile computing device. In some embodiments, the method includes receiving, by the computing device, a push notification including the payload data. In some embodiments, the user interaction with the advertising creative includes a click on the advertising creative. In some embodiments, the method includes executing, by the computing device, the application if the user interaction with the advertising creative is detected. In some embodiments, the method includes determining, by the computing device, an initial state of the application based on the payload data; and executing, by the computing device, the application based on the initial state. In some embodiments, the advertising creative contains a deeplink associated with the application, and the method includes executing, by the computing device, the application based on the deeplink. In some embodiments, the method includes configuring, by the computing device, the application based on the advertising creative. In some embodiments, the method includes writing, by the computing device, application data to a memory space associated with the application.
In another aspect there is a method performed by a computing device. The method includes receiving, by the computing device, a state change notification. The method includes, in response to the state change notification, sending, by the computing device, to an ad decision server, a request including request data, the request data including one or more identifiers. The method includes, in response to the request, receiving, by the computing device, from the ad decision server, payload data, the payload data includes advertising creative retrieval data for downloading an advertising creative generated based at least in part on the request data, and application retrieval data for downloading one or more application installation files for an application, the advertising creative is associated with the application. The method includes downloading, by the computing device, from one or more servers, the advertising creative based on the advertising creative retrieval data. The method includes, if the application is not installed on the computing device, downloading, by the computing device, from a second one or more servers, the one or more application installation files based on the application retrieval data. The method includes generating, by the computing device, an advertising creative display opportunity. The method includes displaying, by the computing device, the advertising creative in the advertising creative display opportunity. The method includes, if a user interaction with the advertising creative is detected and the application is not installed on the computing device, installing, by the computing device, the application from the downloaded one or more application files. In some embodiments, the one or more application installation files include one or more Android Application Package files.
In some embodiments, the method includes, after installation of the application completes, registering, by the computing device, an installation status of the application. In some embodiments, the computing device is a mobile computing device. In some embodiments, the user interaction with the advertising creative includes a click on the advertising creative. In some embodiments, the method includes executing, by the computing device, the application if the user interaction with the advertising creative is detected. In some embodiments, the method includes determining, by the computing device, an initial state of the application based on the payload data; and executing, by the computing device, the application based on the initial state. In some embodiments, the advertising creative contains a deeplink associated with the application, and the method further includes executing, by the computing device, the application based on the deeplink. In some embodiments, the method includes configuring, by the computing device, the application based on the advertising creative. In some embodiments, the method includes writing, by the computing device, application data to a memory space associated with the application.
In another aspect, there is a method performed by an ad decision server. The method includes receiving, by the ad decision server, from a computing device, a request including request data, the request data including one or more identifiers. The method includes generating, by the ad decision server, an advertising creative based at least in part on the request data. The method includes sending, by the ad decision server, to the computing device, payload data, the payload data includes advertising creative retrieval data for downloading the generated advertising creative and application retrieval data for downloading one or more application installation files for an application, the advertising creative is associated with the application, and the payload data is sent prior to the computing device generating an advertising creative display opportunity for the advertising creative. In some embodiments, the one or more application installation files include one or more Android Application Package files.
In some embodiments, the method includes sending, by the ad decision server, to the computing device, a push notification including the payload data. In some embodiments, the advertising creative contains a deeplink associated with the application.
Other aspects and advantages of the present technology will become apparent from the following detailed description, taken in conjunction with the accompanying drawings, illustrating the principles of the technology by way of example only.
The foregoing and other objects, features, and advantages of the present technology, as well as the technology itself, will be more fully understood from the following description of various embodiments, when read together with the accompanying drawings, in which:
In some embodiment, the technology described herein facilitates delivering advertising creatives in advance of an opportunity to display the advertising creatives. In an exemplary application of the technology, an application running on a computing device (e.g., a mobile computing device) can send a request including identifying information to an ad decision server to indicate to the ad decision server that the application may have one or more advertising opportunities in the future. Synchronously or asynchronously with respect to the request, the ad decision server can generate advertising creatives for the application. The ad decision server can then provide retrieval data to the application indicating that ad creatives are available for downloading. In a background process and when the computing device's connection meets certain criteria, the application can download the advertising creatives. When the application generates an advertising creative display opportunity at some later time (e.g., when the application is executing in the foreground and/or is visible to the user), the computing device already has one or more advertising creatives stored locally that can be displayed in the opportunity. Beneficially, because the computing device already has one or more advertising creatives stored locally, the application can have advertising creatives to populate advertising creative display opportunities when the computing device is disconnected from the internet and/or other networks. In some applications, advertising creatives can include more types of media (e.g., media that requires larger amounts of data) because the advertising creatives can be download in advance of the display opportunities. In some embodiments, application installation files associated with the advertising creative can be downloaded when the advertising creative is downloaded. Beneficially, because the computing device already has the application installation files stored locally, the application associated with the advertising creative can be installed from the computing device's memory. In some instances, this can happen faster than an application installation that involves downloading the application installation files at the time of the installation, which can result in a more fluid user experience.
Ad decision server 105 can be any computing device, such as a server or multiple servers. In some embodiments, ad decision server 105 can generate advertising creatives as described in greater detail below. CDN server 110 can be any computing device, such as a server or multiple servers. In some embodiments, CDN server 110 can be an edge server fir a content distribution network. In some embodiments, CDN server 110 can store advertising creatives and/or elements thereof (e.g., constituent images, audio files, video files, etc. of creatives). Ad server 115 can be any computing device, such as a server or multiple servers. In some embodiments, ad server 115 can store advertising creatives and/or elements thereof (e.g., constituent images, audio files, video files, etc. of creatives). Push notification system 120 can be any computing device, such as a server or multiple servers. In some embodiments, push notification system 120 can be any system for delivering push notifications to computing devices 125 (e.g., the APPLE Push Notification service or ANDROID Cloud Messaging). Application installation file server 140 can be any computing device, such as a server or multiple servers. In some embodiments, application installation file server 140 can store application installation files. Computing devices 125 can be any computing devices. In some embodiments, computing devices 125 can be mobile computing devices (e.g., cellular phone and/or tablet). Network 130 can be any network or multiple networks. For example, network 130 can include cellular networks to which computing devices 125 are connected and the Internet.
At processing step 215, ad decision server 105 associates the request data from request 212 with a profile (e.g., a profile stored by ad decision server 105). The profile can be associated with computing device 125a. In some embodiments, the profile can be associated with a user and/or individual. Ad decision server 105 can determine to which profile to associate the request based on the one or more identifiers in request 212. In some embodiments, the profile is determined by ad decision server 105 based on the user ID. At processing step 217, ad decision server 105 generates advertising creatives based at least in part on the request data in request 212. For example, ad decision server 105 can generate ad creatives targeted to computing device 125a based on the identifiers, application data, sensor data, computing device data, tracking data, and computing device location data received in request 212. Ad decision server 105 can generate advertising creatives based at least in part on profile data (e.g., such as information about the user collected from other devices). In some embodiments, the advertising creatives can include one or more of text data, HTML, XML, JSON, executable scripts, video data, 3D model data, and image data. At processing step 218, ad decision server 105 can identify applications associated with the advertising creatives. For example, ad decision server 105 can identify one or more applications associated with one or more of the advertising creatives generated at step 217. In some embodiments, if an advertising creative is an advertisement for an application and/or a use of an application, ad decision server 105 can identify the application as associated with the advertising creative. For example, if the advertising creative is an advertisement for a plane ticket available through a travel application, ad decision server 105 can identify the travel application.
At transmission step 220, ad decision server 105 sends to push notification system 120 payload data 222 for delivery to computing device 125a as a part of a push notification. In some embodiments, the push notification can be a silent push notification (e.g., an application running on computing device 125a can process the push notification in the background). Payload data 222 can include advertising creative retrieval data to permit computing device 125a to download one or more of the advertising creatives generated in processing step 217. In some embodiments, the creative retrieval data can include a key or token which computing device 125a can provide to ad decision server 105 to retrieve the advertising creatives (e.g., when the payload data of the push notification is limited to small amounts of data). In some embodiments, the creative retrieval data can include URLs for the creatives, rules for the creatives, expiration times for the creatives, etc.
In some embodiments, payload data 222 can include application retrieval data to permit computing device 125a to download application installation files for one or more applications associated with the advertising creatives generated at step 217. In some embodiments, the application retrieval data can include URLs for the one or more application installation files, which computing device 125a can provide to application installation file server 140 to download one or more application installation files. In some embodiments, the application retrieval data can include a key or token, which computing device 125a can provide to application installation file server 140 to retrieve the one or more application installation files (e.g., when the payload data of the push notification is limited to small amounts of data). In some embodiments, the application retrieval data can include the name of the identified associated application.
At transmission step 225, push notification system 120 sends payload data 222 to computing device 125a. In some embodiments, payload data 222 is delivered to computing device 125a asynchronously with respect to request 212 (e.g., processing step 217 and transmission steps 220 and 225 can occur hours or days after request 212 is sent). In some embodiments, ad decision server 105 can periodically or in response to new data regenerate creatives (e.g., as in processing step 217) and application retrieval data (e.g., as in processing step 218) and send new payload data to computing device 125a (e.g., as in transmission steps 220 and 225). At transmission step 227, computing device 125a sends to ad decision server 105 creative location request 230. For example, computing device 125a can send a key or token from payload data 222 as a part of creative location request 230. In some embodiments, an application executing in the background on computing device 125a can send location request 230. In some embodiments, a task executing in the background on computing device 125a can send location request 230. At step 232, ad decision server 105 sends creative location response 235. Creative location response 235 can include URLs for the creatives, rules for the creatives, expiration times for the creatives, etc. As noted above, in some embodiments, URLs for the creatives, rules for the creatives, expiration times for the creatives, etc. can be sent as a part of payload data 222. In such embodiments, transmission steps 227 and 232 can be unnecessary. In some embodiments, at processing step 240, if no application retrieval data is received in payload data 222, computing device 125a downloads the advertising creatives and displays advertising creatives as described in greater detail with respect to
At transmission step 312, in response to receiving the state change notification, computing device 125a sends request 315 to ad decision server 105. For example, the callback function described above can send request 315 to ad decision server 105. Request 315 can include any of the data as described above with respect to request 212. In some embodiments, request 315 can be sent by an application and/or tasks running in the background on computing device 125a.
At processing step 317, ad decision server 105 associates the request data from request 315 with a profile (e.g., a profile stored by ad decision server 105) as described above with respect to processing step 215. At processing step 320, ad decision server 105 generates advertising creatives based at least in part on the request data in request 315 as described above with respect to processing step 217. At processing step 321, ad decision server 105 can identify one or more applications associated with one or more advertising creatives generated at step 320, as described above with respect to processing step 218.
At transmission step 322, ad decision server sends to computing device 125a payload data 325, which can include advertising creative retrieval data and application retrieval data to permit computing device 125a to download one or more of the advertising creatives generated in processing step 320 and to download one or more application installation files for applications associated with one or more advertising creatives. In some embodiments, the creative retrieval data can include URLs for the creatives, rules for the creatives, expiration times for the creatives, etc. In some embodiments, application retrieval data can include URLs for application installation files which computing device 125a can provide to application installation file server 140 to download one or more application installation files. In some embodiments, at processing step 327, if no application retrieval data is received in payload 325, computing device 125a downloads the advertising creatives and displays advertising creatives as described in greater detail with respect to
At step 420, computing device 125a generates an advertising creative display opportunity. In some embodiments, an application running on computing device 125a can generate an advertising creative display opportunity (e.g., the application can determine that there will be space on the screen for displaying an advertising creative). In some embodiments, an application executing in the foreground on computing device 125a can generates an advertising creative display opportunity. For example, while the creative can be downloaded by an application and/or tasks, the application can generate advertising creative display opportunities only when running in the foreground. In some embodiments, the advertising creative display opportunity can be in the context of the application (e.g., the advertising creative display opportunity can be a on a billboard or on a TV within a video game). In some embodiments the advertising creative display opportunity can be on a desktop or home screen of computing device 125a.
At step 430, computing device 125a selects a first advertising creative of the one or more advertising creatives based on advertising selection criteria. In some embodiments, the advertising selection criteria specifies selection of the first advertising creative based on at least one of profile data, application data, sensor data, computing device data, tracking data, advertising creative priority, advertising creative expected click rate, advertising creative display window, and device location. At step 440, computing device 125a displays the first advertising creative in the advertising creative display opportunity. Beneficially, computing device 125a can select and display advertising creatives from those downloaded in step 410 even when computing device 125a does not have network connectivity. In some embodiments, ad decision server 105 can send to computing device 125a a message (e.g., a push notification) to display a second advertising creative, and computing device 125a can display the second advertising creative. In some embodiments, the second advertising creative can be an advertising creative previously downloaded (e.g., at step 410).
At step 515, computing device 125a determines if an application associated with one or more of the one or more advertising creatives is installed on computing device 125a. For example, computing device 125a can use its operating system to determine whether the application is installed, for example by using a bundle ID or a deeplink. If the application is installed, the process proceeds to step 525. If the application is not installed, the process proceeds to step 520. At step 520, computing device 125a can download application installation files for the application based on application retrieval data described with respect to
At step 525 computing device 125a generates an advertising creative display opportunity. In some embodiments, an application running on computing device 125a can generate an advertising creative display opportunity (e.g., the application can determine that there will be space on the screen for displaying an advertising creative). In some embodiments, an application executing in the foreground on computing device 125a can generate an advertising creative display opportunity. For example, while the creative can be downloaded by an application and/or tasks, the application can generate advertising creative display opportunities only when running in the foreground. In some embodiments, the advertising creative display opportunity can be in the context of the application (e.g., the advertising creative display opportunity can be a on a billboard or on a TV within a video game). In some embodiments, the advertising creative display opportunity can be on a desktop or home screen of computing device 125a.
At step 530, computing device 125a displays an advertising creative of the one or more downloaded advertising creatives in the advertising creative display opportunity. Beneficially, computing device 125a can select and display the advertising creative even when computing device 125a does not have network connectivity. At step 535, computing device 125a determines if a user interaction with the displayed advertising creative is detected. For example, computing device 125a can detect if the user clicks on the displayed advertising creative. If a user interaction with the displayed advertising creative is detected, the process proceeds to step 540.
At step 540, computing device 125a determines if the application associated with the advertising creative is installed. If the application is installed, the process proceeds to step 550. If the application is not installed, the process proceeds to step 545. At step 545, computing device 125a installs the application using one or more application installation files downloaded in step 520. In some embodiments, the application installation files can include ANDROID Application Package files. In some embodiments, computing device 125a can launch an ANDROID Intent that will trigger the installation of the downloaded application installation files. At step 547, computing device 125a determines if the application installed successfully. If the application the application did not install successfully, the process proceeds to step 550. If the application did install successfully, the process proceeds to step 548. At step 548, computing device 125a registers an installation status (e.g., with ad decision server 105) indicating that the application is installed on computing device 125a. The process proceeds to step 550.
At step 550, computing device 125a processes the user interaction with the advertising creative. In some embodiments, if the application has not been successfully installed, computing device can display a website and/or an app store application from which the application can be installed. In some embodiments, if the application has been successfully installed, computing device 125a can execute the application in response to the user interaction. In some embodiments, the application can be executed beginning at an initial state based on the received payload data. In some embodiments, the advertising creative can contain a deeplink associated with the application. The deeplink can be a reference to and/or data for a particular aspect of the application. For example, if the advertising creative is an advertisement for a plane ticket available through a travel application, the deeplink can cause the travel application to begin executing from a screen that offers the plane ticket for purchase. In some embodiments, computing device 125a can configure the application based on the advertising creative. For example, optional features of the application can be enabled in the application. In some embodiments, computing device 125a can write application data to a memory space associated with the application. For example, computing device 125a can write information about the user of computing device 125a to the memory space of the application so that the application can use the information when executing.
The above-described techniques can be implemented in digital and/or analog electronic circuitry, or in computer hardware, firmware, software, or in combinations of them. The implementation can be as a computer program product, i.e., a computer program tangibly embodied in a machine-readable storage device, for execution by, or to control the operation of, a data processing apparatus, e.g., a programmable processor, a computer, and/or multiple computers. A computer program can be written in any form of computer or programming language, including source code, compiled code, interpreted code and/or machine code, and the computer program can be deployed in any form, including as a stand-alone program or as a subroutine, element, or other unit suitable for use in a computing environment. A computer program can be deployed to be executed on one computer or on multiple computers at one or more sites.
Method steps can be performed by one or more processors executing a computer program to perform functions of the technology by operating on input data and/or generating output data. Method steps can also be performed by, and an apparatus can be implemented as, special purpose logic circuitry, e.g., a FPGA (field programmable gate array), a FPAA (field-programmable analog array), a CPLD (complex programmable logic device), a PSoC (Programmable System-on-Chip), ASIP (application-specific instruction-set processor), or an ASIC (application-specific integrated circuit), or the like. Subroutines can refer to portions of the stored computer program and/or the processor, and/or the special circuitry that implement one or more functions.
Processors suitable for the execution of a computer program include, by way of example, both general and special purpose microprocessors, and any one or more processors of any kind of digital or analog computer. Generally, a processor receives instructions and data from a read-only memory or a random access memory or both. The essential elements of a computer are a processor for executing instructions and one or more memory devices for storing instructions and/or data. Memory devices, such as a cache, can be used to temporarily store data. Memory devices can also be used for long-term data storage. Generally, a computer also includes, or is operatively coupled to receive data from or transfer data to, or both, one or more mass storage devices for storing data, e.g., magnetic, magneto-optical disks, or optical disks. A computer can also be operatively coupled to a communications network in order to receive instructions and/or data from the network and/or to transfer instructions and/or data to the network. Computer-readable storage mediums suitable for embodying computer program instructions and data include all forms of volatile and non-volatile memory, including by way of example semiconductor memory devices, e.g., DRAM, SRAM, EPROM, EEPROM, and flash memory devices; magnetic disks, e.g., internal hard disks or removable disks; magneto-optical disks; and optical disks, e.g., CD, DVD, HD-DVD, and Blu-ray disks. The processor and the memory can be supplemented by and/or incorporated in special purpose logic circuitry.
To provide for interaction with a user, the above described techniques can be implemented on a computer in communication with a display device, e.g., a CRT (cathode ray tube), plasma, or LCD (liquid crystal display) monitor, for displaying information to the user and a keyboard and a pointing device, e.g., a mouse, a trackball, a touchpad, or a motion sensor, by which the user can provide input to the computer (e.g., interact with a user interface element). Other kinds of devices can be used to provide for interaction with a user as well; for example, feedback provided to the user can be any form of sensory feedback, e.g., visual feedback, auditory feedback, or tactile feedback; and input from the user can be received in any form, including acoustic, speech, and/or tactile input.
The above described techniques can be implemented in a distributed computing system that includes a back-end component. The back-end component can, for example, be a data server, a middleware component, and/or an application server. The above described techniques can be implemented in a distributed computing system that includes a front-end component. The front-end component can, for example, be a client computer having a graphical user interface, a Web browser through which a user can interact with an example implementation, and/or other graphical user interfaces for a transmitting device. The above described techniques can be implemented in a distributed computing system that includes any combination of such back-end, middleware, or front-end components.
The components of a computing system can be interconnected by transmission medium, which can include any form or medium of digital or analog data communication (e.g., a communication network). Transmission medium can include one or more packet-based networks and/or one or more circuit-based networks in any configuration. Packet-based networks can include, for example, the Internet, a carrier interact protocol (IP) network (e.g., local area network (LAN), wide area network (WAN), campus area network (CAN), metropolitan area network (MAN), home area network (HAN)), a private IP network, an IP private branch exchange (IPBX), a wireless network (e.g., radio access network (RAN), Bluetooth, Wi-Fi, WiMAX, general packet radio service (GPRS) network, HiperLAN), and/or other packet-based networks. Circuit-based networks can include, fir example, the public switched telephone network (PSTN), a legacy private branch exchange (PBX), a wireless network (e.g., RAN, code-division multiple access (CDMA) network, time division multiple access (TDMA) network, global system for mobile communications (GSM) network), and/or other circuit-based networks.
Information transfer over transmission medium can be based on one or more communication protocols. Communication protocols can include, for example, Ethernet protocol, Internet Protocol (IP), a Peer-to-Peer (P2P) protocol, Hypertext Transfer Protocol (HTTP), Session Initiation Protocol (SIP), a Global System for Mobile Communications (GSM) protocol, Universal Mobile Telecommunications System (UMTS), 3GPP Long Term Evolution (LTE) and/or other communication protocols.
Devices of a computing system can include, for example, a computer, a computer with a browser device, a telephone, an IP phone, a mobile device (e.g., cellular phone, personal digital assistant (PDA) device, smart phone, tablet, laptop computer, electronic mail device), and/or other communication devices. Mobile computing device includes, for example, a Blackberry® from Research in Motion, an iPhone® from Apple Corporation, and/or an Android™-based device.
Comprise, include, and/or plural forms of each are open ended and include the listed parts and can include additional parts that are not listed. And/or is open ended and includes one or more of the listed parts and combinations of the listed parts.
One skilled in the art will realize the technology may be embodied in other specific forms without departing from the spirit or essential characteristics thereof. The foregoing embodiments are therefore to be considered in all respects illustrative rather than limiting of the technology described herein.
This application is a continuation-in-part of U.S. patent application Ser. No. 14/274,140, filed May 9, 2014, the entire contents of which are hereby incorporated by reference.
Number | Name | Date | Kind |
---|---|---|---|
20020023002 | Staehelin | Feb 2002 | A1 |
20030145317 | Chamberlain | Jul 2003 | A1 |
20070061336 | Ramer et al. | Mar 2007 | A1 |
20080004957 | Hildreth et al. | Jan 2008 | A1 |
20080052140 | Neal et al. | Feb 2008 | A1 |
20090006177 | Beaver et al. | Jan 2009 | A1 |
20090070217 | Dharmaji et al. | Mar 2009 | A1 |
20110125594 | Brown et al. | May 2011 | A1 |
20110153426 | Reddy et al. | Jun 2011 | A1 |
20110202397 | Lam | Aug 2011 | A1 |
20110246298 | Williams et al. | Oct 2011 | A1 |
20120110618 | Kilar et al. | May 2012 | A1 |
20130061222 | Hwang | Mar 2013 | A1 |
20130304581 | Soroca et al. | Nov 2013 | A1 |
20140089109 | Ashbaugh | Mar 2014 | A1 |
20150294346 | Di Giorgio | Oct 2015 | A1 |
Entry |
---|
International Search Report from corresponding PCT Patent Application No. PCT/IB2015/001464, dated Dec. 22, 2015, 10 pages. |
Number | Date | Country | |
---|---|---|---|
20150324854 A1 | Nov 2015 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 14274140 | May 2014 | US |
Child | 14555532 | US |