Interactive video advertisement in a mobile browser

A system and a method are disclosed for presenting an interactive video ad in a mobile web browser that does not support embedded video playback in the browser. The interactive video ad comprises an overlay of transparent frame and visible elements, wherein the visible elements include instructions on performing a gesture to interact with the video ad. The system generates an HTML underlay, which is a web page with embedded link to continue playback of the interactive video ad and one or more interactivity options. The HTML underlay is displayed when the gesture is performed. Interactions with the video ad can be selected from the one or more options presented by the HTML underlay.

BACKGROUND

1. Field of Art

The disclosure generally relates to the field of creating an interactive video experience in mobile web browsers that do not support embedded video playback in the browser.

2. Description of the Related Art

Mobile devices, such as smart phones and tablets, have become prevalent in recent years. Given the enormous and fast-growing market, mobile advertising has become a fast-developing and far-reaching industry. In addition to traditional media, such as text banners or posters, a growing trend in mobile advertising is to include rich media within the ads. For example, interactive video that can be played and expanded to a full screen, offering advertisers a better way to communicate their message and attract viewers' engagements. In the context of application development (in-app) for smart phone and tablet devices, interactive video is traditionally generated with an accompanying hypertext markup language (HTML) overlay which contains visible (opaque) elements arranged over a transparency. Both the video and the overlay run in the same application context, with the application playing the video while placing the HTML overlay on top of the video. The visible elements of the overlay may be buttons or any elements that respond to user's touch or gesture, and once tapped by user, perform other actions or invoke different applications.

However, HTML5-capable mobile browsers on many smart phones do not support this use of an overlay to build interactive video. This is because the video is immediately passed by the browser to the native media player. The native media player runs outside the application context of the mobile browser (though it may pass some video events back to the browser). Because the media player is instantiated outside of the browser application context at the top of the view-stack, there is no way for the browser to place a traditional HTML overlay above the running video. Neither have the media players the capability to insert such an overlay into the video themselves.

DETAILED DESCRIPTION

Overview

One embodiment of a disclosed system (and a method and a computer readable storage medium) that provide interactive video playback with an HTML underlay. The system receives a request for a video ad file from mobile browsers on user devices. Based on the device type, the system generates an HTML underlay, which is a web page with embedded link to an interactive video ad encoded from the video ad file overlaid with transparent frames and visible elements. The visible elements include text or graphic instructions on how to use a gesture to interact with the video ad. The HTML underlay is hidden while the video ad is played by the native media player. A JavaScript code is used to monitor the video playback and manipulate HTML underlay. The HTML underlay is displayed with more interactivity options when the user performs the gesture to interact. In essence, the gesture is to close the native media player and interpreted as a signal to start presenting interactivity options with the video ad.

This interactive video playing process involves video encoding and HTML underlay to create an interactive video experience in browsers on mobile devices where minimal conditions are met with respect to the native media player. First, the native media player is capable of communicating video events back to the mobile browser, at least information regarding the current video playback state, time and duration. Second, the native media player responds to an assigned touch gesture for the close command. For example, the native media player on APPLE iPHONE closes when it receives a ‘pinch’ gesture. Note that the HTML underlay is designed for those mobile devices which cannot play video inline (i.e., within the hosting web page). When a video is played from a web page within the mobile browser, the native media player opens on top of the mobile browser and all HTML elements on the web page are inaccessible.

Computing Machine Architecture

The example computer system100includes one or more processors102(e.g., a central processing unit (CPU), a graphics processing unit (GPU), a digital signal processor (DSP), one or more application specific integrated circuits (ASICs), one or more radio-frequency integrated circuits (RFICs), or any combination of these), a main memory104, and a static memory106, which are configured to communicate with each other via a bus108. The computer system100may further include graphics display unit110(e.g., a plasma display panel (PDP), a liquid crystal display (LCD), a projector, or a cathode ray tube (CRT)). The computer system100may also include alphanumeric input device112(e.g., a keyboard), a cursor control device114(e.g., a mouse, a trackball, a joystick, a motion sensor, or other pointing instrument), a storage unit116, a signal generation device118(e.g., a speaker), and a network interface device120, which also are configured to communicate via the bus108.

