Cross-platform end caps

Methods, systems, and apparatus, including computer programs encoded on a computer storage medium, for providing a call to action at the end of a resource. In one aspect, a method includes receiving a request for media content to present on a user device, the request including a second request for third-party content to present with the media content, identifying, user device capabilities that describes information about system compatibility for the user device, determining third-party content to present with the media, the third-party content including a first presentation time duration indicative of a length of time the third-party content is presented, determining that an end cap is compatible with the user device and related to the third-party content, the end cap providing an interactive opportunity to request subsequent resources for the user device, and transmitting data to present the third-party content, the end cap, and the media.

BACKGROUND

This specification relates to data processing.

Different devices have different capabilities. For example, mobile devices (e.g., smart phones) are generally able to initiate a phone call, while other types of devices may not be able initiate a phone call. Some content that is distributed to multiple different types of devices include embedded functionality (e.g., in end caps) which can cause the device to initiate an action.

SUMMARY

In general, one innovative aspect of the subject matter described in this specification can be embodied in methods that include the actions performed by data processing apparatus, including receiving, at a video distribution system, a request for media content to present on a user device, the request including a second request for third-party content to present with the media content, identifying, by the video distribution system and from data transmitted with the request, user device capabilities that describes information about system compatibility for the user device, determining, based on the second request, third-party content to present with the media, the third-party content including a first presentation time duration indicative of a length of time the third-party content is presented, determining that an end cap is compatible with the user device and related to the third-party content, the end cap providing an interactive opportunity to request subsequent resources for the user device, and transmitting, to the user device, data to present the third-party content, the end cap, and the media, wherein end cap data is appended at the end of the third-party content data such that the end cap is presented after the third-party content, and wherein the end cap extends the first presentation time duration of the third-party content to a second presentation time duration that is a cumulative time of presentation for the third-party content and the end cap.

Particular embodiments of the subject matter described in this specification can be implemented so as to realize one or more of the following advantages. Systems and methods provide users and third-party content providers with a cross platform end cap to append to third-party content irrespective of the device type to which the third-party content is being provided. The end cap is provided according to user device capabilities without requiring a third-party content to include burn-ins that are not compatible with all devices and operating systems. By providing different interaction models for the different user devices, the user device does not experience a broken video instance (e.g., where the video freezes and the user cannot take action) that is caused when the user device is provided with incompatible data or data that is not supported by the user device. The end cap includes at least one call to action element providing an opportunity to request subsequent resources. Since the end cap is provided based on user device compatibility, the call to action also provides subsequent resources that are user device compatible. User compatible end caps also provide a seamless transition between third-party content, the end cap, and the media presented. The end cap is selectively appended to third-party content, at least in part, based on capabilities of the user device to which the third-party content is being provided to ensure that a call to action provided by the end cap can be performed by the user device, thereby preventing malfunctions or errors at the user device. The technology disclosed by this document enables a still image to be presented in a video playback application for a specified duration of time, for example, by incorporating a script that generates pings that would be generated during video playback for the specified period of time. This causes the video playback application to continue presentation of the still image, and advance a visual playback indicator of the video playback application to make it appear that the endcap is part of the video presentation.

DETAILED DESCRIPTION

The apparatus, systems, and methods described in this document enable a third-party content provider to incorporate an end cap into various instances of third-party content in a platform agnostic manner. As used throughout this document, the phrase end cap refers to a portion of content beyond that presented by a given media file. A graphic, image, or video that is presented following playback of an audio/video file is an example of an end cap.

In some implementations, an end cap includes a call to action, which enables a user to take one or more specified actions by interacting with the end cap. For example, an end cap can include active links that initiate various actions in response to user interaction with the active links. For instance, one of the active links can initiate a request for a specified web page, while another active link may initiate a phone call to a specified phone number.

