Publishers of various types of news, editorial or other content often include or incorporate images and videos in their publications. For example, a news article presented in the form of a webpage may include photos or other images within the webpage, in addition to the text of the news article itself. An advertisement may be presented near, on, over or within one or more of these images, such as by overlaying an advertisement graphic and/or advertisement text over a portion of an editorial image or other image on the publisher's webpage. For example, according to existing systems, a rectangular advertisement is sometimes embedded within (or overlaid on top of) a portion of an underlying image. The rectangular advertisement may appear, for example, centered near the bottom of the image, with the majority of the image visible above the advertisement. If a user viewing the webpage or other user interface makes a selection (such as by a mouse click or tap gesture) within the rectangular advertisement, the user's browser or other application displaying the webpage or other user interface may load a page associated with the advertisement. This may occur, for example, by the browser sending a network request for content having a uniform resource identifier (“URI”) that was previously associated with the selected advertisement.
The foregoing aspects and many of the attendant advantages will become more readily appreciated as the same become better understood by reference to the following detailed description, when taken in conjunction with the accompanying drawings, wherein:
Generally described, aspects of the present disclosure relate to advertisement or other supplemental overlay content that is dynamically displayed over or within an image or video that appears on a webpage or other user interface. Aspects of the present disclosure further include handling user selection events (such as mouse clicks, tap gestures, swipes or other actions) in a manner such that selection actions performed within transparent portions of overlay content are effectively passed through to the underlying image or page content to be processed in accordance with a publisher's original page code. Embodiments disclosed herein enable advertisers to create new types of in-image or in-video advertisement content that is not confined to a rectangular portion of an image or video, and instead may “frame” an image or video by including advertisement or other overlay content on the top, bottom and sides of the image or video (or may be otherwise shaped such that the advertisement cannot be contained within a rectangle without significant empty space within the rectangle).
One problem with attempting to use existing technology for a “frame” visual effect for an in-image overlay advertisement or other overlay content is that user selection events that a user intends to direct to the underlying image (such as the user attempting to use a mouse click or tap gesture to follow a link or other action associated with an image behind an advertisement) may be essentially swallowed or blocked by a transparent container that is used to present the advertisement or other overlay content over the image. For example, using existing techniques, displaying overlay content that appears on top of a portion of an image or video on a webpage typically involves displaying the overlay content in a manner whereby a container is positioned within the image to cover a portion of the image with the overlay content. For example, code may place a rectangular container in the bottom center of the image and then fill that container in its entirety with a “banner” advertisement. Any user selection actions within the portion of the image that is covered by the advertisement's container will be treated by the client device's browser as a selection within the container, as opposed to a selection of the underlying content of the original page (such as the image beneath or behind the advertisement or other overlay content).
Using existing techniques, if an advertiser chose to present an irregularly shaped advertisement as overlay content within a rectangular container with the remaining portions of the container transparent (e.g., the underlying image remaining visible behind the container), the transparent portions of the container would still block user interaction with the portions of the image behind the container. This may lead to frustration for both the user (who intended to select the underlying image as opposed to the advertisement) and for the publisher of the page (because the publisher's intended page functionality was blocked by the advertisement).
Next, at block 104, the code of the page (or code received from a server subsequent to the initial page load as a result of executing the initial code) causes the browser to locate one or more images (or videos or other page objects or media items, depending on the embodiment) within the page. The code may, for example, search the page for images or other media items that are potentially suitable for placing an advertisement over or within. For example, the code may consider the size of the image, name of the image, metadata associated with the image, and/or contextual information determined from the surrounding text of the page. In some embodiments, the client-side code may perform an initial cursory consideration of an image's suitability for advertisement placement, with a more in-depth analysis subsequently performed by a server. Accordingly, at block 106, the code may then cause the browser to send information regarding one or more of the located images (e.g., potentially suitable images for advertisement placement), videos or other objects or elements on the page to a server, such as a server operated by an advertisement service that handles advertisements for a potentially large number of different advertisers. The sent information may include information regarding the page content, the publisher, and each image (and/or video or other media item considered an object of interest in a given embodiment) identified on the page as potentially suitable for advertisement placement or other content overlay. The data sent with respect to each image may include, for example, image metadata, image dimensions, image name, the location of the image in the page, and/or other information.
When the server receives the image and page data from the client device, the server may analyze the received information to determine whether to display an advertisement in association with any of the images on the page in the given instance, and if so, may select an advertisement to display (not illustrated in
Once the server selects an advertisement or other overlay content to associate with an image on the page, the server may retrieve or assemble a package that includes one or media assets (such as images, video data and/or other visual media assets), along with code that can be executed at the client device and which causes the client device (in combination with code previously delivered to the client device) to present the advertisement and/or other overlay content for display. In one embodiment, the package may include, for example, HTML, JavaScript, JavaScript Object Notation (“JSON”), and image assets that can be assembled by the client device according to code in the package (e.g., according to the HTML, JavaScript and JSON portions of the package) to form a “frame” or other overlay content that may surround an image on the page. The package may include (such as in a JSON portion of the package) advertisement tracking data (including, for example, tracking pixels, which are known in the art), as well as information regarding a URI to be requested if the advertisement is “clicked” or otherwise selected by a user. In some embodiments, the package may include additional information, such as video or animation data, sound files, and/or links to additional third-party hosted content for incorporation into an overlay content display. For example, animation data and/or code associated with the overlay content may be interpreted or executed by a client device to cause the appearance of the displayed overlay content to change over a set time period (such as a frame shape or other content gradually moving into place over an initial ten second period) or in response to user action (such as causing magnification or movement of a portion of the overlay content upon detection that a user has hovered a cursor over the portion). The portion(s) of the container that allow pass-through functionality to the underlying page object may accordingly change over time to match the display positions of the visible overlay content.
It will be appreciated that a “frame” effect is just one possible display style that can be utilized according to the methods described herein, and that aspects of the present disclosure are useful and provide improvements over the prior art with respect to a wide range of overlay content display styles, particularly for non-rectangular overlay content. For example, in some embodiments, aspects of the present disclosure may enable display of non-rectangular overlay content that includes transparent portions (such that underlying page content is visible beneath the portions) having a variety of shapes. The transparent portions may be positioned over one or more edges of the underlying page object (such as the topmost, bottommost, leftmost and/or rightmost portion of an underlying image or video) or within an internal portion of the underlying image or video (such that visible portions of an underlying image are surrounded on every side by overlay content). Another example of overlay content display styles that may be implemented with appropriate pass-through selection functionality according to aspects of the present disclosure include overlay content with numerous separate transparent sections (such as overlay content causing an underlying page image or other object to appear to be behind prison bars). As another example, the overlay content may contain an intricate pattern with numerous transparent sections throughout the pattern (such as overlay content appearing as a spider web over an underlying page object).
In some embodiments, a generic package for each advertisement campaign (e.g., a package for a particular frame advertisement for a particular advertiser) may be stored in an advertisement data store associated with the advertisement service, which may be modified by the server prior to sending a modified package to the client device. For example, HTML in the stored package may include macros or placeholders that the server replaces with instance-specific information associated with the publisher's page and/or the page image on which the advertisement will be presented. The placeholder information may relate to, for example, the image size (width and height) of the page image on which the advertisement will be displayed. In other embodiments, the placeholder replacements may occur on the client device, such that the package is retrieved by the server and sent to the client device without modification. While the term “package” is often used as an example herein to refer to overlay content and associated supporting files delivered to a client computing device, it will be appreciated that one or more servers may separately send multiple discrete files (such as an HTML file, image files, a JSON file, and/or others) that collectively make up what is referred to as the contents of the overlay content package described above. Accordingly, the term “package” herein is not intended to be limited to a single file that includes the various components (e.g., HTML, supporting images, etc.) within it.
At block 108, the client device receives the overlay content package (which may be considered an advertisement package, in some embodiments) from the server, including the additional code that causes the client device (e.g., via a browser or other application operating on the client device) to display overlay content in association with the particular designated image on the page. At block 110, the client device executes the additional code in the package (in combination with execution of code previously resident on the page and/or previously delivered by the server, in some embodiments). Executing the code may cause the client device to place a container or drawing canvas over the image within the page, where the container may be sized and positioned on the page such that it covers the image. For example, the container may be sized to completely cover the image, but not extend beyond the image to cover any other page content). In one embodiment, the code then causes the client device to render the HTML content of the overlay content package (potentially including other embedded or associated code) within the newly created container.
The client device may present image or video data from the overlay content package for display within the container, such that an overlay image or video appears to be on top of the underlying page image or within the underlying page image. In some embodiments, the image, animation or video content from the overlay content package may be assembled or arranged by the code of the package to dynamically create a visual advertisement from component image parts. For example, the package may cause the client's browser to create a four-sided “frame” shape with an empty (for example, transparent) center by positioning at least four images, such as images designated in the package as the left side, right side, top and bottom of the frame (which may correspond to the left, right, top and bottom of the container). In order to be adjustable to fit a wide range of underlying image or container shapes and sizes, the package may further include one or more tile images that can be repeated to extend the top, bottom, left and/or right images of the overlay content to the corresponding corner of the container. The code may additionally or alternatively scale one or more images in the overlay content package based on the size and shape of the underlying page image. As will be described below, the overlay content may be presented in a manner such that portions of the container do not include visible content and instead allow the underlying page image to remain visible beneath the container.
In the example above, because the container covers the entire page image, a user selection event (e.g., a click with a cursor in a certain position, or a tap gesture on a touchscreen) that is within the container does not necessarily signal to the client device that the user intended to select the advertisement or other overlay content. Rather, the user is unaware of the presence of the container, only seeing the underlying page image and the visual portions of the overlay content. Thus, the user may have intended to select the overlay content (such as to view more information regarding a product or service advertised in the overlay content), but may instead have intended to select an option associated with the underlying image (such as to view more information regarding an aspect of whatever is depicted in a photo or other image in the original page).
At decision block 114, in some embodiments, the client device may determine if the user selection event is within an advertisement portion of the container, or is instead in a transparent (or undrawn) portion of the container. Code executed in this block may determine whether the precise location of the user's selection (e.g., a cursor position at the time of a mouse click or a touch location associated with a touchscreen selection) is at a position that the code has designated as advertisement content, or is instead at a position designated as a “pass-through” portion of the advertisement's container. In some embodiments, each pixel that is drawn and visible in the container (e.g., all of the image or video content displayed as part of the overlay content) may be treated as advertisement content that, when selected by a user, causes an action associated with the advertisement to be performed (e.g., for the browser to request a landing page URI associated with the advertisement). The remaining portions of the container may be designated as “pass-through” portions. In other embodiments, some portions of the visible overlay content (such as the top portion of a frame where the majority of the eye-catching advertisement content is at the bottom of the frame) may nonetheless be treated by the code as either a “pass-through” portion of the container or as selection “dead space” that results in no action when selected by a user.
In some embodiments, code of the overlay content package may set mapping data, coordinates, boundaries, polygonal regions and/or other data that establishes which portions of the container are designated as selectable advertisement content. This may be set, for example, at the time that the code assembles the overlay content for display or when the overlay content is drawn to the container. In some embodiments, any portion of the container not designated as selectable advertisement content is assumed to be a “pass-through” area, while in other embodiments “pass-through” areas and/or selection “dead space” areas may be explicitly identified or defined.
If the user selection event is determined to be in a portion of the container designated as selectable advertisement content, the method proceeds to block 120, where the client device performs an action associated with the advertisement. For example, the client's browser may request a URI of a webpage associated with the advertisement or other overlay content. If instead the user selection event is determined to be in a portion of the container designated as a “pass-through” area, the method proceeds to block 116. At block 116, code causes the browser or other client device application to send the selection event to the underlying page image.
The selection event may be passed or sent to the underlying page image, in some embodiments, using JavaScript and/or HTML. For example, a token or macro within the HTML of the overlay content package may have been replaced by either the server (before the package was delivered to client device) or at the client device to reference the original page image (or video or other object or element on the page) on which the container and overlay content were placed. A reference to the page image may be placed, for example, in the closure of the overlay content's action. On the client side, JavaScript may invoke an event listener in accordance with World Wide Web Consortium (“W3C”) standards that causes the browser to bind the selection event with the underlying page image. For example, the result of the event listening may be that when the user selection occurs within a pass-through portion of the container, the browser is effectively instructed to select the underlying page image at the corresponding coordinates of the selection. As a result, at block 118, whatever action was set in the original page code of the publisher in association with a selection of the given page image at the given coordinates may automatically occur. This may include, for example, the browser requesting a URI previously associated with the image (such as based on an HTML “href” attribute associated with the image in the original publisher page), displaying pop-up text somewhere within the page, or any other action previously set by the publisher page code.
While reference is often made above to a “page” and a “browser,” it will be appreciated that the disclosure herein is also applicable to contexts other than webpages and web browsers. For example, various other applications, such as applications executable on a mobile device, may present various user interfaces that include native images or video content on which overlay content as described herein may be presented. Various applications are configured to process HTML, including email clients and social media applications, such that only minor modifications, if any, enable the above methods to be implemented in a variety of contexts other than a browser.
As an illustrative, non-limiting example, below is sample Cascading Style Sheets (“CSS”) code that may be used to illustrate aspects of one embodiment:
As a further example, below is sample JavaScript code illustrating aspects of the same embodiment:
Page 207 is a representation of the page 206 after overlay advertisements have been displayed over images 210 and 212 according to the systems and methods disclosed herein. In this example, the advertisement service's server has determined that images 210 and 212 meet advertiser criteria and other requirements for advertisement placement, and have each had an advertisement associated with the image. Accordingly, advertisements 521 and 523 have been incorporated with content items 511 and 513 respectively. In this example, image 210 has been partially covered by a frame-shaped advertisement unit 211 that covers the top, bottom and sides of the image 210, with the majority of the image remaining visible and unaltered within the center of the frame. In contrast, image 212 has been partially covered with a more traditional rectangular banner-style in-image advertisement. Either the client device (via execution of JavaScript or other code) or the advertisement service's server (based on image and page data received from the client device, as discussed above) determined that image 214 was not suitable for placement of an overlay advertisement (e.g., for not meeting advertiser criteria, not being properly licensed, not receiving a sufficiently high advertiser bid, and/or other factors).
Instances 390A and 390B would typically not appear on the same webpage as each other at the same time, but are shown next to each other in
While in-image advertisements are described above as examples, it will be appreciated that aspects of the disclosure provide improvements for many other types of overlay content. For example, overlay content as described herein may be presented over video content or other content of a webpage or user interface besides a static image. In some embodiments, an “in-screen” advertisement may be presented instead of an “in-image” advertisement. For example, overlay content may frame a user's entire display screen (such as a screen of a mobile phone or other computing device while a browser or other application is operating on the device), partially covering the page content or other content that is onscreen at the time. This may be accomplished, for example, by sizing a container that includes the overlay content to cover the entire screen, while still enabling “pass-through” user event functionality as described herein. In one embodiment, overlay content that is bound to the screen as opposed to a specific image or other object may be configured to visually collapse or minimize after a predetermined time (such as five seconds), or in response to a user request to hide the overlay content.
As illustrated, the computing system 302 includes a processing unit 306, a network interface 308, a computer readable medium drive 310, an input/output device interface 312, an optional display 326, and an optional input device 328, all of which may communicate with one another by way of a communication bus 336. The processing unit 306 may communicate to and from memory 314 and may provide output information for the optional display 326 via the input/output device interface 312. The input/output device interface 312 may also accept input from the optional input device 328, such as a keyboard, mouse, digital pen, microphone, touch screen, gesture recognition system, voice recognition system, or other input device known in the art.
The memory 314 may contain computer program instructions (grouped as modules or components in some embodiments) that the processing unit 306 may execute in order to implement one or more embodiments described herein. The memory 314 may generally include RAM, ROM and/or other persistent, auxiliary or non-transitory computer-readable media. The memory 314 may store an operating system 318 that provides computer program instructions for use by the processing unit 306 in the general administration and operation of the computing system 302. The memory 314 may further include computer program instructions and other information for implementing aspects of the present disclosure. For example, in one embodiment, the memory 314 may include a user interface module 316 that generates user interfaces (and/or instructions therefor) for display upon a computing system, e.g., via a navigation interface such as a browser or application installed on the computing system 302 or the client computing system 303.
In some embodiments, the memory 314 may include an advertisement selection module 320 and content analysis module 322, which may be executed by the processing unit 306 to perform operations according to various embodiments described herein. The modules 320 and/or 322 may access the data store 330 in order to retrieve data described above and/or store data. The data store may be part of the computing system 302, remote from the computing system 302, and/or may be a network-based service. The advertisement data store 330 may store various advertisement or other overlay content and information, such as images, video, text, associated rules for when to display given overlay content, bid information, keyword information, code packages that instruct a browser or application how to display given overlay content, and/or other data or content.
In some embodiments, the network interface 308 may provide connectivity to one or more networks or computing systems, and the processing unit 306 may receive information and instructions from other computing systems or services via one or more networks. In the example illustrated in
Those skilled in the art will recognize that the computing systems 302 and 303 may be any of a number of computing systems including, but not limited to, a laptop, a personal computer, a personal digital assistant (PDA), a hybrid PDA/mobile phone, a mobile phone, a smartphone, a wearable computing device, an electronic book reader, a digital media player, a tablet computer, a gaming console or controller, a kiosk, an augmented reality device, another wireless device, a set-top or other television box, one or more servers, and the like. The client computing system 303 may include similar hardware to that illustrated as being included in computing system 302, such as a display, processing unit, network interface, memory, operating system, etc.
It is to be understood that not necessarily all objects or advantages may be achieved in accordance with any particular embodiment described herein. Thus, for example, those skilled in the art will recognize that certain embodiments may be configured to operate in a manner that achieves or optimizes one advantage or group of advantages as taught herein without necessarily achieving other objects or advantages as may be taught or suggested herein.
All of the processes described herein may be embodied in, and fully automated via, software code modules executed by a computing system that includes one or more general purpose computers or processors. The code modules may be stored in any type of non-transitory computer-readable medium or other computer storage device. Some or all the methods may alternatively be embodied in specialized computer hardware. In addition, the components referred to herein may be implemented in hardware, software, firmware or a combination thereof.
Many other variations than those described herein will be apparent from this disclosure. For example, depending on the embodiment, certain acts, events, or functions of any of the algorithms described herein can be performed in a different sequence, can be added, merged, or left out altogether (e.g., not all described acts or events are necessary for the practice of the algorithms). Moreover, in certain embodiments, acts or events can be performed concurrently, e.g., through multi-threaded processing, interrupt processing, or multiple processors or processor cores or on other parallel architectures, rather than sequentially. In addition, different tasks or processes can be performed by different machines and/or computing systems that can function together.
The various illustrative logical blocks, modules, and algorithm elements described in connection with the embodiments disclosed herein can be implemented as electronic hardware, computer software, or combinations of both. To clearly illustrate this interchangeability of hardware and software, various illustrative components, blocks, modules, and elements have been described above generally in terms of their functionality. Whether such functionality is implemented as hardware or software depends upon the particular application and design constraints imposed on the overall system. The described functionality can be implemented in varying ways for each particular application, but such implementation decisions should not be interpreted as causing a departure from the scope of the disclosure.
The various illustrative logical blocks and modules described in connection with the embodiments disclosed herein can be implemented or performed by a machine, such as a processing unit or processor, a digital signal processor (DSP), an application specific integrated circuit (ASIC), a field programmable gate array (FPGA) or other programmable logic device, discrete gate or transistor logic, discrete hardware components, or any combination thereof designed to perform the functions described herein. A processor can be a microprocessor, but in the alternative, the processor can be a controller, microcontroller, or state machine, combinations of the same, or the like. A processor can include electrical circuitry configured to process computer-executable instructions. In another embodiment, a processor includes an FPGA or other programmable device that performs logic operations without processing computer-executable instructions. A processor can also be implemented as a combination of computing devices, e.g., a combination of a DSP and a microprocessor, a plurality of microprocessors, one or more microprocessors in conjunction with a DSP core, or any other such configuration. Although described herein primarily with respect to digital technology, a processor may also include primarily analog components. For example, some or all of the signal processing algorithms described herein may be implemented in analog circuitry or mixed analog and digital circuitry. A computing environment can include any type of computer system, including, but not limited to, a computer system based on a microprocessor, a mainframe computer, a digital signal processor, a portable computing device, a device controller, or a computational engine within an appliance, to name a few.
The elements of a method, process, or algorithm described in connection with the embodiments disclosed herein can be embodied directly in hardware, in a software module stored in one or more memory devices and executed by one or more processors, or in a combination of the two. A software module can reside in RAM memory, flash memory, ROM memory, EPROM memory, EEPROM memory, registers, hard disk, a removable disk, a CD-ROM, or any other form of non-transitory computer-readable storage medium, media, or physical computer storage known in the art. An example storage medium can be coupled to the processor such that the processor can read information from, and write information to, the storage medium. In the alternative, the storage medium can be integral to the processor. The storage medium can be volatile or nonvolatile.
Conditional language such as, among others, “can,” “could,” “might” or “may,” unless specifically stated otherwise, are otherwise understood within the context as used in general to convey that certain embodiments include, while other embodiments do not include, certain features, elements and/or steps. Thus, such conditional language is not generally intended to imply that features, elements and/or steps are in any way required for one or more embodiments or that one or more embodiments necessarily include logic for deciding, with or without user input or prompting, whether these features, elements and/or steps are included or are to be performed in any particular embodiment.
Disjunctive language such as the phrase “at least one of X, Y, or Z,” unless specifically stated otherwise, is otherwise understood with the context as used in general to present that an item, term, etc., may be either X, Y, or Z, or any combination thereof (e.g., X, Y, and/or Z). Thus, such disjunctive language is not generally intended to, and should not, imply that certain embodiments require at least one of X, at least one of Y, or at least one of Z to each be present.
Any process descriptions, elements or blocks in the flow diagrams described herein and/or depicted in the attached figures should be understood as potentially representing modules, segments, or portions of code which include one or more executable instructions for implementing specific logical functions or elements in the process. Alternate implementations are included within the scope of the embodiments described herein in which elements or functions may be deleted, executed out of order from that shown, or discussed, including substantially concurrently or in reverse order, depending on the functionality involved as would be understood by those skilled in the art.
Unless otherwise explicitly stated, articles such as “a” or “an” should generally be interpreted to include one or more described items. Accordingly, phrases such as “a device configured to” are intended to include one or more recited devices. Such one or more recited devices can also be collectively configured to carry out the stated recitations. For example, “a processor configured to carry out recitations A, B and C” can include a first processor configured to carry out recitation A working in conjunction with a second processor configured to carry out recitations B and C.
It should be emphasized that many variations and modifications may be made to the above-described embodiments, the elements of which are to be understood as being among other acceptable examples. All such modifications and variations are intended to be included herein within the scope of this disclosure.
Any and all applications for which a foreign or domestic priority claim is identified in the Application Data Sheet as filed with the present application are hereby incorporated by reference under 37 CFR 1.57. This application claims benefit of U.S. Provisional Patent Application Ser. No. 62/485,838, entitled “Systems and Methods for Maintaining Content Interaction Functionality with Overlaid Advertisements,” filed Apr. 14, 2017, which is hereby incorporated by reference in its entirety.
Number | Date | Country | |
---|---|---|---|
Parent | 62485838 | Apr 2017 | US |
Child | 15951762 | US |