METHODS AND SYSTEMS FOR DELIVERY OF COMPLIANT VIDEO ADVERTISEMENTS TO DEVICES FROM ONE OR MORE PLATFORMS INCLUDING VIDEO AD REVIEW AND APPROVAL PROCESS
A method of approving video advertisements for placement in video content can comprise receiving and ingesting the video advertisements, obtaining a plurality of business rules, creating a database of the business rules, obtaining file information of the video advertisements, obtaining content information about the video advertisements, determining audio codec information and video codec information and/or video data of the video advertisements, determining presence and absence of a unique advertisement identifier of the video advertisements and assigning the unique advertisement identifier to the video advertisements on determining the absence of the unique advertisement identifier, storing video advertisement data in a memory, approving, rejecting and/or rating the video advertisements based on the business rules and the deterministic criteria, providing a web portal that includes user accessibility to the video advertisements and the video advertising data, and providing notification of the availability of new video advertisements for review.
This application is a continuation under 35 U.S.C. § 120 of U.S. application Ser. No. 13/800,876, filed Mar. 13, 2013, which claims the benefit of U.S. Provisional Application No. 61/619,292 filed on Apr. 2, 2012 and U.S. Provisional Application No. 61/719,914, filed on Oct. 29, 2012. Each of the above-referenced patent applications is incorporated by reference in its entirety.
BACKGROUND OF THE INVENTIONThe accessibility and consumption of video content over the Internet has grown exponentially in recent years. As a result, more and more users have shifted to watching or accessing video content on and through Internet-connected devices capable of reaching a variety of video content resources spread throughout the world. In connection with this shift of viewing habits to accessing Internet-based video content, video content providers have sought to help monetize and support such video delivery by incorporating video-based advertisements into and around the video content requested by users.
Video content providers would like to know whether a particular video served to a user over the Internet is actually received or watched by the user in its entirety. The ability for users to skip or fast-forward past certain videos, or certain portions of videos, means that content providers may know only whether a particular video is requested, but not whether it is actually received or watched by the user. Additionally, many devices do not have the requisite software (player, web kit, browser, etc) to initiate or respond to request from internet servers delivering and/or logging requests and responses. Such uncertainty as to whether videos are actually watched by the requesting user may limit the desirability or incentive for many video content producers to make their video content accessible over the Internet. For example, advertisers may desire to include a short video advertisement around certain highly-requested videos. However, some devices that stream interne video, including but not limited to first generation set top boxes (STBs) may not provide sufficient levels of communication to the advertisers that their advertisements are actually received and watched by users.
Lacking such communication ability, many advertisers refuse to distribute their advertisements to those devices in connection with online video content.
As a result, there is a need to provide better information to video advertisers regarding delivery of their video content, including advertising content, through Internet-connected devices. Before the Digital Video Ad Serving Template (VAST), there was not a common in-stream advertising protocol for video players, which made scalable distribution of ads impossible for ad servers. In order to serve ads to multiple publishers using disparate proprietary video players, ad-serving organizations had to develop slightly different ad responses for every publisher/video player targeted. This approach was expensive and did not easily scale. Additionally, the ad servers could not receive a response from many devices indicating that the ad had been played.
INCORPORATION BY REFERENCEAll publications, patents, and patent applications mentioned in this specification are hereby incorporated by reference to the same extent as if each individual publication, patent, or patent application was specifically and individually indicated to be incorporated by reference.
Systems and methods for verification and delivery of compliant video advertisements to devices by utilizing a proxy server are described herein.
While various embodiments of the present invention have been shown and described herein, it will be obvious to those skilled in the art that such embodiments are provided by way of example only. Numerous variations, changes, and substitutions will now occur to those skilled in the art without departing from the invention. It should be understood that various alternatives to the embodiments described herein may be employed in various embodiments.
Content RoutingVarious embodiments described herein can be implemented over a network, such as the Internet. The Internet is a network between multiple Internet Service Providers (ISPs). Companies that have content (such as content distribution networks) exchange their content with ISPs that have users attempting to see the content. The ISPs exchange content, or Internet traffic, at peering points and data centers.
One method used for routing between ISPs and content providers is Border Gateway Protocol (BGP). An ISP may route traffic to the destination Internet Protocol (IP) Address based on how the content provider is announcing the IP address on the Internet. It is possible for a content provider to have one IP address announced, and be present, in multiple physical locations. These Internet Protocol (IP) addresses may be in either IPv4 or IPv6 format.
North American and European exchange points are generally in major metro areas, such as Los Angeles, Chicago, New York, London, and Amsterdam. As an example, assume a content provider is announcing the same publicly routable IP address (e.g. 69.1.64.1) in Los Angeles, Chicago, New York, London, and Amsterdam. Also assume that an ISP peered, or exchanged traffic, in each of those locations with that content provider. The ISP users in the Western United States should be routed to Los Angeles; whereas the same ISP users in Ireland should be routed to London.
In the event of a network outage in one location, the content provider may stop announcing the route at that location, and BGP routing could route ISP users to a different location. For example, if the content provider has a network outage in Los Angeles, the ISP may route their west coast users to either Chicago or New York. It is difficult and expensive to exchange traffic, or peer, at each location that both the content provider and ISP have peering. For example, a content provider may have ten exchange points in the United States, and only peer with a European ISP in one of those locations. Thus, all of the European ISP users will be directed to that one exchange point. In some situations, it is impossible for the content provider to peer directly with the ISP. In that case, the traffic will transit through other ISPs or service providers in order to reach its destination. There are several commercially available databases that estimate a user's physical location based on its IP address. These databases are commonly used by content providers to estimate the user's physical location
Content Providers and Content ServersInternet video streaming starts with content ingestion. Content can be delivered on tape, DVD, via satellite dish, etc. Content can be any audiovisual video capable of being digitally delivered to the user, including without limitation second video ads, two-hour long movies, or 24×7 linear channels. The content may then be encoded into a format compatible with the viewers' device.
Video clips and movies are stored on video content storage servers. Live feed is continuously ingested. A playlist tells the master server which files to play, and when. The master server then sends the stream to edge servers, located in various parts of the world. The viewer connects to the Internet, and is directed to the DNS server. The DNS server then directs the viewer to the authentication server, or directly to the electronic program guide (EPG) server
Content providers may maintain multiple copies of the same content in multiple servers and multiple locations. These multiple locations are often referred to as points of presence (POP'S).
It should be understood that the content servers may be loaded with different operating systems and may have multiple software applications installed and capable of running in connection with the operating system, for facilitating platform functionality.
The content servers may be connected to the Internet and traffic may be routed to the servers' IP Address. The content provider can have one or more servers per POP. Additionally, the content provider can segment user requests and/or responding content traffic at each POP. The server responding to the content request is not required to be at the POP where the viewer request arrived.
In one aspect of the invention, a user's device may be connected to the Internet and may be used to connect to and receive content from a content provider. Users can employ various types of devices to connect to the network and Internet. Examples of these devices include but are not limited to computers, smart phones, tablet computers, smart televisions, and television set top boxes. A television set top box is a device that connects to the Internet and the television's input panel.
When a user's device requests content from a content provider, a number of variables may be provided to the content provider in connection with the user's request. For example, the user's request may include one or more of the following information: User agent, Browser type, Internet Protocol (IP) address, a globally-unique identifier (GUID) that may be represented, for example, as a 32-character hexadecimal string, Unique Device (or viewer) ID, Device Operating System (Windows, Linux, etc), and acceptable languages.
The content server may automatically timestamp the user's request. After the server decides that it can and should provide the requested content to the user, it will supply the content, and optionally update one or more database tables documenting the transaction event.
The Interactive Advertising Bureau's (IAB's) Video Ad Serving Template (VAST) specification is a universal XML schema for serving ads to digital video players, and describes expected video player behavior when executing VAST-formatted ad responses. VAST provides a common protocol that enables ad servers to use a single ad response format across multiple publishers/video players. In 2008, the IAB introduced the first version of VAST to the video advertising marketplace, which has since been widely adopted throughout the industry. In 2009 features were added that enabled additional functionality and more clarity. Today, as the in-stream digital video advertising market becomes more sophisticated, additional features and functionality are required to improve support for in-stream ad display and reporting. However, this protocol relies on an assumed capability of the video device that is not found in many of the devices.
The VAST specification includes description of the ad, and the format for the delivered ad such as frame size and encoding protocol. Due to the increase in the number of mobile devices, tablets, gaming consoles, etc a single format will not play on all devices. Further, many advertisers have ignored some encoding protocols as they were primarily used on first generation devices. Thus many of the ads require transcoding from one encoding protocol to a different protocol; and/or transrating from one frame size or bit rate to another; in order to play on all devices.
For purposes of discussion, ‘non-VAST compliant’ device references an internet connected device that does not have the requisite video player, application or software to produce, send, or receive HTTP signals required to parse a VAST ad server response and use the data, or may be otherwise incapable of creating or processing VAST-compliant requests or responses.
For purposes of discussion, ‘non-VAST compliant’ ad server references an internet connected video ad server that either a) does not provide video clips formatted to meet or b) does not have the software to produce, send, or receive HTTP signals or tracking URLS required to produce an XML schema and/or parse a VAST ad server response and use the data, or c) does not have the software to receive HTTP signal requests or receive HTTP signals or tracking URLS or to properly parse an XML schema input and/or parse a tracking URL response and/or requests for video ads from internet connected devices, and/or error responses.
The principles herein as applied as to interactions between, and networks including, combinations of VAST and non-VAST systems may also apply to interaction between, and networks including, combinations of systems using or with a particular schema or protocol and systems not using or without the particular schema or protocol. Thus, various other embodiments using different schema, protocols or systems are possible according to different embodiments.
The Advanced Stream Redirector (ASX) format is a type of XML metafile designed to store a list of Windows Media files to play during a multimedia presentation. It is used frequently on streaming video servers where multiple video content files are to be played in succession. A VAST ad proxy Server may support a number of streaming protocols, such as RTSP, MMS, RTMP, HLS, and HTTP. In some embodiments, ASX files have MIME type video/x-ms-asf. For example, an ASX file may include the following structure:
In some embodiments, the Ad Proxy Server may also create WSX files. A WSX file is an XML file that defines the sequence of ads and media in a playlist, and provides information as to how they should behave. WSX files are used for server-side playlists. For example, WSX file may contain the following:
In some embodiments, the Ad Proxy Server may also create m3u8 files. An m3u8 file is an XML file that defines the sequence of ads and media in a playlist, and provides information as to how they should behave. m3u8 files are used for server-side playlists. For example, m3u8 file may contain the following:
wherein “Target_440.m3u8” may comprise a nested playlist similar to the following:
In some embodiments, the Ad Proxy Server may also create proprietary quasi-XML files, such as but not limited to Vidillion Markup Language or ‘VML’. A VML file is an quasi-XML file that defines the sequence of ads and media in a playlist, plus additional non-VAST template information, and provides information as to how they should behave. VML files are used for server-side playlists, plus transfer of additional data between the VAST ad proxy Server and the ad server, or the video player, or both the ad server and the video player. For example, VML file may contain the following:
As illustrated in
VAST ad proxy Server may digitally sign a publisher's media streaming requests for streams that are protected. For example, the VAST ad proxy Server could sign the stream using a secure token, a password, or a hash. In some embodiments, VAST ad proxy Server may bypass this security step if the media streams are protected with Digital Rights Management (DRM) access control. The media servers can then validate that each streaming request is authorized, and reject those that are not.
In some embodiments, a user requesting content may be routed to the closest VAST ad proxy Server. Determination of the closest VAST ad proxy Server may be accomplished using any number of methodologies, including, for example, by use of BGP routing. In some scenarios, the VAST ad proxy Server may use the user's IP address to determine the country or area in which the user is located, and may then direct the user to the closest content media server based on such country or area. A variety of approaches may be used for determining a user's location relative to requested content and for directing a user's request to a server located close to the user's location.
The VAST ad proxy Server may provide the functionality to direct a single viewer, a small ISP, or a metro area to a specific POP, regardless of distance. The VAST ad proxy Server may provide the content operator with the opportunity for granularity in delivering traffic to the closest POP to the viewer.
In one embodiment, VAST ad proxy Server may be accessed using a single global sub-domain name (host.domainname.net). That sub-domain name may resolve to a single IP address that is announced globally by the content provider via BGP from multiple locations. This routing approach would permit users to be routed to the “nearest” point on the net announcing the given destination IP when attempting to connect to VAST ad proxy Server's single global sub-domain name.
The use of such a sub-domain name may permit certain failover capabilities in the VAST ad proxy Server. If there is a network issue in one POP, the content provider discontinues announcing that IP address from that POP, while the single IP address is announced globally via BGP from the remainder of the POPs. Thus there is automatic fail-over to a different data center, if one server or one data center is in accessible.
In some embodiments, VAST ad proxy Server may alternatively utilize Anycast routing methodologies. Anycast is a network addressing and routing methodology in which datagrams from a single sender are routed to the topologically nearest node in a group of potential receivers all identified by the same destination address.
In addition to the single global sub-domain name, the VAST ad proxy Server in each POP may also have its own local sub-domain name and local IP address. Each data center hosting a VAST ad proxy Server (POP) may also have a de specific sub-domain name (e.g. host.domainname.net). In this manner, the features and functionality performed by the VAST ad proxy Server may be replicated in order to provide high availability clusters for reliability and scalability.
According to an embodiment, regardless of which VAST ad proxy Server a request ends up in, the media URLs embedded in each ASX references the content server POP closest to the requester, based on a geo-lookup off of the requester s IP address; or to a POP specified on other criteria.
Traffic DirectorOne component of the VAST ad proxy Server is Traffic Director. The objective of Traffic Director is to determine the location of the user, and then connect the user to the content provider's closest point of presence (POP) that has the content that the viewer requested. The VAST ad proxy Server may use subdomain names to identify the location of the POP. For example, the VAST ad proxy Server may use the following: Global: host.domainname.net; Localized: host-poplocationcode.domainname.net.
Poplocation Code is a three character acronym based on the nearest major airport code. The airport codes are based on the International Air Transport Association airport code. Poplocationcode. Domain-name.net with the hyphen identifies a POP; containing groups of IPs, where the IPs may change often. The quantity of IPs per area will vary based on load. There are multiple DNS servers for host.domainname.net located in multiple locations. Viewers in different countries doing a trace route use different DNS servers; and may get different results. VAST ad proxy may also use sub-domain names to identify the customer that owns the content. For example, the VAST ad proxy may use the following: Global: customemamecode. Domain-name.net; Localized: customernamecode-lax.totalstream.net.
By way of example, viewers tracing to host-poplocationcode.domain-name.net from New York should resolve to 69.1.92.106, 69.1.92.122 IPv4 IP addresses in Ashburn; while viewers tracing to host-poplocationcode.domain-name.net from Los Angeles should resolve to 69.1.67.74 IPv4 IP addresses in Los Angeles Total-stream.net with the hyphen resolves to IPs that are globally announced (The 69.1.70.0/24 IPv4 IP addresses network). Viewers tracing to host.domainname.net will go to the closest VAST ad proxy Server based on BGP routing.
VAST ad proxy sub-domain names can also resolve to other sub-domain names, by using CNAME records. A CNAME record or Canonical Name record is a type of resource record in the Domain Name System (DNS) that specifies that the domain name is an alias of another, canonical domain name. By doing this, the content provider can direct traffic from other sources, and/or other content providers.
In some embodiments, Traffic Director uses the country codes from ISO 3166 to assign countries to POPs, for the purpose of calculating distances to the viewer. ISO 3166 is a standard published by the International Organization for Standardization (ISO). It defines codes for the names of countries, dependent territories, special areas of geographical interest, and their principal subdivisions (e.g., provinces or states). If a country is not specifically named, it will be routed based on the continent. Traffic Director utilizes a continent-country-pop table that maps continents and countries to existing content providers POPs. As an example, Traffic Director may use the following ISO 3166 Codes in its table:
In some embodiments, Traffic Director may use the average latitude and longitude for US States and Canadian Territories for the purpose of calculating distances. Large, populous states (e.g. California) are split into sections. Traffic Director may use two letter codes to represent states. A sample list is:
In other embodiments, Traffic Director may also use commercially available databases to estimate the user's physical location, including based on IPv4 IP address.
Intermediate Server, or ‘Proxy’ Server, VAST Template and Playlist CreationIn the standard implementation, an IP connected device (101) playing video content will send an HTTP request to a video ad server (102), as illustrated in
In some embodiments, IP-connected devices (301) may include other information within the HTTP header of the HTTP request. As shown in
Some IP-connected devices may not contain the necessary applications or software required to make an HTTP request in the format necessary to be VAST compliant, or to process a VAST response. Additionally, some ad servers do not provide XML in the format necessary to be VAST compliant. In some embodiments, as illustrated in
In a different embodiment, illustrated in
The Ad Proxy Server authenticates the request, determines the viewer's physical location, determines the closest POP with the content, providers additional security measures, if required, determines if an ad is available for this channel, creates the ASX file, then sends that to the viewer's device. Viewer's device processes the ASX file and presents Viewer with the content identified by the ASX file. In some embodiments, the ASX file will include advertisements for presenting to the Viewer prior to presenting the Viewer with the requested content. Events may be documented in an optional logging server.
The ad proxy server (504) will receive the HTTP request from the web page, electronic program guide, etc, and then the VAST proxy server (504) formats an HTTP request for the ad, and the content. The VAST proxy server creates the HTTP request and forwards that request to the ad server (502), including the IP address of the IP connected device (501). The ad server responds with an XML file that is not VAST compliant, to the VAST proxy server (504). The VAST proxy server creates the VAST compliant XML file, plus a playlist containing the ad plus the requested content, and forwards that playlist to the IP connected device (501). After the IP connected device (501) plays the ad, it sends an HTTP signal to the video streaming server (506), for the content originally requested from the web page, electronic program guide, etc.
In response to a request for video content by the viewer, the Ad Proxy Server may create an ASX file that includes references to the following content in the specified order:
and return that ASX file to the device used by the viewer. Upon receiving an ASX file response, the viewers device (501) may send video requests to Video Content Server 2, Video Content Server 1, then Video Content Server 2, in such order, in order to request viewing of the respective content identified by the ASX file. Those video servers respond by playing video content in the correct mime-type for the requesting device.
Also shown in
References herein to ad servers, ad networks, and ad platforms are reference to any third party advertising platform that is capable of interfacing with one or more embodiments set forth herein.
As an example, in some embodiments, the Ad Proxy Server (601) in
As an example, in some embodiments, the Ad Proxy Server (601) in
As an example, in some embodiments, the Ad Proxy Server (601) in
As an example, in some embodiments, the Ad Proxy Server (601) in
As an example, in some embodiments, the Ad Proxy Server (601) in
As an example, in some embodiments, the Ad Proxy Server (601) in
As an example, in some embodiments, the Ad Proxy Server (601) in
As an example, in some embodiments, the Ad Proxy Server (601) in
In some embodiments, the ad server (702) in
In one embodiment, the viewer selects the desired video content, such as by using a remote control. The electronic program guide server (806) forwards that request to the Ad Proxy Server (806). The Ad Proxy Server (806) may perform various security measures, such as authenticating the requesting device and user. The Ad Proxy Server (2704) may determine the user agent of the device in order to determine the correct format (mime-type) to serve video clips to the viewer's device. The Ad Proxy Server (804) may determine which video clips are available to serve to the viewer based on business logic and available spots. The Ad Proxy Server (804) responds to a user request by returning an ASX file with the appropriate video content references.
The ad server (802) in
In some embodiments, the ad server (902) in
In some embodiments, the an optional verification clip server (1004) shown in
User may be redirected to the User authentication server, subscriber management system server, or similar The device GUID and HTTP parameters are passed to the EPG server (2302). The EPG server (2302) provides embedded links or URLs, containing strings with the channel ID and other variables. User (2301) selects channel ‘ABCD.’ EPG server (2302) responds with a link containing the viewers channel selection, IP address, string variables and forwards that string to the VAST ad proxy Server. VAST ad proxy Server (2304) may perform one or more steps related to the request, such as one or more of the following: authenticating the request, determining the viewer's physical location, determining the closest POP with the requested content, providing additional security measures if required, determining if an ad is available for the requested channel, creating an ASX file, sending that ASX file to the viewers device (2301), and holding an ASX file in memory as a session variable embedded in an URL. For example, the VAST ad proxy Server log files (2704) may be moved to the Log Server every 2 hours, while the log files from Video Content Server 1 (2706) may be moved to the Log Server every 30 minutes.
By way of example, as illustrated in
An example of the start and end clips is shown in additional detail in
In some embodiments, the viewers second screen device (1206), shown in
The customers' web server or electronic program guide (EPG) server (1205), shown in
As an example of this embodiment, the web server or electronic program guide (EPG) server (1205) may transmit or deliver the channel line-up, or list of TV stations available, or the list of video clips presentable to the viewers (list of available video content) to the VAST ad proxy server (1204). Said transmittal or delivery list of available video content may be done in a one-off fashion; on a timed basis per minute, hour, day, week, or month; in advance of known events; in advance of requests for video content; concurrent with requests for content; or after requests for video content. Said transmittal or delivery list of available video content may also in part be derived from third-party commercial or community sources. The transmittal or delivery list of available video content may be done by physical transfer of media, or via the interne, or via other method of IP delivery, regardless of protocols. Said protocols or methods may included, but are not limited to HTTP, UDP, FTP, named pipes, specific ports, database transfer, ODBC, BON, XML, spreadsheet transfer, RSS, news feed, etc. Said transmittal or delivery list of available video content may include, but not be limited to, channel name, content title, content description, date, time, language, genre, ethnic community, MPAA (or equivalent) rating, user rating, third party rating, cast, director and producer, show time, show duration, suggested time and/or timeframe to deliver the show, and other data inputs. Said transmittal or delivery list of available video content may include whether to display an advertisement, restrictions on advertisements, types of advertisements, recommended advertisement format and encoding (e.g. h264, wmv9, vp6, vp8, etc.), minimum and maximum bitrate for ads on this channel (based on first screen, second screen, etc), mimetype: (e.g. video/mp4, video/x-flv, video/x-ms-wmv, etc.), minimum and maximum advertising duration per advertisement spot or opportunity, maximum ads displayed per variable (per channel, per hour, per viewer, per day, per month, per campaign, etc), maximum ad count (per channel, per hour, per viewer, per day, per month, per campaign, etc), time of day or day of week restrictions for displaying ads, locations to place the ad (pre-roll, mid-roll, end-roll, overlay, etc), location to display the ad (first screen, second screen, etc), etc. Said transmittal or delivery list of available video content may include but not be limited to a blacklist of countries where ads should not run, or a whitelist of countries where ad should run. Said transmittal or delivery list of available video content may include but not be limited to a target demographics, a list of traditional gender and age based ad targeting groups (e.g. M18-24, W25-34, A65+, etc.), target zip code, city, state and/or country, or other location input, or other viewer demographic information. Said transmittal or delivery list of available video content may include but not be limited to ID codes, such as publisher, channel, content, system, identification codes. Said transmittal or delivery list of available video content may include but not be limited to delivery, partial delivery, and error codes for first or second screen devices. Said transmittal or delivery list of available video content may include but not be limited to aspect ratio of program content, (16:9, 4:3, etc), vertical resolution of program content, (480, 720, 1080, etc), whether the ad may be downscaled, whether or not the player can accept ads with a vertical resolution higher than the content ‘resolution’, upscale: whether or not the player can accept ads with a vertical resolution lower than the content ‘resolution’, and other video clip altering inputs. Said transmittal or delivery list of available video content may include standard, default, error, and alternative data for each input. Said transmittal or delivery list of available video content may include standard, default, error, and alternative responses. Said transmittal or delivery list of available video content may include standard, default, error, and alternative URL responses. Said transmittal or delivery list of available video content may include information only about the video player type, or model information. Said transmittal or delivery list of available video content may include information only about the system. Said transmittal or delivery list of available video content may be corrupt, or not include valid information. Should said transmittal or delivery list of available video content be done over the interne, then the HTTP (or other protocol) referrer information will also be available as inputs to the Ad Proxy Server.
As an example of this embodiment, the Ad Proxy Server (1204) may use some, part, or all of the data inputs; and then using business logic, determine whether to provided the requested content to the viewers primary device (1201), and if available to their second device (1206), and if so; whether to also provide video advertising to the viewers first or second screen device.
As an example of this embodiment, the Ad Proxy Server (1204) may have inputs from one or more ad servers, ad networks, or ad platforms (1202) including but not limited to availability of video advertisements; VAST requests and responses; channel, system, publisher, genre, and other identification codes; as well as location restrictions, pricing, viewer demographic targets, format, and other data inputs. Said transmittal or delivery inputs of available video advertisements may be done in a one-off fashion; on a timed basis per minute, hour, day, week, or month; in advance of known events; in advance of requests for video advertisements; concurrent with requests for advertisements; or after requests for video advertisements.
As an example of this embodiment, the Ad Proxy Server (1204) may use business logic, the inputs from the ad servers, ad networks, or ad platforms (1202), and the inputs from the web server or electronic program guide (EPG) server (1205), as well as inputs derived from third-party commercial or community sources, in combination or separately, to determine if one, some, or all of the available ad servers, ad networks, or ad platforms (1202) shall be sent a request for none, one, or multiple advertisements, along with some or all of the data available from above, destined to be displayed on the viewers first screen device (1201), second screen device (1206), or both devices.
As an example of this embodiment, the Ad Proxy Server (1204) may use business logic, data inputs, and programming scripts, to create an XML request to the ad servers, ad networks, or ad platforms (1202) requesting one or more advertisements. Said XML request may or may not be VAST compliant.
As an example of this embodiment, one or more of the ad servers, ad networks, or ad platforms (1202) may return an XML response to the Ad Proxy Server (1204) which may include attributes as to the availability, name, URL(s), duration, pricing, location and other data inputs. Said XML response may or may not be formatted in compliance with the VAST template as described above. The Ad Proxy Server (1204) may then use business logic to determine if to serve one or more of the available advertisements to the viewers first screen device, second screen device, or both; and if there are multiple advertisements available, determine which order to display some or all of said advertisements. The Ad Proxy Server (1204) may then use business logic and application programming to create a playlist consisting of none, or one or more advertisements, plus the URL of the requested content, plus additional information, and forward that playlist to the viewers first screen device, second screen device, or both. Upon completion of the viewing of the advertisement on the first screen device, the second screen device, or both; or upon initiation of viewing of the requested content; the Ad Proxy Server may then send an HTTP signal to the ad platforms indicating no advertisement was viewed, that the ad was partially viewed, or the ad(s) were completely viewed, on the first screen device, the second screen device, or both.
As a further example of this embodiment in
As a further example of this embodiment in
As an additional example of this embodiment in
The Ad Proxy Server (1204) may then use business logic and application programming to record the event(s); and/or to store the event(s) information in a database and/or logging server.
The Ad Proxy Server (1204) may then use business logic and application programming to send the event information to a third party server.
The systems and methods described herein may be used for a variety of uses and applications in which verification of content delivery is desirable. For example, the systems and methods described herein may be used to provide verification to third party advertisers who wish to distribute video advertisements in connection with other video content over the Internet. In some embodiments, a VAST proxy ad Server may automatically include an advertisement with a request for other video content, and may include Start Verification Clip and End Verification Clip in a playlist transmitted to a user's device for purposes of verifying delivery of the advertisement.
The systems and methods described herein may be implemented in or upon computer systems, such as the computer systems shown in
A computer system or server, according to various embodiments, may include a data communication interface for packet data communication. The computer system or server may also include a central processing unit (CPU), in the form of one or more processors, for executing program instructions. The computer system or server may include an internal communication bus, program storage and data storage for various data files to be processed and/or communicated by the server, although the computer system or server may receive programming and data via network communications. The computer system or server may include various hardware elements, operating systems and programming languages. The server or computing functions may be implemented in various distributed fashions, such as on a number of similar or other platforms.
The computer system may also include input and output (I/O) devices such as a mouse, game input device or controller, display, touch screen or other I/O device or devices in various combinations.
The methods described herein may be implemented in mobile devices such as mobile phones, mobile tablets and other mobile devices with various communication capabilities including wireless communications, which may include radio frequency transmission infrared transmission or other communication technology. Thus, the hardware described herein may include transmitters and receivers for radio and/or other communication technology and/or interfaces to couple to and communication with communication networks.
The methods described herein may be implemented in computer software that may be stored in the computer systems including a plurality of computer systems and servers. These may be coupled over computer networks including the Internet. Accordingly, an embodiment includes a network including the various system and devices coupled with the network.
Further, various methods and architectures as described herein, such as the various processes described herein or other processes or architectures, may be implemented in resources including computer software such as computer executable code embodied in a computer readable medium, or in electrical circuitry, or in combinations of computer software and electronic circuitry.
Aspects of the systems and methods described herein may be implemented as functionality programmed into any of a variety of circuitry, including programmable logic devices (PLDs), such as field programmable gate arrays (FPGAs), programmable array logic (PAL) devices, electrically programmable logic and memory devices and standard cell-based devices, as well as application specific integrated circuits (ASICs). Some other possibilities for implementing aspects of the systems and methods include: microcontrollers with memory, embedded microprocessors, firmware, software, etc. Furthermore, aspects of the systems and methods may be embodied in microprocessors having software-based circuit emulation, discrete logic (sequential and combinatorial), custom devices, fuzzy (neural network) logic, quantum devices, and hybrids of any of the above device types. Of course the underlying device technologies may be provided in a variety of component types, e.g., metal-oxide semiconductor field-effect transistor (MOSFET) technologies like complementary metal-oxide semiconductor (CMOS), bipolar technologies like emitter-coupled logic (ECL), polymer technologies (e.g., silicon-conjugated polymer and metal-conjugated polymer-metal structures), mixed analog and digital, etc.
It should be noted that the various functions or processes disclosed herein may be described as data and/or instructions embodied in various computer-readable media, in terms of their behavioral, register transfer, logic component, transistor, layout geometries, and/or other characteristics. Computer-readable media in which such formatted data and/or instructions may be embodied include, but are not limited to, non-volatile storage media in various forms (e.g., optical, magnetic or semiconductor storage media) and carrier waves that may be used to transfer such formatted data and/or instructions through wireless, optical, or wired signaling media or any combination thereof. Examples of transfers of such formatted data and/or instructions by carrier waves include, but are not limited to, transfers (uploads, downloads, email, etc.) over the Internet and/or other computer networks via one or more data transfer protocols (e.g., HTTP, FTP, SMTP, etc.). When received within a computer system via one or more computer-readable media, such data and/or instruction-based expressions of components and/or processes under the systems and methods may be processed by a processing entity (e.g., one or more processors) within the computer system in conjunction with execution of one or more other computer programs.
Unless specifically stated otherwise, as apparent from the following discussions, it is appreciated that throughout the specification, discussions utilizing terms such as “processing,” “computing,” “calculating,” “determining,” or the like, may refer in whole or in part to the action and/or processes of a processor, computer or computing system, or similar electronic computing device, that manipulate and/or transform data represented as physical, such as electronic, quantities within the system's registers and/or memories into other data similarly represented as physical quantities within the system's memories, registers or other such information storage, transmission or display devices. It will also be appreciated by persons skilled in the art that the term “users” referred to herein can be individuals as well as corporations and other legal entities. Furthermore, the processes presented herein are not inherently related to any particular computer, processing device, article or other apparatus. An example of a structure for a variety of these systems will appear from the description herein. In addition, embodiments of the invention are not described with reference to any particular processor, programming language, machine code, etc. It will be appreciated that a variety of programming languages, machine codes, etc. may be used to implement the teachings of the invention as described herein.
Unless the context clearly requires otherwise, throughout the description and the claims, the words ‘comprise,’ comprising,' and the like are to be construed in an inclusive sense as opposed to an exclusive or exhaustive sense; that is to say, in a sense of ‘including, but not limited to.’ Words using the singular or plural number also include the plural or singular number respectively. Additionally, the words ‘herein,’ ‘hereunder,’‘above,’ ‘below,’ and words of similar import refer to this application as a whole and not to any particular portions of this application. When the word ‘or’ is used in reference to a list of two or more items, that word covers all of the following interpretations of the word: any one or more of the items in the list, all of the items in the list and any combination of the items in the list.
The above description of illustrated embodiments of the systems and methods is not intended to be exhaustive or to limit the systems and methods to the precise form disclosed. While specific embodiments of, and examples for, the systems and methods are described herein for illustrative purposes, various equivalent modifications are possible within the scope of the systems and methods, as those skilled in the relevant art will recognize. The teachings of the systems and methods provided herein can be applied to other processing systems and methods, not only for the systems and methods described above.
The elements and acts of the various embodiments described above can be combined to provide further embodiments. These and other changes can be made to the systems and methods in light of the above detailed description.
In general, in the claims, the terms used should not be construed to limit the systems and methods to the specific embodiments disclosed in the specification and the claims, but should be construed to include all processing systems that operate under the claims.
While certain aspects of the systems and methods are presented below in certain claim forms, the inventors contemplate the various aspects of the systems and methods in any number of claim forms. Accordingly, the inventors reserve the right to add additional claims after filing the application to pursue such additional claim forms for other aspects of the systems and methods.
The various features described above may be combined in various combinations. Without limitation, features described may be combined with various systems, methods and products described. Without limitation, multiple dependent claims may be made based on the description herein.
While embodiments of the invention have been shown and described herein, those skilled in the art will appreciate that such embodiments are provided by way of example only. Numerous variations, changes, and substitutions will now occur to those skilled in the art without departing from the invention. It should be understood that various alternatives to the embodiments of the invention described herein may be employed in practicing the invention.
Claims
1. A method of approving video advertisements for placement in video content, the method comprising:
- receiving and ingesting the video advertisements from a server coupled to a network or from digital media connected to a workstation;
- obtaining a plurality of business rules from at least one content publisher or outside source and utilizing the plurality of business rules for classifying the video advertisements;
- creating a database of the business rules comprising a hierarchy of deterministic criteria and a plurality of methodologies for the video advertisements;
- obtaining file information of the video advertisements including at least one of file size, file creation date, file name, file location, file type, and file source;
- obtaining content information about the video advertisements including at least one of content category, content rating, content author, and time duration;
- determining audio codec information and video codec information and/or video data of the video advertisements;
- determining presence and absence of a unique advertisement identifier of the video advertisements and assigning the unique advertisement identifier to the video advertisements on determining the absence of the unique advertisement identifier;
- storing video advertisement data in a memory, the video advertisement data comprising the file information, content information, audio codec information, video codec information and/or video data, and unique advertisement identifiers;
- approving, rejecting and/or rating the video advertisements based on the business rules and the deterministic criteria;
- providing a web portal that includes user accessibility to the video advertisements and the video advertising data for a user to analyze; and
- providing notification of the availability of new video advertisements for review.
2. The method of claim 1, further comprising:
- screening the video advertisement data for at least one of illegal characters and undesired characters, and editing the video advertisement data to remove illegal characters and/or undesired characters from the screened video advertisement data.
3. The method of claim 2, further comprising:
- at least one of transcoding and transrating a file of the video advertisements; and
- storing the video advertisements, the screened and edited video advertisement data, and transcoded and/or transrated video advertisements onto at least one of a LAN-connected computer server and a WAN-connected computer server.
4. The method of claim 2, further comprising:
- storing the screened and edited video advertisement data in the memory.
5. The method of claim 1, further comprising:
- at least one of transcoding and transrating a file of the video advertisements.
6. The method of claim 1, further comprising:
- analyzing the video advertisements and video advertisement data.
7. The method of claim 1, wherein the audio codec information comprises audio format, codec identification, sample rate, channels, bit depth, language, and bit rate, and wherein the video codec information comprises at least one of video format, codec identification, aspect, frame rate, bit rate, color space, chroma subsampling, bit depth, scan type, and scan order, and wherein the video data relates to one or more of a container, a tag, an APE tag, and a subtitle, and wherein the container is at least one of a MPEG-4, a QuickTime, a Matroska, an AVI, a H.264, a H.265, or a MPEG-TS, and wherein the tag is at least one of an Id3v1, or an Id3v2, and wherein the subtitle is at least one of a CEA-608, a CEA-708, a DTVCC, an SCTE-20, an SCTE-128, WebVTT, or an ATSC/53.
8. The method of claim 1, wherein the web portal is arranged such that the users can select or deselect a plurality of advertisement restrictions.
9. The method of claim 8, wherein the plurality of advertisement restrictions includes restriction categories related to at least one of alcohol, ammunition, beef, casinos, competitor, condoms, feminine hygiene, firearms, gambling, pork, sexuality, tobacco, nudity, medicines to treat erectile dysfunction, violence, hate, seaworld, political, republican, and democrat.
10. The method of claim 1, further comprising:
- utilizing individual user criteria and the hierarchy of business rule criteria to either approve or reject video advertisements; and
- communicating an approved or rejected status of the video advertisements to an advertisement server.
11. The method of claim 1, further comprising:
- automatically approving or rejecting an individual video advertisement of the video advertisements to be placed in one or more video content based on a previously approved video advertisement, a previously rejected video advertisement, and/or content rating of the video advertisement.
12. The method of claim 11, wherein the automatically approving or rejecting is based, at least in part, on one or more specific geographic regions.
13. The method of claim 11, wherein the automatically approving or rejecting is based, at least in part, on criteria within the data structure of the business rules.
14. The method of claim 1, further comprising:
- automatically approving or rejecting multiple video advertisements of the video advertisements to be placed in one or more video content based on the previously approved video advertisement, previously rejected video advertisement, and/or rating of the video advertisement.
15. The method of claim 14, wherein the automatically approving or automatically rejecting is based, at least in part, on one or more specific geographic regions.
16. The method of claim 14, wherein the automatically approving or automatically rejecting is based, at least in part, on criteria within the data structure of the business rules.
17. The method of claim 1, further comprising:
- utilizing an automated process to approve or reject an individual video advertisement of the video advertisements, and subsequently manually approving or rejecting the individual video advertisement to be placed in one or more video content based on one or more criteria; and
- updating the business rules in the database.
18. The method of claim 1, further comprising:
- utilizing an automated process to approve or reject multiple video advertisements of the video advertisements, and subsequently manually approving or rejecting multiple video advertisements to be placed in one or more video content based on one or more criteria, and as applicable update the business rules.
19. The method of claim 1, further comprising:
- automatically updating the business rules specific to an individual user based on at least one of one or more criteria, or specific geographic regions for similar video advertisements.
20. The method of claim 1, further comprising:
- providing access on the web portal to the business rules for user analysis;
- automatically updating the hierarchy of the business rules available to the users on the web portal based on at least one of one or more criteria and specific geographic regions for similar video advertisements.
21. The method of claim 1, further comprising:
- automatically updating application of the business rules specific to an individual user, based on at least one of one or more criteria, and specific geographic regions for similar user content categories.
22. The method of claim 1, further comprising:
- providing access on the web portal to the business rules for user analysis;
- automatically updating the hierarchy of the business rules available to users on the web portal based on at least one of one or more criteria and specific geographic regions for similar user content categories.
23. The method of claim 1, further comprising:
- automatically signaling a status of rejected video advertisement based on one or more criteria in real time or on a periodic basis to a video advertisement demand partner.
24. The method of claim 1, wherein providing a web portal includes providing one or more of:
- input user variables;
- user control to automatically approve, reject and/or rate the video advertisements;
- user control to edit, append, and/or delete the associated data and/or information;
- user control to approve or reject the video advertisements for production, and to update the data structure of the business rules;
- user control to upload the video advertisements, the edited data and/or information and the transcoded and/or transrated video files onto one or more content distribution networks (CDNs) and/or one or more file backup providers;
- user control to send a signal, and/or message by utilizing at least one of a messaging protocol, a flag, a text message, or an email reporting on the progress of the video advertisement and/or video advertisement data; and
- user control to log the progress of the video advertisement and/or video advertisement data to a LAN-connected logging server and/or WAN-connected logging server.
25. A system for analyzing video content for approving or rejecting one or more video advertisements to be placed in one or more video contents based on one or more criteria, the system comprising:
- a processor;
- a storage;
- an operating system;
- a logging module;
- one or more network interfaces capable of communicating with a plurality of video advertising networks and users; and
- a scripting engine containing logic for: creating, modifying, and updating a data structure of business rules; providing a web portal for the users to append, modify, edit, and/or delete data within the data structure; creating, modifying, and updating a data structure of video file characteristics, information, and data; receiving a first video file; creating a system of transcoding, transrating, and transferring video files; determining the video file characteristics, information and data; analyzing the first video file characteristics, information and data in relation to the data structure of business rules based on the analysis of the first video file in relation to the data structure of business rules; determining a classification for the first video file, wherein the classification is selected from at least one of a binary and a quantitative rating; selectively transmitting a signal pertaining to the classification of the first video file; making the first video file available for use based on the classification of the first video file; adding the first video file and first video file characteristics, information, and data to the list of available files available for review in the web portal; updating the classification of the first video file based on the input of the user; updating the business rules within the data structure based on the input of the user; signaling one or more advertising networks with the first video file rating based on the rating of the first video file rating; updating the data structure of the video file characteristics, information and data; and transcoding, transrating, and/or transferring the first video file.
26. A method of delivering live, 24×7 linear or on-demand video content, comprising:
- receiving a request for video content from a video-playing device or proxy that is coupled to a network;
- determining a device type and a video player capability of the video-playing device;
- selecting a video content server based on attributes of the request for the video content from the video-playing device and attributes of the video-playing device, wherein the video content server is capable of transmitting the video content;
- selecting zero, one or more video ads to be played with the video content, wherein all of the ads selected have been whitelisted to be played with the video content;
- transmitting zero, one or more request for video ads to zero, one or more advertising networks or ad servers, wherein the advertising network or ad server is capable of transmitting the zero, one or more video ads;
- receiving zero, one or more responses to the video ad requests identifying zero, one or more video ads;
- generating a playlist listing, in any order, a reference to the video content to be requested from the video content server and zero, one or more references to the video ads to be requested from the advertising network server and/or an ad proxy server; and
- transmitting the playlist to the video-playing device.
27. A method of delivering live, 24×7 linear or on-demand video content, comprising:
- receiving a plurality of requests for video content from a plurality of video-playing devices or proxies, wherein each video-playing device or proxy is coupled to a network;
- determining a device type and a video player capability of each video-playing device;
- selecting a video content server based on attributes of each of plurality of the requests, wherein the video content server is capable of transmitting the video content;
- selecting zero, one or more video ads to be played with the video content for each of the plurality of the requests, wherein all of the ads selected have been whitelisted to be played with the video content;
- transmitting zero, one or more request for video ads to zero, one or more advertising networks or ad servers, wherein the advertising network or ad server is capable of transmitting the zero, one or more video ads;
- receiving zero, one or more responses to the video ad requests identifying zero, one or more video ads;
- identifying zero, one or more unused ads left over from prior requests for video content from the same video-playing device;
- generating a playlist listing, in any order, a reference to the video content to be requested from the video content server and zero, one or more references to the video ads to be requested from the advertising network server and/or an ad proxy server; and
- transmitting the playlist to the video-playing device.
28. A method of delivering live, 24×7 linear or on-demand video content, comprising:
- receiving a request for one or more video ads from a video-playing device or proxy that is coupled to a network;
- determining a device type and a video player capability of the video-playing device;
- selecting zero, one or more video ads to be played with the video content;
- transmitting zero, one or more request for video ads to zero, one or more advertising networks or ad servers, wherein the advertising network or ad server is capable of transmitting the zero, one or more video ads;
- receiving zero, one or more responses to the video ad requests identifying zero, one or more video ads, wherein all of the ads selected have been whitelisted to be played with the video content;
- generating a playlist listing, in any order, a reference to the video content to be requested from the video content server and zero, one or more references to the video ads to be requested from the advertising network server and/or an ad proxy server; and
- transmitting the playlist to the video-playing device.
Type: Application
Filed: Mar 18, 2019
Publication Date: Jul 11, 2019
Inventors: Dennis NUGENT (Las Vegas, NV), Steve POPPER (Las Vegas, NV), Daniel DEVERA (Las Vegas, NV)
Application Number: 16/356,944