The Internet has emerged as a powerful advertising tool. It is commonplace to see advertisements on many web sites. For example, advertisements may be displayed on search web sites and may be targeted to individuals based upon search terms provided by the individuals. Other web sites, such as news and sports web sites, may provide space for advertisements. The owners of these web sites may sell advertising space to advertisers to offset the costs associated with operating the web sites as well as to turn a profit.
As the Internet has advanced, so has the technology associated with Internet advertising. For example, advertisements have gone from displaying simple static information to displaying dynamic information. Dynamic information corresponds to information in an advertisement that may change from impression to impression. In some cases, a portion of an advertisement may be static while a different portion may be dynamic. For example, a hotel advertisement may include static information, such as a name of the hotel, and also dynamic information, such as an occupancy rate.
To support the features above, a typical advertisement requires browser code that enables the features. However, developing the code is not an easy task and may require the skills of a seasoned webpage developer. This makes it difficult for an advertiser with a small advertising budget to take advantage of the benefits of dynamic advertisements.
a is a user interface associated with an exemplary dynamic advertisement template (DAT);
b is an exemplary custom user interface based on a DAT;
c is an exemplary dynamic advertisement that may be generated by a user interface based on test data; and
The figures below describe a method and system for generating digital advertisements. A method employed by the system may include receiving template information that defines dynamic elements of the advertisement, receiving data associated with the dynamic elements, generating browser code based on the template information and the data, and communicating the browser code to a browser. The method may also include receiving a second template that includes a creative applet reference and combining the template information with the browser code. The second template may also include a reference to an alternate image that is rendered when an image defined by the creative applet cannot be rendered.
The creative database 115 stores a collection of creative templates 120. A creative template 120 is a client specific instance of a dynamic advertisement. Each creative template 120 includes a creative template schema 145 and a creative code template 150.
The dynamic data place holder 305 is a place holder for a creative data packet. The creative delivery subsystem (described below) replaces the dynamic data place holder 305 with a creative data packet when rendering the dynamic advertisement.
The creative applet 310 encapsulates the graphical elements and logic necessary to render the dynamic advertisement on a browser capable of executing the creative applet 310. In the preferred embodiment, the creative applet 310 is based on Macromedia® shockwave flash technology. Other similar technologies may also be utilized. The creative applet 310 renders the static and customizable elements of the dynamic advertisement. The customizable elements are either contained within the creative applet 310 or are referred to by the creative applet 310. In the preferred embodiment, images are contained within the creative applet 310, whereas more substantial elements, such as video, may be referred to and progressively downloaded by the creative applet 310 when rendering the dynamic advertisement.
The creative applet 310 is also responsible for reading and validating the values in the creative data packet when rendering the dynamic advertisement. Where there is a validation issue, such as a badly formatted creative data packet, the creative applet 310 renders the alternate image 315. In some cases, the creative applet 310 may report clicks or other interactions with the rendered dynamic advertisement to various tracking servers. The creative applet 310 may also be adapted to perform more complicated functions, such as requesting additional dynamic data based on user interactions with the rendered dynamic advertisement
The alternate image 315 is a reference to an image file, such a JPEG file or BMP file. As described above, in situations where the creative applet 310 cannot render the dynamic data, the creative applet 310 may instead render the alternate image 315.
Referring back to
Referring back to
At block 605, dynamic data values associated with dynamic elements in the creative template schema may be retrieved. For example, the connection tactics subsystem 105 may retrieve dynamic data values 175 associated with the dynamic elements in the selected creative template schema 170. Exemplary dynamic data values 175 may be communicated from a client data server 135 to the connection tactics subsystem 145. The dynamic data values 175 may also be communicated from other servers or other databases.
At block 610, a creative data packet may be generated and communicated to a creative delivery subsystem. For example, the connection tactics subsystem 145 may generate a creative data packet 125. The creative data packet 125 may correspond to an instance of dynamic data formatted according to the selected creative template schema 170. The creative data packet 125 may be generated at serve time, after the connection tactics subsystem 105 runs through the selection process. The creative data packet 125 may correspond to the creative data packet 400 of
At block 615, a creative code template associated with the selected creative template schema may be retrieved. For example, a creative code template 180 associated with the previously selected creative template schema may be communicated to the creative delivery subsystem 110. The creative code template 180 may correspond to the creative code template 300 of
At block 620, the retrieved creative code template may be combined with the creative data packet, so as to generate fully formatted created code. For example, the creative delivery subsystem 110 may combine the creative code template 150 with the creative data packet 125 generated by the connection tactics subsystem 105, so as to generate the fully formatted creative code 130. The creative delivery subsystem 110 may accomplish this by performing a series of macro substitutions, including one for the dynamic data packet. The fully formatted creative code 130 may correspond to the fully formatted creative code 500 of
At block 625, the fully formatted creative code 130 may be communicated to a browser. The browser may then execute the fully formatted creative code 130. In doing so, the browser may execute the applet, which will in turn render the final dynamic advertisement based, at least in part on, the dynamic elements specified within the fully formatted creative code 130.
a-
a is an exemplary DAT 730. The exemplary DAT 730 includes a frame 745, a service provider name 735, and a client creative region 740. In the preferred embodiment, DATs are provided by the service provider and made available to all clients. DATs may also be provided by various third parties. The user interface may allow the client to drag and drop visual components onto the DAT.
b is an exemplary custom user interface 700 based on a DAT. The exemplary user interface 700 includes static elements 710 and dynamic elements 715 that are added by a client. The exemplary user interface 700 also includes information from the DAT, such as the service provider name 705. The static elements 710 correspond to visual aspects of the exemplary user interface that generally remain unchanged from impression to impression, such as the name of the client. Dynamic elements 715 generally include information that may change from impression to impression. When specifying a dynamic element 715, other attributes may be specified, such as the name, type, and default value of the dynamic element 715. Non-visual elements, such as a creative applet and alternate image, may also be specified. After the design is complete, the client may test the exemplary custom user interface 700 by providing test data.
c is an exemplary dynamic advertisement 720 that may be generated by the user interface based on the test data provided. As shown
In a networked deployment, the computer system may operate in the capacity of a server or as a client user computer in a server-client user network environment, or as a peer computer system in a peer-to-peer (or distributed) network environment. The computer system 800 may also be implemented as or incorporated into various devices, such as a personal computer (PC), a tablet PC, a set-top box (STB), a personal digital assistant (PDA), a mobile device, a palmtop computer, a laptop computer, a desktop computer, a communications device, a wireless telephone, a land-line telephone, a control system, a camera, a scanner, a facsimile machine, a printer, a pager, a personal trusted device, a web appliance, a network router, switch or bridge, or any other machine capable of executing a set of instructions 845 (sequential or otherwise) that specify actions to be taken by that machine. In one embodiment, the computer system 800 may be implemented using electronic devices that provide voice, video or data communication. Further, while a single computer system 800 may be illustrated, the term “system” shall also be taken to include any collection of systems or sub-systems that individually or jointly execute a set, or multiple sets, of instructions to perform one or more computer functions.
As illustrated in
The computer system 800 may include a memory 810 that can communicate via a bus 820. For example, creative database 115 of
The computer system 800 may further include a display 830, such as a liquid crystal display (LCD), an organic light emitting diode (OLED), a flat panel display, a solid state display, a cathode ray tube (CRT), a projector, a printer or other now known or later-developed display device for outputting determined information. The display 830 may act as an interface for the user to see the functioning of the processor 805, or specifically as an interface with the software stored in the memory 810 or in the drive unit 815.
Additionally, the computer system 800 may include an input device 825 configured to allow a user to interact with any of the components of system 800. The input device 825 may be a number pad, a keyboard, or a cursor control device, such as a mouse, or a joystick, touch screen display, remote control or any other device operative to interact with the system 800.
The computer system 800 may also include a disk or optical drive unit 815. The disk drive unit 815 may include a computer-readable medium 840 in which one or more sets of instructions 845, e.g. software, can be embedded. Further, the instructions 845 may perform one or more of the methods or logic as described herein. The instructions 845 may reside completely, or at least partially, within the memory 810 and/or within the processor 805 during execution by the computer system 800. The memory 810 and the processor 805 also may include computer-readable media as discussed above.
The present disclosure contemplates a computer-readable medium 840 that includes instructions 845 or receives and executes instructions 845 responsive to a propagated signal, so that a device connected to a network 850 may communicate voice, video, audio, images or any other data over the network 850. The instructions 845 may be implemented with hardware, software and/or firmware, or any combination thereof. Further, the instructions 845 may be transmitted or received over the network 850 via a communication interface 835. The communication interface 835 may be a part of the processor 805 or may be a separate component. The communication interface 835 may be created in software or may be a physical connection in hardware. The communication interface 835 may be configured to connect with a network 850, external media, the display 830, or any other components in system 800, or combinations thereof. The connection with the network 850 may be a physical connection, such as a wired Ethernet connection or may be established wirelessly as discussed below. Likewise, the additional connections with other components of the system 800 may be physical connections or may be established wirelessly.
The network 850 may include wired networks, wireless networks, or combinations thereof. The wireless network may be a cellular telephone network, an 802.11, 802.16, 802.20, or WiMax network. Further, the network 850 may be a public network, such as the Internet, a private network, such as an intranet, or combinations thereof, and may utilize a variety of networking protocols now available or later developed including, but not limited to, TCP/IP based networking protocols.
The computer-readable medium 840 may be a single medium, or the computer-readable medium 840 may be a single medium or multiple media, such as a centralized or distributed database, and/or associated caches and servers that store one or more sets of instructions. The term “computer-readable medium” may also include any medium that may be capable of storing, encoding or carrying a set of instructions for execution by a processor or that may cause a computer system to perform any one or more of the methods or operations disclosed herein.
The computer-readable medium 840 may include a solid-state memory such as a memory card or other package that houses one or more non-volatile read-only memories. The computer-readable medium 840 also may be a random access memory or other volatile re-writable memory. Additionally, the computer-readable medium 840 may include a magneto-optical or optical medium, such as a disk or tapes or other storage device to capture carrier wave signals such as a signal communicated over a transmission medium. A digital file attachment to an e-mail or other self-contained information archive or set of archives may be considered a distribution medium that may be a tangible storage medium. Accordingly, the disclosure may be considered to include any one or more of a computer-readable medium or a distribution medium and other equivalents and successor media, in which data or instructions may be stored.
Alternatively or in addition, dedicated hardware implementations, such as application specific integrated circuits, programmable logic arrays and other hardware devices, may be constructed to implement one or more of the methods described herein. Applications that may include the apparatus and systems of various embodiments may broadly include a variety of electronic and computer systems. One or more embodiments described herein may implement functions using two or more specific interconnected hardware modules or devices with related control and data signals that may be communicated between and through the modules, or as portions of an application-specific integrated circuit. Accordingly, the present system may encompass software, firmware, and hardware implementations.
Accordingly, the method and system may be realized in hardware, software, or a combination of hardware and software. The method and system may be realized in a centralized fashion in at least one computer system or in a distributed fashion where different elements are spread across several interconnected computer systems. Any kind of computer system or other apparatus adapted for carrying out the methods described herein is suited. A typical combination of hardware and software may be a general-purpose computer system with a computer program that, when being loaded and executed, controls the computer system such that it carries out the methods described herein.
The method and system may also be embedded in a computer program product, which includes all the features enabling the implementation of the methods described herein and which, when loaded in a computer system, is able to carry out these methods. Computer program in the present context means any expression, in any language, code or notation, of a set of instructions intended to cause a system having an information processing capability to perform a particular function either directly or after either or both of the following: a) conversion to another language, code or notation; b) reproduction in a different material form.
From the foregoing, it may be seen that the embodiments disclosed herein provide an approach for managing dynamic advertisements. For example, the system enables a client, such as an advertiser, to generate a unique dynamic advertisement or a dynamic advertisement based on a dynamic advertisement template provided by a service provider. The dynamic advertisement includes dynamic elements. Once the dynamic advertisement is complete, a creative template associated with the dynamic advertisement is stored to a database.
When serving the dynamic advertisement, the system selects the appropriate creative template schema, and combines the creative template schema with dynamic data values associated with dynamic elements in the creative template schema, so as to produce a creative data packet. The system then combines the creative data packet with creative code by replacing a well defined place holder in the creative code with the creative data packet, so as to produce fully formatted creative code. The fully formatted creative code is then communicated to a browser.
While the method and system has been described with reference to certain embodiments, it will be understood by those skilled in the art that various changes may be made and equivalents may be substituted without departing from the scope. In addition, many modifications may be made to adapt a particular situation or material to the teachings without departing from its scope. Therefore, it is intended that the present method and system not be limited to the particular embodiment disclosed, but that the method and system include all embodiments falling within the scope of the appended claims.