A video distribution system can determine whether or not to provide the end cap with a given instance of third-party content based, at least in part, on user device capabilities. For example, end caps that include a call to action that initiates a phone call may only be provided when the user device that will receive the third-party content is capable of initiating a phone call. Similarly, end caps can be distributed in formats compatible with specific operating systems, user devices, media player versions, etc. Thus, it is possible to provide end caps with the same content (e.g., a same video), but in different formats, that are specifically tailored to each user device. As discussed in more detail below, end caps can be appended to the third-party content, and the time duration of the third-party content, as shown on the user device, can be extended by the presentation duration of the end cap. When the end of the third-party content is reached, and the end cap is being presented, a visual playback indicator showing playback progress of the third-party content can continue to advance based on simulated playback pings thereby giving the appearance that the endcap is part of the third-party content.

FIG. 1is a block diagram of an example environment100in which content is distributed to user devices. A computer network102, such as a local area network (LAN), wide area network (WAN), the Internet, or a combination thereof, connects a video distribution system110to user devices104. The video distribution system110accesses third-party content112, end caps116, and media114.

A user device104is an electronic device capable of requesting and receiving resources over the network102. Example user devices104include personal computers, mobile communication devices (e.g., smart phones and tablet devices), and other devices that can send and receive data over the network102. A user device104typically includes a user application124, such as a web browser or native application, to facilitate the sending and receiving of data over the network102. The user application124can enable a user to display and interact with text, images, videos, music and other information typically located on a web page at a web site on the World Wide Web or a local area network. For example, a user device can initiate a media request108that requests a given media118from a content server120. The media request108can be generated, for example, by a user directly entering a URL of the given media118into a browser, or by the user device being directed to the given media118by an active link (e.g., a hypertext link) that when activated (e.g., through user interaction with the active link) generates the request108. In response to receiving the media request108, a content server120can provide the given media118to the user device104for presentation.

The given media118can include content (e.g., music, images, videos, or other content) provided by the content server120. In some implementations, the given media118can include a script (e.g., one or more lines of machine readable instructions) that automatically (e.g., without human intervention) generates an electronic request106for third-party content (e.g., “3rd Party Content Request” inFIG. 1) when the given media118reaches the user device104. As used throughout this document, third-party content refers to content (e.g., an advertisement) that is presented with media118(e.g., video and/or audio), but is provided by an entity that differs from the publisher of the media118. The entity that provides the third-party content is referred to as a third-party content provider. Often, third-party content is combined with the media when the given media is presented (e.g. so that the third-party content presented with the media content can be dynamically changed on a per-request basis). In some implementations, the third-party content can be content that is not embedded in media118, but rather only selected and shown at the beginning, end, or at some point during playback of the media118.

The user device104transmits a third-party content request106to the third-party content distribution system (TPCDS)110. In response to receiving the request, the TPCDS110identifies the third-party content that will be presented with the media118. The TPCDS110includes one or more data processing apparatus that interact with the user devices104and distribute third-party content and/or end caps that are presented with the media118at the user devices104.

In some implementations, the content server120may send a third-party content request106to the TPCDS110. For example, when the content server120receives a media request108from the user device104, the content server120can send a request to the TPCDS for third-party content. The content server120receives the requested third-party content and can send the given media118and the received third-party content to the user device104.

The TPCDS110includes a third-party content data storage device112and an end cap data storage device116. The third-party content data storage device112stores third-party content and/or various data related to the third-party content (e.g., distribution criteria, budget information, click through rates, a number of impressions, and/or a number of conversions for various portions of third-party content). In some implementations, the third-party content are advertisements that are distributed based on bids and/or the outcome of a content selection process (e.g., an auction).

In some implementations, the TPCDS110selects third-party content based on the outcome of an auction to select content that is provided in response to each third-party content request106. The third-party content is ranked according to a score that, in some implementations, is based on a value of the bids (and/or other ranking parameters) associated with the content. The TPCDS110also selects the third-party content based on information included in the third-party content request106, distribution criteria of the third-party content, content presentation goals of the publisher, content presentation goals of third-party content providers, an informational need of a user, and/or other content selection parameters.