The storage unit116includes a machine-readable medium122on which is stored instructions124(e.g., software) embodying any one or more of the methodologies or functions described herein. The instructions124(e.g., software) may also reside, completely or at least partially, within the main memory104or within the processor102(e.g., within a processor's cache memory) during execution thereof by the computer system100, the main memory104and the processor102also constituting machine-readable media. The instructions124(e.g., software) may be transmitted or received over a network126via the network interface device120.

While machine-readable medium122is shown in an example embodiment to be a single medium, the term “machine-readable medium” should be taken to include a single medium or multiple media (e.g., a centralized or distributed database, or associated caches and servers) able to store instructions (e.g., instructions124). The term “machine-readable medium” shall also be taken to include any medium that is capable of storing instructions (e.g., instructions124) for execution by the machine and that cause the machine to perform any one or more of the methodologies disclosed herein. The term “machine-readable medium” includes, but not be limited to, data repositories in the form of solid-state memories, optical media, and magnetic media.

HTML Underlay for Interactive Video Ad

Turning now toFIG. 2, it illustrates a high-level block diagram of an example communications environment201for providing interactive video with an HTML underlay. The environment201comprises a web server220, an ad (advertisement) server230, user mobile devices210, and a network208. The network208is a communication network that transmits data between the user mobile devices210and the servers220and230. In one embodiment the network208includes wireless network and the Internet.

The user mobile devices210are electronic devices with media players211and mobile web browsers212installed. The user mobile devices210may include netbooks, tablets, smart telephones, or personal digital assistants (PDAs). While only two user mobile devices210A and210B are illustrated inFIG. 2, the environment201may include thousands or millions of such devices. The media players211A and211B are native media players running on the user devices210for playback video and audio files. The mobile web browsers212A and212B are specific software applications running on mobile devices210for retrieving web content from the web server220and presenting the web page inside the browser window. When accessing web page on a user device210, for example, HTML5 based web content with embedded audio and video elements, the mobile browser212often invokes the media player211and passes the embedded media elements to the media player211for playback. While the media player211is playing full screen, the mobile browsers212is hidden from the user. After the media player211finishes playing, or when the user stops and closes the media player211, the mobile browser212reappears with the web page.

In one embodiment, there may be advertisements in rich media format, such as video ads, placed in the web page. A universal resource locator (URL) pointing to the advertisements is often passed to the web browsers212by the web server220. The web browsers212then request the advertisements from the ad server230addressed by the URL. The web browsers212retrieve the content of the advertisements from the ad server230and pass the video to the media player211for playback.

The web server220and the ad server230are typically formed of one or more computers, such as the computer system100shown inFIG. 1. While only one server of each220,230is shown in the environment201ofFIG. 2, different embodiments may include multiple web servers, ad servers, or video servers operated by a single entity or multiple entities. In other embodiments, a single server may also provide different functionalities, such as delivering web content as a web server, as well as serving advertisements.

Referring next toFIG. 3, it illustrates one embodiment of architecture of the ad server230for providing interactive video ad with an HTML underlay. The ad server230includes an encoder312, a video ad store314, a request receiver316, and an HTML generator318. In other embodiments, the ad server230may include additional, fewer, or different components for various applications. Conventional components such as network interfaces, security functions, load balancers, failover servers, management and network operations consoles, and the like are not shown so as to not obscure the details of the system architecture.

The video ad store314stores ingested video ads302received from advertisers or other third-party entities. In addition, the video ad store314may store metadata associated with video ads. The ad metadata identifies or otherwise describes the subject matter of the video ad, the genre of the video ad, the length of the video ad, the product or service represented by the video ad, or any other characteristic of the video ad.

The request receiver316receives a video ad request306from a mobile browser212on a user device210. The request receiver316can detect the device type of the user devices210and communicate the detection of the device type to the encoder312. Based on the device type detected by the request receiver316, the encoder312selects one or more transparent frames appropriate for the device's native media player211. Each of the transparent frames are imprinted with a text or graphic instructions on how to halt the native media player211and invoke an HTML underlay page using a gesture supported by the user device210. The text or graphic instructions can be shown on the top, bottom or corners of the transparent frames. The encoder312also analyzes the video ad file from the video ad store314to determine how many frames are contained in the video ad. The encoder312then places the transparent frames with imprinted instructions on top of each frame in the video ad, and encodes the video file and the transparent frames into a new interactive video ad322. In one embodiment, the encoder312generates the interactive video ad322on the fly in real time after the ad server230receives the video ad request306. In other embodiments, the interactive video ad322can be encoded for popular user devices beforehand. When a request for video ad is received, an encoded interactive video ad can be readily retrieved from storage. In addition, the encoder312records in the video ad store metadata about the video ads, such as total video length and/or individual segment length (e.g, a video ad segment for 15 s).

The HTML underlay generated by the HTML generator318can be a fully qualified HTML document, an HTML fragment, or a collection of HTML fragments included in an HTML iframe. The HTML underlay is loaded by the mobile browser above the original web page while the mobile browser rests beneath the native media player, so that when the media player is closed, the user is presented with an interactive experience related to the content of the video ad instead of the content of the original web page. The HTML underlay may contain any valid HTML elements (e.g., buttons, links, images, and embedded videos) and branded or logoed content tailored for the video ad in play. Additionally, the HTML underlay may include mechanisms that allow the user to stop the interactivity and resume the playback of the video ad. In one embodiment, this can be accomplished by having the original video element embedded in the underlay itself, thus the user could click or tap the video element to resume playback anytime during the interaction. In another embodiment, the HTML underlay may provide a button or a link for the user to click or tap to resume the playback of the video ad.

Next,FIG. 4illustrates one embodiment of event trace400in an example system for providing interactive video ad with an HTML underlay. The system comprises user devices210, a web server220, and an ad server230. The operation starts when mobile browser on the user device210sends a web page request402to web server220, which returns420the web page in HTML5 with one or more embedded video elements. Each video element is shown as a small video player window in line with the text of the web page and a video ad is supposed to be played before playing the content the video element. The returned HTML5 page from the web server220also includes a JavaScript code405. The JavaScript405implements a number of functions, such as instructs the mobile browser212on how and where to request interactive video ad322from ad server230, and how to instrument and coordinate the placement and teardown of the HTML underlay324in response to the current time position of interactive video ad322.

In one embodiment, the embedded video elements are encoded with standard time stamps (e.g., according to W3C HTML5 standards) so that the video can be played, stopped, and restarted at or approximately at any arbitrary point, and the current elapsed time of the video in play is available to the media player at any point. Alternatively, the JavaScript405executed on the user device210can monitor the video playback and mark the time independently, so that JavaScript405can place, tear down, or swap out the HTML underlay324based on the current position of the video ad. For example, during a consecutive playback of two 15-second video ads, the JavaScript405may swap the HTML underlay from a branded advertiser to the other at 15 second, and then remove the underlay entirely at the 30 second mark when both video ads finish playing. Additionally, should the user engage with the interactive underlay, the video ad can be resumed at or approximately at the time when the user stopped the playback.

Turning back toFIG. 4, when the user of the device210clicks406one of the video elements to play the video, the JavaScript405directs the mobile browser to request the video ad to be played from the ad server230. Upon receiving the request for the video ad, the ad server230encodes an interactive video ad for the requesting user device. As described above, the interactive video ad is encoded by placing a series of transparencies onto each frame of the video ad, wherein the transparent frames show a gesture used for interacting with the video ad. Hence, when played the interactive video ad shows a text or graphic instruction overlaid on the screen on how to interact with the video ad (e.g., using a pinch gesture). The ad server230returns410an HTML underlay with an embedded link to resume playback of the interactive video ad to the mobile browser212. The HTML underlay is a web page showing various interactivity options that can be activated when the user follows the instructions on the interactive video ad. The ad server230also returns video metadata for the video ad322, such as an URL pointing to the ad video on the ad server230and timing data for the video ad (e.g., the video ad segment lasts for the first 15 second).

In an alternative embodiment, the JavaScript405may direct the mobile browser210to send a request for the video ad to the ad server230before the user is able to click on any video elements embedded in the web page, for example, when rendering the content of the web page received from the web server220. After receiving the HTML underlay, video metadata and the source URL to the interactive video ad, the JavaScript running inside the mobile browser hides the HTML underlay and sets the video element source to the video source URL. Therefore, when the user clicks to play the video, the interactive video ad is ready to be played, i.e., video, metadata, underlay are all already available, and no further request to ad server230need be made.

The mobile browser on the user device210next passes the video ad to the native media player211, which takes the place of the mobile browser on the screen and the mobile browser is hidden beneath the media player211. The JavaScript405running in the mobile browser underneath the native media player211monitors the playback of the video ad. Once the video ad has started playing, the JavaScript405makes the HTML underlay available in full screen within the mobile browser which displays all the branded content and interactivity options that were previously hidden. This happens underneath the media player211and out of sight of the user who can only see the media player211as it loads and begins to play the video ad.

While watching the video ad, the user may interact412with the interactive video ad by performing the touch gesture as indicated by the overlaid instruction. In one embodiment, the touch gesture is the same gesture to close the device's media player211. For example, since the gesture to close the media player211on an APPLE iPHONE is a pinch gesture, the interactive video ad may show an overlaid message like “pinch to interact.” The user follows the instruction to interact by performing the touch gesture, which is understood by the native media player211as a dismissal command. The media player211closes and is removed from the top of the screen, while the mobile browser is once again activated and visible. At this point the user is able to see and interact with the interactivity options presented by the HTML underlay, such as visiting the brand website or sharing the experience on social networking systems. The HTML underlay contains a link or button that allows the user to resume playback of interactive video ad322from the current position so the user can simply tap on it to restart the playback and resume watching the interactive video ad, effectively dismissing the HTML underlay. The user may also ignore the instruction to interact and watch the video ad non-stop. Once the interactive video ad finishes, the content of the requested video can be played414.

In other embodiments, various device states can be monitored and associated with controls or gestures in addition to the close gesture of the native media player. For example, on certain mobile devices, the mobile browsers may receive device-level events related to the physical state of the devices, such as switching between landscape and portrait modes and motion or rotation along some or all axes, while the native media player is in playback. In such cases, the JavaScript405that controls the display of the interactive video ad can monitor these events and in response, open or close the interactive video and display or hide the HTML underlay. In one embodiment, by monitoring acceleration along all three axes simultaneously, the JavaScript405could programmatically respond when the mobile device is ‘shaken’, ‘flicked’, or ‘rotated’, to close the media player and display the HTML underlay. In this implementation, the video encoder312can encode the video with transparent animations or text, informing the user to perform the gestures, such as ‘Shake’, ‘Flick’, and ‘Rotate,’ to invoke the interactivity from the interactive video ad (similar to the aforementioned native media player ‘pinch’ on an APPLE iPHONE).

FIG. 5illustrates one embodiment of an example method500for providing interactive video ad with an HTML underlay. First, the ad server230ingests501video ad file provided by advertisers or other third-party entities. The ingested video ad file can be stored by the ad server230, for example, in the video ad store314. Subsequently the ad server230may receives a request for the video ad from a mobile browser212. For example, a user of the mobile browser212clicks a video element in an HTML5 web page, which is configured to play the video ad before the content of the video element is shown to the user. Upon receiving the video ad request, the ad server230generates506an HTML underlay with an embedded link to resume the interactive video ad which is encoded from the video ad with an overlaid transparent frame. The overlaid transparent frame adds an instruction on how to invoke the interaction (e.g., a touch gesture) to each frame of the video ad. The HTML underlay also includes interactivity options along with brand content represented by the video ad.

After receiving the HTML underlay, the mobile browser212passes the encoded interactive video ad to the native media player211on the user device210for playback508while displaying the HTML underlay underneath the media player211. During the interactive video ad, if a gesture as indicated by the instruction on how to invoke the interaction is detected512, the media player211is closed514and the HTML underlay is displayed in the mobile browser with the brand content and interactivity options, allowing the user to select any options to interact with the video ad. When user finishes the interaction and clicks the video link that resumes the video from the current position embedded in the HTML underlay, or there is no interaction gesture detected, the playback of the video ad is continued516.

As the user watches the interactive video ad, the JavaScript405operating inside the mobile browser underneath the media player211monitors the state of the video playback. Under certain conditions, the HTML underlay is dismissed completely, allowing the user to return to the original web page after watching the content of the video element. For example, in one embodiment, the JavaScript405dismisses the HTML underlay once the interactive video ad is finished playing and the actual content of the video element starts to play.

FIGS. 6A-6Fillustrates a series example of screen shots of the interactive video playing experience on a user device210.FIG. 6Ashows the mobile browser212, which displays an HTML5 web page with tow embedded video elements601and602.FIG. 6Bshows that the media player211is invoked and loading video after the user taps or clicks to play the video element601.FIG. 6Cillustrates the media player211, which is playing the interactive video ad322. At the bottom of the video ad, a text overlay611and a graphic overlay612are presented to instruct the user to interact with the video ad with a pinch gesture. The text overlay611and the graph overly612are encoded into the video ad by placing a transparent frame with the text and graphic instruction on top of each video frame in the video ad.

Next, the user follows the instruction by performing a pinch on the media player211to interact with video ad. The pinch gesture is a command understood by the media player211as a close command, thus the media player211is closed. As described above in reference toFIG. 4, the mobile browser212was hidden underneath the media player211while displaying the HTML underlay when the video ad is played. Since now the media player211is closed and the mobile browser212reappears, the HTML underlay324is now displayed in the mobile browser212. As shown inFIG. 6D, the HTML underlay324presents brand content621A and621B, as well as interactivity options622A-622C. The user may click or tap any of the interactivity options to visit the brand website or social networking sites. The link to resume interactive video ad322is also embedded in the HTML underlay324, allowing user to tap on it to restart playing the video ad.

FIG. 6Eshows that the user taps the embedded link to video ad322in the HTML underlay324, and the media player322is reactivated to continue the playback of the video ad. The text overlay611and the graph overly612continues to be shown in the video ad. After the video ad322is finished, in this example, after 15 seconds, the media player211starts to play the video content for the video element601, as illustrated inFIG. 6F.

The disclosed system achieves the following benefits and advantages. First, interactivity is achieved on the mobile platforms where the native media player runs outside the application context of the mobile browser. The solution includes showing video ad encoded with a transparent frame comprising text or graphic instructions to users on how to interact, as well as hiding an HTML underlay rendered by the browser in the background. As soon as the user performs the interactivity as instructed, the media player is closed and the HTML underlay is displayed with further interactivity links. Second, the text or graphic instructions superposed or overlaid on the video ad to inform users on how to further interact with the video ad are minimum and non-intrusive, while encouraging users to interact. In addition, the gesture controls used to start the interactivity with the video ad are often system built-in gestures to close the native media player. This design choice requires no changes or add-on widgets to the native media player on the user devices, but simply uses the close gestures as a signal to bring the HTML underlay from the browser to the top of the screen.

Additional Configuration Considerations

The various operations of example methods (e.g., as described withFIGS. 4,5,6A,6B, and7) described herein may be performed, at least partially, by one or more processors (e.g., processor102) that are temporarily configured (e.g., by software) or permanently configured to perform the relevant operations. Whether temporarily or permanently configured, such processors may constitute processor-implemented modules that operate to perform one or more operations or functions. The modules referred to herein may, in some example embodiments, comprise processor-implemented modules.