This patent arises from a patent application that claims priority to U.S. Provisional Patent Application Ser. No. 62/421,326, filed on Nov. 13, 2016. The entirety of U.S. Provisional Patent Application Ser. No. 62/421,326 is incorporated herein by reference.
FIELD OF THE DISCLOSUREThis disclosure relates generally to monitoring media and, more particularly, to methods and apparatus to deliver targeted advertising.
BACKGROUNDAdvertisers, retail establishments, product manufacturers, service providers, and other types of businesses or entities are often interested in consumer exposure and/or consumer reaction to media such as entertainment media, advertising and/or other informational media to better market their products or services. Businesses often use advertising or other informational or promotional material to draw attention and interest to their products or services. Such advertising may be delivered via television, radio, or print media. In addition, web-based technologies also offer the ability to deliver information about products and/or services via Internet advertising. Thus, the average consumer is usually exposed to media via different types of delivery devices.
BRIEF DESCRIPTION OF THE DRAWINGSFIG. 1 is an illustration of an environment in which custom media objects is delivered to a user based on a user and/or group profile.
FIG. 2 is a block diagram of an example media object customizer ofFIG. 1.
FIG. 3 is a flowchart representative of example machine readable instructions that may be executed to implement the example media object customizer ofFIGS. 1 and 2 to generate custom media objects.
FIG. 4 illustrate an example media object template used to generate example custom media objects.
FIG. 5 is a block diagram of a processor platform structured to execute the example machine readable instructions ofFIG. 3 to control the example media object customizer ofFIGS. 1 and 2.
The figures are not to scale. Wherever possible, the same reference numbers will be used throughout the drawing(s) and accompanying written description to refer to the same or like parts.
DETAILED DESCRIPTIONThe Internet provides a network for users to access media provided by a publisher through a computing device (e.g., a computer, a phone, a tablet, a smart television, etc.). Some publishers sell space for a client to provide media objects with the publisher's media to provide to the user (e.g., via a media object server). A media object may be an advertisement, native text, a link, a pop-up, etc., that includes one or more media object elements (e.g., text, images, video, audio, etc. that may be included in the media object). For example, a video sharing website may provide advertising space to a client. In such an example, the client provides the publisher with an advertisement to present to the user before, during, or after a video output by the publisher. Additionally or alternatively, the publisher may post the advertisement on the webpage corresponding to the video. In another example, the publisher may allow a client to create its own webpage or section of a webpage to provide media (e.g. a native article) to a user to, for example, associate the client with the publisher.
To generate a more effective advertisement and/or media campaign, the client may generate multiple different advertisements and/or media objects tailored to a particular type of user. For example, surveys or other media monitoring techniques may determine that users of a first demographic (e.g. males) interact more (e.g., view, click, hover-over, etc.) with a first media object (e.g., a first video) and that users of a second demographic (e.g., females) interact more with a second media object (e.g., a second video). Accordingly, the client may want to output the first media object when a user of the first demographic accesses the publisher's media and output the second media object when a user of the second demographic accesses the publisher's media. Examples disclosed herein generate up-to-date customizable media objects to provide to a user while the user accesses media from the publisher.
Examples disclosed herein include customizing media objects for users in a campaign based on a user and/or group profile. Some examples disclosed herein include generating media from a template of one or more media object elements. The media object elements may include static elements and/or dynamic elements. The media object elements may be, for example, photos, audio, video, and/or text. A client may generate a template to determine what media object elements can be added, what media object elements must be added, what media object elements may be swapped, how the media object elements are displayed, etc. For example, a media object template may include a static header (e.g., identifying a product), a dynamic picture or video to be customized, and dynamic text to be customized, as further described in conjunction withFIG. 4. Additionally or alternatively, the text, colors, size, etc. may or may not be customized based on the media object template or other data provided by the client. In some examples, the client does not generate a media object template. In such examples, the media object may be generated in any manner.
Examples disclosed herein generate the custom media objects based on a user profile and/or a group profile. A user profile includes data related to a particular user and the group profile includes data related to one or more demographics. When a user uses a computing device to access media from a publisher, the computing device executes instructions to access the publisher's media by transmitting a media request to a publisher. The instructions may include transmitting a media request response, or more generally a response, (e.g., corresponding to a media object request) to a monitoring entity to identify that the publisher's media is being accessed. In some examples, the response includes a cookie, or other identifier, that identifies the user and/or provides data corresponding to the user and/or the access to the publisher's media (e.g., a time stamp, a location, demographics, etc.). Examples disclosed herein receive the response and (A) generates a user profile for the user or (B) determines that a user profile has already been generated for the user. If the user is new (e.g., does not include a user profile), examples disclosed herein generate a custom media object corresponding to a known demographic and/or characteristic of the user (e.g., that match a group profile) and generates a user profile for future use. If the user is not new (e.g., a user profile exists for the user), examples disclosed herein generate a custom media object corresponding to the user profile (e.g., tailored to the preferences of the user). Examples disclosed herein include forwarding the generated custom media object to the publisher to be included in the publisher media. For example, if a user accesses dogs.com using a computing device the media object customizer may receive a response generated by the computing device to generate a media object tailored for the user (e.g., using a user profile and/or a group profile). The media object customizer generates the tailored media object and transmits the media object to the publisher to be included on the dogs.com webpage.
Once the publisher outputs the custom media objects to the computing device (e.g., via a webpage), examples disclosed herein determine a performance of the media object based, in part, on the user's interaction with the customized advertisement. For example, examples disclosed herein may monitor the click-through, hover-over, duration on landing page, viewability of the media object, etc. Examples disclosed herein determine performance metrics of customized advertisement based on the monitored user interaction. The performance metrics are used to update the user profile and/or group profiles corresponding to the user. For example, if a 35-year-old Hispanic male clicks on a customized advertisement while using a computing device, examples disclosed herein (A) update the user profile for the 35-year-old Hispanic male to correspond the click to the customized media object elements of the advertisement and (B) update the group profile for Hispanics, males, and/or 30-40-year-olds to correspond the click to the customized media object elements of the advertisement. In this manner, examples disclosed herein are able to determine which media object elements are more or less successful for particular users and/or particular demographics to adjust future media object customizations, thereby providing dynamic real-time customizations of advertisements. Accordingly, if the user and/or demographic group media browsing behavior changes and/or adapts, example disclosed herein change and/or adapt with the behavior change to provide the most up-to-date media object customizations. Adapting the group profiles provides a better (e.g., more applicable) starting point for generating customizing media object for new users that don't initially have a user profile. Using examples disclosed herein hundreds of thousands or more custom advertisements may be processed to optimize future custom advertisements for a user or a group of users (e.g., based on demographics) in real-time, thereby providing an optimized up-to-date fully customized advertisement for a user and/or group of users.
For example, a user may interact more with media objects that include warm weather in the background of the image element of the media object, such that examples disclosed herein may generate more media objects for that user with warm weather backgrounds. However, as the seasons change, the user may no longer be interested or drawn to media objects with warm weather backgrounds and may stop interacting with such media objects. Accordingly, examples disclosed herein adjust the user profile to indicate that the previously successful warm weather backgrounds are no longer successful and may begin transmitting subsequent media objects corresponding to other types of backgrounds until a new successful background is identified in the user profile. Because examples disclosed herein customize media objects for a user based on a corresponding user profile and the user profile is updated based on the custom media objects provided to the user, the customizations incorporate previous user behavior, thereby optimizing the customization with subsequent media object exposure.
FIG. 1 illustrates an environment in which custom media objects is delivered to anexample user100 based on a user and/or group profile. The example ofFIG. 1 includes theexample user100, anexample computing device102, anexample client104, an example media object customizer106, an examplemedia object server108, anexample publisher110, and anexample network112.
Theexample computing device102 ofFIG. 1 is a device capable of receiving media from a network (e.g., the example network112). Although, theexample computing device102 ofFIG. 1 is illustrated as a desktop computer, theexample computing device102 may be a mobile phone, a tablet, a television, a lap top, and/or any other computing device capable of receiving media from a network. Theexample user100 uses theexample computing device102 to access media (e.g., video, audio, and/or text) provided by theexample publisher110 via theexample network112. When theexample computing device102 attempts to access data from theexample publisher110, thecomputing device102 executes instructions transmitted from theexample publisher110. The instructions allow thecomputing device102 to output the publisher's media via a display and/or speaker of thecomputing device102. In some examples, the instructions include tags that, when executed by theexample computing device102, cause thecomputing device102 to transmit a media request response to a media monitoring entity (e.g., the example media object customizer106) via theexample network112. The response may include an identifier (e.g., a cookie, a device fingerprint, an IP address, etc.), a timestamp, and/or data related to the media currently being (or previously) accessed. In some examples, thecomputing device102 includes media monitoring software to monitor the behavior of the example user100 (e.g., user behavior) (e.g., to determine media performance metrics in response to delivery of a custom media object).
Theexample client104 ofFIG. 1 buys advertisement space from the examplemedia object server108 to provide advertisements on designated websites or applications corresponding to theexample publisher110. In some examples, when theclient104 buys advertisement space, theclient104 may select a group of users corresponding to one or more demographics (e.g., data segments) to provide media objects to. Such examples, computing devices corresponding to the data segment will be pinged for serving a customized media object. In some examples, theclient104 buys space directly from theexample publisher110. For example, thepublisher110 may allow theclient104 generate a native article that looks like material produced by theexample publisher110, but is actually produced by theexample client104. In some examples, theclient104 may be thepublisher110 itself. For example, theclient104 may operate a website and may want to customize media object appearing as links to other articles within a different page of the website to drive traffic. Additionally, theexample client104 may provide a media object template (e.g., what media object elements may be included and/or the display of the such elements), media object elements (e.g., audio options, video option, text options, etc.), and/or other data to the media object customizer106 to generate a custom media object for theexample computing device102. The other data may include rules or preferences for the custom media objects and/or independent audience research that may be used in group profiles.
The example media object customizer106 ofFIG. 1 generates custom media objects and monitors interaction with the generated custom media objects to update user and/or group profiles. When the example media object customizer106 receives a response corresponding to an access to media by the example computing device102 (e.g., a media request response), the example media object customizer analyzes the response to determine if the response corresponds to a user that already has a stored user profile. If the response does not correspond to a user with a stored user profile (e.g., the user is a new user), the example media object customizer106 determines one or more demographics of the user based on the response, identifies stored group profile corresponding to the one or more demographics, and generates a custom media object based on the successful media object elements of the corresponding group profile. For example, if the response includes a location (e.g., Chicago), the example media object customizer106 may generate a custom media object corresponding to, for example, data in a Chicago-based or urban-based profile, that identifies a particular image and particular text to use in the custom media object that has a high interaction rate in the group profile. In some examples, the image identified image and test are selected independently of each other, while in other examples the media object elements are linked. Additionally, the example media object customizer106 generates a user profile to correspond to the new user for future customizations. If the response does correspond to a user profile, the example media object customizer106 customizes the media object elements of an advertisement based on the user profile. For example, if the user profile includes a high-performance rating for a first media object element that corresponds to an image of a family and a second media object element that includes text identifying a sale, the media object customizer106 may customize the advertisement to include the image of the family and the text identifying a sale.
The example media object customizer106 ofFIG. 1 transmits the custom media objects to theexample publisher110 or the example media object server108 (e.g., who forwards the media to the example publisher110) to be provided to theexample computing device102 via theexample network112. After theexample computing device102 receives the custom media objects (e.g., advertisement) via theexample network112, the example media object customizer106 receives data related to interaction with the custom media objects (e.g., user behavior). For example, media metering techniques, impression collection techniques, and/or any other interaction determination techniques may be implemented by the example media object customizer106, the examplemedia object server108, theexample publisher110, and/or a third party to determine if theuser100 was exposed to the custom media object, if theuser100 interacted with the custom media objects (e.g., by clicking on or hovering over the custom ad), and/or if theuser100 ignored or dismissed the custom media object. The user behavior (e.g., corresponding to the interaction, exposure, or lack of interaction) is transmitted to the example media object customizer106 via theexample network112. The example media object customizer106 determines a media object performance based on the user behavior and updates the user profile and/or corresponding group profiles based on the performance to optimize future customizations for theuser100 or a new user corresponding to the updated group profiles. For example, if theuser100 clicks on the custom media objects, the user profile and corresponding group profiles flag or otherwise mark the media object elements corresponding to the custom media objects as being clicked on.
The examplemedia object server108 ofFIG. 1 provides an interface between theexample client104 and theexample publisher110. For example, themedia object server108 may be a demand side platform. Theexample publisher110 may provide media via a website, application, etc. and reserve space on the website, application, etc. designed for display of media objects (e.g., advertisements, for example). Theexample client104 buys advertising space to output the custom media object with the media of thepublisher110 and/or other publishers. The media objectserver108 provides thepublisher110 and other publishers with media objects when the publisher's media is accessed to be presented with (e.g., before, during, or after) the publisher's media. In this manner, theexample client104 can provide media objects to themedia object server108 and themedia object server108 can distribute the advertisement across multiple publishers. As described above, theclient104 may buy space corresponding to a particular demographic(s) (e.g., data segments). Accordingly, the examplemedia object server108 may provide custom media objects to users corresponding to the particular data segment(s). In some examples, when theexample computing device102 accesses media of thepublisher110, thecomputing device102 transmits a response to themedia object server108 and themedia object server108 pings the example media object customizer106 to generate custom media object to be provided with the publisher's media. In such an example, themedia object server108 may receive the custom media object and transmit the custom media object to the example computing device via the network112 (e.g., directly or via the example publisher110).
Theexample network112 is a communications network. Theexample network112 allows theexample computing device102, theexample client104, the example media object customizer106, the examplemedia object server108, and/or theexample publisher110 to interface with each other to provide custom media objects to theexample user100 and track the user interaction with the custom media objects via a wired and/or wireless network communication. Theexample network112 may be a local area network, a wide area network, the Internet, a cloud, or any other type of communications network.
FIG. 2 is an example block diagram of the example media object customizer106 ofFIG. 2, disclosed herein, to generate custom media objects. While the example media object customizer106 is described in conjunction with the environment ofFIG. 1, the media object customizer106 may be utilized to customize media in any environment. The example media object customizer106 includes an example interface(s)200, anexample user profile202, an example user/group profile database204, an examplemedia object assembler206, and anexample performance analyzer208.
The example interface(s)200 ofFIG. 2 interfaces with theexample client104, the examplemedia object server108, theexample publisher110, and/or theexample computing device102 via theexample network112 ofFIG. 1. For example, the example interface(s)200 may receive (A) templates, media object elements, and/or other data from theexample client104, (B) identifiers and/or demographics corresponding to theexample computing device102 from the examplemedia object server108 and/or theexample publisher110, and/or (C) user behavior corresponding to theexample computing device102 from the examplemedia object server108, theexample publisher110, theexample computing device102, and/or any other device. Additionally, the example interface(s)200 transmits custom media objects to the example computing device102 (e.g., directly or via the examplemedia object server108 or the example publisher110). The example interface(s)200 may be a single interface or multiple interfaces to communicate with multiple devices.
Theexample user profiler202 ofFIG. 2 generates and/or updates user and/or group profiles stored in the example user/group profile database204. When the example interface(s)200 receives a response corresponding to accessing media of theexample publisher110, theexample user profiler202 processes the response to determine if the response corresponds to a known user (e.g., a user who already has a user profile stored in the example user/group profile database204), or if the response corresponds to an unknown user. When theexample user profiler202 determines that the response corresponds to an unknown user, theexample user profiler202 generates a new user profile for the unknown user. In some examples, a response may be from a known user, but the response may not directly correspond to a stored user profile. For example, theexample user100 may have a user profile corresponding to a first cookie. If theuser100 deletes the cookies of thecomputing device102, subsequent cookies will no longer correspond to the user profile for theuser100. Accordingly, when theuser profiler202 determines that the response corresponds to an unknown user, theexample user profiler202 may attempt to match the response to a user profile (e.g., based on a matching IP address, a cookie mapping, and/or any other matching technique).
The example user/group profile database204 ofFIG. 4 stores the user and/or group profiles. The group profiles correspond to different demographics and/or combination of demographics. For example, there may be an age-based profile, a gender-based profile, a race-based profile, a user behaviors-based profile, etc., and/or any combination thereof. A group profile includes ratings (e.g., performance rating) corresponding to a particular group for media object elements and/or object element combinations that may be updated with user interaction with a custom media objects corresponding to users of the group. A user profile includes ratings corresponding to a particular user for media object elements and/or media object element combinations that may be updated based on interaction with a custom media objects corresponding to the user. If a user profile and/or a group profile does not include ratings for one or more media object elements, the one or more media object elements may be flagged or otherwise marked as not being previously used or analyzed in a custom media object for the corresponding user and/or group.
The examplemedia object assembler206 ofFIG. 2, assembles custom media objects for theuser100 based on a user profile or group profile corresponding to theuser100. When the example interface(s)200 receives a response corresponding to access of the publisher's media on theexample computing device102 and the response corresponds to a user profile (e.g., stored in the example user/group profile database204), the examplemedia object assembler206 gathers media object elements based on the user profile (e.g., stored in the example user/group profile database204) to generate a custom media object to provide to theuser100 with the publisher's media. The examplemedia object assembler206 gathers the media object elements for a custom media object based on media object elements and/or a media object template from theexample client104 ofFIG. 1. The examplemedia object assembler206 gathers the media object elements based on the ratings in the example user profile. For example, if a particular image element has a high rating, the examplemedia object assembler206 may include the image element as one of the media object elements in the media object. In some examples, themedia object assembler206 adjusts combination of media object elements to identify an optimal (e.g., highest rating) combination of media object elements. In some examples, themedia object assembler206 tests previously unused media object elements and/or media object element combinations to determine which media object elements and/or combination has the highest rating for the user and/or group.
Theexample performance analyzer208 ofFIG. 2 analyzes the performance of a custom media object based on user behavior received in response to providing the custom media object to theexample computing device102 with the publisher's media. In some examples, theexample performance analyzer208 applies a rating (e.g., weight) to the media object elements of the custom media object and/or the combination of the media object elements of the custom media object. Additionally, theexample performance analyzer208 ofFIG. 2 updates the user and/or group profiles based on the performance of the custom media objects. For example, when theuser100 interacts with a custom media objects, theexample performance analyzer208 may update the user profile to increase the rating of the media object elements and/or the media object element combination in the user profile and/or group profile corresponding to theuser100. The amount of increase and/or decrease to the rating may be based on how the user interacts or does not interact with the custom media. For example, theperformance analyzer208 applies a higher rating to media object elements corresponding to a media object that was clicked on than a media object element that was hovered-over but not clicked on. In another example, theperformance analyzer208 may rate media object elements corresponding to a media object that was provided to the user but not actually seen by the user (e.g., the media object was provided at the bottom of a webpage and the user did not scroll down far enough to see the provided memory object) with a neutral (e.g., 0) rating. In another example, theperformance analyzer208 may apply a negative weight to media object elements corresponding to a media object that was not interacted with or the user took an active step to get rid of the custom media object. Such an active step may include a close of the media object, an exit of the media object, a minimization of the media object, a skip of the media object, etc. In some examples, theperformance analyzer208 add different values (e.g., weights) corresponding to the user behavior (e.g., interaction) with the custom add into a matrix. In such examples, theperformance analyzer208 processes the data in a data neural network with machine learning in real time to process and determine the media object elements, thereby determining the optimal media object based on past (e.g., but constantly updated) user behavior data. Because a custom media object may include multiple custom media object elements with a plurality of options for each media object element, there may be thousands or more possible combination of media object elements for a custom media object. Accordingly, theexample performance analyzer208 may utilize neural network, machine learning algorithms, and/or other comparison techniques to determine the weights/rating for the individual media object elements in a media object (e.g., which media object elements and/or combination is more likely responsible for a user interaction). In this manner, theexample performance analyzer208 tracks the performance of individual media object elements by comparing hundreds of thousands of media object elements and/or combination of media object elements to determine an optimal custom media object, in real-time or near real-time.
In some examples, theperformance analyzer208 analyzes the performance of multiple customized media objects to identify patterns and/or which parts of the customized media object is the most effective. In some examples, theperformance analyzer208 determines the effectiveness of the media object elements based on a neural network analysis (e.g., machine learning algorithms). In some examples, theperformance analyzer208 may adjust the weights of the media object elements to correspond to the move effective elements. For examples, the examplemedia object assembler206 may generate a number (e.g., hundreds, thousands, millions, etc.) of customized media objects for a person and/or demographic group. Theexample performance analyzer208 may process the number of customized media objects to find patterns of user interactivity based on the customized media objects. Theperformance analyzer208 may determine group the media objects based on user interactivity and identify patterns of the custom media object elements based on the groups. For example, if multiple custom media objects include a particular element (e.g., particular photo, a particular phrase, a particular color, etc.) and/or a particular combination of media objects, etc., theexample performance analyzer208 may determine the weight the custom media object element and/or combination highly based on such effectiveness. In this manner, the examplemedia object assembler206 is able to continue to tweak the custom media objects based on the weights for the elements and/or combination of elements determined by theperformance analyzer208. Accordingly, the continuous performance analyzation of theperformance analyzer208 and the customization of the examplemedia object assembler206 work together to generate the most optimal custom media object for a user and/or a demographic based on thousands or more custom media object analysis.
While example manners of implementing the example media object customizer106 ofFIG. 1 is illustrated inFIG. 2, elements, processes and/or devices illustrated inFIG. 2 may be combined, divided, re-arranged, omitted, eliminated and/or implemented in any other way. Further, the example interface(s)200, theexample user profiler202, the example user/group profile database204, the examplemedia object assembler206, theexample performance analyzer208, and/or, more generally, the example media object customizer106 ofFIG. 2, may be implemented by hardware, machine readable instructions, software, firmware and/or any combination of hardware, machine readable instructions, software and/or firmware. Thus, for example, any of the example interface(s)200, theexample user profiler202, the example user/group profile database204, the examplemedia object assembler206, theexample performance analyzer208, and/or, more generally, the example media object customizer106 ofFIG. 2 could be implemented by analog and/or digital circuit(s), logic circuit(s), programmable processor(s), application specific integrated circuit(s) (ASIC(s)), programmable logic device(s) (PLD(s)) and/or field programmable logic device(s) (FPLD(s)). When reading any of the apparatus or system claims of this patent to cover a purely software and/or firmware implementation, at least one of the example interface(s)200, theexample user profiler202, the example user/group profile database204, the examplemedia object assembler206, theexample performance analyzer208, and/or, more generally, the example media object customizer106 ofFIG. 2 is/are hereby expressly defined to include a tangible computer readable storage device or storage disk such as a memory, a digital versatile disk (DVD), a compact disk (CD), a Blu-ray disk, etc. storing the software and/or firmware. Further still, the example media object customizer106 ofFIG. 2 includes elements, processes and/or devices in addition to, or instead of, those illustrated inFIG. 3, and/or may include more than one of any or all of the illustrated elements, processes and devices.
A flowchart representative of example machine readable instructions for implementing the example media object customizer106 ofFIG. 1 is shown inFIG. 3. In the examples, the machine readable instructions comprise a program for execution by a processor such as theprocessor512 shown in theexample processor platform500 discussed below in connection withFIG. 5. The program may be embodied in machine readable instructions stored on a tangible computer readable storage medium such as a CD-ROM, a floppy disk, a hard drive, a digital versatile disk (DVD), a Blu-ray disk, or a memory associated with theprocessor512, but the entire program and/or parts thereof could alternatively be executed by a device other than theprocessor512 and/or embodied in firmware or dedicated hardware. Further, although the example program is described with reference to the flowchart illustrated inFIG. 3, many other methods of implementing the example media object customizer106 ofFIGS. 1 and 2 may alternatively be used. For example, the order of execution of the blocks may be changed, and/or some of the blocks described may be changed, eliminated, or combined.
As mentioned above, the example processes ofFIG. 3 may be implemented using coded instructions (e.g., computer and/or machine readable instructions) stored on a tangible computer readable storage medium such as a hard disk drive, a flash memory, a read-only memory (ROM), a compact disk (CD), a digital versatile disk (DVD), a cache, a random-access memory (RAM) and/or any other storage device or storage disk in which information is stored for any duration (e.g., for extended time periods, permanently, for brief instances, for temporarily buffering, and/or for caching of the information). As used herein, the term tangible computer readable storage medium is expressly defined to include any type of computer readable storage device and/or storage disk and to exclude propagating signals and to exclude transmission media. As used herein, “tangible computer readable storage medium” and “tangible machine readable storage medium” are used interchangeably. Additionally or alternatively, the example processes ofFIG. 3 may be implemented using coded instructions (e.g., computer and/or machine readable instructions) stored on a non-transitory computer and/or machine readable medium such as a hard disk drive, a flash memory, a read-only memory, a compact disk, a digital versatile disk, a cache, a random-access memory and/or any other storage device or storage disk in which information is stored for any duration (e.g., for extended time periods, permanently, for brief instances, for temporarily buffering, and/or for caching of the information). As used herein, the term non-transitory computer readable medium is expressly defined to include any type of computer readable storage device and/or storage disk and to exclude propagating signals and to exclude transmission media. As used herein, when the phrase “at least” is used as the transition term in a preamble of a claim, it is open-ended in the same manner as the term “comprising” is open ended.
FIG. 3 is anexample flowchart300 representative of example machine readable instructions that may be executed by the example media object customizer106 ofFIGS. 1 and 2 to generate custom media objects for theexample user100 ofFIG. 1. Although the instructions ofFIG. 3 are described in conjunction with the example media object customizer106 ofFIGS. 1 and 2, the example instructions may be utilized by any type of media object customizer in any type of environment.
Atblock302, the example interface(s)200 receives a media request response corresponding to theexample user100 via theexample network112 ofFIG. 1. Atblock304, theexample user profiler202 determines if theexample user100 corresponds to a stored user profile in the example user/group profile database204. For example, if the media request response includes a cookie, theuser profiler202 determines if theuser100 corresponds to a stored user profile by querying the example user/group profile database204 for a user profile corresponding to the cookie. If theexample user profiler202 determines that theexample user100 corresponds to a stored user profile (block304: YES), the examplemedia object assembler206 assembles one or more media object elements to generate a custom media object according to the corresponding user profile (block306). For example, the examplemedia object assembler206 may determine, based on the ratings in the user profile, that media object including an image element of particular product being used by a family, with a text element corresponding to a sale has a high rating when the media object is requested during summer days. Accordingly, if the media request is received during a summer day, the examplemedia object assembler206 selects the first element (e.g., the family image element) and the second element (e.g., the sale text) to generate the custom media object. The number, size, text, color, etc. of the media object elements may be based on the user profile and/or may be based on a media object template (e.g., customized by the client104).
If theexample user profiler202 determines that theexample user100 does not correspond to a stored user profile (block304: NO), the examplemedia object assembler206 assembles one or more media object elements to generate a custom media object according to the corresponding group profile (block308). Theexample user profiler202 processes the data from the media request response to determine one or more demographics of the unknown user and/or the media that theuser100 is trying to access. Even though the user is unknown, there is some data that the examplemedia object assembler206 may use to identify a corresponding group profile. For example, if the media that theuser100 is trying to access that triggers the media request response corresponds to a first type of media (e.g., sports media), the examplemedia object assembler206 may generate a media object corresponding to a sports lover based group profile. In another example, the media request may include a location of the user, thereby allowing the examplemedia object assembler206 to assemble one or more media object elements to generate a custom media object according to a location based group profile.
Atblock310, theexample user profiler202 generates a new profile for the unknown user based on the identifier corresponding to the example media request response. In this manner, when the example interface(s)200 receives a subsequent media request response, the example media object customizer106 can generate a more optimal custom media object for the unknown user based on previous custom media objects provided to the previously unknown (e.g., now known) user. Atblock312, the example interface(s) transmits the generated custom media object to theexample computing device102 via the example network112 (e.g., directly or via the examplemedia object server108 or the example publisher110). Atblock314, the example interface(s)200 receives user behavior corresponding to the generated custom media object. The example interface(s)200 may receive the user behavior from themedia object server108, thepublisher110, directly from thecomputing device102, and/or any other device capable of monitoring user behavior (e.g., interaction) corresponding to the custom media. The user behavior may include, for example, click through, hover-over, duration of hover-over, duration of display time, percentage of display (e.g., how much of the media object was actually displayed or output to the user100), dismissal of the add (e.g., corresponding to a media object close, exit, minimize, skip, etc.). Atblock316, theexample performance analyzer208 evaluates performance of the custom media object based on the user behavior.
Atblock318, theexample performance analyzer208 determines weights of the custom media object elements based on the user behavior. In some examples, theperformance analyzer208 determines a numerical value (e.g., a weight) for the media object elements and/or media object element combination corresponding to the custom media object. For example, theperformance analyzer208 may compare the individual custom media object elements, combination of media object element, and/or sub-combination of media object elements to the performance of custom media object elements, combination of media object element, and/or sub-combination of media object elements of previously used media objects to determine how to weight the individual media object elements of the custom media object. In this manner, the weights of the individual media object elements, combination of media object elements, and/or sub-combination of media object elements can adapt over time (e.g., as user interaction changes). In some examples, theperformance analyzer208 determines the weights of the custom media object elements using a neural network analysis to determine which media objects should receive higher weights based on a comparison with previously utilized custom media objects with overlapping custom media object elements.
In block320, theexample user profiler202 updates the user profile based on the performance of the custom media object. In some examples, theperformance analyzer208 applies the numerical values to the to the media object elements and/or media object element combination corresponding to the custom media object in the user profile corresponding to theuser100. In some examples, theperformance analyzer208 adds the different values (e.g., weights) corresponding to the user behavior (e.g., interaction) with the custom media object into a matrix of the user profile. In such examples, the matrix may be processed in a data neural network with machine learning in real time to update the media object element in the corresponding user profile, thereby determining the optimal media object based on past (e.g., but constantly updated) user behavior data. At block322, theexample user profiler202 updates one or more corresponding group profiles based on the performance of the custom media object. Theuser profiler202 updates the one or more corresponding group profiles in a similar manner to the update to the user profile.
FIG. 4 illustrate an examplemedia object template400 used to generate examplecustom media objects408,410,412,414. The examplemedia object template400 includes anexample headline element402, an example image/video element404, and an exampledynamic text element406.
The examplemedia object template400 ofFIG. 4 is a template that may be provided by theexample client104 and/or be generated by the example media object customizer106 based on the media object elements and/or data provided by theexample client104. Although the examplemedia object template400 includes three customizable media object elements (e.g., theexample elements402,404,406) in a particular layout, the examplemedia object template400 may include any number, size, and/or layout of media object elements. In the illustrated example, theexample headline element402, the example image/video element404, and/or the exampledynamic text element406 are customizable based on client preferences. For example, theexample headline element402 may be customized to change the font, size of the font, background color, font color, etc. The example image/video element404 may be customized to change the actual image and/or video used. The exampledynamic text element406 may be customized to include different text, different font, different text color, different background color, etc.
The examplecustom media objects408,410,412,414 ofFIG. 4 illustrate different example customizations based on the examplemedia object template400. As illustrated inFIG. 4, the location and text of theexample headline element402 may be locked (e.g., based on rules/preferences of the example client104); however, the font, color, size, etc. of theheadline element402 may be customizable. The example image/video element404 of the examplecustom media objects408,410,412,414 is customizable based on images and/or video elements provided by theexample client104. For example, the video element corresponding to a sport car of theexample media object412 may correspond to a high rating for users within a first age range or a first user profile, while the image element corresponding to antique cars of theexample media object414 may correspond a high rating for users within a second age range or a second user profile. The exampledynamic text element406 of the examplecustom media objects408,410,412,414 is customized based on actual text, font, size, etc. For example, the dynamic text element of the example custom media object410 may correspond to a user that performs highly (e.g., frequently interacts) with dynamic text corresponding to luxury items and/or technology items, while the dynamic text element of the example custom media object414 may correspond to a user that performs highly with dynamic text corresponding to low prices and antique cars.
FIG. 5 is a block diagram of anexample processor platform500 capable of executing the instructions ofFIG. 3 to implement the example media object customizer106 ofFIGS. 1 and 2. Theprocessor platform500 can be, for example, a server, a personal computer, a mobile device (e.g., a cell phone, a smart phone, a tablet such as an iPad™), a personal digital assistant (PDA), an Internet appliance, or any other type of computing device.
Theprocessor platform500 of the illustrated example includes aprocessor512. Theprocessor512 of the illustrated example is hardware. For example, theprocessor512 can be implemented by integrated circuits, logic circuits, microprocessors or controllers from any desired family or manufacturer.
Theprocessor512 of the illustrated example includes a local memory513 (e.g., a cache). Theexample processor512 ofFIG. 5 executes the instructions ofFIG. 3 to implement the example interface(s)200, theexample user profiler202, the example user/group profile database204, the examplemedia object assembler206, theexample performance analyzer208 ofFIG. 2 to implement the example media object customizer106. Theprocessor512 of the illustrated example is in communication with a main memory including avolatile memory514 and anon-volatile memory516 via abus518. Thevolatile memory514 may be implemented by Synchronous Dynamic Random Access Memory (SDRAM), Dynamic Random Access Memory (DRAM), RAIVIBUS Dynamic Random Access Memory (RDRAM) and/or any other type of random access memory device. Thenon-volatile memory516 may be implemented by flash memory and/or any other desired type of memory device. Access to themain memory514,516 is controlled by a clock controller.
Theprocessor platform500 of the illustrated example also includes aninterface circuit200. Theinterface circuit200 may be implemented by any type of interface standard, such as an Ethernet interface, a universal serial bus (USB), and/or a PCI express interface.
In the illustrated example, one ormore input devices522 are connected to theinterface circuit200. The input device(s)522 permit(s) a user to enter data and commands into theprocessor512. The input device(s) can be implemented by, for example, a sensor, a microphone, a camera (still or video), a keyboard, a button, a mouse, a touchscreen, a track-pad, a trackball, isopoint and/or a voice recognition system.
One ormore output devices524 are also connected to theinterface circuit200 of the illustrated example. Theoutput devices524 can be implemented, for example, by display devices (e.g., a light emitting diode (LED), an organic light emitting diode (OLED), a liquid crystal display, a cathode ray tube display (CRT), a touchscreen, a tactile output device, and/or speakers). Theinterface circuit200 of the illustrated example, thus, typically includes a graphics driver card, a graphics driver chip or a graphics driver processor.
Theinterface circuit200 of the illustrated example also includes a communication device such as a transmitter, a receiver, a transceiver, a modem and/or network interface card to facilitate exchange of data with external machines (e.g., computing devices of any kind) via a network112 (e.g., an Ethernet connection, a digital subscriber line (DSL), a telephone line, coaxial cable, a cellular telephone system, etc.).
Theprocessor platform500 of the illustrated example also includes one or moremass storage devices528 for storing software and/or data. Examples of suchmass storage devices528 include floppy disk drives, hard drive disks, compact disk drives, Blu-ray disk drives, RAID systems, and digital versatile disk (DVD) drives.
The codedinstructions532 ofFIG. 3 may be stored in themass storage device528, in thevolatile memory514, in thenon-volatile memory516, and/or on a removable tangible computer readable storage medium such as a CD or DVD.
From the foregoing, it would be appreciated that the above disclosed method, apparatus, and articles of manufacture to deliver targeted advertising. Examples disclosed herein provide up-to-date custom media objects to a user accessing media from a publisher. Examples disclosed herein generate and maintain user and group profiles corresponding to user interaction with custom memory objects with one or more custom memory object elements. In this manner, as the user and/or group behavior changes, the user and group profiles are likewise updated, thereby allowing the custom memory object to be up-to-date and adjustable to current user and/or group preferences.
Traditional techniques for providing advertisements to users include developing an advertisement for a group of people and applying the advertisement to members of the group. However, such traditional techniques do not allow for customability of user's preferences within the group and do not adjust as the group and/or user preferences (e.g. user behavior changes), thereby causing significant time and cost to change a media campaign. Additionally, traditional techniques do not allow for multiple independently customizable media object elements. Examples disclosed herein alleviate the problems of such traditional techniques by tracking the performance of individual media object elements for a user in real-time and updating user and group profiles in response to an interaction with a media object. Examples disclosed herein track the performance of individual media object elements by comparing hundreds of thousands of media object elements and/or combination of media object elements to determine an optimal custom media object. In this manner, customized media objects remain up to date and are significantly more accurate than traditional advertising techniques.
Although certain example methods, apparatus and articles of manufacture have been described herein, other implementations are possible. The scope of coverage of this patent is not limited thereto. On the contrary, this patent covers all methods, apparatus and articles of manufacture fairly falling within the scope of the claims of this patent.