Automatic video ADS enhancement for less interactive screens
The system enhances video ads on non-interactive screens by automatically detecting and styling QR codes based on ad context, addressing CTR and conversion challenges, and optimizing ad delivery efficiency.
Patent Information
- Application Number
- PCT/IB2025/054600
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2024-05-01
- Filing Date
- 2025-05-01
- Publication Date
- 2025-11-06
AI Technical Summary
Existing video ads on non-interactive screens, such as TVs, face challenges in increasing click-through rates (CTR) and conversions due to static QR codes that lack context-aware interaction, placement interference, and resource-intensive customization, and require direct integration with video players.
A system and method for enhancing video ads using a video ad enrichment service that automatically detects suitable areas and styles QR codes based on ad context, utilizing machine learning to optimize placement and interaction, decoupling from existing video players and platforms.
Enhances video ads with dynamic and context-aware QR codes, improving CTR and conversions on non-interactive screens without significant manual effort or platform changes, enabling scalable and efficient ad delivery.
Smart Images

Figure IB2025054600_06112025_PF_FP_ABST
Abstract
Description
AUTOMATIC VIDEO ADS ENHANCEMENT FOR LESS INTERACTIVE SCREENSCROSS REFERENCE TO RELATED INFORMATION
[0001] This application claims the benefit of United States of America priority application No. 63 / 641,232, filed on May 1, 2024, titled “Automatic Video Ads Enhancement for Less Interactive Screens.”TECHNICAL FIELD
[0002] The present disclosure generally relates to systems and methods for enhancing advertisements.BACKGROUND
[0003] In programmatic online advertising, click through rate (CTR) and conversions (e.g., product site visits or purchase actions) are two major key performance indicators (KPIs) for an advertising campaign. CTR indicates the ratio between the number of “clicks” or other user interactions that an advertisement receives and the number of times the advertisement was shown (number of impressions). It is relatively easy to promote customer interaction with an advertisement, and thereby increasing CTR and conversions, on desktops and mobile phones, where viewers can directly click through an ad, or open a browser when they see the ad. However, on bigger screens like a television (TV) or a Connected TV (CTV) such as a Roku TV, this type of interaction is limited. For example, due to hardware and software constraints of a TV, viewers cannot click on an ad or launch a webpage upon viewing an ad. Therefore, it is harder to stimulate viewers to take actions in response to ads that are displayed on these bigger screens and other non-interactive or limited-interaction devices and screens. Therefore, there is a desire for techniques for improving CTR and conversion rates for advertisements that are displayed on a non- interactive device or screen, such as a TV.
[0004] One possible approach for increasing the CTR of a video ad displayed on non- interactive screens is to add a QR code to the video ads for the viewers to scan. In such cases, the QR code may be statically embedded in the video ads, for example, at the end of each video ad. Scanning the QR code with a camera of a mobile device could launch a related webpage on a browser of the mobile device. As a result, viewers are able to interactwith the video ads via the added QR code. However, there are a few issues with this approach.
[0005] First, because the QR code is statically embedded in the video ad, the QR code cannot carry rich information relating to the context of the ad, such as the type of device used to view the ad, the context of a television program in which the ad was displayed, and / or the like. As such, the interaction (e.g., the webpage or content that is displayed when the QR code is scanned) cannot be customized based on the context of the ad. One alternative is to create a different video with a different QR code for each target device platform or program. However, doing so is labor intensive and time consuming both with respect to ad creation and ad campaign management.
[0006] Additionally, the QR code is usually placed at the end of the video ad, and there is often not enough time for the viewer to take out a device (e.g., mobile phone) and scan the QR code before the ad finished playing. On the other hand, if the QR code is displayed longer in the video ad, e.g., by displaying it earlier in the ad, the placement of the QR code could interfere with the content of the video ad. For example, a QR code might cover up important advertising messages depending on the location it is placed within the video ad.
[0007] Furthermore, because the QR code is static, the styling of the QR code (e.g., size, shape, color, included images and / or text, etc.) is also static and might not be the best configuration for every viewing experience. That is, the styling may not be optimized for viewing within a given display screen and / or may not be optimized for maximizing video ad KPIs (e.g., interaction rate or conversion rate). For example, the QR code may need to be bigger relative to the ad dimensions if viewed on a smaller screen than on a bigger screen. As another example, some viewers could react better with certain wording choices compared to others depending on, for example, the context of the ad and the profile of the individual viewer (e.g., choosing between “book now,” “learn more,” “sign up today,” and / or the like).
[0008] Another approach to make video ads more engaged and dynamic is to have custom integration with the video player. Depending on the capabilities of the video player, it might be able to add dynamic layers to the video ads. However, implementing this approach requires direct integration with a publisher’s video player and the publisher’s ad- serving platform. Conducting such integration significantly increases the time and resource investments needed for this approach, and severely limits the scale of reach for the advertisers and agencies.SUMMARY
[0009] One embodiment under the present disclosure comprises a computer- implemented method for enhancing advertisements. The method comprises receiving, at a video advertisement enrichment service, from an advertisement exchange, a request identifying an original video advertisement identifier; downloading the original video advertisement related to the original video advertisement identifier; performing an enrichment area detection to detect one or more areas within the original video advertisement to place a code so as to not interfere with advertising content; and performing a category and ad content detection to identify an advertisement type or market type. It further comprises instantiating the code within the original video advertisement, selected from a code library; producing one or more enriched videos of the original video advertisement; storing the one or more enriched videos in an enriched video library; determining a preferred one of the one or more enriched videos for a given user; transmitting an identifier of the preferred video to the advertisement exchange; receiving the identifier from a user’s device; and transmitting the preferred video to the user’s device for display to the user.
[0010] Another embodiment comprises a computer-implemented method of performing enrichment area detection. The method comprises receiving a video advertisement; detecting if there are any codes within the video advertisement. If there are no codes, then the method performs the steps of; detecting one or more candidate areas to place one or more codes based on one or more size measurements; excluding any of the one or more candidate areas containing brand or text information; excluding any of the one or more candidate areas containing foreground objects; detecting, of the remaining of the one or more candidate areas, at least one candidate area with: at least a minimal size of the one or more codes; and a longest duration; and detecting if the longest duration is long enough for any of the one or more codes. If it is, then the method includes placing one of the one or more codes in one of the at least one candidate areas to create an enhanced video.
[0011] Another embodiment comprises a computer implemented method for training a ML model for enhancing advertisements. The method comprises obtaining a dataset of identified advertisements; training the ML model using the dataset of identified advertisements thereby obtaining a trained ML model, and storing the trained ML model.
[0012] Another embodiment comprises a computer implemented method for obtaining identified advertisements. The method comprises inputting a dataset of advertisements into a trained model, the model being trained using a dataset of advertisements obtained byusing a video advertisement enrichment service and a dynamic video creative service; and obtaining a dataset of advertisements labeled by the trained model.
[0013] Another embodiment comprises a system for enhancing video advertisements. The system comprises an advertisement exchange configured to participate in real-time bidding for an impression related to one or more online content. It also includes a dynamic video creative service configured to handle dynamic video variant selection of one or more video variants during advertisement rendering after an impression is won. The system also comprises a video advertisement enrichment service configured to automatically enrich the one or more video variants with one or more codes by using one of more of; category detection, advertisement content detection, enrichment area detection, resulting in one or more enhanced videos. The system further includes a machine learning algorithm coupled to the dynamic video creative service and the video advertisement enrichment service and configured for dynamic big screen video advertisement component optimization to optimize one or more advertising key performance indicators related to the one or more enhanced videos and / or the one or more video variants.
[0014] This summary is provided to introduce a selection of concepts in a simplified form that are further described below in the detailed description. This summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used as an indication of the scope of the claimed subject matter.BRIEF DESCRIPTION OF THE DRAWINGS
[0015] For a more complete understanding of the present disclosure, reference is now made to the following descriptions taken in conjunction with the accompanying drawings, in which:
[0016] Fig. 1 illustrates a system embodiment under the present disclosure;
[0017] Fig. 2 illustrates a flow chart of a possible method embodiment under the present disclosure;
[0018] Fig. 3 illustrates a flow chart of a possible method embodiment under the present disclosure;
[0019] Fig. 4 illustrates a possible embodiment of an enhanced video under the present disclosure;
[0020] Fig. 5 illustrates a flow chart of a possible method embodiment under the present disclosure;
[0021] Fig. 6 illustrates an embodiment of a neural network under the present disclosure;
[0022] Fig. 7 illustrates an embodiment of a computing device under the present disclosure;
[0023] Fig. 8 illustrates a flow-chart of a method embodiment under the present disclosure;
[0024] Fig. 9 illustrates a flow-chart of a method embodiment under the present disclosure;
[0025] Fig. 10 illustrates a flow-chart of a method embodiment under the present disclosure;
[0026] Fig. 11 illustrates a flow-chart of a method embodiment under the present disclosure;
[0027] Fig. 12 illustrates a schematic of a communication system embodiment under the present disclosure;
[0028] Fig. 13 illustrates a schematic of a user equipment embodiment under the present disclosure;
[0029] Fig. 14 illustrates a schematic of a network node embodiment under the present disclosure; and
[0030] Fig. 15 illustrates a schematic of a virtualization environment embodiment under the present disclosure.DETAILED DESCRIPTION
[0031] Before describing various embodiments of the present disclosure in detail, it is to be understood that this disclosure is not limited to the parameters of the particularly exemplified systems, methods, apparatus, products, processes, and / or kits, which may, of course, vary. Thus, while certain embodiments of the present disclosure will be described in detail, with reference to specific configurations, parameters, components, elements, etc., the descriptions are illustrative and are not to be construed as limiting the scope of the claimed embodiments. In addition, the terminology used herein is for the purpose of describing the embodiments and is not necessarily intended to limit the scope of the claimed embodiments.
[0032] As described above, there are certain challenges in the prior art. Certain aspects of the disclosure and their embodiments may provide solutions to these or other challenges. In particular, the embodiments described herein enable enhancing video ads with moreinteractive elements in an automated and dynamic way so that KPIs of the video ads (e.g., CTR and / or conversion rate) can be improved at scale.
[0033] Certain embodiments of the present disclosure include, without limitation, one or more of an Ad Exchange, a dynamic video creative service, a video ad enrichment service, and / or one or more trained machine learning models for ad component optimization.
[0034] An Ad Exchange is a marketing technology platform that facilitates the buying and selling of media advertisements from various ad networks. In some embodiments, the Ad Exchange participates in real-time bidding (RTB) to obtain an advertisement (e.g., a video ad). The obtained advertisement can subsequently be displayed to a user, for example, in a browser of the user’s device, in a video player on the user’s device, and / or the like. As discussed in further detail below, in some embodiments, the Ad Exchange includes an enhancement that enables the Ad Exchange to determine whether an advertisement obtained by the Ad Exchange is an advertisement for which an enriched advertisement was previously generated (e.g., by a video ad enrichment service). As referred to herein, an enriched advertisement is an advertisement in which one or more interactive element(s) (e.g., QR code) has been added. For example, a QR code could be added to one or more frames of a video ad to create an enriched video ad.
[0035] The enhancement to the Ad Exchange could be, for example, a module, extension, additional platform functionality / feature, and / or the like. Those skilled in the art will understand that any technologically feasible method for including the described functionality in an Ad Exchange platform may be used. Furthermore, although examples are described herein with respect to an Ad Exchange, those skilled in the art will understand that any platform or service for obtaining advertisements may be used with the disclosed techniques.
[0036] In some embodiments, determining whether an advertisement was previously enriched includes determining whether the advertisement was previously received / obtained by the Ad Exchange. If the Ad Exchange previously obtained / received the advertisement, then the Ad Exchange determines that the advertisement was previously enriched. As an example, advertisements could be associated with a unique URL or other identifier. When the Ad Exchange obtains / receives an advertisement, the Ad Exchange could compare the identifier associated with the advertisement with a list of identifiers associated with previously received / obtained advertisements. If the identifier is included in the list, then the Ad Exchange determines that the advertisement was previously received / obtained.
[0037] In some embodiments, determining whether an advertisement was previously enriched includes determining whether one or more enriched advertisements associated with the advertisement are available. For example, the Ad Exchange could determine whether any videos and / or ad variants associated with the advertisement are stored in a library, database, or other repository of enriched advertisements. As another example, the Ad Exchange could store data indicating advertisements for which the Ad Exchange initiated the ad enrichment process. If the Ad Exchange determines, based on the stored data, that the ad enrichment process was previously initiated for a given advertisement, then the Ad Exchange determines that the given advertisement was previously enriched.
[0038] If the Ad Exchange determines that the advertisement was not previously enriched, then the Ad Exchange initiates an ad enrichment process. In some embodiments, initiating the ad enrichment process includes transmitting an ad enrichment request to the video ad enrichment service. In some embodiments, initiating the ad enrichment process includes making a call (e.g., function call) to the video ad enrichment service. A request or call could include, for example, the advertisement and / or a URL or other identifier associated with the advertisement. In response to receiving the request or call, the video ad enrichment service generates at least one enriched advertisement based on the advertisement.
[0039] A video ad enrichment service generates an enriched video ad based on an original video ad. The video ad enrichment service receives a request to enrich an original video ad. The video ad enrichment service enriches the video ad, for example, by adding one or more QR codes and / or other interactive elements to the original video ad. In various embodiments, the request to enrich the original video ad includes the original video ad. In some embodiments, the request to enrich the original video ad includes information that is used by the video ad enrichment service to obtain (e.g., download or request) the original video ad, such as a unique identifier associated with the original video ad, a URL of the original video ad, and / or the like.
[0040] As discussed in further detail below, in various embodiments, the video ad enrichment service is configured to perform one or more of category detection, ad content detection, or enrichment area detection as part of generating an enriched video ad. In some embodiments, enrichment area detection is used to determine whether there are any suitable areas within the video ad to place a QR code. If no suitable areas are identified, the video ad enrichment service could stop generating an enriched ad. If a suitable area is identified, then the video ad enrichment service proceeds with generating the enriched ad. In someembodiments, category detection and / or ad content detection are used to determine one or more visual aspects associated with the QR code (e.g., QR code shape, QR code color, QR code layout, images / text displayed in conjunction with the QR code, and / or the like).
[0041] Category detection is used to detect one or more categories associated with the ad. Example categories include, for example and without limitation, a language of the ad, an industry of the ad or advertiser, a market type associated with the ad or advertiser, an advertisement type of the ad, and / or the like.
[0042] Ad content detection is used to detect information associated with the content of the advertisement. As an example, the video ad enrichment service could use ad content detection to identify content that is included in the video ad, such as images, items, people, text, sounds, spoken words, and / or the like.
[0043] Enrichment area detection is used to detect where in the video ad the QR code should be placed. For example, to encourage users to scan the QR code, the QR code should be displayed large enough and for as long as possible, without covering any important content in the video. In some embodiments, enrichment area detection includes identifying brand information displayed in the ad (e.g., brand logos, brand imagery, or brand names / text). In some embodiments, enrichment area detection includes identifying disclaimers displayed in the ad. In some embodiments, enrichment area detection includes identifying foreground objects, if any, that are displayed in the ad. In some embodiments, enrichment area detection includes identifying an existing QR code (or similar codes) displayed in the ad. In some embodiments, enrichment area detection includes identifying one or more candidate areas in the ad (e.g., blank areas or areas that do not include certain elements such as one or more of: brand information, disclaimers, foreground objects, or other codes). In some embodiments, video ad enrichment service determines, for each candidate area, a duration associated with the candidate area (i.e., how long the candidate area is available on the screen). In some embodiments, video ad enrichment service determines, for each candidate area, a size of the candidate area.
[0044] In some embodiments, ad content detection is performed with respect to a portion of the video ad where the video ad enrichment service has determined that a QR code should be placed (e.g., using enrichment area detection.) After identifying an area within the video ad to place the QR code, the video ad enrichment service uses ad content detection to identify information about the identified area. For example, the video ad enrichment service could determine one or more of images, items, people, text, sounds, spoken words, and the like that are included in the identified area (portion) of the video ad.
[0045] In various embodiments, the video ad enrichment service generates a plurality of enriched video ad variants for a given original video ad. An enriched video ad variant could include, for example, a different QR code or other interactive element, a different number of QR codes or other interactive elements, a different visualization (e.g., look and feel, color, shape, text / wording, etc.), a different location (e.g., frame(s) of the video ad and / or location the frame(s)), and / or the like relative to the other enriched video ad variants. For example, video ad enrichment service could identify, based on the enrichment area detection, a plurality of suitable candidate enrichment areas and generate a corresponding enriched video ad variant for each candidate enrichment area. As another example, video ad enrichment service could identify, based on the category and / or ad content detection, a plurality of candidate QR code styles and generate a corresponding enriched video ad variant for each candidate QR code style.
[0046] The techniques described herein for enriching video ads enable the video ad enrichment service to automatically detect the industry of the ad and / or the areas in video frames that carry less important messages, e.g. static background areas. Based on the identified areas and the identified industry, the ad service enriches the video ad by adding QR codes and other attention-grabbing components styled with the industry of the ad.
[0047] If the Ad Exchange determines that the advertisement was previously enriched, then the Ad Exchange transmits an enriched advertisement to the user’s device and / or causes the enriched advertisement to be transmitted to / displayed on the user’s device. In some embodiments, transmitting an enriched advertisement to a user device or causing the enriched advertisement to be transmitted to / displayed on the user device includes transmitting an enriched video ad request to the dynamic video creative service. In some embodiments, transmitting an enriched advertisement to a user device or causing the enriched advertisement to be transmitted to / displayed on the user device includes making a call (e.g., function call) to the video ad enrichment service. A request or call could include, for example, a URL or other identifier associated with the advertisement. In response to receiving the request or call, the selects the enriched advertisement, or a variant thereof, for transmission to / display on the user device.
[0048] A dynamic video creative service handles dynamic video variant selection during ad rendering. The dynamic video creative service receives a request for an enriched video ad and identifies the available variants for the enriched video ad. If multiple variants are available, the dynamic video creative service selects one of the variants. As explained in further detail below, in various embodiments, selecting a variant is based on a context ofthe advertisement (e.g., user device type, device geographic location, application or website being used to display the video / ad, other device / OS data, other content with which the ad is being displayed, geographic location associated with the user, user preferences, other personal data associated with the user, and / or the like). In some embodiments, if no variants are available or a suitable variant could not be selected (e.g., if the dynamic video creative service determines that no variant matches the context of the advertisement), then the dynamic video creative service selects a default enriched video ad. In some embodiments, if a suitable variant could not be selected (e.g., if the dynamic video creative service determines that no variant matches the context of the advertisement), then the dynamic video creative service selects a random variant.
[0049] After selecting an enriched video ad, the dynamic video creative service causes the selected enriched video ad to be transmitted to / displayed at the user’s device. In some embodiments, the dynamic video creative service directly transmits the selected enriched video ad to the user device. In some embodiments, the dynamic video creative service transmits information that enables the user device to retrieve / download the selected enriched video ad, such as a URL of the selected enriched video ad.
[0050] In various embodiments, one or more trained machine learning models are utilized when creating enriched video ads and / or selecting enriched video ad variants. For example, with respect to creating enriched video ads, trained machine learning models could be used for identifying ad content, determining categories associated with ads, identifying candidate enrichment areas within an ad, selecting QR code styles, and / or the like. As another example, with respect to selecting enriched video ad variants, trained machine learning models could be used for predicting KPIs associated with each ad variant, determining QR code styles that may be preferred for a given user, determining QR code styles that may be preferred for a given ad context, and / or the like.
[0051] In some embodiments, a machine learning model used in creating and / or selecting enriched video ads could be trained to optimize advertising performance KPI. That is, the machine learning model could be trained based on data that indicates user interaction with various enriched advertisements (e.g., whether a user scanned a given QR code).
[0052] In one example, a machine learning model could be trained to predict, based on advertisement context information (e.g., user device type, device geographic location, application or website being used to display the video / ad, other device / OS data, other content with which the ad is being displayed, geographic location associated with the user,user preferences, other personal data associated with the user, and / or the like) and metadata associated with a set of enriched video ad variants (e.g., QR code style, position, color, and / or the like), which enriched video ad variant could result in the best performance rate (e.g., probability of being scanned, predicted scan-through rate, and / or the like). Alternately, a machine learning model could be trained to generate output indicating a predicted performance rate for a given enriched video ad (or variant) based on advertisement context information and enriched video ad metadata.
[0053] In another example, a machine learning model could be trained to predict, based on advertisement context information, metadata values for an enriched video ad variant that maximize a performance rate of the enriched video ad. The dynamic video creative service could search a set of enriched video ad variants for a variant whose metadata values matches (or most closely matches) the metadata values output by the machine learning model. In some embodiments, if a variant with the specified metadata values does not exist, the dynamic video creative service could send a request or call to the video ad enrichment service to generate a variant having the specified metadata values.
[0054] Some embodiments further include a video tracking service. The video tracking service tracks when a viewer scans a QR code that was added to a video ad. In some embodiments, when a viewer scans the QR code, the QR code directs the viewer’s browser to the video tracking service, with relevant information that is included in the QR code. That is, scanning the QR code produces a call to the video tracking service. The call includes information included in the QR code, such as a URL to which the viewer should be directed. The video tracking service redirects the viewer’s browser to the URL. The video tracking service also logs the scan of the QR code (i.e., the scan through).
[0055] In various embodiments, the call could also include additional information associated with the video ad and / or QR code that generated the call, such as ad context information, QR code metadata, the enriched video ad or enriched video ad variant that included the QR code, and / or the like. In such cases, logging the scan through includes logging the additional information associated with the video ad and / or QR code.
[0056] In embodiments where a machine learning model that is trained to optimize advertising performance KPIs is used, the information logged by the video tracking service is used as training data for the machine learning model. The training data could be used to train an initial machine learning model and / or to refine a trained machine learning model.
[0057] As an example, the dynamic video creative service could use machine learning to learn from historical viewers’ interaction and conversion data, and subsequently, use thetrained machine learning model to select the best combination of enrichment elements (e.g., QR code style, image, text, and / or the like) for a given impression opportunity. Various algorithms can be viewer-specific, and others may be broader, accounting for several or many viewers, depending on the implementation.
[0058] Although certain parts / components are included in the embodiments described herein, those skilled in the art will recognize that the disclosed techniques can be implemented using any suitable approach, including more or fewer components than shown. For example, a single component (e.g., service) could be responsible for multiple or all of the features / functionality described above (e.g., two or more of ad selection, dynamic video variant selection / creation, video ad enrichment, and / or ad component optimization).
[0059] In various embodiments, a method for enhancing advertisement includes receiving a request to generate an enriched video advertisement for an original video advertisement. The method further includes identifying at least one area within the original video advertisement for placing a code. The method further includes identifying one or more visual parameters for the code. Each visual parameter specifies a visual aspect relating to display of the code. A visual parameter can be one of: a shape of the code, a size of the code, a color of the code, an image included in the code, an image displayed in conjunction with the code, text included in the code, or text displayed in conjunction with the code. The method further includes generating an enriched video advertisement that includes the code based on the at least one area and the one or more visual parameters. The method further includes storing the enriched video advertisement in association with the original video advertisement.
[0060] In various embodiments, a method for providing enhanced advertisements to viewers includes receiving an original video advertisement for display at a user device. The method further includes determining whether any enriched video advertisements are available for the original video advertisement. The method further includes, in response to determining that one or more enriched video advertisements are associated with the original video advertisement, selecting a preferred enriched video advertisement from the one or more enriched video advertisements based on at least user information associated with a user of the user device. The method further includes causing the preferred enriched video advertisement to be displayed at the user device.
[0061] The techniques described herein enable different variants of a video ad to be rendered on a viewer’s screen based on an advertising bid request context, withoutrequiring advertisers to change their demand side platform (DSP) for advertising campaign management. The different variants could have differences, for example, in the QR code that is included in the video, the number of QR codes that are included, the placement of the QR code(s), the visual style of the QR code(s), and / or the like. By creating different variants of an enriched video ad, for a given viewer, a variant that maximizes the likelihood of the given viewer scanning the QR code can be selected. Furthermore, after the variants are generated and stored, the selected variant can be provided to each viewer without delays caused by adding the QR code (i.e., creating the variant) at the time of the ad request.
[0062] In contrast to prior approaches that display an ad after the ad is won (e.g., through the traditional real-time bidding auction), the approaches described herein add an additional decisioning step via the dynamic video creative service. The decisioning happens during the ad rendering process using a “wrapper” hosted in an independent service, which decouples from the supply-side platform or the demand-side platform and creates fewer limitations on where the disclosed techniques can be used.
[0063] Additionally, the automatic video ad enrichment uses a new algorithm to detect areas in the video frames where the enrichment is less likely to overlay on top of important advertising messages. It combines object detection technologies so that the QR code can be styled consistently with the related industry.
[0064] Furthermore, the algorithm for dynamic big screen video ad component optimization learns and selects different enrichment components dynamically, as opposed to existing dynamic creative optimization which selects amongst different entire advertisements as a whole. Similarly, for cases where machine learning model(s) is(are) used, the bootstrapping mechanism of the enrichment also reduces cost of creating and storing large amount of variants. Instead, the video ad enrichment service can generate a smaller number of variants that have enrichment components and parameters (e.g., QR code styles) that were predicted to have a higher scan through rate (e.g., top n highest predicted scan through rate, scan through rates greater than a threshold amount, and / or the like).
[0065] Certain embodiments may provide one or more of the following technical advantages over prior approaches. In particular, the embodiments described herein can enable a scalable way to create more engagement for video ads on less interactive screens by delivering enriched and dynamically optimized video ads. The performance of the enriched video ads on these screens will be higher as the enrichment focuses on providing more means attract viewers’ attention and encouraging actions. Certain embodiments can be implemented easily, with less manual work (e.g., individually selecting enhancementdesign, placement, and timing), and with no or minimal changes to video players or ad serving platforms. As a result, by using the disclosed techniques, enhanced video ads can be flexibly created and delivered for any demand side platform. Additionally, because different variants of the enhanced video ads can be generated and stored, the system is able to quickly identify and deliver the video ad with the most effective enhancement(s) for a given viewer (i.e., likely to cause viewer engagement). Accordingly, another benefit of the disclosed techniques is that they improve the returns on advertising spend while making ad delivery more efficient, compared to approaches that deliver a non-optimized ad (e.g., without any QR codes or other enhancements, or with statically-embedded elements).
[0066] Some of the embodiments contemplated herein will now be described more fully with reference to the accompanying drawings. Embodiments are provided by way of example to convey the scope of the subject matter to those skilled in the art.
[0067] Figure 1 illustrates one potential embodiment and shows the flow and components of one proposed system 100. Certain embodiments of the system involve three phases. In one phase, when an unseen video ad 110, uniquely identified by its URL, is received by the Ad Exchange 116 (for possible display in a browser 112 via a SSP / Ad server 114) in a bid response from the DSP 118, it triggers the enrichment process in the Video Ad Enrichment Server 120 via an asynchronous call. The enrichment server downloads the original video advertisement at 121, and runs two detection algorithms to decide where in the video to enrich (at 122) and which styles of QR code to enrich (123) and creates a QR code (124) from a QR code style library (125). It then references a set of seed rules (127) to generate an initial set of variants for this video advertisement (126) and stored into the enriched variant library (130). The details of the enrichment process is described in the following sections. A wrapper for this video, which is a URL to the dynamic video creative server and represents a selection of the variants of this video ad, is also generated and stored.
[0068] In the second phase, when the video ad returned from the DSP (at 148) has been enriched before, the Ad Exchange recognizes the video ad and replaces it with the wrapper that has been generated (at 146). The wrapper is returned back to the upstream SSP (supply side platform) or ad server (at 144), and when the video player in the viewer’s browser 142 attempts to render the wrapper, it makes a call to the dynamic video creative server 150. The dynamic video creative server 150 looks up all the available variants of this wrapper at 152, and passes the ad context information, such as device type, geographic location, application being used, or website being used, other device / OS data, other user data, or avariety of other data, to a machine learning model 154, to select the variant that yields the best performance given the ad context. The URL of the selected variant 156 is returned to the player to be played.
[0069] In the third phase, when the user sees the QR code in the ad and scans the QR code on a phone, the QR code leads to the video tracking service, which logs the scan action, and feeds into the ML model training job 160. It then sends a redirect URL to the advertiser’s landing page back to the user’s phone.Video Ad Enrichment Service
[0070] As shown in Figures 1, the video ad enrichment service 120 can utilize at least one of two algorithms, enrichment area detection algorithm 122 or category and ad content detection algorithm 123.
[0071] The enrichment area detection algorithm 122 can detect where in the video ad is the most suitable to place the QR code. To encourage scanning, the QR code preferably is displayed large enough, and as long as possible, but at the same time, not covering important content in the video. An example enrichment area detection algorithm 300 is shown in Figure 2. At 305, the video advertisement is accessed / uploaded / scanned / etc. At 310, if an existing QR code is found, then the process goes to 340, a failure. At 315, one or more candidate areas to place the QR code is determined, based on e.g., predefined configurations and video size (e.g., often the comers). At 320, certain information is detected, such as brand information text, brand logos, disclaimers that may be within the candidate areas, and these areas can be excluded. At 325, foreground objects are detected within the candidate areas, and these areas can be excluded. At 330, areas are found with at least a minimal size of the QR code and the longest duration of the remaining candidate areas. At 335, it is determined if the longest available duration for a remaining candidate area is long enough for a QR code. If not, then at 340 the process is a failure. If yes, then the process succeeds and the QR code can be placed at any remaining candidate area.
[0072] After enrichment area and timing detection algorithm is run, if no suitable area, timing or duration is detected, the video ad enrichment service will abort and not enrich the ad. If suitable areas are detected, the category and ad content detection then detect the language of the ad, the industry category of the advertiser and the relevant ad content, so that it can pick the most suitable QR code styles from the QR code style library (125 in Figure 1). This is illustrated in one example in Figure 3. For example, if the advertisement is detected as a car advertisement at bid response 410, the corresponding QR styles frompredefined categories 420 can be a QR code in the shape of a wheel, and possible call to action phrases can include “book a test drive”, “find a dealer”, etc. The detection uses a combination of information readily available in the bid response and large language model to find the best matching predefined category in the QR code style library at 430. In addition, it also detects the overall brightness and hue of the ad. It then uses the advertiser information and the color information, and the click through URL in the original video ad to instantiate a QR code which points to video tracking service with the variant’s metadata, such as style, position, etc., as well as the original click through URL as a redirect URL, using the style from the QR code style library.
[0073] Out of the list of possible enrichment areas and the different QR code styles that the category and ad content detection algorithm has produced, the video ad enrichment service can select ‘n’ combinations based on enrichment seed rules to edit in the QR code and create n variants. The seed rules are initially created by human, and later on replaced by the statistical machine learning training process with the overall best performant combinations.
[0074] Figure 4 illustrates some aspects of enriching video by a video ad enhancement service 560 and storing variants by the enriched variant library 570. Enriching an ad 590 may involve adjusting placement of e.g., codes 510, audio elements 530, shoppable elements 540, and video elements 550. In some cases, some of these elements might be foreground or background elements of an ad that are not moved. Each element 510, 530, 540, 550 has arrows indicating how they can be moved within an ad. It should be noted that movement may also be along a time scale. As illustrated in Figure 1, how various elements 510, 530, 540, 550 are adjusted can be based on e.g., enrichment seed rules, enrichment area detection, category and ad content detection, and input / output from a ML organization model. Enriching video can involve making various versions of ad 590 and storing them in enriched variant library 570. Candidate areas 515 are areas that could host e.g., codes 510, because they lack foreground objects, brand information (such as logos or text), other text, or other elements that shouldn’t be covered by a code 510.
[0075] The n variants are stored in the enriched variant library 130 of Figure 1 together with the metadata of the enrichment, such as QR code style, position, color, etc., and the metadata of the original video ad. The original video ad is assigned an ID, and a wrapper URL is created with this ID and a few macros, such as device type, geographic location, application identifier, website identifier, etc., which can be replaced with the actual ad context values during each bidding process in the Ad Exchange 116, 146. The wrapperURL can point to the dynamic video creative service 150 and is called when the video player in a browser 112, 142 tries to retrieve the ad behind the wrapper URL.
[0076] In some embodiments, the variant library 130 can store entire videos for each of the n variants. In others, a “base” video can be stored, along with rules edits for producing each of the n variants. Or most of a video advertisement might be the same for all / most variants. That common portion of a video might be stored once, and the variants portions / additions might be stored separately for the n variants. Some variants may share elements, which may not need to be stored multiple times. In addition, while embodiments have been discussed with respect to display of QR codes, other types of embedding or linking to advertiser information can be used. Other types of codes are possible, such as UPC codes, URL links, other types of codes, etc. There may be a variety of ad elements that different amongst the variants, e.g.: shoppable elements, local weather displays, baseball team schedule based on user location or preferences or browsing history, game elements, quizzes, and other interactive elements.Dynamic Video Creative Service
[0077] Dynamic video creative service 150, one embodiment of which is shown in Figure 1, can receive a call with the wrapper ID and the ad context, and selects the best variant for this wrapper from the variant library 130 based on the advertisement context. It first checks the variant library 130 to find all the available variants (e.g., n variants). A machine learning model 154 is run to predict a scan through rate of each variant given the advertisement context. The highest scored variant is selected to be returned with a preconfigured probability. Otherwise, in some embodiments, a random variant can be returned as exploration.
[0078] The machine learning algorithm 154 also scores the possible value of the metadata of the variant, such as QR code style, position, color, etc., and if no variant is available yet with the combination of the highest-scored metadata, it sends a request to the video ad enrichment service 120 to produce such a variant. For example, if the seed rule produces a variant with QR code “book now” on the left, QR code “learn more” on the left, and QR code “learn more” on the right, and the machine learning model scores “book now” higher than “learn more”, and scores position right higher than position left, it would send a request to the video ad enrichment service to produce a variant with QR code “book now” on the right. This is the bootstrapping mechanism to gradually find and create the best performant variant.
[0079] The selected variant and all the context information is logged and used for the machine learning model training.Video Tracking Service
[0080] When the viewer scans the QR code that was added into the video, the QR code brings the viewer to the video tracking service with the relevant information included in the QR code. The call produces a scan through. The video tracking service 180 redirects the viewer’s device to the redirect URL contained in QR code and logs the scan through for machine learning training. It is desired that ML models 154 used by the described embodiments receive as much user preference / behavior data as possible. Ideally, part of this data can be collected by tracking user behavior by actively scanning QR codes or clicking links through the described ads. In some embodiments this may not be possible. In such cases it may be possible to associate viewing users with user accounts with other online services, and to compare said user’s behavior with the advertisements they’ve viewed and to aggregate data across multiple services to try and measure advertisement success. As an example, this association might be done by comparing baseball-related ads with baseball-related website visited on a different service.Additional Embodiments
[0081] Certain embodiments of the present disclosure can comprise computing devices (such as those described below with respect to Figure 7) performing ML-based methods such as such as described herein, for e.g., for optimizing ad placement or type. In certain embodiments a computing device / UE can comprise a ML / Al engine. The architecture of an ML model (e.g., structure, number of layers, nodes per layer, activation function etc.) may need to be tailored for each particular use case. For example, properties that can vary include, without limitation: QR code placement, user location, user preferences, etc. These may all need to be considered when designing the ML model’s architecture.
[0082] Building an AI / ML model includes several development steps where the actual training of the ML model is just one step in a training pipeline. An important part in AI / ML development is the AI / ML model lifecycle management. One embodiment of a model lifecycle management procedure 600 is illustrated in Figure 5. As shown, the model lifecycle management procedure 600 comprises two pipelines: a training pipeline 605 and an inference pipeline 650.
[0083] At 610 in the training pipeline 605, data ingestion 610 occurs, which includes gathering raw (training) data from a data storage. After data ingestion 610, there may also be a step that controls the validity of the gathered data. At 615 data pre-processing occurs, which can include feature engineering applied to the gathered data. This may involve, for example, data normalization or data formatting or transformation required for the input data to the AI / ML model. After the ML model’s architecture is fixed, it should be trained on one or more datasets.
[0084] At 620 model training is performed in which the AI / ML model is trained with the raw training data. To achieve good performance during live operation in a system (the so-called inference phase), the training datasets should be representative of actual data the ML model will encounter during live operation. The training process often involves numerically tuning the ML model’s trainable parameters (e.g., the weights and biases of the underlying neural network (NN)) to minimize a loss function on the training datasets. The loss function may be, for example, based on a maximum / minimum spend on ads, a maximum / minimum spend by users, viewer engagement measurements, or other output. The purpose of the loss function is to meaningfully quantify the reconstruction error for the particular use case at hand.
[0085] At 625 model evaluation can be performed where the performance is benchmarked to some baseline. Model training 620 and evaluation 625 can be iterated until an acceptable level of performance is achieved.
[0086] At 630 model registration occurs, in which the AI / ML model is registered with any corresponding data on how the AI / ML model was developed, and e.g., AI / ML model evaluation data.
[0087] At 635 model deployment occurs, where the trained / re-trained AI / ML model is implemented in an inference pipeline 650.
[0088] Data ingestion 655 in the inference pipeline 650 refers to gathering raw (inference) data from one or more data sources. Data pre-processing 660 can be essentially identical / similar to the data pre-processing 615 of the training pipeline 605. At 665, the operational model received from the training pipeline 605 is used to process new data received during operation of e.g., system 100 or video ad enrichment service 560. At 670, data and model monitoring is performed. Here, the inference data is analyzed to determine whether the inference data are from a distribution that aligns with the training data, as well as monitoring model outputs for detecting any performance, or operational, variance ordrifts. The variance or drift is used at 645 (drift detection) to update the AI / ML model registration.
[0089] The training process is typically based on some variant of a gradient descent algorithm, which, at its core, can comprise three components: a feedforward step, a back propagation step, and a parameter optimization step. These steps can be described using a dense ML model (i.e., a dense NN with a bottleneck layer) as an example.
[0090] Feedforward: A batch of training data, such as a mini-batch, (e.g., several downlink-channel estimates) is pushed through the ML model, from the input to the output. The loss function is used to compute the reconstruction loss for all training samples in the batch. The reconstruction loss may be an average reconstruction loss for all training samples in the batch.
[0091] The feedforward calculations of a dense ML model with N layers (n=l,2,. . . ,N) may be written as follows: The output vector a[n]of layer n is computed from the output of the previous layer a^n~^ using the equations:
[0092] In the above equation, Ware the trainable weights and biases of layer n, respectively, and g is an activation function applied elementwise (for example, a rectified linear unit).
[0093] Back propagation (BP): The gradients (partial derivatives of the loss function, L, with respect to each trainable parameter in the ML model) are computed. The back propagation algorithm sequentially works backwards from the ML model output, layer-by- layer, back through the ML model to the input. The back propagation algorithm is built around the chain rule for differentiation: When computing the gradients for layer n in the ML model, it uses the gradients for layer n + 1.
[0094] For a dense ML model with N layers the back propagation calculations for layer n may be expressed with the following well-known equations:where * here denotes the Hadamard multiplication of two vectors.
[0095] Parameter optimization: The gradients computed in the back propagation step are used to update the ML model’s trainable parameters. An approach is to use the gradient descent method with a learning rate hyperparameter (a) that scales the gradients of the weights and biases, as illustrated by the following update equations:H,W =H,W - t,. £L.(6)
[0096] It is preferred to make small adjustments to each parameter with the aim of reducing the average loss over the (mini) batch. It is common to use special optimizers to update the ML model’s trainable parameters using gradient information. The following optimizers are widely used to reduce training time and improving overall performance: adaptive sub-gradient methods (AdaGrad), RMSProp, and adaptive moment estimation (ADAM).
[0097] The above process (feedforward, back propagation, parameter optimization) is repeated many times until an acceptable level of performance is achieved on the training dataset. An acceptable level of performance may refer to the ML model achieving a predefined average reconstruction error over the training dataset (e.g., normalized MSE of the reconstruction error over the training dataset is less than, say, 0.1). Alternatively, it may refer to the ML model achieving a pre-defined value chosen by a user.
[0098] In some implementations, a function F(-) may be generated by a ML process, such as, for example, supervised learning, reinforcement learning, and / or unsupervised learning. It should further be understood that supervised learning may be done in various ways, such as, for example, using random forests, support vector machines, neural networks, and the like. By way of non-limiting example, any of the following types of neural networks that may be utilized, including, deep neural networks (DNNs), convolutional neural networks (CNNs), and recurrent neural networks (RNNs), or any other known or future neural network that satisfies the needs of the system. In an implementation using supervised learning the neural networks may be easily integrated into the hardware described in system 100 of Figure 1 (e.g., in the form of simple vector-matrix multiplications).
[0099] Referring now to Figure 6, an example neural network (NN) 700 (e.g., DNN) is shown. In the embodiment shown in Figure 6, the neural network 700 includes two hidden layers represented by dashed boxes 701 and 702. In practice, more or fewer layers and / ordifferent connections between the layers could be used, depending on the implementation and the type of neural network.
[0100] In some embodiments, a plurality of inputs 703 are fed into the NN 700. Next, the inputs 703 may go through a set of hidden layers (e.g., 701, 702, and / or the like). Once the inputs 703 pass though the hidden layers, the NN 700 outputs the results, for example, as outputs 704 and 705.
[0101] In the case of a NN 700 that is used in the context of enriched video ads, the outputs (e.g., 704, 705, etc.) could be output values relating to advertisement KPUs, such as predicted user engagement measurements, click throughs, website visits, purchases, etc. Similarly, possible inputs 703 could include, for example and without limitation, QR code types, location information, device type, ad type, various elements within an ad, etc.
[0102] As should be understood by one of ordinary skill in the art, in order for the NN 700 to output proper a proper analysis, it should be trained properly (e.g., with a collection of samples) to accurately extract the likelihood values. If not trained properly, overfitting (e.g., when the NN memorizes the structure of the preambles but is unable to generalize to unseen preamble characteristics) or underfitting (e.g., when the NN is unable to learn a proper function even on the data that it was trained on) may happen. Thus, implementations may exist that prevent overfitting or underfitting, involving a set of well-engineered features that must be extracted from the preamble characteristics.
[0103] Figure 7 illustrates a schematic block diagram of a computing device 2500, or components thereof, according to various embodiments of the present disclosure.
[0104] In various embodiments, one or more computing devices 2500 are included in a system 100 and used to implement one or more of the components of the system 100. For example, one or more computing devices 2500 could be configured to perform the functions described above with respect to the video ad enrichment service, dynamic video creative service, machine learning model(s), video tracking service, ad exchange, etc. of system 100. Further, one or more computing devices 2500 could include or be communicatively coupled to storage devices that are configured to store data associated with the functions described above in connection with system 100, such as the QR code style library, enriched variant library, scan through data, machine learning model training data, etc.
[0105] Additionally, in some embodiments, one or more computing devices 2500 are configured to perform the machine learning related tasks described above in connection with machine learning models for generating and / or selecting enriched video ads, such asthe functionalities of ML optimization model 154 and / or the elements of model lifecycle management procedure 600.
[0106] As shown in Figure 7, a computing device 2500 includes a processor 2501 that is operatively coupled via a bus 2502 to an input / output interface 2505, a power source 2513, a memory 2515, a RF interface 2509, network communication interface 2511, and a communication subsystem 2531. The level of integration between the components may vary from one embodiment to another. Further, a computing device 2500 could include more or fewer components than shown in Figure 7. For example, a computing device 2500 could include one or more components not explicitly illustrated in Figure 7. As another example, one or more of the components shown in Figure 7 (e.g., RF interface 2509, communication subsystem 2531) could be omitted, depending on the implementation. In some embodiments, a computing device 2500 can contain multiple instances of a given component, such as multiple processors, memories, transceivers, transmitters, receivers, etc. For example, a computing device 2500 could include a plurality of processors 2501.
[0107] In various embodiments, a computing device 2500 could be a UE 2200, network node 2300, or virtualization environment 2400, as described further below, or various components thereof or of other components within a communication system 2100.
[0108] As shown in Figure 7, computing device 2500 includes processor 2501 that is operatively coupled via a bus 2502 to an input / output interface 2505, a power source 2513, a memory 2515, a RF interface 2509, network communication interface 2511, and / or any other component, or any combination thereof. The level of integration between the components may vary from one embodiment to another. Further, certain computing devices 2500 (or components thereof) may contain multiple instances of a component, such as multiple processors, memories, transceivers, transmitters, receivers, etc.
[0109] The processor 2501 is configured to process instructions and data and may be configured to implement any sequential state machine operative to execute instructions stored as machine-readable computer programs in memory 2515. Processor 2501 may be implemented as one or more hardware-implemented state machines (e.g., in discrete logic, field-programmable gate arrays (FPGAs), application specific integrated circuits (ASICs), etc.); programmable logic together with appropriate firmware; one or more stored computer programs, general-purpose processors, such as a microprocessor or digital signal processor (DSP), together with appropriate software; or any combination of the above. For example, the processor 2501 may include multiple central processing units (CPUs).
[0110] In the example, input / output interface 2505 may be configured to provide an interface or interfaces to an input / output device(s) 2506, such as a screen, keyboard, indicator light, keypad, touchscreen, or other input or output device. Other examples of an output device include a speaker, a sound card, a video card, a display, a monitor, a printer, an actuator, an emitter, a smartcard, another output device, or any combination thereof. An input device may allow a user to capture information into system 2500. Other examples of an input device include a touch-sensitive or presence-sensitive display, a camera (e.g., a digital camera, a digital video camera, a web camera, etc.), a microphone, a sensor, a mouse, a trackball, a directional pad, a trackpad, a scroll wheel, a smartcard, and the like. The presence-sensitive display may include a capacitive or resistive touch sensor to sense input from a user. A sensor may be, for instance, an accelerometer, a gyroscope, a tilt sensor, a force sensor, a magnetometer, an optical sensor, a proximity sensor, a biometric sensor, etc., or any combination thereof. An output device may use the same type of interface port as an input device. For example, a Universal Serial Bus (USB) port may be used to provide an input device and an output device.[oni] In some embodiments, the power source 2513 is structured as a battery or battery pack. Other types of power sources, such as an external power source (e.g., an electricity outlet), photovoltaic device, or power cell, may be used. The power source 2513 may further include power circuitry for delivering power from the power source 2513 itself, and / or an external power source, to the various parts of computing device 2500 via input circuitry or an interface such as an electrical power cable.
[0112] Memory 2515 may be configured to include memory such as random-access memory (RAM) 2517, read-only memory (ROM) 2519, programmable read-only memory (PROM), erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), magnetic disks, optical disks, hard disks, removable cartridges, flash drives, other storage medium 2521, and so forth. In one example, the memory 2515 includes one or more application programs 2525, an operating system 2523, web browser application, a widget, gadget engine, or other application, and corresponding data 2527. Memory 2515 may store, for use by the computing device 2500, any of a variety of various operating systems or combinations of operating systems. An article of manufacture, such as one including a simulation system or communication system may be tangibly embodied as or in memory 2515, which may be or comprise a device- readable storage medium.
[0113] Processor 2501 may be configured to communicate with an access network or other network using the RF interface 2509 or network connection interface 2511. The RF interface 2509 or network connection interface 2511 may comprise one or more communication subsystems and may include or be communicatively coupled to an antenna. In the illustrated embodiment, communication functions of the RF interface 2509 or network connection interface 2511 may include cellular communication, Wi-Fi communication, LPWAN communication, data communication, voice communication, multimedia communication, short-range communications such as Bluetooth, near-field communication, location-based communication such as the use of the global positioning system (GPS) to determine a location, another like communication function, or any combination thereof.
[0114] Figure 8 illustrates one possible method embodiment under the present disclosure. Method 2700 is a computer-implemented method for enhancing advertisements. Step 2710 is receiving at a video advertisement enrichment service, from an advertisement exchange, a request identifying an original video advertisement identifier. Step 2715 is downloading the original video advertisement related to the original video advertisement identifier. Step 2720 is performing an enrichment area detection to detect one or more areas within the original video advertisement to place a code so as to not interfere with advertising content. Step 2725 is performing a category and advertisement content detection to identify an advertisement type or market type. Step 2730 is instantiating the code (e.g. QR code, URL, UPC) within the original video advertisement, the code selected from a code library storing one or more codes. Step 2735 is producing one or more enriched videos of the original video advertisement. Step 2740 is storing the one or more enriched videos in an enriched video library. Step 2745 is determining a preferred one of the one or more enriched videos for a given user. Step 2750 is transmitting an identifier of the preferred video to the advertisement exchange. Step 2755 is receiving the identifier from a user’s device. Step 2760 is transmitting the preferred video to the user’s device for display to the user. Method 2700 can comprise a variety of additional or alternative steps, or other variations.
[0115] Figure 9 illustrates another possible method embodiment under the present disclosure. Method 2900 is a computer-implemented method of performing enrichment area detection. Step 2910 is receiving a video advertisement. Step 2915 is detecting if there are any codes within the video advertisement. If yes, then the method can stop at 2990. If there are no codes within the video advertisement, then the method can continue to step2920, detecting one or more candidate areas to place one or more codes based on one or more size measurements (e.g., of a screen or elements within a screen, for example the comers are often good candidate areas). Step 2925 is excluding (and / or detecting) any of the one or more candidate areas containing brand or text information. Step 2930 is excluding (and / or detecting) any of the one or more candidate areas containing foreground objects (e.g., foreground objects are often objects meant to be seen by the viewer). Step 2935 is detecting, of the remaining of the one or more candidate areas, at least one candidate area with: at least a minimal size of the one or more codes; and a longest duration. Step 2940 is detecting if the longest duration is long enough for any of the one or more codes. If not, then the method stops at step 2990. If the longest duration is long enough, then step 2945 is placing one of the one or more codes in one of the at least one candidate areas. Method 2900 can comprise a variety of additional or alternative steps, or other variations. Certain steps can be optional. As the term candidate areas is used, it takes into account time and space. For example, one specific location within a video might be a candidate area at seconds 5 to 10 of the video advertisement, but not be a candidate area from seconds 1 to 5 and 10 to 30.
[0116] Figure 10 illustrates another possible method embodiment under the present disclosure. Method 3100 is a computer-implemented method for training a ML model for enhancing advertisements. Step 3110 is obtaining a dataset of identified advertisements. Step 3120 is training the ML model using the dataset of identified advertisements thereby obtaining a trained ML model. Step 3130 is storing the trained ML model. Method 3100 can comprise a variety of additional or alternative steps, or other variations.
[0117] Figure 11 illustrates another possible method embodiment under the present disclosure. Method 3300 is a computer-implemented method for obtaining identified advertisements. Step 3310 is inputting a dataset of advertisements into a trained model, the model being trained using a dataset of advertisements obtained by using a video advertisement enrichment service and a dynamic video creative service. Step 3320 is obtaining a dataset of advertisements labeled by the trained model. Method 3300 can comprise a variety of additional or alternative steps, or other variations.
[0118] Figure 12 shows an example of a communication system 2100 in accordance with some embodiments. In the example, the communication system 2100 includes a telecommunication network 2102 that includes an access network 2104, such as a radio access network (RAN), and a core network 2106, which includes one or more core network nodes 2108. The access network 2104 includes one or more access network nodes, such asnetwork nodes 2110a and 2110b (one or more of which may be generally referred to as network nodes 2110), or any other similar 3rd Generation Partnership Project (3GPP) access nodes or non-3GPP access points. Moreover, as will be appreciated by those of skill in the art, a network node is not necessarily limited to an implementation in which a radio portion and a baseband portion are supplied and integrated by a single vendor. Thus, it will be understood that network nodes include disaggregated implementations or portions thereof. For example, in some embodiments, the telecommunication network 2102 includes one or more Open-RAN (ORAN) network nodes. An ORAN network node is a node in the telecommunication network 2102 that supports an ORAN specification (e.g., a specification published by the O-RAN Alliance, or any similar organization) and may operate alone or together with other nodes to implement one or more functionalities of any node in the telecommunication network 2102, including one or more network nodes 2110 and / or core network nodes 2108.
[0119] Examples of an ORAN network node include an open radio unit (O-RU), an open distributed unit (O-DU), an open central unit (O-CU), including an O-CU control plane (O-CU-CP) or an O-CU user plane (O-CU-UP), a RAN intelligent controller (near- real time or non-real time) hosting software or software plug-ins, such as a near-real time control application (e.g., xApp) or a non-real time control application (e.g., rApp), or any combination thereof (the adjective “open” designating support of an ORAN specification). The network node may support a specification by, for example, supporting an interface defined by the ORAN specification, such as an Al, Fl, Wl, El, E2, X2, Xn interface, an open fronthaul user plane interface, or an open fronthaul management plane interface. Moreover, an ORAN access node may be a logical node in a physical node. Furthermore, an ORAN network node may be implemented in a virtualization environment (described further below) in which one or more network functions are virtualized. For example, the virtualization environment may include an O-Cloud computing platform orchestrated by a Service Management and Orchestration Framework via an O-2 interface defined by the O- RAN Alliance or comparable technologies. The network nodes 2110 facilitate direct or indirect connection of user equipment (UE), such as by connecting UEs 2112a, 2112b, 2112c, and 2112d (one or more of which may be generally referred to as UEs 2112) to the core network 2106 over one or more wireless connections.
[0120] Example wireless communications over a wireless connection include transmitting and / or receiving wireless signals using electromagnetic waves, radio waves, infrared waves, and / or other types of signals suitable for conveying information withoutthe use of wires, cables, or other material conductors. Moreover, in different embodiments, the communication system 2100 may include any number of wired or wireless networks, network nodes, UEs, and / or any other components or systems that may facilitate or participate in the communication of data and / or signals whether via wired or wireless connections. The communication system 2100 may include and / or interface with any type of communication, telecommunication, data, cellular, radio network, and / or other similar type of system.
[0121] The UEs 2112 may be any of a wide variety of communication devices, including wireless devices arranged, configured, and / or operable to communicate wirelessly with the network nodes 2110 and other communication devices. Similarly, the network nodes 2110 are arranged, capable, configured, and / or operable to communicate directly or indirectly with the UEs 2112 and / or with other network nodes or equipment in the telecommunication network 2102 to enable and / or provide network access, such as wireless network access, and / or to perform other functions, such as administration in the telecommunication network 2102.
[0122] In the depicted example, the core network 2106 connects the network nodes 2110 to one or more host computing systems, such as host 2116. These connections may be direct or indirect via one or more intermediary networks or devices. In other examples, network nodes may be directly coupled to hosts. The core network 2106 includes one more core network nodes (e.g., core network node 2108) that are structured with hardware and software components. Features of these components may be substantially similar to those described with respect to the UEs, network nodes, and / or hosts, such that the descriptions thereof are generally applicable to the corresponding components of the core network node 2108. Example core network nodes include functions of one or more of a Mobile Switching Center (MSC), Mobility Management Entity (MME), Home Subscriber Server (HSS), Access and Mobility Management Function (AMF), Session Management Function (SMF), Authentication Server Function (AUSF), Subscription Identifier De-concealing function (SIDF), Unified Data Management (UDM), Security Edge Protection Proxy (SEPP), Network Exposure Function (NEF), and / or a User Plane Function (UPF).
[0123] The host 2116 may be under the ownership or control of a service provider other than an operator or provider of the access network 2104 and / or the telecommunication network 2102. The host 2116 may host a variety of applications to provide one or more service. Examples of such applications include live and pre-recorded audio / video content, data collection services such as retrieving and compiling data on various ambientconditions detected by a plurality of UEs, analytics functionality, social media, functions for controlling or otherwise interacting with remote devices, functions for an alarm and surveillance center, or any other such function performed by a server.
[0124] As a whole, the communication system 2100 of Figure 12 enables connectivity between the UEs, network nodes, and hosts. In that sense, the communication system may be configured to operate according to predefined rules or procedures, such as specific standards that include, but are not limited to: Global System for Mobile Communications (GSM); Universal Mobile Telecommunications System (UMTS); Long Term Evolution (LTE), and / or other suitable 2G, 3G, 4G, 5G standards, or any applicable future generation standard (e.g., 6G); wireless local area network (WLAN) standards, such as the Institute of Electrical and Electronics Engineers (IEEE) 802.11 standards (WiFi); and / or any other appropriate wireless communication standard, such as the Worldwide Interoperability for Microwave Access (WiMax), Bluetooth, Z-Wave, Near Field Communication (NFC) ZigBee, LiFi, and / or any low-power wide-area network (LPWAN) standards such as LoRa and Sigfox.
[0125] In some examples, the telecommunication network 2102 is a cellular network that implements 3GPP standardized features. Accordingly, the telecommunications network 2102 may support network slicing to provide different logical networks to different devices that are connected to the telecommunication network 2102. For example, the telecommunications network 2102 may provide Ultra Reliable Low Latency Communication (URLLC) services to some UEs, while providing Enhanced Mobile Broadband (eMBB) services to other UEs, and / or Massive Machine Type Communication (mMTC) / Massive loT services to yet further UEs.
[0126] In some examples, the UEs 2112 are configured to transmit and / or receive information without direct human interaction. For instance, a UE may be designed to transmit information to the access network 2104 on a predetermined schedule, when triggered by an internal or external event, or in response to requests from the access network 2104. Additionally, a UE may be configured for operating in single- or multi -RAT or multistandard mode. For example, a UE may operate with any one or combination of Wi-Fi, NR (New Radio) and LTE, i.e. being configured for multi-radio dual connectivity (MR-DC), such as E-UTRAN (Evolved-UMTS Terrestrial Radio Access Network) New Radio - Dual Connectivity (EN-DC).
[0127] In the example, the hub 2114 communicates with the access network 2104 to facilitate indirect communication between one or more UEs (e.g., UE 2112c and / or 2112d)and network nodes (e.g., network node 2110b). In some examples, the hub 2114 may be a controller, router, content source and analytics, or any of the other communication devices described herein regarding UEs. For example, the hub 2114 may be a broadband router enabling access to the core network 2106 for the UEs. As another example, the hub 2114 may be a controller that sends commands or instructions to one or more actuators in the UEs. Commands or instructions may be received from the UEs, network nodes 2110, or by executable code, script, process, or other instructions in the hub 2114. As another example, the hub 2114 may be a data collector that acts as temporary storage for UE data and, in some embodiments, may perform analysis or other processing of the data. As another example, the hub 2114 may be a content source. For example, for a UE that is a VR device, display, loudspeaker, or other media delivery device, the hub 2114 may retrieve VR assets, video, audio, or other media or data related to sensory information via a network node, which the hub 2114 then provides to the UE either directly, after performing local processing, and / or after adding additional local content. In still another example, the hub 2114 acts as a proxy server or orchestrator for the UEs, in particular if one or more of the UEs are low energy loT devices.
[0128] The hub 2114 may have a constant / persistent or intermittent connection to the network node 2110b. The hub 2114 may also allow for a different communication scheme and / or schedule between the hub 2114 and UEs (e.g., UE 2112c and / or 2112d), and between the hub 2114 and the core network 2106. In other examples, the hub 2114 is connected to the core network 2106 and / or one or more UEs via a wired connection. Moreover, the hub 2114 may be configured to connect to an M2M service provider over the access network 2104 and / or to another UE over a direct connection. In some scenarios, UEs may establish a wireless connection with the network nodes 2110 while still connected via the hub 2114 via a wired or wireless connection. In some embodiments, the hub 2114 may be a dedicated hub - that is, a hub whose primary function is to route communications to / from the UEs from / to the network node 2110b. In other embodiments, the hub 2114 may be a non-dedicated hub - that is, a device which is capable of operating to route communications between the UEs and network node 2110b, but which is additionally capable of operating as a communication start and / or end point for certain data channels.
[0129] Figure 13 shows a UE 2200 in accordance with some embodiments. The UE 2200 presents additional details of some embodiments of the UE 2112 of Figure 12. As used herein, a UE refers to a device capable, configured, arranged and / or operable to communicate wirelessly with network nodes and / or other UEs. Examples of a UE include,but are not limited to, a smart phone, mobile phone, cell phone, voice over IP (VoIP) phone, wireless local loop phone, desktop computer, personal digital assistant (PDA), wireless cameras, gaming console or device, music storage / playback device, wearable terminal device, wireless endpoint, mobile station, tablet, laptop, laptop-embedded equipment (LEE), laptop-mounted equipment (LME), an Augmented Reality (AR) or Virtual Reality (VR) device, wireless customer-premise equipment (CPE), vehicle, vehicle-mounted or vehicle embedded / integrated wireless device, etc. Other examples include any UE identified by the 3rd Generation Partnership Project (3 GPP), including a narrow band internet of things (NB-IoT) UE, a machine type communication (MTC) UE, and / or an enhanced MTC (eMTC) UE.
[0130] A UE may support device-to-device (D2D) communication, for example by implementing a 3 GPP standard for sidelink communication, Dedicated Short-Range Communication (DSRC), vehi cl e-to- vehicle (V2V), vehicle-to-infrastructure (V2I), or vehicle-to-everything (V2X). In other examples, a UE may not necessarily have a user in the sense of a human user who owns and / or operates the relevant device. Instead, a UE may represent a device that is intended for sale to, or operation by, a human user but which may not, or which may not initially, be associated with a specific human user (e.g., a smart sprinkler controller). Alternatively, a UE may represent a device that is not intended for sale to, or operation by, an end user but which may be associated with or operated for the benefit of a user (e.g., a smart power meter).
[0131] The UE 2200 includes processing circuitry 2202 that is operatively coupled via a bus 2204 to an input / output interface 2206, a power source 2208, a memory 2210, a communication interface 2212, and / or any other component, or any combination thereof. Certain UEs may utilize all or a subset of the components shown in Figure 13. The level of integration between the components may vary from one UE to another UE. Further, certain UEs may contain multiple instances of a component, such as multiple processors, memories, transceivers, transmitters, receivers, etc.
[0132] The processing circuitry 2202 is configured to process instructions and data and may be configured to implement any sequential state machine operative to execute instructions stored as machine-readable computer programs in the memory 2210. The processing circuitry 2202 may be implemented as one or more hardware-implemented state machines (e.g., in discrete logic, field-programmable gate arrays (FPGAs), application specific integrated circuits (ASICs), etc.); programmable logic together with appropriate firmware; one or more stored computer programs, general-purpose processors, such as amicroprocessor or digital signal processor (DSP), together with appropriate software; or any combination of the above. For example, the processing circuitry 2202 may include multiple central processing units (CPUs).
[0133] In the example, the input / output interface 2206 may be configured to provide an interface or interfaces to an input device, output device, or one or more input and / or output devices. Examples of an output device include a speaker, a sound card, a video card, a display, a monitor, a printer, an actuator, an emitter, a smartcard, another output device, or any combination thereof. An input device may allow a user to capture information into the UE 2200. Examples of an input device include a touch-sensitive or presence-sensitive display, a camera (e.g., a digital camera, a digital video camera, a web camera, etc.), a microphone, a sensor, a mouse, a trackball, a directional pad, a trackpad, a scroll wheel, a smartcard, and the like. The presence-sensitive display may include a capacitive or resistive touch sensor to sense input from a user. A sensor may be, for instance, an accelerometer, a gyroscope, a tilt sensor, a force sensor, a magnetometer, an optical sensor, a proximity sensor, a biometric sensor, etc., or any combination thereof. An output device may use the same type of interface port as an input device. For example, a Universal Serial Bus (USB) port may be used to provide an input device and an output device.
[0134] In some embodiments, the power source 2208 is structured as a battery or battery pack. Other types of power sources, such as an external power source (e.g., an electricity outlet), photovoltaic device, or power cell, may be used. The power source 2208 may further include power circuitry for delivering power from the power source 2208 itself, and / or an external power source, to the various parts of the UE 2200 via input circuitry or an interface such as an electrical power cable. Delivering power may be, for example, for charging of the power source 2208. Power circuitry may perform any formatting, converting, or other modification to the power from the power source 2208 to make the power suitable for the respective components of the UE 2200 to which power is supplied.
[0135] The memory 2210 may be or be configured to include memory such as random access memory (RAM), read-only memory (ROM), programmable read-only memory (PROM), erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), magnetic disks, optical disks, hard disks, removable cartridges, flash drives, and so forth. In one example, the memory 2210 includes one or more application programs 2214, such as an operating system, web browser application, a widget, gadget engine, or other application, and corresponding data 2216.The memory 2210 may store, for use by the UE 2200, any of a variety of various operating systems or combinations of operating systems.
[0136] The memory 2210 may be configured to include a number of physical drive units, such as redundant array of independent disks (RAID), flash memory, USB flash drive, external hard disk drive, thumb drive, pen drive, key drive, high-density digital versatile disc (HD-DVD) optical disc drive, internal hard disk drive, Blu-Ray optical disc drive, holographic digital data storage (HDDS) optical disc drive, external mini-dual inline memory module (DIMM), synchronous dynamic random access memory (SDRAM), external micro-DIMM SDRAM, smartcard memory such as tamper resistant module in the form of a universal integrated circuit card (UICC) including one or more subscriber identity modules (SIMs), such as a USIM and / or ISIM, other memory, or any combination thereof. The UICC may for example be an embedded UICC (eUICC), integrated UICC (iUICC) or a removable UICC commonly known as ‘SIM card.’ The memory 2210 may allow the UE 2200 to access instructions, application programs and the like, stored on transitory or non- transitory memory media, to off-load data, or to upload data. An article of manufacture, such as one utilizing a communication system may be tangibly embodied as or in the memory 2210, which may be or comprise a device-readable storage medium.
[0137] The processing circuitry 2202 may be configured to communicate with an access network or other network using the communication interface 2212. The communication interface 2212 may comprise one or more communication subsystems and may include or be communicatively coupled to an antenna 2222. The communication interface 2212 may include one or more transceivers used to communicate, such as by communicating with one or more remote transceivers of another device capable of wireless communication (e.g., another UE or a network node in an access network). Each transceiver may include a transmitter 2218 and / or a receiver 2220 appropriate to provide network communications (e.g., optical, electrical, frequency allocations, and so forth). Moreover, the transmitter 2218 and receiver 2220 may be coupled to one or more antennas (e.g., antenna 2222) and may share circuit components, software or firmware, or alternatively be implemented separately.
[0138] In the illustrated embodiment, communication functions of the communication interface 2212 may include cellular communication, Wi-Fi communication, LPWAN communication, data communication, voice communication, multimedia communication, short-range communications such as Bluetooth, near-field communication, location-based communication such as the use of the global positioning system (GPS) to determine alocation, another like communication function, or any combination thereof. Communications may be implemented in according to one or more communication protocols and / or standards, such as IEEE 802.11, Code Division Multiplexing Access (CDMA), Wideband Code Division Multiple Access (WCDMA), GSM, LTE, New Radio (NR), UMTS, WiMax, Ethernet, transmission control protocol / intemet protocol (TCP / IP), synchronous optical networking (SONET), Asynchronous Transfer Mode (ATM), QUIC, Hypertext Transfer Protocol (HTTP), and so forth.
[0139] Regardless of the type of sensor, a UE may provide an output of data captured by its sensors, through its communication interface 2212, via a wireless connection to a network node. Data captured by sensors of a UE can be communicated through a wireless connection to a network node via another UE. The output may be periodic (e.g., once every 15 minutes if it reports the sensed temperature), random (e.g., to even out the load from reporting from several sensors), in response to a triggering event (e.g., when moisture is detected an alert is sent), in response to a request (e.g., a user initiated request), or a continuous stream (e.g., a live video feed of a patient).
[0140] As another example, a UE comprises an actuator, a motor, or a switch, related to a communication interface configured to receive wireless input from a network node via a wireless connection. In response to the received wireless input the states of the actuator, the motor, or the switch may change. For example, the UE may comprise a motor that adjusts the control surfaces or rotors of a drone in flight according to the received input or to a robotic arm performing a medical procedure according to the received input.
[0141] A UE, when in the form of an Internet of Things (loT) device, may be a device for use in one or more application domains, these domains comprising, but not limited to, city wearable technology, extended industrial application and healthcare. Non-limiting examples of such an loT device are a device which is or which is embedded in: a connected refrigerator or freezer, a TV, a connected lighting device, an electricity meter, a robot vacuum cleaner, a voice controlled smart speaker, a home security camera, a motion detector, a thermostat, a smoke detector, a door / window sensor, a flood / moisture sensor, an electrical door lock, a connected doorbell, an air conditioning system like a heat pump, an autonomous vehicle, a surveillance system, a weather monitoring device, a vehicle parking monitoring device, an electric vehicle charging station, a smart watch, a fitness tracker, a wearable for tactile augmentation or sensory enhancement, a water sprinkler, an animal- or item-tracking device, a sensor for monitoring a plant or animal, an industrial robot, an Unmanned Aerial Vehicle (UAV), and any kind of medical device, like a heartrate monitor or a remote controlled surgical robot. A UE in the form of an loT device comprises circuitry and / or software in dependence of the intended application of the loT device in addition to other components as described in relation to the UE 2200 shown in Figure 13.
[0142] As yet another specific example, in an loT scenario, a UE may represent a machine or other device that performs monitoring and / or measurements, and transmits the results of such monitoring and / or measurements to another UE and / or a network node. The UE may in this case be an M2M device, which may in a 3GPP context be referred to as an MTC device. As one particular example, the UE may implement the 3GPP NB-IoT standard. In other scenarios, a UE may represent a vehicle, such as a car, a bus, a truck, a ship and an airplane, or other equipment that is capable of monitoring and / or reporting on its operational status or other functions associated with its operation.
[0143] In practice, any number of UEs may be used together with respect to a single use case. For example, a first UE might be or be integrated in a drone and provide the drone’ s speed information (obtained through a speed sensor) to a second UE that is a remote controller operating the drone. When the user makes changes from the remote controller, the first UE may adjust the throttle on the drone (e.g. by controlling an actuator) to increase or decrease the drone’s speed. The first and / or the second UE can also include more than one of the functionalities described above. For example, a UE might comprise the sensor and the actuator, and handle communication of data for both the speed sensor and the actuators.
[0144] Figure 14 shows a network node 2300 in accordance with some embodiments. As used herein, network node refers to equipment capable, configured, arranged and / or operable to communicate directly or indirectly with a UE and / or with other network nodes or equipment, in a telecommunication network. Examples of network nodes include, but are not limited to, access points (APs) (e.g., radio access points), base stations (BSs) (e.g., radio base stations, Node Bs, evolved Node Bs (eNBs) and NR NodeBs (gNBs)), 0-RAN nodes or components of an 0-RAN node (e.g., 0-RU, 0-DU, O-CU).
[0145] Base stations may be categorized based on the amount of coverage they provide (or, stated differently, their transmit power level) and so, depending on the provided amount of coverage, may be referred to as femto base stations, pico base stations, micro base stations, or macro base stations. A base station may be a relay node or a relay donor node controlling a relay. A network node may also include one or more (or all) parts of a distributed radio base station such as centralized digital units, distributed units (e.g., in anO-RAN access node) and / or remote radio units (RRUs), sometimes referred to as Remote Radio Heads (RRHs). Such remote radio units may or may not be integrated with an antenna as an antenna integrated radio. Parts of a distributed radio base station may also be referred to as nodes in a distributed antenna system (DAS).
[0146] Other examples of network nodes include multiple transmission point (multi- TRP) 5G access nodes, multi-standard radio (MSR) equipment such as MSR BSs, network controllers such as radio network controllers (RNCs) or base station controllers (BSCs), base transceiver stations (BTSs), transmission points, transmission nodes, multi- cell / multicast coordination entities (MCEs), Operation and Maintenance (O&M) nodes, Operations Support System (OSS) nodes, Self-Organizing Network (SON) nodes, positioning nodes (e.g., Evolved Serving Mobile Location Centers (E-SMLCs)), and / or Minimization of Drive Tests (MDTs).
[0147] The network node 2300 includes a processing circuitry 2302, a memory 2304, a communication interface 2306, and a power source 2308. The network node 2300 may be composed of multiple physically separate components (e.g., a NodeB component and a RNC component, or a BTS component and a BSC component, etc.), which may each have their own respective components. In certain scenarios in which the network node 2300 comprises multiple separate components (e.g., BTS and BSC components), one or more of the separate components may be shared among several network nodes. For example, a single RNC may control multiple NodeB s. In such a scenario, each unique NodeB and RNC pair, may in some instances be considered a single separate network node. In some embodiments, the network node 2300 may be configured to support multiple radio access technologies (RATs). In such embodiments, some components may be duplicated (e.g., separate memory 2304 for different RATs) and some components may be reused (e.g., a same antenna 2310 may be shared by different RATs). The network node 2300 may also include multiple sets of the various illustrated components for different wireless technologies integrated into network node 2300, for example GSM, WCDMA, LTE, NR, WiFi, Zigbee, Z-wave, LoRaWAN, Radio Frequency Identification (RFID) or Bluetooth wireless technologies. These wireless technologies may be integrated into the same or different chip or set of chips and other components within network node 2300.
[0148] The processing circuitry 2302 may comprise a combination of one or more of a microprocessor, controller, microcontroller, central processing unit, digital signal processor, application-specific integrated circuit, field programmable gate array, or any other suitable computing device, resource, or combination of hardware, software and / orencoded logic operable to provide, either alone or in conjunction with other network node 2300 components, such as the memory 2304, to provide network node 2300 functionality.
[0149] In some embodiments, the processing circuitry 2302 includes a system on a chip (SOC). In some embodiments, the processing circuitry 2302 includes one or more of radio frequency (RF) transceiver circuitry 2312 and baseband processing circuitry 2314. In some embodiments, the radio frequency (RF) transceiver circuitry 2312 and the baseband processing circuitry 2314 may be on separate chips (or sets of chips), boards, or units, such as radio units and digital units. In alternative embodiments, part or all of RF transceiver circuitry 2312 and baseband processing circuitry 2314 may be on the same chip or set of chips, boards, or units.
[0150] The memory 2304 may comprise any form of volatile or non-volatile computer- readable memory including, without limitation, persistent storage, solid-state memory, remotely mounted memory, magnetic media, optical media, random access memory (RAM), read-only memory (ROM), mass storage media (for example, a hard disk), removable storage media (for example, a flash drive, a Compact Disk (CD) or a Digital Video Disk (DVD)), and / or any other volatile or non-volatile, non-transitory device- readable and / or computer-executable memory devices that store information, data, and / or instructions that may be used by the processing circuitry 2302. The memory 2304 may store any suitable instructions, data, or information, including a computer program, software, an application including one or more of logic, rules, code, tables, and / or other instructions capable of being executed by the processing circuitry 2302 and utilized by the network node 2300. The memory 2304 may be used to store any calculations made by the processing circuitry 2302 and / or any data received via the communication interface 2306. In some embodiments, the processing circuitry 2302 and memory 2304 is integrated.
[0151] The communication interface 2306 is used in wired or wireless communication of signaling and / or data between a network node, access network, and / or UE. As illustrated, the communication interface 2306 comprises port(s) / terminal(s) 2316 to send and receive data, for example to and from a network over a wired connection. The communication interface 2306 also includes radio front-end circuitry 2318 that may be coupled to, or in certain embodiments a part of, the antenna 2310. Radio front-end circuitry 2318 comprises filters 2320 and amplifiers 2322. The radio front-end circuitry 2318 may be connected to an antenna 2310 and processing circuitry 2302. The radio front-end circuitry may be configured to condition signals communicated between antenna 2310 and processing circuitry 2302. The radio front-end circuitry 2318 may receive digital data that is to be sentout to other network nodes or UEs via a wireless connection. The radio front-end circuitry 2318 may convert the digital data into a radio signal having the appropriate channel and bandwidth parameters using a combination of filters 2320 and / or amplifiers 2322. The radio signal may then be transmitted via the antenna 2310. Similarly, when receiving data, the antenna 2310 may collect radio signals which are then converted into digital data by the radio front-end circuitry 2318. The digital data may be passed to the processing circuitry 2302. In other embodiments, the communication interface may comprise different components and / or different combinations of components.
[0152] In certain alternative embodiments, the network node 2300 does not include separate radio front-end circuitry 2318, instead, the processing circuitry 2302 includes radio front-end circuitry and is connected to the antenna 2310. Similarly, in some embodiments, all or some of the RF transceiver circuitry 2312 is part of the communication interface 2306. In still other embodiments, the communication interface 2306 includes one or more ports or terminals 2316, the radio front-end circuitry 2318, and the RF transceiver circuitry 2312, as part of a radio unit (not shown), and the communication interface 2306 communicates with the baseband processing circuitry 2314, which is part of a digital unit (not shown).
[0153] The antenna 2310 may include one or more antennas, or antenna arrays, configured to send and / or receive wireless signals. The antenna 2310 may be coupled to the radio front-end circuitry 2318 and may be any type of antenna capable of transmitting and receiving data and / or signals wirelessly. In certain embodiments, the antenna 2310 is separate from the network node 2300 and connectable to the network node 2300 through an interface or port.
[0154] The antenna 2310, communication interface 2306, and / or the processing circuitry 2302 may be configured to perform any receiving operations and / or certain obtaining operations described herein as being performed by the network node. Any information, data and / or signals may be received from a UE, another network node and / or any other network equipment. Similarly, the antenna 2310, the communication interface 2306, and / or the processing circuitry 2302 may be configured to perform any transmitting operations described herein as being performed by the network node. Any information, data and / or signals may be transmitted to a UE, another network node and / or any other network equipment.
[0155] The power source 2308 provides power to the various components of network node 2300 in a form suitable for the respective components (e.g., at a voltage and currentlevel needed for each respective component). The power source 2308 may further comprise, or be coupled to, power management circuitry to supply the components of the network node 2300 with power for performing the functionality described herein. For example, the network node 2300 may be connectable to an external power source (e.g., the power grid, an electricity outlet) via an input circuitry or interface such as an electrical cable, whereby the external power source supplies power to power circuitry of the power source 2308. As a further example, the power source 2308 may comprise a source of power in the form of a battery or battery pack which is connected to, or integrated in, power circuitry. The battery may provide backup power should the external power source fail.
[0156] Embodiments of the network node 2300 may include additional components beyond those shown in Figure 14 for providing certain aspects of the network node’s functionality, including any of the functionality described herein and / or any functionality necessary to support the subject matter described herein. For example, the network node 2300 may include user interface equipment to allow input of information into the network node 2300 and to allow output of information from the network node 2300. This may allow a user to perform diagnostic, maintenance, repair, and other administrative functions for the network node 2300. In some embodiments providing a core network node, such as core network node 2108 of FIG. 12, some components, such as the radio front-end circuitry 2318 and the RF transceiver circuitry 2312 may be omitted.
[0157] Figure 15 is a block diagram illustrating a virtualization environment 2400 in which functions implemented by some embodiments may be virtualized. In the present context, virtualizing means creating virtual versions of apparatuses or devices which may include virtualizing hardware platforms, storage devices and networking resources. As used herein, virtualization can be applied to any device described herein, or components thereof, and relates to an implementation in which at least a portion of the functionality is implemented as one or more virtual components. Some or all of the functions described herein may be implemented as virtual components executed by one or more virtual machines (VMs) implemented in one or more virtual environments 2400 hosted by one or more of hardware nodes, such as a hardware computing device that operates as a network node, UE, core network node, or host. Further, in embodiments in which the virtual node does not require radio connectivity (e.g., a core network node or host), then the node may be entirely virtualized. In some embodiments, the virtualization environment 2400 includes components defined by the O-RAN Alliance, such as an O-Cloud environment orchestrated by a Service Management and Orchestration Framework via an O-2 interface.Virtualization may facilitate distributed implementations of a network node, UE, core network node, or host.
[0158] Applications 2402 (which may alternatively be called software instances, virtual appliances, network functions, virtual nodes, virtual network functions, etc.) are run in the virtualization environment 2400 to implement some of the features, functions, and / or benefits of some of the embodiments disclosed herein.
[0159] Hardware 2404 includes processing circuitry, memory that stores software and / or instructions executable by hardware processing circuitry, and / or other hardware devices as described herein, such as a network interface, input / output interface, and so forth. Software may be executed by the processing circuitry to instantiate one or more virtualization layers 2406 (also referred to as hypervisors or virtual machine monitors (VMMs)), provide VMs 2408a and 2408b (one or more of which may be generally referred to as VMs 2408), and / or perform any of the functions, features and / or benefits described in relation with some embodiments described herein. The virtualization layer 2406 may present a virtual operating platform that appears like networking hardware to the VMs 2408.
[0160] The VMs 2408 comprise virtual processing, virtual memory, virtual networking or interface and virtual storage, and may be run by a corresponding virtualization layer 2406. Different embodiments of the instance of a virtual appliance 2402 may be implemented on one or more of VMs 2408, and the implementations may be made in different ways. Virtualization of the hardware is in some contexts referred to as network function virtualization (NFV). NFV may be used to consolidate many network equipment types onto industry standard high volume server hardware, physical switches, and physical storage, which can be located in data centers, and customer premise equipment.
[0161] In the context of NFV, a VM 2408 may be a software implementation of a physical machine that runs programs as if they were executing on a physical, nonvirtualized machine. Each of the VMs 2408, and that part of hardware 2404 that executes that VM, be it hardware dedicated to that VM and / or hardware shared by that VM with others of the VMs, forms separate virtual network elements. Still in the context of NFV, a virtual network function is responsible for handling specific network functions that run in one or more VMs 2408 on top of the hardware 2404 and corresponds to the application 2402.
[0162] Hardware 2404 may be implemented in a standalone network node with generic or specific components. Hardware 2404 may implement some functions via virtualization.Alternatively, hardware 2404 may be part of a larger cluster of hardware (e.g. such as in a data center or CPE) where many hardware nodes work together and are managed via management and orchestration 2410, which, among others, oversees lifecycle management of applications 2402. In some embodiments, hardware 2404 is coupled to one or more radio units that each include one or more transmitters and one or more receivers that may be coupled to one or more antennas. Radio units may communicate directly with other hardware nodes via one or more appropriate network interfaces and may be used in combination with the virtual components to provide a virtual node with radio capabilities, such as a radio access node or a base station. In some embodiments, some signaling can be provided with the use of a control system 2412 which may alternatively be used for communication between hardware nodes and radio units.
[0163] Although the computing devices described herein (e.g., UEs, network nodes) may include the illustrated combination of hardware components, other embodiments may comprise computing devices with different combinations of components. It is to be understood that these computing devices may comprise any suitable combination of hardware and / or software needed to perform the tasks, features, functions and methods disclosed herein. Determining, calculating, obtaining or similar operations described herein may be performed by processing circuitry, which may process information by, for example, converting the obtained information into other information, comparing the obtained information or converted information to information stored in the network node, and / or performing one or more operations based on the obtained information or converted information, and as a result of said processing making a determination. Moreover, while components are depicted as single boxes located within a larger box, or nested within multiple boxes, in practice, computing devices may comprise multiple different physical components that make up a single illustrated component, and functionality may be partitioned between separate components. For example, a communication interface may be configured to include any of the components described herein, and / or the functionality of the components may be partitioned between the processing circuitry and the communication interface. In another example, non-computationally intensive functions of any of such components may be implemented in software or firmware and computationally intensive functions may be implemented in hardware.
[0164] In certain embodiments, some or all of the functionality described herein may be provided by processing circuitry executing instructions stored on in memory, which in certain embodiments may be a computer program product in the form of a non-transitorycomputer-readable storage medium. In alternative embodiments, some or all of the functionality may be provided by the processing circuitry without executing instructions stored on a separate or discrete device-readable storage medium, such as in a hard-wired manner. In any of those particular embodiments, whether executing instructions stored on a non-transitory computer-readable storage medium or not, the processing circuitry can be configured to perform the described functionality. The benefits provided by such functionality are not limited to the processing circuitry alone or to other components of the computing device, but are enjoyed by the computing device as a whole, and / or by end users and a wireless network generally.
Claims
CLAIMS1. A computer-implemented method (2700) for enhancing advertisements, the method comprising: receiving (2710) at a video advertisement enrichment service (120), from an advertisement exchange (116), a request identifying an original video advertisement identifier; downloading (2715) an original video advertisement related to the original video advertisement identifier; performing (2720) an enrichment area detection to detect one or more areas within the original video advertisement, wherein placement of a code within the one or more areas does not interfere with advertising content; performing (2725) a category and ad content detection to identify an advertisement type or market type; instantiating (2730) the code within the original video advertisement; producing (2735) one or more enriched videos of the original video advertisement; storing (2740) the one or more enriched videos in an enriched video library (130); determining (2745) a preferred one of the one or more enriched videos for a given user; transmitting (2750) an identifier of the preferred video to the advertisement exchange; receiving (2755) the identifier from a user’s device; and transmitting (2760) the preferred video to the user’s device (112) for display to the user.
2. The method of claim 1, wherein the determining a preferred one of the one or more enriched videos comprises using a machine learning model to identify one of the one or more enriched videos that is most likely to yield user engagement.
3. The method of claim 1 or 2, further comprising training the machine learning model with user behavior data or metadata.
4. The method of any of claims 1 to 3, wherein at least one of: performing an enrichment area detection to detect one or more areas within theoriginal video advertisement; performing a category and ad content detection to identify an advertisement type or market type; and / or instantiating a code within the original video advertisement, selected from a code library; is based at least in part on one or more additional machine learning models (154) or large language models for analyzing advertisement content.
5. The method of any of claims 1 to 4, wherein the code comprises at least one of quick response, QR, code; uniform resource locator, URL; universal product code, UPC.
6. A computer-implemented method (2900) of performing enrichment area detection, the method comprising: receiving (2910) a video advertisement; detecting (2915) if there are any codes within the video advertisement; if there are no codes, then performing the steps of; detecting (2920) one or more candidate areas to place one or more codes based on one or more size measurements; excluding (2925) any of the one or more candidate areas containing brand or text information; excluding (2930) any of the one or more candidate areas containing foreground objects; detecting (2935), of the remaining of the one or more candidate areas, at least one candidate area with: at least a minimal size of the one or more codes; and a longest duration; detecting (2940) if the longest duration is long enough for any of the one or more codes; if it is, then placing (2945) one of the one or more codes in one of the at least one candidate areas to create an enhanced video.
7. The method of claim 6, further comprising storing the enhanced video.
8. The method of claim 6 or 7, in response to a request, transmitting the enhanced video to a user device for display to a user.
9. The method of any of claims 6 to 8, wherein the one or more codes comprise at least one of: quick response, QR, code; uniform resource locator, URL; universal product code, UPC.
10. A computer implemented method (3100) for training a machine learning, ML, model for enhancing advertisements, comprising: obtaining (3110) a dataset of identified advertisements; training (3120) the ML model using the dataset of identified advertisements thereby obtaining a trained ML model, and storing (3130) the trained ML model.
11. The method of claim 10, wherein the ML model is a neural network.
12. A computer implemented method (3300) for obtaining identified advertisements, comprising: inputting (3310) a dataset of advertisements into a trained model, the model being trained using a dataset of advertisements obtained by using a video advertisement enrichment service and a dynamic video creative service; and obtaining (3320) a dataset of advertisements labeled by the trained model.
13. The method of claim 12, further comprising obtaining a dataset of advertisements labeled by the trained model by inputting a dataset of advertisements into the trained model.
14. A system (100, 120) for enhancing video advertisements, comprising: processing circuitry (2501) configured to perform any of the steps of any of claims 1 to 13; and power supply circuitry (2513) configured to supply power to the processing circuitry.
15. A system (100) for enhancing video advertisements, comprising: an advertisement exchange (116), configured to participate in real-time bidding for an impression related to one or more online content; a dynamic video creative service (150) configured to handle dynamic video variant selection of one or more video variants during advertisement rendering after an impressionis won; a video advertisement enrichment service (120) configured to automatically enrich the one or more video variants with one or more codes by using one of more of; category detection, advertisement content detection, enrichment area detection, resulting in one or more enhanced videos; and a machine learning algorithm (154) coupled to the dynamic video creative service and the video advertisement enrichment service and configured for dynamic big screen video advertisement component optimization to optimize one or more advertising key performance indicators related to the one or more enhanced videos and / or the one or more video variants.
16. The system of claim 15, wherein: the system performs any of the steps of claims 1 to 13.
Citation Information
Patent Citations
Advertisement insertion in videos
US20200213644A1
Relative prominence of elements within an advertisement
US20230164402A1
Dynamic embedding of machine-readable codes within video and digital media
US20230229881A1
Cited By
Systems and methods for providing enhancements for deemphasized content
US20260178661A1