This description relates to commercials on mobile devices.
In general, in an aspect, videos and commercials are downloaded to a mobile device for storage on the mobile device and later playout on the mobile device. The downloading includes downloading of metadata associated with the commercials and based on which the mobile device can select commercials for insertion into downloaded videos being played back to the user of the mobile device. The commercials to be downloaded are selected based on one or a combination of any two or more of the location of the user, the type of mobile device, and personally-identifiable information about a user of the mobile device.
Implementations may include one or a combination of any two or more of the following features. The location includes a location of the mobile device specified by GPS. The type of mobile device includes a make and/or model. The metadata associated with each of the commercials includes one of more of (a) a number of impressions allowed for, (b) an expiration date of, and (c) information about videos into which insertion is permitted for each of the commercials. The downloading includes downloading of metadata associated with the videos and based on which the mobile device can detect in advance of playout of the videos, a number of commercials to be inserted into the video and a length of those commercials. The stored commercials are made accessible through an API to apps running on the mobile device. The downloading includes regulating a pace at which commercials are downloaded based on commercials in the storage. The regulating includes downloading a lower-quality encoding of the commercials initially, followed by the downloading of higher-quality versions of these or other commercials. The downloading includes regulating the downloading of commercials based on rules. The regulating is based on a power state of the mobile device being above a threshold of charge, on whether a relatively lower cost connection is available, on whether a storage space of the mobile device is above a threshold, or any two or more of those conditions. The regulating may be based on a condition associated with a cellular data network. The condition includes when the cellular data network is in a period of lower use, the usage of the cellular data network by the mobile device during a daily, weekly, monthly, or other a time period, to the applicability of additional charges that will apply to the download, or any combination of two or more of those conditions. The downloading includes establishing a limit on use of the storage for downloaded commercials. The limit includes a quota of a maximum amount of storage to use. The quota includes a fixed number of commercials or a fraction of the storage capacity of the device. The downloading includes varying a quality of the commercials downloaded based on commercials stored on the mobile device. The downloading includes downloading lower quality videos first, and then replacing each lower-quality video with a higher-quality video. A request is received from a mobile device for commercials to be presented on the mobile device. A determination is made that the request is for commercials that may be presented on the mobile device at a time when the mobile device is offline. Commercials are selected for downloading to the mobile device based on the determination that the commercials may be presented when the mobile devices is offline.
In general, in an aspect, videos are stored on a mobile device for playback to a user and commercials are stored on the mobile device to be played back before, during, or after the videos in connection with playback of the videos. Upon the occurrence of a triggering event related to the suitability of a set of the commercials for being played back with videos, downloads are received of a set of commercials that are more suitable than the set of commercials that have become unsuitable. The more suitable commercials are stored on the mobile device. The less suitable commercials may be retained, or deleted from the device.
Implementations may include one or a combination of any two or more of the following features. A determination is made, at the mobile device, of which of the stored commercials is to be played back in connection with playback of each of the videos being played back. The triggering event includes at least one of (A) the passage of time, (B) at least a threshold portion or number of the commercials stored on the mobile device have become unsuitable, and (C) a change of location of the mobile device. The mobile device initiates the download of the more suitable commercials in response to the triggering event. A user can be presented one or more commercials through a user interface of the mobile device when the mobile device is not online. When the user invokes an interactive element on a commercial while the device is offline, information about the invoking is stored, and when the device is again online, the user is prompted to visit the website. When the user invokes interactive elements on two or more commercials while the device is offline, information about the invoking is stored, and when the device is again online, the user is enabled to to select from among the corresponding commercial web sites. The one of the stored commercials is one of an ordered sequence of commercials, and the one commercial is not played back until prior commercials in the sequence have been played back. A determination is made whether a video should be played back based on information about downloaded commercials and downloaded videos. The information about downloaded commercials and downloaded videos includes one or more of a number of downloaded videos, a duration of downloaded videos, and a number of insertion points for downloaded videos. No video is played back if the number of insertion points exceeds the number of downloaded commercials.
In general, in an aspect, at a mobile device, downloaded videos and commercials to be considered for playback before, during, or after the playback of each of the videos are received and stored. A determination is made at the mobile device which of the downloaded stored commercials should be played back in connection with the playback of the downloaded stored videos on the mobile device at times when the mobile device is offline.
In general, in an aspect, videos and commercials are downloaded to a mobile device for storage on the mobile device and later playout on the mobile device. The downloading includes downloading sets of appropriate commercials associated with the corresponding videos, each of the sets including a sufficient number of commercials for the corresponding video. Additional commercials that are not associated with specific videos are downloaded for playback in case commercials in the downloaded sets of appropriate commercials are no longer suitable for use with the corresponding videos.
In general, in an aspect, when a mobile device is offline, videos are presented to a user that have been downloaded to and stored on the mobile device, and commercials are selected and presented the presentation of the videos. At a time when the mobile device would have performed a tracking beacon with respect to the presentation of a commercial, an app records on the mobile device one or more of the following: (A) a URL of the server to which a call would have been made to perform the tracking beacon, (B) a timestamp that represents the time when the tracking beacon would have been performed, and (C) an identification of the commercial. At a time when the mobile device is again online, a call is made to the URL and the tracking beacon is performed.
In general, in an aspect, video commercials are downloaded to a mobile device to be used at the mobile device including for insertion in downloaded videos being presented on mobile device. At one time, a first set of video commercials is downloaded to the mobile device, having respective qualities of video formats and having a first total size. At a later time a second set of video commercials is downloaded to the mobile device having respective qualities of video formats and having a second, larger total size.
Implementations may include one or a combination of any two or more of the following features. At least some of the qualities of video formats of the video commercials in the first set are of lower quality than at least some of the qualities of video formats of the video commercials in the second set.
Other aspects, features, and implementations and combinations of them can be expressed as methods, apparatus, systems, components, methods of doing business, program programs, means and steps for performing functions, and in other ways.
Other aspects, features, and implementations will become apparent from the following description and from the claims.
In the following description, we use the term “app” or “application” or “mobile app” broadly to include, for example, an executable binary that is installed and runs on a mobile device, or a web site that the user navigates to within a web browser on the mobile device, or a combination of them. An “app” may also refer to multiple executable binaries that work in conjunction on a mobile device to perform one or more functions; for example, an Android service and an Android application that communicate with one another.
We use the term “app” in the context of video broadly to include, for example, any software, hardware, firmware, or combination of them that is able to access, accept, process, or play a video that is downloaded on or streamed to the mobile device. We use the term “system” broadly to include, for example, any set of components or facilities—mobile app, streaming video server, content delivery network, and possibly other elements, for example—that together comprise or provide or support a service that delivers video to devices and plays them for users of the devices. We use the term “streaming” broadly to include, for example, a service that allows a user to view a video on a device as the video is being delivered to the device, and in which the entire video is typically not stored persistently on the device. We use the term “mobile devices” broadly to include, for example, any portable device, such as a cellular-enabled phone, a tablet, or a laptop, that is capable of receiving a video stream over a wireless network and playing the video stream as it is received. We use the term “playing” broadly to include, for example, presenting the video on the mobile device for viewing by the user. We sometimes use the terms “playback” or “playout” interchangeably with “playing.” We use the term “wireless networks” broadly to include, for example, 3G, 4G, LTE, 802.11 (also known as “WiFi”), Bluetooth, and other well-known protocols for wireless data delivery. We use the term “online” broadly to include, for example, having access to a network connection; and the term “offline” broadly to include, for example, not having access to a network connection.
We use the term “streaming video server” broadly to include, for example, any server accessible to the mobile device over a network connection and capable of delivering streaming video, for example, in conformity with Microsoft Smooth, Apple HLS, or other standard video-streaming protocols. We use the term “recommendation engine” broadly to include, for example, a system that uses historical data to identify items of potential interest to a user. We use the term “analytics server” broadly to include, for example, any server accessible to the mobile device over a network connection and capable of one or more of the following functions: receiving one or more files from a mobile device containing past activity on the device, persisting this information, aggregating this information with similar information received from other devices, and generating a graphical or tabular representation of this collected information.
Streaming Video
Streaming video to a mobile device has become a mature and popular technology. Pay-TV distributors (e.g., Comcast, Time Warner Cable, Charter, Cox), TV networks (e.g., HBO, ABC, AMC), and various Internet-based services (e.g., Amazon, Netflix, YouTube) each offer services that stream video over IP networks to mobile devices.
Typically, so-called video streaming over IP relies on one of two common Internet communication standards: TCP and UDP, each a protocol for delivering data from one machine on the Internet to another machine. Video streaming over IP can be performed in unicast mode, (i.e., one source delivering video to one receiver). In some cases, video streaming over IP can be performed in broadcast or multicast mode (i.e., one source transmitting to multiple receivers).
In conjunction with TCP or UDP, streaming video services typically rely on enabling technologies such as video-encoding protocols (e.g., Apple's HLS format and Microsoft's Smooth format) that are designed for streaming video. These protocols allow the user to experience smooth playout of the video even as network conditions deteriorate or improve during playout. These protocols also allow for a minimal delay between the user's request for the video and the start of video playout. From a mobile device, a user may access streaming video that has been encoded by one of the protocols, using a web browser like Safari or Chrome running on the mobile device. A user may also access streaming video using an application installed and running on the mobile device, such as Hulu Plus, Netflix, HBOGO, or SkyGo.
In some cases, the streamed videos may be “premium” content (e.g., HBO), access to which requires, for example, a monthly subscription fee. Such premium content typically includes few or no commercials (we typically use the terms ads, advertisements, and commercials interchangeably). In some cases, the streamed videos may originate from ad-supported networks (e.g., ABC, AMC, Fox), in which case the video may include commercials before, during, and after playout, or any combination of two or more of those.
A streaming video service may offer VOD (video-on-demand) or live TV, or both. By VOD, we mean a video service that offers a catalog of videos from which the user may select and view an item. Each of the videos in a VOD catalog was created at some time in the past; therefore at the time when a video is being played, the entire video is already in existence. In contrast, a live TV service offers a group of video streams each of which is being created in real time during streaming. Therefore, at the time when a current portion of a live video stream is being played, later portions of the same video stream are being created. In that sense, a live TV video is incomplete during the time when it is being played.
The general idea of managing the selection and insertion of commercials into streaming video is not new. Products that do so include Adobe Auditude, Freewheel, and BlackArrow.
Video Download
Recently, some companies have begun to introduce a video download feature as a new feature in their streaming products. Some companies have introduced exclusively video-download products, i.e., products that offer download but not streaming. In either case, video-download is a feature that allows users to download a video from a network data repository to a mobile device. Two examples of the former download-enabled services are Comcast's Xfinity Player and BSkyB's SkyGo Extra app.
We use the term “download” broadly to include, for example, any delivery of a video item in its entirety to a persistent non-volatile storage of a mobile device. In download, the recipient device stores the video persistently and can, for example, play out the video long after (e.g., minutes, days, weeks or longer) the delivery. The video item may consist of one file or of multiple files. The video item that is downloaded may be a VOD item or a live stream. In some cases, the mobile device may initiate the download process by, for example, transmitting an HTTP ‘GET’ request to a remote server that stores the object to be downloaded. In some cases, the mobile device may use a protocol, such as FTP, to fetch the video item from the remote source.
We use the term “non-volatile storage” or “persistent storage” broadly to include, for example, any technology such as magnetic disk drive or solid-state memory that retains stored data, for example, even while the device is powered off. Storing a video in the device's non-volatile storage means or storing it persistently that the stored video will remain on the device until the user or another application deletes the video. We use the term “data repository” broadly to include, for example, any storage mechanism that can deliver data to the requesting devices over a network connection. Within the context of video download, a “mobile device” is normally capable of storing the downloaded video on the device for later playout.
Among the advantages of a video-download feature are that a user can download a video from, for example, a VOD catalog when the user has access to a network connection, and the user is able to play the video later, when he or she does not have (or adequate) access to any network connection. For example, a user can download a TV show or movie to her mobile device while she is at home, before leaving for the airport. Later, while she is in an airplane, she can play out the downloaded video, even though she has limited or no Internet connectivity in the airplane.
An advantage of a video-download feature is that users can consume high-quality videos from a VOD catalog even if the user only has access to a low-quality network connection. For example, imagine the user wants to view on her mobile device a 10-minute video, which has been encoded in three formats: low quality (0.3 Mb/s), medium quality (0.8 Mb/s) and high-quality (1.8 Mb/s). Say the user has a 0.6 Mb/s network connection. Over this network connection, she can only stream the low-quality (0.3 Mb/s) version of the video. Attempting to stream the medium- or high-quality version of the video would fail, since the network connection cannot support the required data throughput. However, she can download the high-quality version of the video, even over the 0.6 Mb/s network connection. Over this network connection, the download would require about 30 minutes. Once downloaded, the high-quality video is available at the mobile device for the user to play out. Thus, using download, a user can play out a high-quality video, even lacking a corresponding high-throughput network connection.
An advantage of a video-download feature is time-shifting from a time when a live TV show is being shown, for example, a rugby game scheduled for noon GMT, which is 4 AM Pacific Time, to a later time that is convenient for a rugby fan living in California. To do this, the fan can set his mobile device to record the show at 4 AM, and then the fan can watch the saved show at, e.g., LOAM local time.
An advantage of a video-download feature is in reducing the use of expensive network connections. Typically, wireless operators like Verizon Wireless impose a monthly limit on cellular data usage, e.g., 2 GB per billing cycle, and impose an “overage” charge for data usage exceeding that limit in a given billing cycle. For instance, in mid 2013, the network operator Verizon Wireless assesses a $15 overage fee per GB used above the subscriber's limit in any one billing cycle. A Verizon Wireless subscriber with a 2 GB quota can stream about 5.5 hours of 800 Kb/s video in a given billing cycle over the Verizon network, before overage charges apply. In other words, this Verizon Wireless subscriber is limited to about 5.5 hours of streaming video over the Verizon Wireless network until overage charges apply. A benefit of download is that Verizon Wireless subscribers who can plan ahead (and who have access to a download product) can download one or more videos in advance using a WiFi connection (e.g., at home or in their office), and subsequently watch these videos at a time and place where WiFi connectivity isn't available, thus avoid the risk of an expensive overage charge. In other words, download enables “wireless-mode shifting” that reduces one's cellular data consumption without reducing one's overall video consumption.
A system that supports the downloading of videos to a mobile device may have some or all of the following features:
As shown in
Online Video Advertising
Technology for managing, inserting, displaying, and measuring the viewing of commercials within streaming video is commonplace. Companies like Adobe, Freewheel, and BlackArrow have products that manage the selection and insertion of commercials into streaming video, and record when a commercial is presented for viewing. We use the term “measuring” broadly to include, for example, any tracking, observing, quantifying, recording, or generation of metrics that relate to display, performance, or presentation to a user and activities of the user associated with an commercial, for instance, recording whether a user triggers an interactive prompt displayed during the commercial (such as a pop-up that when clicked brings the user to a webpage for more information), or whether a user exits the video application instead of watching the commercial. We use the term “ad server” broadly to include, for example, any server that selects and delivers advertisements for placement into any kind of Internet-delivered content, such as web pages, audio, and video, or combinations of them.
The Internet Advertising Bureau (IAB), an industry consortium, has published a specification for the delivery and playout of ads within streaming video, called the Digital Video Ad Serving Template (VAST) (reference: http://www.iab.net/vast). Commercials may be of different types, including linear, companion ads, ad pods, and so on. The VAST specification describes the different types and is incorporated here by reference in its entirety. To simplify the discussion, we will focus on linear ads, but the techniques and systems that we describe here apply to the other ad types.
For background and as shown in
The actions illustrated in
When an app initiates a request for a video item, the ad server will select a corresponding group of commercials, among its inventory of commercials, for insertion into the video item during playout. The selection process can rely on one or combinations of any two or more of the following factors, among others:
The idea of delivering commercials to mobile devices for later playout is not new. Companies that have done so include Goldspot (http://gigaom.com/2010/03/05/goldspot-delivers-mobile-ads-while-you-sleep/) and Transpera (which delivered to mobile phones video ads inserted into web pages displayed on the mobile phone).
Here we describe a system that, among other things, handles the insertion, measurement, and interactivity at the mobile device, during the playing or videos and while the device is not connected to a network.
As shown in
The system and techniques that we describe here are designed to support download and offline playout of ad-supported videos, among other things.
Some key features include:
Important functions of the system include: selecting commercials; downloading commercials from a server; ensuring the device has access to a sufficient number of commercials; providing access to commercials; refreshing the cache of commercials on the device; recording viewings by users of commercials; and enabling interactivity associated with the viewing of the videos or commercials; and combinations of any two or more of those functions and others.
We cover each of a number of these aspects in turn.
We refer to
Selecting Commercials
In the streaming scenario, selecting commercials is entirely the responsibility of the ad server; typically, no element on the mobile device (including the app) has any responsibility for selecting commercials.
The system and techniques that we describe here change this approach to support offline playout of downloaded videos and commercials in a number of ways including one or more of the following and combinations of any two or more of them:
When the app downloads a video, it contacts the ad server to request a set of corresponding commercials. The ad server performs a selection algorithm to identify a group of commercials, just as described above in the streaming scenario (“AD SERVER SELECTS COMMERCIALS”). In this case, the app downloads the selected commercials for later playout.
When the system downloads 210 a commercial 212 to the mobile device and stores it 218, the system also downloads a set of metadata 224. The local ad engine 204 uses this metadata to help guide its selection 226 of one or more commercials from among the locally-stored commercials.
In some cases, the metadata may can be embedded in the commercials and therefore necessarily downloaded with them. In some implementations, the metadata can be stored and delivered separately and associated with the commercials. Any of a wide variety of arrangements can be used to associate the metadata with the commercials. Some metadata can be associated with more than one commercial; in some other cases, each commercial has its own metadata, not shared with other commercials.
A wide variety of fields of metadata can be defined and used, including:
Other metadata delivered with the commercial could include, for example, information that instructs the app to show the commercials in a certain sequence. Any combination of two or more such fields, and other fields, can constitute the metadata for a commercial.
In some implementations, for efficiency in transmitting the metadata from the ad server to the mobile device and storing the metadata on the mobile device, the amount and the fields of metadata that is downloaded to and stored on the mobile device are smaller or fewer than the amount of metadata and the fields stored on the server in scenarios such as the ones described earlier. In such implementations, we call this set of metadata delivered to and stored on the app a “reduced set of metadata”. We refer to this set as reduced in that it may and typically is a set of less metadata than the set 57 shown in
Prior to or during playout of a video, the local ad engine 204 consults this metadata to select from among the cached commercials those to be inserted into the video, or before or after the video.
As shown in
In making its selection of commercials, the ad server may take into account that the mobile device will be downloading the commercials for later playout, perhaps offline. The ad server will be aware that the mobile device will be downloading the ads, from information sent by the device to the ad server in the request (e.g., information indicating that the request comes from a specific user-agent such as a “download-player”). The ad server may alter its selection accordingly. For instance, the ad server may not select interactive commercials, since most interactive elements work best with a live network connection.
The process of selecting and downloading commercials and metadata to the mobile device is depicted in
Managing the Cache of Commercials
In some circumstances, an insufficient number of downloaded commercials, with respect to the number of downloaded videos, the total duration of downloaded videos, the total number of insertion points for all the downloaded videos, or some combination of any two or more of these and other factors, may cause the app to prevent playout of some of the downloaded videos. For instance, a downloaded video may have three commercial insertion points. If the device currently holds only two downloaded commercials, the app may indicate that the video cannot playout offline until additional commercials are available.
Downloading can occur in bursts in which two or more or a large set of commercials is downloaded at one time, or can be distributed so that individual commercials are downloaded from time to time, or any combination of those. The app may download a large number of commercials in low quality video formats, to quickly populate the offline cache, and subsequently download higher-quality versions of these (or other) commercials. For example, the app may download twenty commercials, each 15 s in duration and encoded at 0.3 Mb/s, for a total size of 11.2 MB. Subsequently, the app may download a new batch of 20 commercials, each 15 s in duration and encoded at 0.9 Mb/s, for a total size of 33.6 MB. The replacement of lower-quality versions by higher-quality versions need not be done in batches but can be done individually, for example. The logic for deciding how many commercials to download and how frequently to replace the commercials may reside on the app (at the mobile device), or may reside at some other system component.
The app receives and stores 218 these downloaded commercials on the mobile device, e.g., in the offline cache 202 on the mobile device's non-volatile storage 222.
The app may be configured to have a quota, a maximum amount of non-volatile storage to use in storing downloaded commercials. For example, a 200 MB quota is enough space for 100 video commercials each of size 2 MB. The app may set the quota as a fixed number, or as a fraction of the overall non-volatile storage capacity of the device, or in any of a variety of other ways. The quota can change from time to time depending on various factors.
The app may adhere to a set of rules 301 (
The app may moderate the pace at which it downloads commercials based on the number of commercials stored in the offline cache. For instance, the app may download commercials with all available bandwidth until the app reaches a minimal threshold of (e.g., 20) commercials in the offline cache, and then only download at most 10 new commercials per week.
The app may download commercials before, during, or after the download of user-selected videos or in any combination of two or more of those times. It may do so without the user being aware that the downloading is occurring. It may do so in the background, without the app or any of its features being shown on the device's screen. It may do so automatically, on a preset interval (e.g., every day or every week).
The app may interleave the download of commercials with the download of videos. For example, the app may have a queue of five user-requested videos (totaling 400 MB) and fifteen commercials (totaling 30 MB) for a total download queue of 430 MB. The app may alternate (one by one or in groups) the download of queued videos with queued commercials in any sequence over time. The app may or may not indicate to the user that it is downloading commercials. The app may separate a queued video into several parts, and insert a commercial (or part of a commercial) between downloading each part. As shown in
In some implementations, commercials may “belong” to a specific show and can only be played in conjunction with that show. In the terminology we introduced above, the metadata for the commercials would specify a particular show in the ‘use-against’ field. For example, an advertiser (Walmart, say) may purchase a set of impressions against the show “Survivor” or against a specific episode of “Survivor.” In this scenario, when downloading commercials, the app will download a set of appropriate commercials for each downloaded video item. Since a 45-minute TV show typically contains 15 minutes of commercials, the app will download 15 minutes of commercials for a 45-minute downloaded video item. One might think of the cache of commercials on the device as segregated into groups, one group belonging to each downloaded video item.
The app may download a set of “backup commercials” which are available for insertion when no other commercial is available. Typically, a backup commercial will have minimal constraints on when it can be played—at any time, inside any video item, and no expiry, among other examples. A backup commercial might be, for example, a general promotion or a public service announcement that has no inherent expiry. The app may select one of the saved backup commercials in case another commercial that has an association with a video program is not available for playout (e.g., they have all expired.)
The app will not typically present a list of downloaded commercials for the user to view and interact with; rather, the app will silently store and manage these commercials, without explicitly informing the user. The app may present a minimal view to the user showing only that commercials are downloading.
Some mobile devices support the notion of multiple users, each with their own login to the device. For example, starting with version 4.2, Android devices support multiple users on a single device, each with their own login. In some instances, the app can provide a separate local ad cache 380 for each user 382, and draw from that user's cache when that user is logged in (see
Refreshing the Cache of Commercials
From time to time, the app may refresh its set of cached commercials.
The refresh may be initiated from the app itself. The refresh may be initiated from a server that sends a signal (e.g., and Android Push Notice or Apple Push Notification) to the app on the device to perform the refresh. Triggering events for a refresh may include (among other) any one or a combination of any two or more of: (a) when a certain amount of time (say 3 days) has elapsed since the app last performed a refresh of its cached commercials, (b) when a certain number or fraction of cached commercials have expired, and (c) when the location of the mobile device has changed significantly (e.g. more than 50 miles) and a sufficient number of cached commercials are now marked as “OutOfGeo.”
Based on one of these triggering events, the app may initiate a refresh of its cache of commercials. That is, the app will contact the ad server to request a new inventory of commercials.
The app may mark as expired any commercial that has been played the number of times specified in its associated metadata (defined above as “max impressions”), denoted by Q. The app may mark as expired a commercial which has been played at least Q-k times, where k is a fixed parameter in the app, for example 3. The app may mark as expired a commercial that is past its “use-by” metadata. The app may mark as expired a commercial that that has resided on the device for a duration of time T, where T is a fixed parameter in the app, for example one week. Various combinations of any two or more of these and other conditions may also be applied to control the expiry of commercials.
The app may mark as “OutOfGeo” any commercial for which the “use-nearby” metadata indicates a different location from where the device is now.
When the refresh occurs, the app contacts the ad server to request a new commercial to use in place of some or all of the cached commercials. At the very least, the app will request a replacement commercial for any expired commercial. The app may also request a replacement for any commercial marked as “OutOfGeo.” The app queues the new commercials for download.
As an example of the “location change” criteria, imagine that the app detects (using standard location-based APIs available on mobile platforms such as iOS and Android) that the device has moved from New York City to Cleveland, Ohio. Transparently and without the user needing to be aware of it, the app will then mark all appropriate commercials as “InGeo” or “OutOfGeo.” When a subsequent refresh occurs, the OutOfGeo commercials may be replaced or retained in case the user moves back into the relevant geographical area.
Providing Access to Commercials
In some implementations, the downloaded commercials are used only for insertion into videos that are played by one app on the device. However, in some implementations, other apps and features of the mobile device can make use of the stored commercials and associated metadata for a wide variety of purposes.
For example, a phone-dialing app 311 (
In some implementations, to make it easier for app developers to take advantage of the stored ads and metadata, the app (or even the operating system of the mobile device) can expose an API (application programming interface) 209 (
Therefore, in some implementations, apps loaded on and running on the mobile device can invoke the client ad engine to use the stored commercials for a variety of purposes.
The following is an example of a simple API.
Thus, multiple apps 213, 310, 311 and 313 can use one common client ad engine 203 on the device through the API.
Recording Views and Tracking and Measuring Usage of Ads
Typically, streaming video systems include one or more mechanisms for recording when a mobile device has begun, is somewhere in the middle of playing, or has completed playout of a commercial. As previously discussed, tracking beacons are one common mechanism. Tracking beacons are typically a URL (i.e. the address of an remote Internet server) that the device connects to in order to register this event. Typically, an application or web browser will perform a network call (typically using HTTP) to the URL. The network call typically contains information including the “user-agent” (a description of the device performing the network call) and perhaps information stored from a previous transaction (e.g. one or more web cookies).
The device must be online to execute the network call for the tracking beacon. When the device is playing a previously-downloaded commercial and the device is offline, the device cannot reach a remote server to perform the tracking beacon, or to in any other way report that a commercial has been played and cannot report any other metrics concerning the use of commercials on the device.
Instead, in some implementations, the app records on the mobile device the URL of the tracking beacon, along with a timestamp recording exactly when the device would have performed the network call to the URL if the device were online. More generally, the app records the identity of each commercial that is played, along with a timestamp recording exactly when each commercial was played. The app may also record other information related to the playout of the commercial, including, for example, the location of the device during playout of the commercial, the identity of the video that the commercial was inserted into, and the duration of the commercial that the user played. Other kinds of information and combinations of information can be recorded. We call this information for a commercial, collectively, an “impression event.” The impression event is stored on the device's non-volatile memory in a cache 325. The cache may contain multiple impression events recorded over a period of time.
When the cache is non-empty, the app checks for network connectivity at regular intervals, and uploads this set of recorded impression events from the cache to a remote server (i.e. an analytics server) that accumulates this information (the server is labeled analytics 326 in
In the download scenario, the app will be playing a previously-downloaded commercial. If the device is online when the commercial is played, then the app may perform the network call to execute a tracking beacon. If the device is offline when the commercial is played, the app may store the beacon 330 along with a timestamp 332 of when the beacon was encountered. At the next or subsequent opportunity when the device has network connectivity, the app may call the beacon URL along with the timestamp.
Interactivity
One of the benefits of online video ads, as opposed to a TV broadcast commercial, is interactivity. Online ads may encourage the user of the device to perform an action (e.g., tap on the screen, press a key, nod their head, or some other behavior), which triggers the app to offer more information about the advertiser. For example,
Interactive commercials 340 often contain metadata 342 that specifies the interactive element 344 (for example, using a <VideoClicks> tag in the VAST specification).
In order to perform the associated action, e.g. launch a web site or fetch data on a remote server, the app often needs network connectivity. In this case, the action will fail when the user has previously downloaded the commercial and is viewing it offline.
Here we introduce an implementation that supports interactive commercials during offline playout in a number of ways including one or more of the following and combinations of any two or more of them:
When downloading the commercial, the app also downloads all interactive instructions (in the case of a VAST-compliant system, this means downloading XML data nested within the <VideoClicks> element). If the user attempts to interact with the commercial while the device is offline, but the interactive element requires a network connection, the app records the user intent 346, and informs the user that the action will be performed when network connectivity is restored (See
Having recorded the user intent to access the interactive content, the app may then begin monitoring for network connectivity. Alternatively, this check for connectivity may be performed by a separate application or process. The app may alert 348 the user (e.g., using a pop-up message on the home screen of the device) when network connectivity is restored, to inform the user that they can now perform the interactive action (e.g., launch the associated web page) corresponding to the commercial they saw previously (
To support deferred interactivity, the app monitors and persistently records the user interactions with ads while offline.
The techniques described here can be implemented in digital electronic circuitry, or in hardware, firmware, software, or in combinations of them. The techniques can be implemented as a program product, i.e., a computer program tangibly embodied in an information carrier, e.g., in a machine-readable storage device or in a propagated signal, for execution by, or to control the operation of a processor, a computer, or multiple computers. A program can be written in any form of programming language, including compiled or interpreted languages, and it can be deployed in any form, including as a stand-alone program or as a module, component, subroutine, or other unit suitable for use in a computing or mobile environment. A program can be deployed to be executed on one computer or mobile device or on multiple computers or mobile devices at one site or distributed across multiple sites and interconnected by a communication network.
Activities that we describe can be performed by one or more programmable processors executing a program to perform functions by operating on input data and generating output. Method steps can also be performed by, and apparatus of the invention can be implemented as, special purpose logic circuitry, e.g., an FPGA (field programmable gate array) or an ASIC (application-specific integrated circuit). Modules can refer to portions of the program and/or the processor/special circuitry that implements that functionality.
Processors suitable for the execution of a program include, by way of example, both general and special purpose microprocessors, and any one or more processors of any kind of digital computer or mobile device. Generally, a processor will receive instructions and data from a read-only memory or a random access memory or both. Generally, a computer or mobile device will also include, or be 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. Information carriers suitable for embodying program instructions and data include all forms of non-volatile memory, including by way of example semiconductor memory devices, e.g., EPROM, EEPROM, and flash memory devices; magnetic disks, e.g., internal hard disks or removable disks; magneto-optical disks; and CD-ROM and DVD-ROM disks. The processor and the memory can be supplemented by, or incorporated in special purpose logic circuitry.
To provide for interaction with a user, the techniques that we describe can be implemented on a computer or mobile device having a display device, e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor, for displaying information to the user and a keyboard and a pointing device, e.g., a mouse or a trackball, or a touch surface, by which the user can provide input to the computer or mobile device (e.g., interact with a user interface element, for example, by clicking a button on such a pointing device or touching the touch surface). 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, or tactile input.
The techniques that we describe can be implemented in a distributed system that includes a back-end component, e.g., as a data server, and/or a middleware component, e.g., an application server, and/or a front-end component, e.g., a client computer or mobile device having a graphical user interface and/or a Web browser through which a user can interact with an implementation of the invention, or any combination of such back-end, middleware, or front-end components. The components of the system can be interconnected by any form or medium of digital data communication, e.g., a communication network. Examples of communication networks include a local area network (“LAN”) and a wide area network (“WAN”), e.g., the Internet, cellular telephone networks, and Wi-Fi, and include both wired and wireless networks.
The computing system can include clients and servers. A client and server are generally remote from each other and typically interact over a communication network. The relationship of client and server arises by virtue of programs running on the respective computers or mobile devices and having a client-server relationship to each other.
Other implementations are within the scope of the following claims.
This application is a continuation application and claims priority under 35 U.S.C. § 120 to U.S. application Ser. No. 15/457,351, filed on Mar. 13, 2017, which a continuation and claims the benefit of U.S. application Ser. No. 14/504,360, filed on Oct. 1, 2014, now U.S. Pat. No. 9,621,840, issued on Apr. 11, 2017, which is a continuation application and claims the benefit of U.S. application Ser. No. 14/243,971, filed on Apr. 3, 2014, now U.S. Pat. No. 8,923,683, issued on Dec. 30, 2014 and to U.S. application Ser. No. 14/243,937, filed on Apr. 3, 2014, now U.S. Pat. No. 8,929,717, issued on Jan. 6, 2015, which are both continuation applications of and claim priority under U.S.C. § 120 from U.S. application Ser. No. 14/016,963, filed Sep. 3, 2013, now U.S. Pat. No. 8,718,445, issued on May 6, 2014, which is related to U.S. provisional patent application 61/828,481, filed on May 29, 2013, and to non-provisional patent application Ser. No. 13/923,103, filed on Jun. 20, 2013, the entire contents of all these applications are incorporated here by reference.
Number | Name | Date | Kind |
---|---|---|---|
5850518 | Northrup | Dec 1998 | A |
5893077 | Griffin | Apr 1999 | A |
6138147 | Weaver | Oct 2000 | A |
6611813 | Bratton | Aug 2003 | B1 |
6993245 | Harville | Jan 2006 | B1 |
7164368 | Ireland | Jan 2007 | B1 |
7191332 | Pankajakshan | Mar 2007 | B1 |
7689541 | Le Grand | Mar 2010 | B1 |
7725494 | Rogers | May 2010 | B2 |
7966218 | Fish | Jun 2011 | B1 |
8015253 | Zapata et al. | Sep 2011 | B1 |
8060407 | Delker et al. | Nov 2011 | B1 |
8099511 | Ganesan et al. | Jan 2012 | B1 |
8122102 | Wein | Feb 2012 | B2 |
8195029 | Fujiwara et al. | Jun 2012 | B2 |
8208788 | Ando et al. | Jun 2012 | B2 |
8233879 | Lee | Jul 2012 | B1 |
8413151 | Stratton et al. | Apr 2013 | B1 |
8489731 | Gagliardi | Jul 2013 | B2 |
8510661 | Dharmaji | Aug 2013 | B2 |
8539523 | Philpott et al. | Sep 2013 | B2 |
8606637 | Delker et al. | Dec 2013 | B1 |
8631436 | Arrasvuori | Jan 2014 | B2 |
8701145 | Berger et al. | Apr 2014 | B1 |
8718445 | Berger et al. | May 2014 | B1 |
8788695 | Fox | Jul 2014 | B2 |
8838748 | Nair | Sep 2014 | B2 |
8923683 | Berger et al. | Dec 2014 | B1 |
8929717 | Berger et al. | Jan 2015 | B1 |
8959244 | Lin et al. | Feb 2015 | B2 |
8978086 | Bhatia | Mar 2015 | B2 |
9066115 | Cherry | Jun 2015 | B1 |
9066138 | Kraiman | Jun 2015 | B1 |
9244916 | Berger et al. | Jan 2016 | B2 |
9621840 | Berger et al. | Apr 2017 | B2 |
10104357 | Berger et al. | Oct 2018 | B2 |
20010009855 | L'Anson | Jul 2001 | A1 |
20010031066 | Meyer | Oct 2001 | A1 |
20010051998 | Henderson | Dec 2001 | A1 |
20010052019 | Walters | Dec 2001 | A1 |
20020053090 | Okayama | May 2002 | A1 |
20020056123 | Liwerant | May 2002 | A1 |
20020060747 | Nonomura | May 2002 | A1 |
20020083443 | Eldering et al. | Jun 2002 | A1 |
20020103822 | Miller | Aug 2002 | A1 |
20020133491 | Sim et al. | Sep 2002 | A1 |
20020143629 | Mineyama et al. | Oct 2002 | A1 |
20020169926 | Pinckney | Nov 2002 | A1 |
20030033325 | Boogard | Feb 2003 | A1 |
20030110416 | Morrison et al. | Jun 2003 | A1 |
20030154128 | Liga | Aug 2003 | A1 |
20040039834 | Saunders | Feb 2004 | A1 |
20040260930 | Malik | Dec 2004 | A1 |
20050198097 | Kalnitsky | Sep 2005 | A1 |
20050287971 | Christensen | Dec 2005 | A1 |
20060031407 | Dispensa et al. | Feb 2006 | A1 |
20060041840 | Blair et al. | Feb 2006 | A1 |
20060160543 | Mashinsky | Jul 2006 | A1 |
20060181982 | Villevieille et al. | Aug 2006 | A1 |
20060199548 | Saraby | Sep 2006 | A1 |
20060206889 | Ganesan et al. | Sep 2006 | A1 |
20070005795 | Gonzalez | Jan 2007 | A1 |
20070025363 | Zhang | Feb 2007 | A1 |
20070113243 | Brey | May 2007 | A1 |
20070162571 | Gupta et al. | Jul 2007 | A1 |
20070174774 | Lerman et al. | Jul 2007 | A1 |
20070180118 | Kim et al. | Aug 2007 | A1 |
20070204057 | Shaver et al. | Aug 2007 | A1 |
20070207755 | Julia | Sep 2007 | A1 |
20070226810 | Hotti | Sep 2007 | A1 |
20070294422 | Zuckerman et al. | Dec 2007 | A1 |
20070294772 | Hydrie et al. | Dec 2007 | A1 |
20070300263 | Barton et al. | Dec 2007 | A1 |
20080010117 | Oliveira | Jan 2008 | A1 |
20080010133 | Pyhalammi et al. | Jan 2008 | A1 |
20080010372 | Khedouri | Jan 2008 | A1 |
20080032739 | Hoodbhoy et al. | Feb 2008 | A1 |
20080060000 | Drouet et al. | Mar 2008 | A1 |
20080091796 | Story et al. | Apr 2008 | A1 |
20080098301 | Black et al. | Apr 2008 | A1 |
20080098420 | Khivesara et al. | Apr 2008 | A1 |
20080114861 | Gildred | May 2008 | A1 |
20080201751 | Ahmed | Aug 2008 | A1 |
20080207200 | Fein et al. | Aug 2008 | A1 |
20080255943 | Morten et al. | Oct 2008 | A1 |
20080263581 | Turner | Oct 2008 | A1 |
20080281448 | Uhrig | Nov 2008 | A1 |
20080289006 | Hock et al. | Nov 2008 | A1 |
20090001173 | Sevier et al. | Jan 2009 | A1 |
20090006642 | Dickens | Jan 2009 | A1 |
20090019468 | Ganesan et al. | Jan 2009 | A1 |
20090025048 | Ganesan | Jan 2009 | A1 |
20090030926 | Aharoni | Jan 2009 | A1 |
20090037515 | Zapata et al. | Feb 2009 | A1 |
20090048914 | Shenfield et al. | Feb 2009 | A1 |
20090055547 | Hudson | Feb 2009 | A1 |
20090061925 | Finkelstein et al. | Mar 2009 | A1 |
20090070841 | Buga et al. | Mar 2009 | A1 |
20090074051 | Manapragada et al. | Mar 2009 | A1 |
20090094113 | Berry et al. | Apr 2009 | A1 |
20090097826 | Kim et al. | Apr 2009 | A1 |
20090119730 | Perlman et al. | May 2009 | A1 |
20090150558 | Lee et al. | Jun 2009 | A1 |
20090185788 | Lee et al. | Jul 2009 | A1 |
20090222851 | Talmi | Sep 2009 | A1 |
20090254966 | Josephs et al. | Oct 2009 | A1 |
20090274447 | Morinaga et al. | Nov 2009 | A1 |
20090287841 | Chapweske | Nov 2009 | A1 |
20090303231 | Robinet et al. | Dec 2009 | A1 |
20090319375 | Dharmaji | Dec 2009 | A1 |
20090327976 | Williamson et al. | Dec 2009 | A1 |
20100057576 | Brodersen et al. | Mar 2010 | A1 |
20100095012 | Zuckerman | Apr 2010 | A1 |
20100111500 | Kuroda | May 2010 | A1 |
20100115060 | Julia et al. | May 2010 | A1 |
20100125628 | Huysegems et al. | May 2010 | A1 |
20100185854 | Burns et al. | Jul 2010 | A1 |
20100198982 | Fernandez | Aug 2010 | A1 |
20100211431 | Lutnick | Aug 2010 | A1 |
20100222046 | Cumming | Sep 2010 | A1 |
20100228591 | Therani | Sep 2010 | A1 |
20100235762 | Laiho | Sep 2010 | A1 |
20100269138 | Krikorian et al. | Oct 2010 | A1 |
20100273553 | Zalewski | Oct 2010 | A1 |
20100274664 | Fernandez | Oct 2010 | A1 |
20100287580 | Harding et al. | Nov 2010 | A1 |
20100306402 | Russell et al. | Dec 2010 | A1 |
20110066703 | Kaplan | Mar 2011 | A1 |
20110066749 | Alstrup et al. | Mar 2011 | A1 |
20110066768 | Brittner et al. | Mar 2011 | A1 |
20110087603 | Garcia et al. | Apr 2011 | A1 |
20110087794 | Li et al. | Apr 2011 | A1 |
20110191812 | Cory et al. | Aug 2011 | A1 |
20110219402 | Candelore et al. | Sep 2011 | A1 |
20110246661 | Manzari et al. | Oct 2011 | A1 |
20110252118 | Pantos et al. | Oct 2011 | A1 |
20110264732 | Robbin et al. | Oct 2011 | A1 |
20110276621 | Edery et al. | Nov 2011 | A1 |
20110276993 | Ferguson | Nov 2011 | A1 |
20110295980 | Aldis et al. | Dec 2011 | A1 |
20110296048 | Knox | Dec 2011 | A1 |
20110306386 | Centoza et al. | Dec 2011 | A1 |
20120005313 | McGowan | Jan 2012 | A1 |
20120005365 | Ma et al. | Jan 2012 | A1 |
20120023251 | Pyle et al. | Jan 2012 | A1 |
20120054818 | Noh et al. | Mar 2012 | A1 |
20120079605 | Bolin et al. | Mar 2012 | A1 |
20120086552 | Fast et al. | Apr 2012 | A1 |
20120143994 | Calcev et al. | Jun 2012 | A1 |
20120150992 | Mays | Jun 2012 | A1 |
20120158515 | K. | Jun 2012 | A1 |
20120167132 | Mathews | Jun 2012 | A1 |
20120169608 | Forutanpour et al. | Jul 2012 | A1 |
20120170906 | Soroushian et al. | Jul 2012 | A1 |
20120198041 | Black et al. | Aug 2012 | A1 |
20120198042 | Dunbar et al. | Aug 2012 | A1 |
20120198333 | Kramer et al. | Aug 2012 | A1 |
20120246279 | Zang | Sep 2012 | A1 |
20120254456 | Visharam et al. | Oct 2012 | A1 |
20120254565 | Mitra et al. | Oct 2012 | A1 |
20120265029 | Fahey | Oct 2012 | A1 |
20120278728 | Malin et al. | Nov 2012 | A1 |
20120278837 | Curtis et al. | Nov 2012 | A1 |
20120289147 | Raleigh et al. | Nov 2012 | A1 |
20120304233 | Roberts et al. | Nov 2012 | A1 |
20120331168 | Chen | Dec 2012 | A1 |
20130018899 | Hargreaves et al. | Jan 2013 | A1 |
20130054728 | Amir et al. | Feb 2013 | A1 |
20130054837 | Von Elgg et al. | Feb 2013 | A1 |
20130070093 | Rivera | Mar 2013 | A1 |
20130080267 | McGowan | Mar 2013 | A1 |
20130080579 | Gordon | Mar 2013 | A1 |
20130080772 | McGowan | Mar 2013 | A1 |
20130099920 | Song et al. | Apr 2013 | A1 |
20130100944 | Kwon et al. | Apr 2013 | A1 |
20130142055 | Bao et al. | Jun 2013 | A1 |
20130165208 | Nelson et al. | Jun 2013 | A1 |
20130174272 | Chevalier et al. | Jul 2013 | A1 |
20130179913 | Haberman et al. | Jul 2013 | A1 |
20130185488 | Talagala et al. | Jul 2013 | A1 |
20130219426 | Zweig et al. | Aug 2013 | A1 |
20130227080 | Gao et al. | Aug 2013 | A1 |
20130232198 | Tenbrock | Sep 2013 | A1 |
20130232232 | Reza | Sep 2013 | A1 |
20130238740 | Vass et al. | Sep 2013 | A1 |
20130246643 | Luby et al. | Sep 2013 | A1 |
20130283393 | Hierro et al. | Oct 2013 | A1 |
20130297466 | Rossato et al. | Nov 2013 | A1 |
20130308699 | Musser | Nov 2013 | A1 |
20130311775 | Nair et al. | Nov 2013 | A1 |
20130336320 | Rangaraman | Dec 2013 | A1 |
20140012949 | Meyers et al. | Jan 2014 | A1 |
20140059244 | Panje et al. | Feb 2014 | A1 |
20140068684 | Mehta et al. | Mar 2014 | A1 |
20140089993 | Huysegerns | Mar 2014 | A1 |
20140095667 | Quan et al. | Apr 2014 | A1 |
20140108495 | Benno | Apr 2014 | A1 |
20140129676 | Zeng et al. | May 2014 | A1 |
20140165118 | Garcia | Jun 2014 | A1 |
20140198641 | Perkuhn et al. | Jul 2014 | A1 |
20140201334 | Wang et al. | Jul 2014 | A1 |
20140215536 | Maxwell et al. | Jul 2014 | A1 |
20140223503 | Govande et al. | Aug 2014 | A1 |
20140245359 | De Foy et al. | Aug 2014 | A1 |
20140279852 | Chen | Sep 2014 | A1 |
20140280990 | Dove et al. | Sep 2014 | A1 |
20140281010 | Panje et al. | Sep 2014 | A1 |
20140344034 | Goodman | Nov 2014 | A1 |
20140355955 | Berger et al. | Dec 2014 | A1 |
20140359081 | Van Deventer | Dec 2014 | A1 |
20140365677 | Mueller et al. | Dec 2014 | A1 |
20150046470 | Koo et al. | Feb 2015 | A1 |
20150063783 | Berger et al. | Mar 2015 | A1 |
20150074709 | Berger et al. | Mar 2015 | A1 |
20150074715 | Berger et al. | Mar 2015 | A1 |
20150095460 | Berger et al. | Apr 2015 | A1 |
20150180873 | Mooij | Jun 2015 | A1 |
20150207841 | Drang | Jul 2015 | A1 |
20150215359 | Bao et al. | Jul 2015 | A1 |
20150281751 | Nemiroff | Oct 2015 | A1 |
20150288733 | Mao | Oct 2015 | A1 |
20150296274 | Good | Oct 2015 | A1 |
20150325268 | Berger et al. | Nov 2015 | A1 |
20150350703 | Rynderman et al. | Dec 2015 | A1 |
20150356612 | Mays et al. | Dec 2015 | A1 |
20150365450 | Gaunt et al. | Dec 2015 | A1 |
20150373075 | Perlman et al. | Dec 2015 | A1 |
20160028845 | Barr et al. | Jan 2016 | A1 |
20160057189 | Mosko et al. | Feb 2016 | A1 |
20160057465 | Jones | Feb 2016 | A1 |
20160165309 | Van Brandenburg et al. | Jun 2016 | A1 |
20160323348 | Bradbury et al. | Nov 2016 | A1 |
20170155912 | Thomas et al. | Jun 2017 | A1 |
20170188001 | Berger et al. | Jun 2017 | A1 |
Number | Date | Country |
---|---|---|
WO 2014193813 | Dec 2014 | WO |
WO 2015034750 | Mar 2015 | WO |
WO 2015038359 | Mar 2015 | WO |
WO2015050651 | Apr 2015 | WO |
WO 2015175367 | Nov 2015 | WO |
Entry |
---|
Digital Video Ad Serving Template (VAST) 3.0, “iab.com”, retrieved from the internet on htt12:/i\vwwiab.netivast, Oct. 4, 2013 (3 pages). |
Gibbs, Cohn, “GoldSpot Delivers Mobile Ads While You Sleep”, Mar. 5, 2010 (4 pages). |
Powerpoint, “XfinitylM TV Player app”, PowerPoint Presentation, Oct. 4, 2013 (7 pages). |
VAST, “Digital Video Ad Serving Template (VAST) 3.0”, http://w\\iw.iab.net/vast, retrieved from the Internet on Sep. 3, 2013 (3 pages). |
U.S. Appl. No. 15/963,954, filed Apr. 16, 2018—published 20180241981. |
U.S. Appl. No. 15/457,351, filed Mar. 13, 2017—issued U.S. Pat. No. 10,104,357. |
U.S. Appl. No. 14/504,360, filed Oct. 1, 2016—issued U.S. Pat. No. 9,621,840. |
U.S. Appl. No. 14/243,971, filed Apr. 13, 2014—issued U.S. Pat. No. 8,923,683. |
U.S. Appl. No. 14/243,937, filed Apr. 3, 2014—issued U.S. Pat. No. 8,929,717. |
Complete application as filed for U.S. Appl. No. 13/923,103, filed Jun. 20, 2013. |
Complete application as filed for U.S. Appl. No. 14/025,797, filed Sep. 12, 2013. |
U.S. Appl. No. 14/016,963, filed Sep. 3, 2013 and allowed claims. |
Pending claims for U.S. Appl. No. 14/524,673. |
U.S. Appl. No. 13/923,103. |
U.S. Appl. No. 14/193,830. |
U.S. Appl. No. 14/193,888. |
U.S. Appl. No. 14/524,673. |
U.S. Appl. No. 14/025,797. |
Transaction history and allowed claims from U.S. Appl. No. 13/923,103 as of Oct. 1, 2014. |
Transaction history and allowed claims from U.S. Appl. No. 14/193,830 as of Oct. 1, 2014. |
Transaction history and allowed claims from U.S. Appl. No. 14/193,888 as of Oct. 1, 2014. |
Transaction history and allowed claims from U.S. Appl. No. 14/243,937 as of Oct. 1, 2014. |
Transaction history and allowed claims from U.S. Appl. No. 14/243,971 as of Oct. 1, 2014. |
Transaction history and allowed claims from U.S. Appl. No. 14/275,710 as of Oct. 1, 2014. |
U.S. Appl. No. 14/016,963, now U.S. Pat. No. 8,718,445. |
Transaction history of U.S. Appl. No. 14/016,963 as of Apr. 2, 2014. |
Transaction history, application and pending claims of U.S. Appl. No. 13/923,103. |
Transaction history, application and pending claims of U.S. Appl. No. 14/193,830. |
Transaction history, application and pending claims of U.S. Appl. No. 14/243,937. |
Transaction history, application and pending claims of U.S. Appl. No. 14/275,710. |
U.S. Appl. No. 14/016,963, filed Sep. 3, 2013—issued U.S. Pat. No. 8,718,445. |
U.S. Appl. No. 14/982,894, filed Dec. 29, 2015—Published 20160234293. |
U.S. Appl. No. 14/042,952, filed Oct. 1, 2013—Issued U.S. Pat. No. 9,244,916. |
U.S. Appl. No. 14/524,673, filed Oct. 27, 2014—Published 20150325268. |
U.S. Appl. No. 14/275,710, filed May 12, 2014—Abandoned. |
Akhshabi et al., “An Experimental Evaluation of Rate-Adaption Algorithms in Adaptive Streaming over HTTP”, MM System 2011 Proceedings of the Second Annual ACM Conference on Multimedia Systems, Feb. 2011, pp. 157-168. |
Alumaula et al., “Cache & Carry: Predictive Content Caching in Intermittently Connected Mobile Devices”, 2006. |
Arya et al., “A Methodology for Selecting Experiments to Measure Energy Costs in Smartphones”, 2011 7th International Wireless Communications and Mobile Computing Conference, Jul. 2011, 6 pages. |
BrightCove.com [online], “Progressive Download versus Streaming”, Mar. 31, 2009, [retrieved on Jul. 22, 2019], retrieved from: URL<https://www.brightcove.com/en/blog/2009/03/progressive-download-versus-streaming/>, 5 pages. |
International Preliminary Report on Patentability issued in PCT application PCT/US2014/053196 dated Apr. 14, 2016 (7 pages). |
Fielding et al., “Hypertext Transfer Protocol—HTTP/1.1”, 1997, 163 pages. |
Hofmann et al., “A Study of Network Performance with Application to Adaptive HTTP Streaming”, Fraunhofer Institute for Integrated Circuits, 2011, 6 pages. |
International Preliminary Report on Patentability from PCT/US2014/039534 dated Dec. 10, 2015 (7 pages). |
International Preliminary Report on Patentability from PCT/US2014/053224 dated Mar. 17, 2016 (8 pages). |
International Preliminary Report on Patentability from PCT/US2014/053410 dated Mar. 29, 2016 (9 pages). |
International Preliminary Report on Patentability from PCT/US2015/030070 dated Nov. 23, 2016 (8 pages). |
International Search Report and Written Opinion from corresponding PCT application No. PCT/US2014/053224 dated Nov. 24, 2014 (10 pages). |
International Search Report and Written Opinion from corresponding PCT application No. PCT/US2014/053410 dated Jan. 21, 2015 (17 pages). |
International Search Report and Written Opinion from corresponding PCT application No. PCT/US2015/030070 dated Aug. 7, 2015 (14 pages). |
International Search Report and Written Opinion from PCT application PCT/US2014/053196 dated Feb. 9, 2015 (13 pages). |
International search report and written opinion from PCT application PCT/US2014/39534 dated Oct. 10, 2014 (12 pages). |
ISO/IEC, “Information Technology—JPEG 2000 Image Coding System—Part 12: ISO Base Media File Format”, ISO/IEC, 2005, Second Edition, 15444-12. |
ITU-T, “Information Technology—JPEG 2000 Image Coding System—Part 10: Extensions for Three-Dimensional Data”, ISO/IEC 15444-10:200X, 2000. |
Lazic et al., “One Implementation of Adaptive Streaming Over HTTP on Android DTV Platform”, IEEE Second International Conference on Consumer Electronics, 2012, 3 pages. |
Liu et al., “A Survey on peer-to-peer video streaming systems”, Peer-to-Peer Networking and Applications, Mar. 2008, 1(1):18-28. |
Marpe et al., “The H.264/MPEG4 Advanced Video Coding Standard and its Applications”, IEEE Communications Magazine Standards Report, Aug. 2006, pp. 134-143. |
Merriam-Webster, “Download”, 2015. |
Merriam-Webster, “Stream”, 2015. |
Merriam-Webster, “Streaming”, 2015. |
Michalos et al., “Dynamic Adaptive Streaming Over HTTP”, Journal of Engineering Science and Technology Review, Sep. 2012, 5(2):30-34. |
MythTV Wikipedia, “Commercial Detection”, MythTV, retrieved from the Internet on Sep. 11, 2013 (2 pages). |
Notice of Allowance from U.S. Appl. No. 14/275,710 dated Jul. 28, 2014 (11 pages). |
OnlineVideo.com [online], “Streaming vs. Progressive Download vs. Adaptive Streaming”, May 13, 2011, [retrieved on Jul. 22, 2019] retrieved from: URL<www.onlinevideo.net/2011/05/streaming-vs-progressive-download-vs-adaptive-streaming/>, 8 pages. |
Application and pending claims for U.S. Appl. No. 13/923,103, filed Feb. 5, 2015. |
Application and pending claims for U.S. Appl. No. 14/193,830, filed Feb. 5, 2015. |
Application and pending claims for U.S. Appl. No. 14/193,888, filed Feb. 5, 2015. |
Application and pending claims for U.S. Appl. No. 14/504,360, filed Feb. 5, 2015. |
U.S. Appl. No. 14/042,952, filed Dec. 29, 2015. |
Paul et al., “The Cache-and-Forward Network Architecture for Efficient Mobile Content Delivery Services in the Future Internet”, 2008 First ITU-T Kaleidscope Academic Conference Innovations in NGN: Future Network and Services, May 2008, 8 pages. |
Romero, “A Dynamic Adaptive HTTP Streaming Video Service for Google Android”, Master of Science Thesis: School of Information and Communication Technology, Oct. 6, 2011, 148 pages. |
Schulzrinne et al., “Real Time Streaming Protocol (RTSP)”, Network Working Group, Apr. 1998, 93 pages. |
Schulzrinne, et al. “RFC 1889: RTP: A transport protocol for real-time applications.” (1996): 25, 71 pages. |
Sodagar, “MPEG-DASH: The Standard for Multimedia Streaming Over Internet”, Communication Group, Apr. 2012. |
Stockhammer, “Dynamic Adaptive Streaming over HTTP: Standards and Design Principles”, ResearchGate Conference Paper, Jan. 2011, 4 pages. |
Talukdar et al., “Streaming Video Capacities of LTE Air-Interface”, 2010 IEEE International Conference on Communication, May 2010, 5 pages. |
Webtvsolutions.com [online], Progressive vs. Streaming Download (VOD), Mar. 11, 2019, [retrieved on Jul. 22, 2019], retrieved from: URL<https://www.webtvsolutions.com/support.php?s=other_docs&d=streaming_progressive_vs_streaming&lang=en#>, 2 pages. |
Wikipedia.com [online], “Progressive Download”, Published on or before Aug. 7, 2019, [retrieved on Aug. 7, 2019], retrieved from: URL<wikipedia.com/>, 1 page. |
Yates et al., “Postcards from the Edge: A Cache and Forward Architecture for the Future Internet”, Wireless Information Network Laboratory, 2008, 18 pages. |
Zannbelli, “IIS Smooth Streaming Technical Overview” Microsoft Silverlight, Mar. 2009, 17 pages. |
Number | Date | Country | |
---|---|---|---|
20180241981 A1 | Aug 2018 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 15457351 | Mar 2017 | US |
Child | 15963954 | US | |
Parent | 14504360 | Oct 2014 | US |
Child | 15457351 | US | |
Parent | 14243937 | Apr 2014 | US |
Child | 14504360 | US | |
Parent | 14243971 | Apr 2014 | US |
Child | 14243937 | US | |
Parent | 14016963 | Sep 2013 | US |
Child | 14243971 | US | |
Parent | 14016963 | Sep 2013 | US |
Child | 14016963 | US |