The TPCDS110provides cross platform end caps for presentation with third-party content at various user devices104. An end cap enables third-party content providers to offer users an opportunity to take an action following presentation of the third-party content. In some implementations, the opportunity to take action is provided in the form of a call to action control. As used throughout this document, a call to action control is a user interface element that performs a specified action (e.g., based on execution of code of the call to action control) in response to user interaction (e.g., click, swipe, etc.) with the call to action control. For example, the call to action control can include a script (or other code) that, in response to detecting user interaction with the call to action control, causes the user device to initiate a telephone call, request a specified web page, open a specified native application that is installed on the user device, download a given application to the user device, or similar actions indicative of a user's desire for further action.

In some implementations, end caps are selectively presented with various third-party content, such that end caps are not necessarily appended to third-party content provided in response to each third-party content request106. Rather, the determination of whether an end cap is appended to third-party content can be made on a per-request basis. The third-party content distribution system (TPCDS)110can determine whether to append an end cap to third-party content based, for example, on user device capability and/or user preferences.

The TPCDS110uses metadata from the third-party content request106to determine the user device's capability to support various available end caps. In some implementations, the TPCDS110uses the metadata to identify the user device type, the user device's operating system, the user device's operating system's version, native applications and native application versions installed on the user device104, user device location and/or other data indicative of user device compatibility. For example, the TPCDS110can identify that a user device utilizes a given operating system, the version of the given operating system and the presence and version of a media playback application124. Thus, the TPCDS110can provide an end cap that is compatible with the detected operating system version and an end cap that will play on the particular version of the media playback application124.

In addition, TPCDS110may provide an end cap with a call to action that, based on the user interaction, initiates an action that is supported by the devices capabilities. In some implementations, the TPCDS110may provide an end cap based on whether the user device can make a phone call, install mobile native applications, runs desktop applications, utilize mobile versions of websites, and other functions indicative of the user device's capabilities. For example, when the user device104is not capable of making a phone call, the TPCDS110will not provide an end cap with a call to action that makes a phone call.

In some implementations, a user device104can have a broken experience. A broken experience can be when a user cannot engage the call to action as desired because the user device104does not have the capability to engage with the end cap. For example, an end cap may have a call to action that makes a phone call when a user interacts with the call to action. In this instance, if the user device104is not capable of making a phone, the user device104may freeze because the user device104is trying to execute script and/or code that the user device104is incapable of executing. The TPCDS110provides end caps compatible with the user device104to prevent the user device104from malfunctioning (e.g., freezing, resetting, locking, etc.) due to presentation (or user interaction with) an end cap that the user device is not capable of utilizing.

The TPCDS110can also provide end caps, not only based on user device capability, but based on user preferences and past user behaviors. In some implementations, the third-party content distribution system110can employ machine learning to determine user preferences. For example, machine learning techniques can be used to generate a user behavior model based on user responses to previously presented third-party content and/or end caps. The model is then used to predict user response to various end caps, and used, in part, to selectively deliver end caps on a per-request basis.

For purposes of illustration assume a given user typically interacts with shorter duration end caps and the given user has a tendency to skip longer duration end caps (e.g., by clicking a skip button or closing the media player). In this example, the model may predict that the given user is more likely to interact with end caps having a presentation time of three to five seconds. Therefore, the TPCDS110will provide shorter end caps because the system110learned (e.g., through machine learning or some other predictive process) that the user is typically responsive to shorter end caps.

In some implementations, the TPCDS110may also learn the types, subject, and/or topics of content presented within the third-party content and/or end caps that the given user historically interacts with during end cap presentation. In this instance, the TPCDS110can learn user preferences for particular topics or subjects. Thus, the TPCDS110can choose which end caps to provide based on learned user preferences. Further details describing TPCDS110data collection and analysis will be described in connection withFIG. 3.

