1. Field of the Invention
The present invention relates to the accessing of network-based electronic video files.
2. Background
According to one definition, advertising is a paid, one-way communication through a medium in which an advertiser is identified, and the message (i.e., the advertisement) provided by the advertiser is controlled. Advertising may be performed for a variety of purposes, including publicity, public relations, product placement, sponsorship, underwriting, and sales promotion. A variety of mediums are used to convey an advertisement, including television, radio, movies, magazines, newspapers, the Internet, and billboards.
Online advertising relates to the promoting of products and services using the Internet and World Wide Web. Online advertising generally includes displaying an advertisement for a product or service in a user's browser when the user is navigating the Internet. A particular advertisement that is displayed at a given time may have been selected based upon an online context into which the user has navigated, or in some instances upon a historical record of the user's online navigation behavior. When a user clicks on a displayed advertisement, the user may be directed to a website specific to the advertisement, or may be directed to a website that enables purchase of the product or service that is advertised. Typical online advertisement types include banner ads, floating ads, and pop-up ads, which are provided through a browser to the user's computer desktop. Online advertisements may include various forms of content, including text, images, audio, and video.
A business or other entity may generate a portfolio of advertisements available to be displayed online. The advertisements may be configured to advertise various services and/or products of the business. The business may contract to have their advertisements displayed at the online locations (e.g., web pages) of any number of content publishers. A user (e.g., a consumer) may view an advertisement by viewing a web page in which the advertisement is displayed. In the case of advertisements that include video files, the quality of display of video of the video file may depend on a bandwidth of the user's connection. As such, techniques are desired for enabling online advertisements to be generated that display sufficiently well for a variety of connection bandwidths.
Techniques are provided for enabling videos to be included in online advertisements. Multiple versions of a video are generated that have different bitrates. The multiple versions are enabled to be previewed so that acceptable quality videos are made available to be included in online advertisements. A version of the multiple versions that is of unacceptable quality may be rejected. When an online advertisement is to be displayed, a video is selected from the versions that passed the preview (was not rejected) to be included in the online advertisement. The video is selected according to the bandwidth of electronic device that is used to download and view the online advertisement.
In one implementation, a method for configuring an online advertisement is provided. A user is enabled to provide a video source object. The video source object is optionally validated to determine whether the video source object meets at least one predetermined encoding factor. The video source object is encoded to generate a plurality of encoded video objects, each encoded video object having a corresponding bit rate. The user is enabled to preview each of the plurality of encoded video objects. The user is enabled to select at least one of the encoded video objects to be included in an online advertisement.
When an online advertisement is displayed, an encoded video object of the plurality of encoded video objects that were not rejected is selected to be displayed in the online advertisement. The encoded video object is selected according to a bandwidth of a connection with an electronic device having requested the online advertisement. If the connection bandwidth is relatively high, an encoded video object having a relatively high bitrate may be selected. If the connection bandwidth is relatively low, an encoded video object having a relatively low bitrate may be selected.
In another implementation, a system for configuring online advertisements is provided. The system includes a user interface generator, a video object validator, and an encoding module. The user interface generator is configured to generate a user interface that enables a user to provide a video source object. The video object validator is configured to validate the video source object to determine whether the video source object meets at least one predetermined encoding factor. The encoding module is configured to encode the video source object to generate a plurality of encoded video objects, each encoded video object having a corresponding bit rate. The user interface is configured to enable the user to preview each of the plurality of encoded video objects, to optionally reject one or more of the encoded video objects based on the preview, and to enable the user to select at least one of the plurality of encoded video objects to be included in an online advertisement.
Computer program products are also described herein. The computer program products include a computer-readable medium having computer program logic recorded thereon for enabling multiple encoded versions of a video object to be generated that have corresponding bit rates, for enabling the encoded versions to be previewed, and for enabling the encoded versions to selectively be included in online advertisements.
Further features and advantages of the invention, as well as the structure and operation of various embodiments of the invention, are described in detail below with reference to the accompanying drawings. It is noted that the invention is not limited to the specific embodiments described herein. Such embodiments are presented herein for illustrative purposes only. Additional embodiments will be apparent to persons skilled in the relevant art(s) based on the teachings contained herein.
The accompanying drawings, which are incorporated herein and form part of the specification, illustrate the present invention and, together with the description, further serve to explain the principles of the invention and to enable a person skilled in the relevant art(s) to make and use the invention.
The features and advantages of the present invention will become more apparent from the detailed description set forth below when taken in conjunction with the drawings, in which like reference characters identify corresponding elements throughout. In the drawings, like reference numbers generally indicate identical, functionally similar, and/or structurally similar elements. The drawing in which an element first appears is indicated by the leftmost digit(s) in the corresponding reference number.
The present specification discloses one or more embodiments that incorporate the features of the invention. The disclosed embodiment(s) merely exemplify the invention. The scope of the invention is not limited to the disclosed embodiment(s). The invention is defined by the claims appended hereto.
References in the specification to “one embodiment,” “an embodiment,” “an example embodiment,” etc., indicate that the embodiment described may include a particular feature, structure, or characteristic, but every embodiment may not necessarily include the particular feature, structure, or characteristic. Moreover, such phrases are not necessarily referring to the same embodiment. Further, when a particular feature, structure, or characteristic is described in connection with an embodiment, it is submitted that it is within the knowledge of one skilled in the art to implement such feature, structure, or characteristic in connection with other embodiments whether or not explicitly described.
Embodiments of the present invention relate to online advertising.
An entity, such as a business, may generate a portfolio of advertisements available to be displayed online on web pages, such as web page 106 and search results page 200. Online advertisements may be generated that include various forms of content, including text, images, audio, and video. For example,
In the embodiment of
In
Embodiments are described herein for enabling online advertisements to be generated and displayed that have multiple video file versions available.
Embodiments of the present invention are described herein for enabling online advertisements to be generated and displayed that provide multiple video file versions. For illustrative purposes, some example embodiments are described with regard to the display of advertisements in web pages. However, in alternative embodiments, advertisements as described herein may be displayed in other electronic form, including in widgets (e.g., desktop widgets such as Yahoo!® Widgets, Google® panels or gadgets, etc.), in text messages, and/or in/with other electronic content.
Each of publisher Web servers 508a-508n is configured to host a Web site published by a corresponding publisher so that such Web site is accessible to users of network 500. A user may access such Web sites using a Web browser or other Web client installed on a system/device owned by or otherwise accessible to the user. By way of example,
Ad serving system 504 is configured to deliver online ads received from an advertiser system/device 502 to each of publisher Web servers 508a-508n when the Web sites hosted by such Web servers are accessed by users, thereby facilitating the delivery of such online ads to the users. For example, ad serving system 504 may receive the online ads directly from an advertiser system/device 502. In another example, ad serving system 104 may include an advertisement generator 506. Advertisement generator 506 is configured to generate online ads based on one or more creative assets received from advertiser system/device 502 through creative asset processing system 512.
Creative asset processing system 106 is configured to process creative assets (e.g., creative assets 302 of
For example, in an embodiment, creative asset processing system 106 may be configured to perform a process shown in
Flowchart 600 begins with step 602. In step 602, a video source object is received. For example, as shown in
Video source object 514 may be received by creative asset processing system 512 from advertiser/system device 502 in any manner, including using a file transfer protocol (e.g., FTP), by enabling video source object 514 to be uploaded into a user interface provided by creative asset processing system 512 (e.g., a graphical user interface (GUI), a web page, etc.), or by other manner. For example, the user interface may include a graphical user interface (GUI) (e.g., a web page, etc.), and/or may include further user interface elements, such as a keyboard, a thumb wheel, a mouse pointer, a roller ball, a stick pointer, a display, any number of virtual interface elements, a voice recognition system, a haptic interface, and/or other user interface elements described elsewhere herein or otherwise known.
In step 604, the video source object is encoded according to a plurality of bit rates to generate a plurality of encoded video objects. Referring to
The bitrates associated with the encoded video objects generated by creative asset processing system 512 may correspond to respective bandwidths that are available for delivering online ads. Any number of encoded video objects may be generated. For instance, creative asset processing system 512 may be configured to generate five encoded files based on a received video file. Four of the five encoded files may correspond to bitrates of 100 kilobits per second (kbps), 300 kbps, 700 kbps, and 1000 kbps, respectively, for example. These example bitrates are provided for illustrative purposes and are not intended to be limiting. The fifth encoded file may include a thumbnail view of an image associated with the video file. For example, the thumbnail view may be a frame of the video associated with the video file to serve as a preview of the video.
In step 606, the plurality of encoded video objects is enabled to be previewed prior to being included in an online advertisement. For example, in an embodiment, creative asset processing system 512 enables a user (e.g., at advertiser system/device 502) to access each of the generated encoded video objects to preview the generated encoded video objects. Each of the encoded video objects may be previewed to determine whether each encoded video object is suitable for inclusion in an online advertisement. For example, a user may preview the video corresponding to each encoded video object to determine whether or not the encoding process degraded the quality of the video to an extent that the user does not want the corresponding encoded video object to be included in an online advertisement. Creative asset processing system 512 may enable the user to preview the encoded video objects in any manner, including by providing a user interface that enables the user to play and view video for each encoded video object (e.g., a user interface accessible in a web browser at an electronic device of the user). The user may be enabled to select one or more of the encoded video objects as being suitable to be included in an online advertisement, and to potentially reject one or more of the encoded video objects as being unsuitable.
As shown in
Creative asset processing system 512 may be configured in various ways to perform flowchart 600, in embodiments. For instance,
As shown in
Video object validator 704 may be optionally present in creative asset processing system 700. When present, video object validator 704 may be configured to validate video source objects 514 prior to encoding. For example, video object validator 704 may be configured to determine whether video source object 514 meet one or more predetermined encoding factors such that video source object 514 may be capable of being encoded and/or of being included in an online advertisement. If video source object 514 meets the predetermined encoding factor(s), video object validator 704 outputs a validated video source object indicator 712, which is received by encoding module 706.
Encoding module 706 is configured to encode video source object 514 (e.g., according to step 604 of flowchart 600) to generate a plurality of encoded video objects 714. For example, if validator 704 is present, and validated video source object indicator 712 indicates that encoded video source object 514 is validated, encoding module 706 generates encoded video objects 714. Encoding module 706 may be configured to encode video source object 514 according to any encoding platform or technique described elsewhere herein or otherwise known, including those techniques described above with respect to step 604 of flowchart 600, to generate encoded video objects 714. As shown in
Furthermore, user interface 708 may be configured to enable user 710 to preview encoded video objects 714 (e.g., according to step 606 of flowchart 600) that are generated by encoding module 706 based on video source object 514, and to selectively reject one or more of encoded video objects 714 based on the preview. For example, user interface 708 may be a graphical user interface that includes one or more of any combination of user interface elements, including data entry boxes, pull down menus, check boxes, buttons, hyperlinks, and/or other graphical interface element types suitable for enabling user 710 to preview (and reject) encoded video objects 714.
Flowchart 600 of
Flowchart 800 begins with step 802. In step 802, a user is enabled to provide a video source object. For example, in an embodiment, user interface generator 702 may generate user interface 708 to enable video source object 514 to be provided by user 710. User interface 708 may be configured in any manner, including one or more user interface elements, to enable a user to provide a video source object. User 710 may be enabled to provide video source object 514 to system 700 in any manner, including using a file transfer protocol, uploading a video source object into a user interface, by email, etc. In an embodiment, user interface 708 may require that user 710 provide credentials, such as a login identifier and password, before enabling the user to provide video source object 514 and/or to otherwise access system 700.
For instance,
Note that user interface 900 shown in
In step 804, the video source object is validated to determine whether the video source object meets at least one predetermined encoding factor. For example, in an embodiment, video object validator 704 may be configured to validate video source object 514 to determine whether video source object 514 meets one or more predetermined encoding factors. To validate video source object 514, video object validator 704 may be configured to analyze video source object 514 with regard to any number of encoding factors, including a play time (a video duration) of video source object 514, a file size (e.g., a number of bytes) of video source object 514, a file type of video source object 514, dimensions (e.g., width and height of frames) of video associated with video source object 514, a video aspect ratio (e.g., width versus height of frames) of video source object 514, a video frame rate of video source object 514, a video key frame interval of video source object 514, a video sampling rate of video source object 514, a video codec of video source object 514, an audio sampling rate of video source object 514, an audio codec of video source object 514, whether audio of video source object 514 is mono/stereo, etc. If video source object 514 meets the one or more predetermined encoding factors, video object validator 704 generates validated video source object indicator 712.
Note that video object 514 may fail validation by video object validator 704 by not meeting one or more of the predetermined encoding factors. In such a case, the user may be enabled to provide a second video source object to replace video source object 514 (e.g., may repeat step 802 with another video source object).
In step 806, the video source object is encoded to generate a plurality of encoded video objects, each encoded video object having a corresponding bit rate. For example, as described above, encoding module 706 may be configured to encode video source object 514 to generate plurality of encoded video objects 714. Note that in an embodiment, encoding module 706 may be located in a same computer system (e.g., server) as user interface generator 702 and video object validator 704. In another embodiment, encoding module 706 may be located in a separate computer system from user interface generator 702 and/or video object validator 704. In still another embodiment, a portion of encoding module 706 may be located in a computer system separate from user interface generator 702 and/or video object validator 704.
For instance,
Scheduler 1006 is configured to launch and/or terminate encoding jobs performed by video encoder 1008. As shown in
Note that in the example of
Flowchart 1100 begins with step 1102. In step 1102, the video source object is queued in a send queue. For example, as shown in
In step 1104, the video source object is transmitted from the send queue to the video encoder. For example, in an embodiment, send queue module 1204 may be configured to transmit encoding job 1010 to video encoder 1008 (e.g., when video source object 514 reaches the end of the send queue), requesting that video encoder 1008 encode video source object 514. Encoding job 1010 may include video source object 514, and/or may include a file identifier (file ID) for video source object 514 in first storage 706 or in a temporary storage location in which video source object 514 has been stored. After receiving encoding job 1010, video encoder 1008 is configured to encode video source object 514. Video encoder 1008 may receive video source object 514 in encoding job 1010, or may retrieve video source object 514 from storage using the file identifier (when the file identifier is included in encoding job 1010). Video encoder 1008 may encode video source object 514 into plurality of encoded video objects 714, which may be stored in second storage 1202. Video encoder 1008 may encode video source object 514 into any number of different bitrate versions according to any video encoding platform or technique described elsewhere herein or otherwise known.
In step 1106, the video encoder is polled to determine whether the video source object has been encoded. For example, in an embodiment, poll queue module 1206 may poll video encoder 1008 to determine whether video source object 514 has completed being encoded by video encoder 1008. For instance, poll queue module 1206 or send queue module 1204 may be configured to generate a poll time at which the status of the encoding by video encoder 1008 is to be requested, and poll queue module may create a poll queue job to be performed according to the generated poll time (e.g., perform a onetime status check after the poll time expires, perform a periodic status check having a period of the poll time, etc.). The poll time may be calculated based on one or more attributes of video source object 514. Examples of such attributes include a duration of a video associated with video source object 514, a file size of video source object 514, dimensions of the video associated with video source object 514, the type of encoding used to encode video source object 514, etc. Note that in another embodiment, user 710 interacting with user interface 708 may be enabled to initiate the poll queue job (e.g., if user 710 is wondering whether video source object 514 has been encoded), rather than the poll queue job being automatically initiated by poll queue module 1206 or send queue module 1204.
As shown in
In step 1108, the plurality of encoded video objects is received from the video encoder. For example, in an embodiment, if poll status response 1214 indicates that encoding of video source object 514 is complete, poll queue module 1206 may indicate to receive queue module 1208 that encoded video objects 714 generated from video source object 514 by video encoder 1008 may be received. In such case, receive queue module 1208 may transmit an encoded video object request 1216 to video encoder 1008. Encoded video object request 1216 may include the file identifier included in encoding job 1010 and/or other identifier for video source file 514. In response to encoded video object request 1216, video encoder 1008 may access encoded video objects 714 stored in second storage 1202, and may transmit encoded video objects 714 to receive queue module 1208 in encoding response 1012.
In step 1110, the plurality of encoded video objects is stored. For example, in an embodiment, receive queue module 1208 may store encoded video objects 714 (received in encoding response 1012) in first storage 716. For example, first storage 716 may contain a creative asset database/library that may include many video source files and associated encoded video files, and may include further creative assets used to generate online advertisements. Encoded video objects 714 may be stored in first storage 716 in association with video source file 514. Receive queue module 1208 may generate addresses in storage 706 at which each of encoded video object 714 may be accessed, such as URL or other types of address.
Referring back to flowchart 800 in
For instance,
Note that user interface 1300 shown in
After selecting a video source object to preview the corresponding encoded video objects, user interface 708 may display the encoded video objects for preview. For example,
As shown in
The bitrates listed second column 1406 may have any form, including in the form of kilobytes (KB), megabytes (MB), etc. For example, in
Third column 1408 is optionally present. In the example of
By interacting with a complete button 1410 (labeled with “Ok”) displayed in user interface 1400, the user may indicate that preview of the encoded video objects is completed (and may cause encoded video objects selected in column 1408 to be deleted).
Note that user interface 1400 shown in
In step 810, the user is enabled to select at least one of the plurality of encoded video objects to be included in an online advertisement. For example, in an embodiment, user interface 708 may enable user 710 to select one or more of encoded video objects 714 to be included in an online advertisement (e.g., online advertisement object 300 of FIG. 3/online advertisement 400 of
In embodiments, flowchart 600 of
Creative asset processing system 512, advertisement serving system 504, advertisement generator 506, creative asset processing system 700, user interface generator 702, video object validator 704, encoding module 706, scheduler 1006, video encoder 1008, encoding module 1200, send queue module 1204, poll queue module 1206, received queue module 1208, and encoded video object selector 1602 may be implemented in hardware, software, firmware, or any combination thereof. For example, creative asset processing system 512, advertisement serving system 504, advertisement generator 506, creative asset processing system 700, user interface generator 702, video object validator 704, encoding module 706, scheduler 1006, video encoder 1008, encoding module 1200, send queue module 1204, poll queue module 1206, received queue module 1208, and/or encoded video object selector 1602 may be implemented as computer program code configured to be executed in one or more processors. Alternatively, creative asset processing system 512, advertisement serving system 504, advertisement generator 506, creative asset processing system 700, user interface generator 702, video object validator 704, encoding module 706, scheduler 1006, video encoder 1008, encoding module 1200, send queue module 1204, poll queue module 1206, received queue module 1208, and/or encoded video object selector 1602 may be implemented as hardware logic/electrical circuitry.
First storage 716 and second storage 1202 may include long term and/or temporary storage, including one or more of any type of storage mechanism, such as a magnetic disc (e.g., in a hard disk drive), an optical disc (e.g., in an optical disk drive), a magnetic tape (e.g., in a tape drive), a memory device such as a RAM device, a ROM device, etc., and/or any other suitable type of storage medium.
The embodiments described herein, including systems, methods/processes, and/or apparatuses, may be implemented using well known servers/computers.
Computer 1700 can be any commercially available and well known computer capable of performing the functions described herein, such as computers available from International Business Machines, Apple, Sun, HP, Dell, Cray, etc. Computer 1700 may be any type of computer, including a desktop computer, a server, etc.
Computer 1700 includes one or more processors (also called central processing units, or CPUs), such as a processor 1704. Processor 1704 is connected to a communication infrastructure 1702, such as a communication bus. In some embodiments, processor 1704 can simultaneously operate multiple computing threads.
Computer 1700 also includes a primary or main memory 1706, such as random access memory (RAM). Main memory 1706 has stored therein control logic 1728A (computer software), and data.
Computer 1700 also includes one or more secondary storage devices 1710. Secondary storage devices 1710 include, for example, a hard disk drive 1712 and/or a removable storage device or drive 1714, as well as other types of storage devices, such as memory cards and memory sticks. For instance, computer 1700 may include an industry standard interface, such a universal serial bus (USB) interface for interfacing with devices such as a memory stick. Removable storage drive 1714 represents a floppy disk drive, a magnetic tape drive, a compact disk drive, an optical storage device, tape backup, etc.
Removable storage drive 1714 interacts with a removable storage unit 1716. Removable storage unit 1716 includes a computer useable or readable storage medium 1724 having stored therein computer software 1728B (control logic) and/or data. Removable storage unit 1716 represents a floppy disk, magnetic tape, compact disk, DVD, optical storage disk, or any other computer data storage device. Removable storage drive 1714 reads from and/or writes to removable storage unit 1716 in a well known manner.
Computer 1700 also includes input/output/display devices 1722, such as monitors, keyboards, pointing devices, etc.
Computer 1700 further includes a communication or network interface 1718. Communication interface 1718 enables the computer 1700 to communicate with remote devices. For example, communication interface 1718 allows computer 1700 to communicate over communication networks or mediums 1742 (representing a form of a computer useable or readable medium), such as LANs, WANs, the Internet, etc. Network interface 1718 may interface with remote sites or networks via wired or wireless connections.
Control logic 1728C may be transmitted to and from computer 1700 via the communication medium 1742.
Any apparatus or manufacture comprising a computer useable or readable medium having control logic (software) stored therein is referred to herein as a computer program product or program storage device. This includes, but is not limited to, computer 1700, main memory 1706, secondary storage devices 1710, and removable storage unit 1716. Such computer program products, having control logic stored therein that, when executed by one or more data processing devices, cause such data processing devices to operate as described herein, represent embodiments of the invention.
Devices in which embodiments may be implemented may include storage, such as storage drives, memory devices, and further types of computer-readable media. Examples of such computer-readable media include a hard disk, a removable magnetic disk, a removable optical disk, flash memory cards, digital video disks, random access memories (RAMs), read only memories (ROM), and the like. As used herein, the terms “computer program medium” and “computer-readable medium” are used to generally refer to the hard disk associated with a hard disk drive, a removable magnetic disk, a removable optical disk (e.g., CDROMs, DVDs, etc.), zip disks, tapes, magnetic storage devices, MEMS (micro-electromechanical systems) storage, nanotechnology-based storage devices, as well as other media such as flash memory cards, digital video discs, RAM devices, ROM devices, and the like. Such computer-readable media may store program modules that include computer program logic for implementing creative asset processing system 512, advertisement serving system 504, advertisement generator 506, creative asset processing system 700, user interface generator 702, video object validator 704, encoding module 706, scheduler 1006, video encoder 1008, encoding module 1200, send queue module 1204, poll queue module 1206, received queue module 1208, encoded video object selector 1602, flowchart 600, flowchart 800, flowchart 1100, and/or process 1502 (including any one or more steps of flowcharts 600, 800, and/or 1100), and/or further embodiments of the present invention described herein. Embodiments of the invention are directed to computer program products comprising such logic (e.g., in the form of program code or software) stored on any computer useable or computer readable medium. Such program code, when executed in one or more processors, causes a device to operate as described herein.
The invention can work with software, hardware, and/or operating system implementations other than those described herein. Any software, hardware, and operating system implementations suitable for performing the functions described herein can be used.
While various embodiments of the present invention have been described above, it should be understood that they have been presented by way of example only, and not limitation. It will be apparent to persons skilled in the relevant art(s) that various changes in form and details may be made to the embodiments described above without departing from the spirit and scope of the invention as defined in the appended claims. Accordingly, the breadth and scope of the present invention should not be limited by any of the above-described exemplary embodiments, but should be defined only in accordance with the following claims and their equivalents.