The TPCDS110, upon determining which third-party content to present and identifying a suitable end cap, retrieves the third-party content and the suitable end cap from their respective data storage112,116. The TPCDS110concatenates the third-party content and the end cap122and provides the concatenated third-party content and the suitable end cap122to the user device104. The data representative of the concatenated media file122is transmitted for presentation on the user device104. The TPCDS110provides the third-party content and the end cap122in a format that enables presentation to appear seamless and without glitches or interruptions. For example, the user application124presents the third-party content and then seamlessly transitions to presentation of the end cap122.

In some implementation, when the end cap is appended to the third-party content, the third-party content's presentation time duration is extended by the end cap's presentation time duration. For example, assume that a given third-party content duration is 20 seconds, and that the presentation time duration of the end cap is set to 10 seconds. In this example, the presentation time duration of the third-party content can be extended to 30 seconds so that when the third-party content finishes playback, a playback timer will continue to count up to 30 seconds, thereby giving the appearance that the end cap is part of the third-party content.

Typically, user devices104utilize a media content player124for media presentation126. The media content player124displays a presentation time duration for the presented media. In some implementations, during playback of the concatenated third-party content and end cap126, the media content player124will display the presentation time duration of the appended end cap and third-party content in the extended time duration indicator.

FIG. 2is a block diagram showing a media content player200that includes a playback indicator202. The playback indicator202shows a total duration of a media file being presented by the media content player200. For example, the playback indicator202shows that the total duration of the media file is 35 seconds. The playback indicator202includes a progress marker203that shows playback progress of the media file (e.g., which portion of the media file is currently being presented). For example, as shown by the progress marker203ofFIG. 2, playback of the media file has reached the 10 second point out of a total of 35 seconds.

As discussed above, the presentation time duration of an end cap that is provided with a given third-party content can be added to the time duration of the third-party content. In this example, the third-party content duration is 30 seconds, as shown by the portion204of the playback indicator202, while the presentation time duration of the end cap is 5 seconds, as shown by the portion206of the playback indicator202. Therefore, the combined duration of the third-party content and the end cap presentation is 35 seconds, which is the total presentation time shown by the playback indicator. In this example, when playback of the third-party content reaches the 30 second mark (i.e., the end of the third-party content duration), the media content player200will seamlessly transition to presentation of the end cap for 5 an additional seconds. When the transition to the end cap occurs, the progress marker203will continue to advance from 30-35 seconds even though the media content has already ended.

In some implementations, the third-party content distribution system110generates code that causes the playback indicator202to display the combined durations of the third-party content and the presentation time duration of the end cap, and causes the progress marker to continue to advance after playback of the third-party content has concluded (e.g., reached 30 seconds in the example above).

Typically, during third-party content presentation, data encoded within the third-party content generates progress events (e.g., pings) at a regular interval. In some implementations, the progress events update the media content player200such that the progress marker progresses along the playback indicator202. For example, a progress event may be generated every second. Thus, every second, upon receiving the progress event, the media content player200progresses the progress marker203to a location corresponding to the next second.

In some implementations, the end cap includes code that simulates progress events, similar to those generated by the third-party content, that cause the progress marker203to progress the playback indicator202during end cap presentation. The simulated progress events enable the playback indicator to continue presentation of time tracking even though the third-party content has ended, and the end cap may be a static image. In addition, the simulated progress events (or other code provided with the end cap) notify the media content player200that presentation of the third-party content has transitioned to presentation of the end cap to prevent errors in data that are tracked and reported to the TPCDS110by the media content player200, as discussed in more detail below.

In some implementations, the playback indicator may reset when the end cap begins playing, displaying only the duration of the end cap. For example, if the third-party content duration is 30 seconds and the end cap duration is 5 seconds, during the presentation of the third-party content, the playback indicator202will show a total duration of 30 seconds. After the third-party content has finished presentation, the end cap will begin presentation and the playback indicator202will reset and display a total duration of 5 seconds.

FIG. 3is a block diagram showing a media content player200displaying an end cap301that includes a call to action306. In some implementations, the end cap301displays a static image, a video, or the last frame of the third-party content. For example, when playback of the third-party content reaches a final video frame, the final frame can remain displayed throughout the end cap presentation duration. In addition, font, color, textures, and other characteristics of the end cap can be customized by third-party content providers to match branding or for other purposes.

Embedded in the end cap is a call to action element306that enables the user to interact with the end cap. As previously discussed, user interaction with the call to action initiates an action that is performed by the user device. For example, the call to action may be a “contact” call to action that initiates a phone call from the user device. In some implementations, the end cap may have multiple calls to action embedded into the end cap.

As shown inFIG. 3, a progress marker203has progressed beyond the total duration of the third-party content (e.g., 30 seconds), and is continuing to advance based on simulated progress events (e.g., pings) that are generated based on code that is provided to the user device104with the end cap.

As discussed above, during the third-party content playback, the progress events generated by the third-party content cause the progress marker203to visually advance through the playback indicator202. These progress events are also used for other purposes. For example, these progress events can be used to determine how much of the third-party content has been presented. For example, during each given playback of third-party content, the number (or type) of progress events that are detected may indicate that some specified portion of the third-party content was presented in the media content player200during that playback. More specifically, the progress events can be used to determine whether playback of the third-party content completed, whether a pre-specified portion of the third-party content was presented, and/or whether the user stopped presentation of the third-party content before playback of the third-party content (or some specified portion) completed.

In some implementations, the user device104transmits progress event data to the third-party content distribution system (TPCDS)110. The progress event data can indicate the number progress events that were generated during playback of the third-party content and/or information regarding a portion of the third-party content that was presented. The TPCDS110uses the total duration of the third-party content and the received progress event data to determine third-party content indicators. Third-party content indicators are metrics that describe user preference characteristics for third-party content based on the received progress event data. For example, third-party content indicators can describe, for a particular third-party content, the number (or portion) of users who finished watching the third-party content, an average amount of the third-party content that was watched by users, and other metrics describing user preferences for third-party content.

As previously described, the end cap generates simulated progress events. To prevent the simulated progress events from potentially skewing measurements or statistics related to presentation of the third-party content (e.g., how many times the third-party content was completely played back by users), the media content player200stops monitoring progress events when the media content player200begins receiving simulated progress events (e.g., after an end of the third-party content has been reached). Accordingly, the media content player200does not use the simulated progress events for purposes of determining how long the user watched the third-party content or whether playback of the third-party content was completed.

When the media content player200begins receiving simulated progress events, the media content player200does track interaction events. In some implementations, interaction events are data indicative of a user's interaction with a call to action306. For example, an interaction event can be created when a user skips the end cap, a user engages a call to action, a user watches the entire end cap, but does not skip or engage the end cap, and other information that describes a user's interaction with a call to action.

The media content player200transmits the interaction event to the TPCDS110. The TPCDS110can use the interaction events to determine end cap indicators. An end cap indicator uses interaction events to determine a user's engagement with an end cap. For example, end cap indicators can describe whether a user engaged a call to action, skipped the end cap, watched the entire end cap, and other actions or inactions of a user for a particular third-party content.

The TPCDS110can use the determined end cap indicators and the previously described third-party content indicators to create analytic data based on user engagement and user preferences. The analytic data can provide end cap feedback and third-party content feedback to third-party content providers. For example, the TPCDS can determine the types of end caps a user prefers, whether most users skip a particular end cap, whether most users engage a particular end cap, how often users engage a particular end cap, the topics of third-party content a user prefers, and other end cap indications that can be used as informative data. In some implementations, the end cap indicators and the third-party content indicators enable the TCPDS110to provide information to third-party content providers regarding the level of success or interest that is generated by a particular end cap or third-party content. For example, third-party content providers can be provided with information such as which third-party content and which end caps are most effective, which types of end caps are most effective, which types of end caps and third-party content a particular demographic prefers, and other analytic measures that describe user preferences for particular end caps and third-party content.

The TCPDS110can provide end caps to users based on a particular user's preferences. As previously described, the TCPDS110can determine a given user's preferences based on the received end cap indicators and third-party content indicators. For example, the TCPDS110can determine if a given user prefers really short end caps (e.g., 2-5 seconds) based on the end cap indicators and the third-party content indicators. Accordingly, the TCPDS110determines to send the given user shorter end caps based on the determined user's preference for shorter end caps.

FIG. 4is an example process that describes providing third-party content with an end cap for presentation on a user device. Operations of the process400can be performed by one or more data processing apparatus, such as the third-party content distribution system (TPCDS)110ofFIG. 1. Operations of the process400can also be implemented by instructions stored on a non-transitory computer readable medium. Execution of the instructions cause one or more data processing apparatus to perform operations of the process400.

The TPCDS receives a request to present media content at a user device (402). In some implementations, the media content request includes a second request for third-party content, which is presented with the media content. The third-party content can be presented with media content causing presentation of both the third-party content and the media content data to be presented at the user device. The media content request can be generated from a user interaction with a link (e.g., a hyperlink), thus generating the request.

The TPCDS identifies the user device capabilities from data transmitted with the request (404). The user device capabilities describe information about the user device's ability to utilize particular end caps. A user device's ability to utilize a particular end cap can include the user device's ability to play the particular end cap on the user device and the user device's ability to receive instructions from the call to action that result in a further action that is executed on the user device. In some implementations, the user device capabilities can include the user device memory size, the user device type, the user device's operating system, the user device's operating system's version, native applications and native application versions installed on the user device104, user device location, the type of user device and other data indicative of user device compatibility.

Based on the second request, the TPCDS determines third-party content to present with the media content (406). In some implementations, the third-party content includes a first presentation time duration indicative of a length of time the third-party content is presented. During the first presentation time duration the user application transmits progress events indicating that the third-party content is currently being presented at the user device. Thus, enabling an accurate representation of the present playback state on a progress marker indicating playback progress of the third-party content and the end cap.

The TCPDS determines that an end cap is compatible with the user device and related to the third-party content (408). In some implementations, the end cap provides a call to action that is an actionable link corresponding to a resource that is different from the third-party content, and navigates the user device to content within the resource that the actionable link corresponds. For example, the call to action is an interactive opportunity which enables a user to take one or more specified actions by interacting with the end cap. For example, an end cap can include active links that initiate various actions in response to user interaction with the active links. The various actions corresponding to interacting with the active links can include downloading a native application, making a phone call, while another may make a request for a specific web page. An end cap with the same content can be presented across various different user device platforms according to the format the TPCDS chooses for the end cap. The format of the end cap is chosen based on metadata received with the third-party content and the media request.

Data that presents the third-party content, the end cap, and the media content, is transmitted to the user device (410). In some implementations, the end cap data is appended at the end of the third-party content data such that the end cap is presented after the third-party content. Thus, the third-party content plays on the user device for the first duration and the end cap plays on the user device for a presentation time duration that is the difference between the second presentation time duration and the first presentation time duration. In some implementations, a last frame of the third-party content remains on display throughout the presentation time duration for the end cap.

In other implementations, the end cap data can be appended to the beginning or in the middle of the third-party content data. Thus, the end cap can be presented at any time during the presentation of the third-party content. In addition, the end cap extends the first presentation time duration of the third-party content to a second presentation time duration that is a cumulative time of presentation for the third-party content and the end cap.

Extending the presentation time duration can provide an accurate time presentation duration as well as provide operating points that describe when presentation of the third-party content ceases and when end cap presentation begins. In some implementations, the end cap includes coded instructions to transmit simulated progress events that continues progressing a progress marker, which is a visual display of the lapsed presentation time duration. The simulated progress events enable the user device to recognize when presentation of the third-party content ends and presentation of the end cap begins.