U.S. patent application number 13/116896 was filed with the patent office on 2012-11-29 for attracting user attention to advertisements.
This patent application is currently assigned to STAFFORD MULTIMEDIA. Invention is credited to Huntley Stafford Ritter.
Application Number | 20120304225 13/116896 |
Document ID | / |
Family ID | 47220191 |
Filed Date | 2012-11-29 |
United States Patent
Application |
20120304225 |
Kind Code |
A1 |
Ritter; Huntley Stafford |
November 29, 2012 |
Attracting User Attention to Advertisements
Abstract
One or more videos are presented to a user. The videos include a
plurality of hidden artifacts. The videos also include
advertisements. The user looks for the hidden artifacts in the
videos. Whenever the user finds the hidden artifacts in one of the
videos, the user selects locations in the videos that correspond to
the hidden artifacts. A computing device performs different actions
depending on which ones of the hidden artifacts the user is able to
find. For example, the computing device can provide different
rewards to the user depending on which ones of the hidden artifacts
the user is able to find.
Inventors: |
Ritter; Huntley Stafford;
(Kalispell, MT) |
Assignee: |
STAFFORD MULTIMEDIA
Beverly Hills
CA
|
Family ID: |
47220191 |
Appl. No.: |
13/116896 |
Filed: |
May 26, 2011 |
Current U.S.
Class: |
725/35 |
Current CPC
Class: |
H04N 21/25866 20130101;
H04N 21/4784 20130101; H04N 21/44222 20130101; G06Q 30/0278
20130101; H04N 21/8583 20130101; G06Q 30/0277 20130101; H04N
21/47205 20130101; G06Q 30/0269 20130101; H04N 21/812 20130101;
H04L 67/42 20130101; G06Q 50/01 20130101 |
Class at
Publication: |
725/35 |
International
Class: |
H04N 7/10 20060101
H04N007/10 |
Claims
1. A method of advertising, the method comprising: presenting one
or more videos to a user, the one or more videos containing a
plurality of hidden artifacts, the one or more videos containing
advertisements; receiving a plurality of selection inputs from the
user, the selection inputs indicating locations in the one or more
videos that correspond to a plurality of selected artifacts, the
selected artifacts being among the hidden artifacts; and
performing, by a computing system, different actions depending on
which ones of the hidden artifacts are among the plurality of
selected artifacts.
2. The method of claim 1, wherein the method further comprises:
increasing a point total for the user in response to receiving one
or more of the selection inputs; and wherein performing different
actions comprises: providing a given reward to the user after the
user's point total exceeds a given threshold.
3. The method of claim 2, further comprising: after providing the
given reward to the user, reducing the user's point total.
4. The method of claim 2, wherein the method further comprises:
presenting a rewards catalog to the user, the rewards catalog
listing a plurality of rewards; and receiving, from the user, a
selection in the rewards catalog of the given reward; and wherein
providing the given reward to the user comprises providing the
given reward to the user in response to receiving the selection in
the rewards catalog of the given reward.
5. The method of claim 2, further comprising: establishing a
profile for the user, the profile associated with the user's point
total, the profile persisting during times when the one or more
videos are not being presented to the user.
6. The method of claim 5, wherein establishing the account
comprises: collecting demographic data regarding the user; and
tracking viewing habits of the user.
7. The method of claim 1, wherein performing different actions
comprises: entering the user in a drawing for a prize.
8. The method of claim 1, wherein performing different actions
comprises: providing a coupon to the user.
9. The method of claim 8, further comprising: receiving a request
to redeem the coupon; and storing data that indicates that the user
redeemed the coupon.
10. The method of claim 8, further comprising: presenting to the
user a savings features that indicates a total value of coupons
associated with the selected artifacts.
11. The method of claim 1, further comprising: presenting to the
user an image of a given hidden artifact while a given video is
being presented to the user, the given hidden artifact being among
the plurality of hidden artifacts, the given video being among the
one or more videos, an appearance of the image of the given hidden
artifact changing after the given hidden artifact has appeared in
the given video without being selected.
12. The method of claim 1, wherein the one or more videos include a
given video; and wherein the method further comprises modifying the
given video to include one or more of the hidden artifacts.
13. A computing system that comprises: a data storage system that
stores instructions; and a processing unit that reads and executes
the instructions, execution of the instructions by the computing
system configuring the computing system to: stream one or more
videos to a client device, the one or more videos containing a
plurality of hidden artifacts, the one or more videos containing
advertisements; receive a plurality of selection inputs from the
client device, the selection inputs indicating locations in the one
or more videos that correspond selected artifacts, the selected
artifacts being among the hidden artifacts; provide different
rewards to a user depending on which ones of the hidden artifacts
are among the selected artifacts.
14. The computing system of claim 13, wherein the one or more
videos include a given video; and wherein execution of the
instructions further configures the computing system to modify the
given video to include one or more of the advertisements.
15. The computing system of claim 13, wherein execution of the
instructions further configures the computing system to provide a
clue to the user when the selected artifacts indicates a particular
combination of one or more of the hidden artifacts, the clue
providing information regarding a location of one of the hidden
artifacts.
16. The computing system of claim 13, wherein execution of the
instructions configures the computing system to provide the user
with an opportunity to participate in a next round of a tournament
when particular ones of the hidden artifacts are among the selected
artifacts.
17. The computing system of claim 14, wherein execution of the
instructions further configures the computing system to: increase a
point total for the user in response to receiving each of the
selection inputs; enable the user to claim a first reward after the
user's point total exceeds a first threshold; and enable the user
to claim a second reward after the user's point total exceeds a
second threshold.
18. The computing system of claim 14, where execution of the
instructions further configures the computing system to: receive,
from the user, a photograph of a physical object; and increase the
user's point total in response receiving the photograph.
19. A computer-readable data storage medium that stores
instructions, execution of the instructions by a processing unit of
a computing system configuring the computing system to: stream a
video to a client device, the video containing a plurality of
hidden artifacts, the one or more videos containing advertisements;
receive a plurality of selection inputs from the client device, the
selection inputs indicating locations in the video that correspond
selected artifacts, the selected artifacts being among the hidden
artifacts; provide a first reward to a user when the selected
artifacts include a first combination of the hidden artifacts; and
provide a second reward to the user when the selected artifacts
include a second combination of the hidden artifacts.
20. The computer-readable data storage medium of claim 19, wherein
execution of the instructions configures the computing system to:
provide a coupon to the user after receiving selection input
indicating locations in the one or more videos corresponding to one
or more of the hidden artifacts; and receive, from a mobile
computing device, a request to redeem the coupon.
Description
BACKGROUND
[0001] Product placement is a technique where branded goods or
services are advertised in a context usually devoid of
advertisements. For example, branded goods or services may be
advertised in movies and television shows. A goal of such product
placement is to make the users feel like the advertised products or
services are used by characters or at least are pervasive parts of
the environment inhabited by the characters.
[0002] Frequently, advertisements are placed in unobtrusive parts
of movies and television shows so as not to distract users from the
primary action of the movies or television shows. For instance, a
billboard advertising a brand of soft drinks may appear in the
background of an outdoor scene of a movie. However, because the
advertisements are placed in unobtrusive parts of movies and
television shows, users frequently overlook the advertisements.
SUMMARY
[0003] A computing device presents videos to a user. The videos
include a plurality of hidden artifacts. The videos also include
advertisements. The user looks for the hidden artifacts in the
videos. When the user finds a hidden artifact in one of the videos,
the user selects a location in the video that corresponds to the
hidden artifact. By looking for the hidden artifacts, the user is
more likely to notice the advertisements. The computing device can
perform different actions to reward the user based on which ones of
the hidden artifacts the user is able to find.
[0004] This summary is provided to introduce a selection of
concepts in a simplified form. These concepts are further described
below in the Detailed Description. This summary is not intended to
identify key features or essential features of the claimed subject
matter, nor is this summary intended as an aid in determining the
scope of the claimed subject matter.
BRIEF DESCRIPTION OF THE DRAWINGS
[0005] FIG. 1 illustrates an example media distribution system.
[0006] FIG. 2 illustrates example functional components of a server
computing system.
[0007] FIG. 3 illustrates example functional components of a client
device.
[0008] FIG. 4 illustrates an example video including an embedded
advertisement.
[0009] FIG. 5 illustrates another portion of the video of FIG. 4
including a hidden artifact.
[0010] FIG. 6 illustrates an example operation of a distribution
entity to distribute a video containing a hidden artifact designed
to attract a user's attention to advertisements embedded in the
video.
[0011] FIG. 7 illustrates an example operation of the client device
to play back the video.
[0012] FIG. 8 illustrates an example operation of the server
computing system to distribute the video.
[0013] FIG. 9 illustrates an example operation of a video
modification module to modify the video to contain the hidden
artifact and the advertisements.
[0014] FIG. 10 illustrates example physical components of an
electronic computing device.
[0015] FIG. 11 illustrates an example block diagram illustrating an
alternative embodiment of the server computing system.
[0016] FIG. 12 is a flowchart of an example operation performed by
the distribution entity.
[0017] FIG. 13 is a flowchart of an example operation performed by
the server application.
[0018] FIG. 14 is a continuation of the example operation
illustrated in FIG. 13.
[0019] FIG. 15 is a screen illustration of an example playback
interface.
DETAILED DESCRIPTION
[0020] As briefly described above, a distribution entity
distributes media containing at least one embedded advertisement
and a hidden artifact designed to draw a user's attention to the
advertisement. The techniques of this disclosure are described with
reference to the attached figures. It should be appreciated that
the attached figures are provided for purposes of explanation only
and should not be understood as representing a sole way of
implementing the techniques of this disclosure. In the attached
figures, stacked blocks represent one or more similar, but not
necessarily identical, items. In addition, ellipses between items
represent one or more similar, by not necessarily identical, items.
Items having similar references numbers of having alphabetical
suffixes (e.g., "A" through "N") are not intended to indicate the
existence of a specific number of items.
[0021] FIG. 1 illustrates an example media distribution system 100
that distributes media content. It should be appreciated that the
media distribution system 100 is merely an example and that there
may be many other possible media distribution systems that
distribute the media. As illustrated in the example of FIG. 1, the
media distribution system 100 comprises a server computing system
102, client devices 104A through 104N (collectively, "client
devices 104"), users 106A through 106N (collectively, "users 106"),
a network 108, a distribution entity 110, and advertisers 112A
through 112N (collectively, "advertisers 112").
[0022] The server computing system 102 and the client device 104
are electronic computing systems. Electronic computing systems
comprise one or more physical electronic computing devices. For
instance, the server computing system 102 may comprise twenty
separate physical electronic computing devices. Electronic
computing devices include physical machines having physical
electronic components. Electronic components are physical entities
that affect electrons or fields of electrons in a desired manner
consistent with the intended function of an electronic computing
device. Example types of electronic components include capacitors,
resistors, diodes, transistors, and other types of physical
entities that affect electrons or fields of electrons in a manner
consistent with the intended function of an electronic computing
device. An example physical computing device is described below
with reference to FIG. 10.
[0023] The server computing system 102 is operated by or on behalf
of the distribution entity 110. In some embodiments, the
distribution entity 110 is a natural entity. In other embodiments,
the distribution entity 110 is a legal entity. Example types of
entities include corporations, partnerships, proprietorships,
companies, non-profit corporations, foundations, estates,
governmental agencies, and other types of legal entities.
[0024] In different embodiments, the server computing system 102 is
operated by or on behalf of different types of entities. In some
implementations, the server computing system 102 is operated by a
web services provider on behalf of the distribution entity 110. In
such implementations, the distribution entity 110 may not be aware
of how the server computing system 102 is implemented.
Consequently, services provided by the server computing system 102
may appear, from the perspective of the distribution entity 110, to
be provided by "the cloud." In the terminology of cloud computing,
"the cloud" refers to a network of physical electronic computing
devices in which the individual physical electronic computing
devices are abstracted away.
[0025] The client devices 104 comprise electronic computing systems
that are able to play back media, such as a video. In different
instances, the client devices 104 may be a wide variety of
different types of electronic computing systems. For example, the
client devices 104 can be personal computers, lap top computers,
cellular telephones, smartphones, watches, tablet computers, video
game consoles, netbooks, personal media players, devices integrated
into vehicles, television set top boxes, network appliances, server
devices, supercomputers, mainframe computers, or other types of
electronic computing systems.
[0026] Playing back media can entail rendering of the media in a
format that can be consumed by a user. In most examples provided
herein, the media is video, although other types of media, such as
games, can also be used. For example, if the media is video, the
playback of the video entails rendering video data to produce the
video. Furthermore, a video is a displayed sequence of frames in
which frames are replaced in succession to create an illusion of
motion. A frame is a still visible image. A user is a person
viewing a video. Moreover, video data is data that, when
appropriately rendered, produces a video.
[0027] The users 106 view videos played back by the client devices
104. The users 106 are individual human beings. It should be
appreciated that in some instances, multiple users at the same time
are able to view a video played back by the client devices 104.
[0028] The network 108 is an electronic communication network that
facilitates communication between the server computing system 102
and the client devices 104. Electronic communication networks
comprise networks of two or more electronic computing devices
(e.g., server computing system 102 and the client devices 104)
having one or more communication links, the electronic computing
devices configured to use the communication links communicate
electronic data.
[0029] The network 108 may be a wide variety of different types of
electronic communication network. For example, the network 108 may
be a wide-area network, such as the Internet, a local-area network,
a metropolitan-area network, or another type of electronic
communication network. The network 108 may include wired and/or
wireless data links. A variety of communications protocols may be
used in the network 108 including, but not limited to, Ethernet,
Transport Control Protocol (TCP), Internet Protocol (IP), Hypertext
Transfer Protocol (HTTP), SOAP, remote procedure call protocols,
and/or other types of communications protocols. In some
implementations, the server computing system 102 and the client
devices 104 communicate via the network 108 securely. In a first
example, the server computing system 102 and the client devices 104
use secure sockets layer (SSL) techniques to communicate securely
over the network 108. In another example, the server computing
system 102 and the client devices 104 use IPSec to communicate
securely over the network 108.
[0030] In the example of FIG. 1, the client devices 104 receive
video data from the server computing system 102 via the network
108. In different embodiments, the client devices 104 receive the
video data from the server computing system 102 in different ways.
In a first computing system 102 via the network 108. The video
streams contain the video data. In some instances, a video stream
can be a succession of video data supplied over time.
[0031] It should be appreciated that in other media distribution
systems, client devices do not necessarily receive video data from
server computing systems via electronic communications networks.
For example, in one example media distribution system, video data
is stored on a computer-readable data storage medium. A
computer-readable data storage medium is a device or article of
manufacture that stores data that can be read by an electronic
computing device. Example types of computer-readable data storage
media include CD-ROMS, compact discs, digital versatile discs
(DVDs), Blu-ray discs, solid-state memory devices, magnetic disks,
read-only memory units, random access memory modules, and other
types of devices or articles of manufacture that store data that
can be read by an electronic computing device. In this example, a
client device receives the video data when a user inserts a
computer-readable data storage medium storing the video data into a
reader device configured to read data from the computer-readable
data storage medium. The reader device is integrated into or
connected to the client device such that the client device receives
data read by the reader device.
[0032] Furthermore, the reader will appreciate that in some
embodiments, the client devices 104 receive the video data by
dynamically generating the video data. In such implementations, the
client devices 104 may dynamically generate the video data by
executing software instructions. For example, the client devices
104 may store video game applications that, when executed by the
client devices 104, present the video data. In this example, the
video game applications may dynamically generate the video
data.
[0033] When the client devices 104 receive the video data, the
client devices 104 play back the video. The video comprises a
sequence of frames. The sequence of frames comprises a first set of
frames and a second set of frames. In some instances, the sequence
of frames includes frames in addition to those in the first set of
frames and the second set of frames. Furthermore, in some
instances, the first set of frames and the second set of frames
include the same frame.
[0034] Each frame in the first set of frames comprises a different
region in a first set of visually corresponding regions. As used in
this disclosure, a region of a frame is a bounded sub-section of
the frame. In some instances, a region of a frame does not include
the entire frame. Visually corresponding regions are bounded
sub-sections of frames in a series of frames each containing
digital images of the same object. For example, a series of frames
in a video may include digital images of a billboard in the
background of a scene. In this example, the regions of the frames
containing the digital images of the billboard are visually
corresponding regions. It should be appreciated that, in some
instances, regions in a set of visually corresponding regions
differ from frame to frame. For example, the image of the billboard
may move around, become bigger or smaller, may change color, may be
partially obscured by another object, and so on during the course
of the series of frames. In this example, the regions differ from
frame to frame such that the region of each frame includes the
image of the billboard.
[0035] The region in the first set of visually corresponding
regions contains an advertisement. Advertisements include artifacts
designed to raise a user's awareness of a product offered by an
entity. A product can be a good or a service. Example types of
artifacts include digital images and animated sequences of digital
images. For example, a company's logo can be an artifact designed
to raise a user's awareness of a product offered by the
company.
[0036] In some embodiments, the first set of visually corresponding
regions in an original version of the video does not contain the
advertisement or contains an undesired advertisement. However,
after the original version of the video was produced, the first set
of visually corresponding regions is modified such that the first
set of visually corresponding regions contains the desired
advertisement.
[0037] For example, assume that the video is a movie produced in
the year 1996. In the background of a scene of the movie, there is
a blank exterior wall of a building. In this example, the first set
of visually corresponding regions contains the digital image of the
wall. Furthermore, in this example, in the year 2009 the movie is
set to be re-released on the Internet. In advance of the re-release
of the movie, the distribution entity 110 modifies the image within
the first set of corresponding regions such that instead of
containing images of the blank wall, the first set of visually
corresponding regions contains images of the wall, except with a
company's logo painted on the wall. The distribution entity 110 can
be responsible for re-releasing the movie and can receive
compensation from one or more advertisers 112 to embed
advertisements in this way. In some instances, the video may
contain a plurality of such sets of visually corresponding regions
containing advertisements.
[0038] In many instances, the advertisement is located in an
unobtrusive location within the video. That is, the advertisement
is located away from where users' attention is likely to be. As
opposed to locating advertisements at locations where the users'
attention is likely to be, locating advertisements at unobtrusive
locations may make the video feel more natural and may improve the
viewing experiences of the users 106. For example, the
advertisement may be in the background. In another example, the
advertisement may be in the foreground, but not a part of the
foreground where the primary action is occurring. In a yet another
example, the advertisement may be in a part of a scene that is not
completely in focus.
[0039] Each frame in the second set of frames comprises a different
region in a second set of visually corresponding regions. Each
region in the second set of visually corresponding regions contains
a hidden artifact. The hidden artifact is an artifact for which the
users 106 are encouraged to look. The hidden artifact may be a wide
variety of different types of artifact.
[0040] For example, the hidden artifact may be a digital image of a
particular type of handbag. In another example, the hidden artifact
may be a digital image of a particular type of telephone. In
different instances, the hidden artifact may or may not be an
advertisement. Furthermore, in different instances, the hidden
artifact may or may not be in an original version of the video. For
instance, in the movie example of the previous paragraph, the
version of the movie produced in 1996 may or may not include the
hidden artifact.
[0041] The users 106 are provided with messages that encourage the
users 106 to look for the hidden artifact. In different instances,
the messages are provided to the users 106 in different ways. For
example, the video may contain frames that include a printed
message encouraging the users 106 to look for the hidden artifact
in the video. In this first example, the printed message may read
"when you find a green coffee cup in this video, click on it to be
entered in a drawing for a free prize!" In another example, the
video may be accompanied by audio in which the users 106 are
verbally encouraged to look for the hidden artifact in the video.
In yet another example, a web page may include a printed message
that encourages the users 106 to look for the hidden artifact in
the video. In this example, the web page may be a page in which the
video is embedded or another web page. Furthermore, in this
example, the distribution entity 110 may embed the message into the
web page as an advertisement or as part of the normal content of
the web page. In yet another example, a physical medium (e.g.,
newspaper, magazine, billboard, brochures, handouts, product
packaging for the video or another good, etc.) may contain a
message encouraging the users 106 to look for the hidden artifact
in the video. In yet another example, messages encouraging the
users 106 to look for the hidden artifact in the video are
transmitted to the users 106 via a broadcast medium (e.g., aerial
television, satellite television, cable television, Internet
television, aerial radio, satellite radio, Internet radio, etc.) or
via another information distribution medium (e.g., instant
messages, text messages, TWITTER.RTM., e-mail messages, social
networking sites, etc.). In yet another example, a person
encourages the users 106 to look for the hidden artifact in the
video. In this example, the person may be an actor in the video, a
celebrity, or some other person.
[0042] Furthermore, in some embodiments, the message encourages the
users 106 to look for the hidden artifact with the promise of a
reward to the users 106 if the users 106 find the hidden artifact.
In a first example, the messages encourage the users 106 to look
for the hidden artifact with the promise that the users 106 will
have a chance to win a prize if the users 106 find the hidden
artifact. In this first example, the prize may be associated with
the content of the video. For instance, if the video is an episode
of a television show about fashionable New York women, the prize
may be a pair of shoes from a luxury shoe designer. In a second
example, the message encourages the users 106 to look for the
hidden artifact with the promise that the users 106 will be shown
special footage if the users 106 find the hidden artifact. In this
second example, the special footage may be a deleted scene of a
movie, a trailer for a highly anticipated upcoming movie, scenes
from an upcoming episode of a television program, and so on. In a
third example, the message encourages the users 106 to look for the
hidden artifact with the promise that the users 106 will be able to
access a secret level of a video game, unlock a special video game
character, play a secret game, etc.
[0043] In some embodiments, there can be a varying number of
prizes. For example, if the video is a full-length movie, there can
be 6-10 prizes with associated hidden artifacts embedded in the
movie. The menu or opening credits for the movie can explain the
contest and identify the different hidden artifacts (e.g., icons)
for which to look in the movie and the associated prizes for each.
Some of the prizes may be small (e.g., a pair of sunglasses), while
others can be large (e.g., cash prizes, cars, motorcycles, etc.).
For the smaller prizes the user can select the artifact within the
movie and provide contact information, such as name, age, and email
address, so that the prize can be sent directly to the user. For
larger prizes, the user may provide contact information so that the
user can be entered into a contest (e.g., lottery, raffle) to win
the larger prize. Other variations are possible.
[0044] In yet another embodiment, the user is given a code, such as
a number, when the user finds the hidden artifact. The user can
then use the number at a later point to play a game and/or win a
prize. For example, the user can send a text to the number provided
to receive information about accessing a game. The user can then
play the game to win prizes.
[0045] During playback of the video, the hidden artifact is at
least somewhat difficult for the users 106 to perceive except when
the users 106 are paying attention to details of the video. For
example, the hidden artifact may be small in size. In a second
example, the hidden artifact may only be shown in the video for a
short amount of time. In a third example, the hidden artifact may
be in a part of a scene that is not where the users 106 would
typically focus their attentions. For instance, in this third
example, if two characters in a movie are fighting in the
foreground while traveling down a highway at great speed, the
attentions of the users 106 would likely be focused on the fighting
action in the foreground. Consequently, in this third example, when
the users 106 are not paying attention to details in the video it
would be at least somewhat difficult for the users 106 to perceive
the hidden artifact when the hidden artifact is on a truck in the
background moving in the opposite direction.
[0046] In typical instances, the users 106 are not told where or
when the hidden artifact appears in the video. Because the hidden
artifact is at least somewhat difficult for users 106 to perceive
except when the users 106 are paying attention to details of the
video, the users 106 are more likely to pay close attention to
details throughout the video. Because the users 106 are more likely
to pay close attention to details throughout the video, the users
106 are more likely to notice the one or more advertisements
unobtrusively inserted into the video. Having the users 106 notice
an advertisement is a goal of an advertiser.
[0047] When the users 106 find a hidden artifact in a video while
the client devices 104 are playing back the video, the users 106
are able to select the hidden artifact. In some embodiments,
selecting the hidden artifact entails providing, by the users 106,
selection input to the client devices 104. The selection input
indicates a selection of a location within or reasonably close to a
region in the second set of visually corresponding regions of the
second set of frames. Because the hidden artifact may be quite
small, selecting the hidden artifact itself may be relatively
difficult while the video is being played back. Accordingly, in
some implementations, if the selection input indicates a selection
of a location relatively close to the hidden artifact (e.g., in the
same quadrant of the second set of frames as the hidden artifact)
the selection input is taken to indicate that one of the users 106
has selected a location corresponding to the hidden artifact.
[0048] In different instances, the client devices 104 receive the
selection input in different ways. For example, the client devices
104 may receive the selection input via an input device. Example
types of input devices include mice, trackballs, stylus input
devices, keywords, video game control pads, joysticks,
movement-sensitive controllers (e.g., Nintendo WII.RTM. remote
controllers, etc.), gun type video game controllers, musical
instrument type video game controllers, touch sensitive screens,
television/home entertainment system remote controllers, and other
types of input devices.
[0049] In response to receiving the selection input, the client
devices 104 access a target resource. The client devices 104 do not
access the target resource when the client devices 104 do not
receive a selection input that indicates that the users 106 have
selected the hidden artifact.
[0050] The target resource may be a wide variety of different types
of resources. The target resource may be a game, software
instructions that unlock a special video game character, video
footage, software instructions that unlock a video game level, a
web page that allows the users 106 to enter information to be
entered in a drawing for a prize, and so on.
[0051] In different instances, the client devices 104 access the
target resource in different ways. For instance, the client devices
104 may access the target resource in different ways depending on
the type of the target resource. In a first example, the target
resource is a web page. In this first example, the client devices
104 access the web page by transmitting a resource request to a
server computing system that hosts the web page, receiving the web
page in response to the resource request, and displaying the web
page. Furthermore, in this first example, the server computing
system that hosts the web page may or may not be the server
computing system 102. In a second example, the target resource is a
game. In this second example, the client devices 104 access the
resource by executing software instructions that cause the client
devices 104 to present the game.
[0052] FIG. 2 illustrates example functional components of the
server computing system 102. It should be appreciated that FIG. 2
is an example provided for purposes of explanation only. In other
instances, the server computing system 102 may contain different
logical components. In some embodiments, a functional component is
a sub-part of a system, the sub-part having a well-defined purpose
and functionality.
[0053] As illustrated in the example of FIG. 2, the server
computing system 102 comprises a data storage system 200, a
processing unit 202, and a network interface 204. The network
interface 204 enables the server computing system 102 to transmit
data on the network 108 and to receive data from the network 108.
In some embodiments, a network interface is a set of one or more
physical network interface cards. Furthermore, in some embodiments,
a network interface card is a computer hardware component designed
to allow a computer to communicate over an electronic communication
network. In some example embodiments, the network interface 204 is
able to store data received from the network 108 directly into the
data storage system 200 and to directly transmit on the network 108
data stored in the data storage system 200.
[0054] As illustrated in the example of FIG. 2, the data storage
system 200 stores a video 206, a server application 208, and a
video modification module 210. As mentioned above, the server
computing system 102 comprises a collection of one or more
electronic computing devices and the data storage system 200
comprises a collection of one or more computer-readable data
storage media. In embodiments where the server computing system 102
comprises a plurality of electronic computing devices and the data
storage system 200 comprises a plurality of computer-readable data
storage media, the video 206, the server application 208, and the
video modification module 210 may be stored at different
computer-readable data storage media and potentially at
computer-readable data storage media in different electronic
computing devices. For instance, the server application 208 may be
stored at a computer-readable data storage medium at a first server
device at a server farm and the video modification module 210 may
be stored at a plurality of computer-readable data storage media at
a second server device in the server farm. In some embodiments, the
video 206 can be stored as a single file, multiple files, in a
database, or in another type of data structure.
[0055] In some example embodiments, the server application 208
comprises a set of software instructions. This disclosure includes
statements that describe the server application 208 as performing
various actions. Such statements should be interpreted to mean that
the server computing system 102 performs the various actions when
the processing unit 202 executes software instructions of the
server application 208.
[0056] A software application comprises a set of software
instructions that, when executed by a processing unit of a
computing system, cause the computing system to provide a
computerized tool with which a user can interact. Processing units
comprise sets of one or more physical integrated circuits capable
of executing software instructions. Software instructions are data
structures that represent operations of a processing unit. For
example, a software instruction may be a data structure comprising
an operation code and zero or more operand specifiers. In this
example, the operand specifiers may specify registers, memory
addresses, or literal data.
[0057] The server application 208 receives resource requests from
the network 108 via the network interface 204 and responds
appropriately to the resource requests. Resource requests comprise
requests to perform an action on a resource. Example types of
resource requests include get requests that request the server
application 208 to return copies of resources to computing systems,
delete requests that request the server application 208 to delete
resources, post requests that request the server application 208 to
submit data to specified resources, and other types of requests to
perform actions on resources. In addition, the server application
208 comprises software instructions that, when executed by the
processing unit 202, cause the server computing system 102 to
respond appropriately to the resource requests.
[0058] In the example of FIG. 2, the server application 208
receives a resource request from the one of the client devices 104.
For ease of explanation, this document assumes that the server
application 208 receives the resource request from the client
device 104A. The resource request requests the video 206. In
response to the resource request, the server application 208
transmits the video 206 to the client device 104A. The video data
can be rendered as the video. In one example implementation, the
server application 208 transmits a copy of the video 206 to the
client device 104A. In another example implementation, the server
application 208 transmits a video stream to the client device 104A.
The video stream contains video data in the video 206.
[0059] In some example implementations, the video modification
module 210 comprises a set of software instructions. This
disclosure includes statements that describe the video modification
module 210 as performing various actions. Such statements should be
interpreted to mean that the server computing system 102 performs
the various actions when the processing unit 202 executes software
instructions of the video modification module 210. As described
below, the video modification module 210 modifies the video 206
such that the video includes one or more advertisements and a
target resource.
[0060] FIG. 3 illustrates example functional components of the
client device 104A. It should be appreciated that FIG. 3 is an
example provided for purposes of explanation only. In other
instances, the client device 104A may contain different logical
components. Furthermore, the reader will understand that other ones
of the client devices 104 can have similar functional
components.
[0061] As illustrated in the example of FIG. 3, the client device
104A comprises a data storage system 300, a processing unit 302, a
network interface 304, a storage device interface 306, and an input
device interface 308. The data storage system 300 stores a playback
application 310 and a media store 312. The network interface 304
enables the client device 104A to transmit data on the network 108
and to receive data from the network 108. The storage device
interface 306 enables the client device 104A to read data from one
or more computer-readable data storage media external to the client
device 104A (i.e., an external data storage medium). The input
device interface 308 enables the client device 104A to receive
input from an input device controlled by the user 106A.
[0062] In some example embodiments, the playback application 310
comprises a set of software instructions. This disclosure includes
statements describing the playback application 310 as performing
various actions. Such statements should be interpreted to mean that
the client device 104A performs the various actions when the
processing unit 302 executes software instructions of the playback
application 310. As described below, the playback application 310
plays back videos.
[0063] It should be appreciated that in alternate implementations,
functional components of the client device 104A are implemented as
separate physical electronic computing devices. For example, a
first physical electronic computing device at a location of the
user 106A may receive input from an input device control by the
user 106A and transmit the input to a second physical electronic
computing device via an electronic communications network. In this
example, the second physical electronic computing device may
process the input and the video data and transmit the processed
video data to a third physical electronic computing device at the
location of the user 106A. The third physical electronic computing
device uses the processed video data to display the video. In this
way, input processing and video processing appears, from the
perspective of the user 106A, to be performed by the cloud.
[0064] The media store 312 stores video data on a temporary or
persistent basis. In a first example, the media store 312 stores
one or more video files. In a second example, the media store 312
stores video data received in a video stream. In a third example,
the media store 312 stores software instructions of a video game
application that generates video.
[0065] FIGS. 4 and 5 illustrate one example of a video 350 into
which an embedded advertisement and hidden artifact have been
introduced. In FIG. 4, the video 350 is shown in a sequence
including a billboard 352. The content of the billboard is replaced
or overlaid with an embedded advertisement that is added at a point
after which the video 350 was created. When the users 106 view the
video 350, the users 106 see the billboard with the embedded
advertisement.
[0066] In FIG. 5, another sequence of the video 350 is shown. In
this sequence, the hidden artifact 354 has been embedded on top of
a building 360. As the users 106 watch the video 350, the users 106
may see the hidden artifact 354. If the users 106 do see the hidden
artifact 354, the users 106 can select the hidden artifact 354 to,
for example, win a prize or enter a drawing, as described
herein.
[0067] Various software components can be used to embed the
advertising and the hidden artifact into the video. In one example,
one or more of the following software products are used to embed
the advertising and hidden artifact: Adobe.RTM. After Effects.RTM.
CS4 and After Effects CS4 Mocha software from Adobe Systems
Incorporated; Shake advanced digital compositing software from
Apple Inc.; Boujou object tracking software from 2d3; 3D-Equalizer
motion tracking software from Science.D.Visions; and MAYA.RTM. 3D
modeling, animation, visual effects, and rendering software and
Mental Ray.RTM. rendering engine software from Autodesk, Inc. Other
tools can also be used.
[0068] FIG. 6 illustrates an example operation 400 of the
distribution entity 110 to distribute a video containing a hidden
artifact designed to attract a user's attention to advertisements
embedded in the video. It should be appreciated that the operation
400 is an example provided for purposes of explanation only. In
other implementations, operations to distribute the video may
involve more or fewer steps, or may involve the steps of the
operation 400 in a different order. Furthermore, the operation 400
is explained with reference to FIGS. 1-3. It should be appreciated
that other operations to distribute the video may be used in
different systems and in computing systems having functional
components other than those illustrated in the examples of FIGS.
1-3. For ease of explanation, this document describes the example
of FIG. 6 with reference to the client device 104A and the user
106A. The operation 400 can be applicable to other ones of the
client devices 104 and users 106.
[0069] As illustrated in the example of FIG. 6, the operation 400
begins when the distribution entity 110 forms an advertising
agreement with one of the advertisers 112 (402). In some
embodiments, the advertising agreement obligates the distribution
entity 110 to distribute a video that includes an advertisement and
a hidden artifact.
[0070] Next, the distribution entity 110 creates a target resource
(404). In different instances, the distribution entity 110 uses
different tools to create the target resource. For example, the
distribution entity 110 may use a web page design application to
create the target resource. In another example, the distribution
entity 110 may use an application programming suite to build
software instructions that, when executed, provide the target
resource. In some instances, a party other than the distribution
entity 110 creates the target resource. For example, the advertiser
may be responsible for creating the target resource.
[0071] Pursuant to the advertising agreement, the distribution
entity 110 embeds one or more advertisements into the video (406).
In different instances, the distribution entity 110 embeds the
advertisements into the video in different ways. In a first example
implementation, the distribution entity 110 manually identifies
appropriate regions of frames in the video for the advertisements.
In this first example, the distribution entity 110 may then use the
video modification module 210 or other video manipulation software
to manually update the identified regions to include the
advertisements. In a second example implementation, the
distribution entity 110 embeds the advertisements in the video by
using a software application that automatically identifies
appropriate regions of frames in the video for the advertisements.
In this second example implementation, the software application may
also automatically embed the advertisements in the identified
regions.
[0072] It should be appreciated that, in some instances, the video
may already contain the advertisements. In such instances, it may
not be necessary for the distribution entity 110 or another entity
to modify the video to contain the advertisements.
[0073] Next, the distribution entity 110 embeds a hidden artifact
in the video (408). In different embodiments, the distribution
entity 110 embeds the hidden artifact in the video in different
ways. For instance, the distribution entity 110 may manually
identify appropriate regions of frames and/or manually add the
hidden artifact to the identified regions. In another instance, the
distribution entity 110 may use a software application that
automatically identifies appropriate regions of frames and/or
automatically adds the hidden artifact to the identified regions.
It should be appreciated that, in some instances, the video may
already contain the hidden artifact. In such instances, it may not
be necessary for the distribution entity 110 to modify the video to
contain the hidden artifact.
[0074] The distribution entity 110 then generates link data and
hidden artifact location data (410). The link data comprises data
that indicates how to access target resource. The hidden artifact
location data includes data that indicates where the hidden
artifact is located in the video. In an instance where the video is
distributed in a video file, the video file may contain the link
data and the hidden artifact location data. In an instance where
the video is distributed in a video stream, the link data and the
hidden artifact location data may be streamed to the client device
104A as metadata in the video stream.
[0075] The distribution entity 110 then takes steps to encourage
the users 106 to look for the hidden artifact in the video (412).
As discussed above, the distribution entity 110 may take a wide
variety of steps to encourage the users 106 to look for the hidden
artifact in the video. For example, the distribution entity 110 may
include messages in the video encouraging the users 106 to look for
the hidden artifact in the video.
[0076] Next, the distribution entity 110 distributes the video
(414). As discussed above, the distribution entity 110 may
distribute the video in a variety of ways. For example, the
distribution entity 110 can distribute the video by transmitting a
video file or a video stream over an electronic communications
network. In another example, the distribution entity 110 can
distribute the video by selling or giving away computer-readable
storage media on which video data representing the video is
stored.
[0077] Subsequently, the distribution entity 110 updates the hidden
artifact in the video and the hidden artifact location data (416).
For example, the distribution entity 110 can change a location of
the hidden artifact to a different location within a set of frames
and/or to a different time within the video. In a second example,
the distribution entity 110 encourages the users 106 to look for a
different artifact in the video. In this second example, the
distribution entity 110 updates the hidden artifact location data
such that the client device 104A determines that the user 106A has
selected the different hidden artifact. After updating the hidden
artifact and the hidden artifact location data, the distribution
entity 110 distributes the updated video (414).
[0078] The distribution entity 110 can continue to update the
hidden artifact and the hidden artifact location data on a regular
or irregular basis. Once a user locates the hidden artifact, the
user could potentially post the location of the hidden artifact in
a public forum such as the Internet or print media. Consequently,
the general public could quickly find the hidden artifact and
access the target resource without paying attention to the details
of the video. As a result, the users who already know the location
of the hidden artifact are less likely to notice the advertisements
embedded in the video. Updating the hidden artifact and the hidden
artifact location data in this manner may diminish this possibility
at least to some extent.
[0079] FIG. 7 illustrates an example operation 500 of the client
device 104A to play back the video 206. It should be appreciated
that the operation 500 is an example provided for purposes of
explanation only. In other implementations, operations to play back
the video 206 may involve more or fewer steps, or may involve the
steps of the operation 500 in a different order. Furthermore, the
operation 500 is explained with reference to FIGS. 1-3. It should
be appreciated that other operations to play back the video 206 may
be used in different systems and in computing systems having
functional components other than those illustrated in the examples
of FIGS. 1-3. Furthermore, the reader will understand that other
ones of the client devices 104 can perform similar operations.
[0080] As illustrated in the example of FIG. 7, the operation 500
begins when the playback application 310 receives video data of the
video 206 (502). As discussed above, the playback application 310
may receive video data in a variety of ways. For instance, the
playback application 310 may receive video data from a video file
stored at the data storage system 300, a video stream received via
the network interface 304, read from a computer-readable data
storage medium via the storage device interface 306, generated by
executing software instructions, and so on.
[0081] After receiving at least some of the video data, the
playback application 310 begins playback of the video (504). After
the playback application 310 begins playback of the video 206, the
playback application 310 determines whether playback of the video
206 is complete (506). Playback of the video 206 is complete when
the playback application 310 has displayed the last frame of the
video 206.
[0082] If playback of the video 206 is not complete ("NO" of 506),
the playback application 310 is able to receive selection input
from the user 106A (508). In other words, while the playback
application 310 is playing back the video 206, the user 106A is
able to provide selection input to the playback application
310.
[0083] In response to receiving the selection input, the playback
application 310 determines whether the selection input indicates a
location in a target region of a target frame (510). The target
frame is a frame containing a hidden artifact. Furthermore, the
target region in a frame is a region containing a hidden artifact.
In some example embodiments, the playback application 310 uses the
hidden artifact location data to determine whether the selection
input indicates a location in a target region of a target
frame.
[0084] If the playback application 310 determines that the
selection input does not indicate a location in a target region of
a target frame of the video 206 ("NO" of 510), the playback
application 310 continues playback of the video (512). The playback
application 310 then loops back and determines whether playback of
the video 206 is complete (506). If the playback application 310
never receives selection input or never receives selection input
indicating a target region of a target frame of the video 206, the
playback application 310 may continue to loop through steps 506,
508, 510, and 512 until playback of the video 206 is complete.
[0085] On the other hand, if the playback application 310
determines that the selection input indicates a location in a
target region of a target frame ("YES" of 510), the playback
application 310 suspends playback of the video 206 (514).
Suspending playback of the video 206 enables the user 106A to
interact with the target resource and the resume viewing the video
206 after the user 106A is finished interacting with the target
resource.
[0086] Next, the playback application 310 accesses the target
resource (516). In some example embodiments, the playback
application 310 uses link data to determine how to access the
target resource. As described above, the playback application 310
may access the target resource in a wide variety of ways depending
on the type of the target resource.
[0087] After accessing the target resource, the playback
application 310 receives resource interaction input from the user
106A (518). The resource interaction input indicates things that
the user 106A wants to do with the target resource. Because the
target resource may be a wide variety of different types of
resource, the resource interaction input may indicate a wide
variety of things that the user 106A wants to do with the target
resource. For example, if the target resource is a web page
containing a web form, the resource interaction input may indicate
data that the user 106A wants to enter into text boxes of the web
form. In another example, if the target resource is a game, the
resource interaction input may indicate actions that the user 106A
wants to perform in the game.
[0088] In response to receiving the resource interaction input, the
playback application 310 applies the resource interaction input to
the target resource (520). Applying the resource interaction input
to the target resource entails processing the resource interaction
input in a manner appropriate for the target resource. Because the
target resource may be a wide variety of different types of
resource, the playback application 310 applies the resource
interaction input in a wide variety of ways. For example, if the
target resource is a web page containing a web form and the
resource interaction input indicates data that the user 106A wants
to enter into text boxes of the web form, the playback application
310 applies the resource interaction input by displaying the data
in the text boxes. In another example, if the target resource is a
game and the resource interaction input is a command to move a
character in the game, the playback application 310 applies the
resource interaction input by moving the character in the game.
[0089] Although not illustrated in the example of FIG. 7 for the
sake of brevity, the playback application 310 may receive and apply
many resource interaction inputs. Furthermore, it should be
appreciate that there is no applicable resource interaction input
for some target resources. For example, the target resource may
simply be a message with a code that a user can enter in a web page
to redeem a prize. In this example, the user 106A cannot provide
resource interaction input to the message. In such instances, the
operation 500 would not include steps 518 and 520.
[0090] Subsequently, the playback application 310 receives playback
resume input from the user 106A (522). The playback resume input
indicates to the playback application 310 that the user 106A wants
to resume playback of the video 206. In response to receiving the
playback resume input, the playback application 310 resumes
playback of the video 206 (524). The playback application 310 then
loops back and determines whether playback of the video 206 is
complete (506). If playback of the video 206 is complete ("YES" of
506), the playback application 310 enters a playback stopped state
(526).
[0091] FIG. 8 illustrates an example operation 600 of the server
computing system 102 to distribute the video 206. It should be
appreciated that the operation 600 is an example provided for
purposes of explanation only. In other implementations, operations
to distribute the video 206 may involve more or fewer steps, or may
involve the steps of the operation 600 in a different order.
Furthermore, the operation 600 is explained with reference to FIGS.
1-3. It should be appreciated that other operations to distribute
the video 206 may be used in different systems and in computing
systems having functional components other than those illustrated
in the examples of FIGS. 1-3. For ease of explanation, this
document describes the example of FIG. 8 with reference to the
client device 104A and the user 106A. The operation 600 can be
applicable to other ones of the client devices 104 and users
106.
[0092] As illustrated in the example of FIG. 8, the operation 600
starts when the server computing system 102 stores an initial
version of the video 206 (602). After the server computing system
102 has stored the initial version of the video 206, the server
application 208 receives a resource request for the video file
(604). In response to receiving the resource request, the server
application 208 transmits data of the video 206 to the client
device 104A (606).
[0093] Subsequently, the server computing system 102 stores an
updated version of the video 206 (608). The updated version of the
video 206 contains updated video data. The updated video data, when
rendered by a client device, plays back an updated video. The
updated video is substantially the same as the initial version of
the video, except that the updated video contains the hidden
artifact at a location different than a location of the hidden
artifact in the initial version of the video. In some instances,
the updated version of the video 206 is accompanied by different
hidden artifact location data.
[0094] After storing the updated version of the video 206, the
server application 208 receives a second resource request (604).
The second resource request may be from the client device 104A or a
different client device. In response to the second resource
request, the server application 208 transmits the updated video
data in the updated version of the video 206. Although not
illustrated in the example of FIG. 8 for purposes of clarity, the
server application 208 may receive and respond to many resource
requests before storing the updated version of the video 206.
[0095] FIG. 9 illustrates an example operation 700 of the video
modification module 210 to modify the video 206 to contain the
hidden artifact and the advertisements. It should be appreciated
that the operation 700 is an example provided for purposes of
explanation only. In other implementations, operations to modify
the video 206 may involve more or fewer steps, or may involve the
steps of the operation 700 in a different order. Furthermore, the
operation 700 is explained with reference to FIGS. 1-3. It should
be appreciated that other operations to modify the video 206 may be
used in different systems and in computing systems having
functional components other than those illustrated in the examples
of FIGS. 1-3.
[0096] In the example of FIG. 9, the operation 700 starts when the
video modification module 210 modifies the video 206 such that the
video includes at least one advertisement (702). The video
modification module 210 may modify the video 206 such that the
video 206 includes the advertisement in a variety of ways. In a
first example implementation, the video modification module 210
automatically modifies the video 206 such that the video 206
includes the advertisement. In this first example implementation, a
user provides the advertisement to the video modification module
210. The video modification module 210 then automatically
identifies an appropriate location and time within the video 206 to
display the advertisement and automatically adds the advertisement
at the identified location and time. In this first example
implementation, the video modification module 210 may automatically
perform various graphics operations on the advertisement to make
the advertisement appear natural in the video 206. Such graphics
operations include shadowing, bump mapping, perspective skewing,
motion blurring, anti-aliasing, stretching, and so on. In other
example implementations, a user may interact more closely with the
video modification module 210 to modify the video 206 such that the
video 206 includes the advertisement. For instance, the user may
manually interact with the video modification module 210 to
instruct the video modification module 210 where and when to place
the advertisement in the video 206 and/or what graphics operations
to apply to the advertisement to make the advertisement appear
natural in the video 206.
[0097] Next, the video modification module 210 modifies the video
206 such that the video 206 includes a hidden artifact (704). The
video modification module 210 may modify the video 206 such that
the video 206 includes the hidden artifact in a variety of ways. In
a first example implementation, the video modification module 210
automatically modifies the video 206 such that the video 206
includes the hidden artifact. In this first example implementation,
a user provides the hidden artifact to the video modification
module 210. The video modification module 210 then automatically
identifies an appropriate location and time within the video 206 to
display the hidden artifact and automatically adds the hidden
artifact at the identified location and time. In this first example
implementation, the video modification module 210 may automatically
perform various graphics operations on the hidden artifact to make
the hidden artifact appear natural in the video 206. In other
example implementations, a user may interact more closely with the
video modification module 210 to modify the video 206 such that the
video 206 includes the hidden artifact. For instance, the user may
manually interact with the video modification module 210 to
instruct the video modification module 210 where and when to place
the hidden artifact in the video 206 and/or what graphics
operations to apply to the hidden artifact to make the hidden
artifact appear natural in the video 206.
[0098] After modifying the video 206 to include the hidden
artifact, the video modification module 210 generates link data and
hidden artifact location data (706). The video modification module
210 may generate the link data and the hidden artifact location
data in a variety of ways. For example, the video modification
module 210 may cause a display device to display a user interface
that enables a user to create the link data and/or the hidden
artifact location data. In another example, the video modification
module 210 generates the link data and/or the hidden artifact
location data automatically.
[0099] Subsequently, the video modification module 210 stores the
video 206 at the data storage system 200 (708). After storing the
video 206 at the data storage system 200, the video modification
module 210 modifies the video 206 such that the hidden artifact is
moved or such that the hidden artifact is replaced by another
hidden artifact (710). As discussed above, moving or replacing the
hidden artifact with another hidden artifact reduces the impact of
distribution of knowledge regarding the location of the hidden
artifact. In different implementations, the video modification
module 210 modifies the video 206 such that the hidden artifact is
moved or replace by another hidden artifact in different ways. For
example, the video modification module 210 may automatically (i.e.,
without human intervention) modify the video 206 such that the
hidden artifact is moved or such that the hidden artifact is
replaced by another hidden artifact. In another example, the video
modification module 210 may modify the video 206 such that the
hidden artifact is moved or such that the hidden artifact is
replaced by another hidden artifact in response to human
interaction with the video modification module 210. After modifying
the video 206 such that the hidden artifact is moved or such that
the hidden artifact is replaced by another hidden artifact, the
video modification module 210 again stores the video file (708).
Steps 708 and 710 may recur an indefinite number of times.
[0100] In some examples, multiple runs or variations in the
placement of the advertising and hidden artifacts can be made. For
example, a first run of the movie can be made with a first set of
advertisers, and a second run can be made with a different set of
advertisers. The first run movie can be distributed for a certain
number of users or for a certain amount of time, and then the
second run movie can be used.
[0101] Likewise, multiple variations of the movie with different
placement of the hidden artifacts can be used. In such an example,
the multiple variations can each be distributed for a period of
time, or all can be randomly distributed to users.
[0102] FIG. 10 illustrates example physical components of an
electronic computing device 1000. It should be appreciated that the
electronic computing device 1000 is merely one example. Other
electronic computing devices may include more or fewer physical
components and may be organized in different ways. The server
computing system 102 may include one or more electronic computing
devices like the electronic computing device 1000. The client
devices 104 may be implemented like the electronic computing device
1000.
[0103] As illustrated in the example of FIG. 10, the electronic
computing device 1000 comprises a memory unit 1002. The memory unit
1002 is a computer-readable data storage medium capable of storing
data and/or instructions. The memory unit 1002 may be a variety of
different types of computer-readable storage media including, but
not limited to, dynamic random access memory (DRAM), double data
rate synchronous dynamic random access memory (DDR SDRAM), solid
state memory devices, reduced latency DRAM, DDR2 SDRAM, DDR3 SDRAM,
Rambus RAM, or other types of computer-readable storage media.
[0104] In addition, the electronic computing device 1000 comprises
a processing unit 1004. As mentioned above, a processing unit is a
set of one or more physical electronic integrated circuits that are
capable of executing instructions. In a first example, the
processing unit 1004 may execute software instructions that cause
the electronic computing device 1000 to provide specific
functionality. In this first example, the processing unit 1004 may
be implemented as one or more processing cores and/or as a set of
microprocessors, the set of microprocessors comprising at least one
microprocessor. For instance, in this first example, the processing
unit 1004 may be implemented as one or more Intel Core 2
microprocessors. The processing unit 1004 may be capable of
executing instructions in an instruction set, such as the x86
instruction set, the POWER instruction set, a RISC instruction set,
the SPARC instruction set, the IA-64 instruction set, the MIPS
instruction set, or another instruction set. In a second example,
the processing unit 1004 may be implemented as an ASIC that
provides specific functionality. In a third example, the processing
unit 1004 may provide specific functionality by using an ASIC and
by executing software instructions.
[0105] The electronic computing device 1000 also comprises a video
interface 1006. The video interface 1006 enables the electronic
computing device 1000 to output video information to a display
device 1008. The display device 1008 may be a variety of different
types of display devices. For instance, the display device 1008 may
be a cathode-ray tube display, an LCD display panel, a plasma
screen display panel, a touch-sensitive display panel, a LED array,
an Organic LED (OLED) screen, or another type of display
device.
[0106] In addition, the electronic computing device 1000 includes a
non-volatile storage device 1010. The non-volatile storage device
1010 is a computer-readable data storage medium that is capable of
storing data and/or instructions. The non-volatile storage device
1010 may be a variety of different types of non-volatile storage
devices. For example, the non-volatile storage device 1010 may be
one or more hard disk drives, solid state memory devices, magnetic
tape drives, CD-ROM drives, DVD-ROM drives, Blu-ray disc drives, or
other types of non-volatile storage devices.
[0107] The electronic computing device 1000 also includes an
external component interface 1012 that enables the electronic
computing device 1000 to communicate with external components. As
illustrated in the example of FIG. 10, the external component
interface 1012 enables the electronic computing device 1000 to
communicate with an input device 1014 and an external storage
device 1016. In one implementation of the electronic computing
device 1000, the external component interface 1012 is a Universal
Serial Bus (USB) interface. In another example implementation of
the electronic computing device 1000, the external component
interface 1012 is a FireWire interface. In other implementations of
the electronic computing device 1000, the electronic computing
device 1000 may include another type of interface that enables the
electronic computing device 1000 to communicate with input devices
and/or output devices. For instance, the electronic computing
device 1000 may include a PS/2 interface. The input device 1014 may
be a variety of different types of devices including, but not
limited to, keyboards, mice, trackballs, stylus input devices,
touch pads, touch-sensitive display screens, or other types of
input devices. The external storage device 1016 may be a variety of
different types of computer-readable data storage media including
magnetic tape, flash memory modules, magnetic disk drives, optical
disc drives, solid state memory devices, and other
computer-readable data storage media.
[0108] In addition, the electronic computing device 1000 includes a
network interface card 1018 that enables the electronic computing
device 1000 to transmit data to and receive data from an electronic
communication network. The network interface card 1018 may be a
variety of different types of network interface. For example, the
network interface card 1018 may be an Ethernet interface, a
token-ring network interface, a fiber optic network interface, a
wireless network interface (e.g., a WiFi interface, a WiMax
interface, Third Generation (3G) and Fourth Generation (4G)
wireless communication interfaces, a Universal Mobile
Telecommunications System interface, a CDMA2000 interface, an
Evolution-Data Optimized interface, an Enhanced Data rates for GSM
Evolution (EDGE) interface, etc.), or another type of network
interface.
[0109] The electronic computing device 1000 also includes a
communications medium 1020. The communications medium 1020
facilitates communication among the various components of the
electronic computing device 1000. The communications medium 1020
may comprise one or more different types of communications media
including, but not limited to, a PCI bus, a PCI Express bus, an
accelerated graphics port (AGP) bus, an Infiniband interconnect, a
serial Advanced Technology Attachment (ATA) interconnect, a
parallel ATA interconnect, a Fiber Channel interconnect, a USB bus,
FireWire, Integrated Drive Electronics (IDE), elastic interface
buses, a QuickRing bus, a Controller Area Network bus, a Scalable
Coherent Interface bus, a USB bus, an Ethernet connection, a Small
Computer System Interface (SCSI) interface, or another type of
communications medium.
[0110] The electronic computing device 1000 includes several
computer-readable data storage media (i.e., the memory unit 1002,
the non-volatile storage device 1010, and the external storage
device 1016). Together, these computer-readable storage media may
constitute a single data storage system. As discussed above, a data
storage system is a set of one or more computer-readable data
storage mediums. This data storage system may store instructions
executable by the processing unit 1004. Activities described in the
above description may result from the execution of the instructions
stored on this data storage system. Thus, when this description
says that a particular logical module performs a particular
activity, such a statement may be interpreted to mean that
instructions of the logical module, when executed by the processing
unit 1004, cause the electronic computing device 1000 to perform
the activity. In other words, when this description says that a
particular logical module performs a particular activity, a reader
may interpret such a statement to mean that the instructions
configure the electronic computing device 1000 such that the
electronic computing device 1000 performs the particular
activity.
[0111] FIG. 11 is a block diagram illustrating an alternative
embodiment of the server computing system 102. This alternate
embodiment enables the users 106 to play games that involve finding
hidden artifacts. In these games, the server computing system 102
presents one or more videos to the users 106. The videos include
hidden artifacts and advertisements. When the users 106 find the
hidden artifacts in the videos, the users 106 select locations in
the videos that correspond to the hidden artifacts. In other words,
the users 106 select locations reasonably close to regions in the
videos that contain the hidden artifacts. When one of the users 106
selects one of the hidden artifacts, the server computing system
102 receives selection input indicating a location in the video
that corresponds to the selected artifact.
[0112] Because there are multiple hidden artifacts, the server
computing system 102 can receive a plurality of selection inputs
from the user. These selection inputs indicate locations in the
videos that correspond to a plurality of selected artifacts. The
selected artifacts are among the hidden artifacts in the videos.
For example, if there are ten hidden artifacts, the selected
artifacts can include all ten of the hidden artifacts or fewer than
all ten of the hidden artifacts.
[0113] The server computing system 102 performs different actions
depending on which ones of the hidden artifacts are among the
plurality of selected artifacts. For example, the server computing
system 102 can provide different rewards to a user depending on
which ones of the hidden artifacts were found by the user. For
instance, the server computing system 102 can provide a first
reward to the user if the user finds one combination of the hidden
artifacts and can provide a different reward to the user if the
user finds a different combination of the hidden artifacts. Thus,
the outcomes of playing the games can depend on which ones of the
hidden artifacts the user finds.
[0114] The server computing system 102 can enable the users 106 to
play various types of games. For example, a given game can have a
race-to-the-finish format. Games having the race-to-the-finish
format start at a particular time and continue until a
predetermined event occurs. Example predetermined events can
include a user find all hidden resources in videos of the given
game, a particular number or percentage of users finding all the
hidden resources in the videos, a user has found hidden resources
in the videos 1120 worth a particular number of points, and so
on.
[0115] In another example, a game can have a tournament format.
Games having the tournament format have multiple rounds. A user can
qualify for a later round by performing particular actions. For
example, a user can qualify for a later round by finding all hidden
artifacts in one of the videos within a given time limit. In other
words, the server application 208 can provide the user with an
opportunity to participate in the next round of the tournament when
particular ones of the hidden artifacts are selected. In another
example, a user can qualify for a later round by being among the
first users to hidden artifacts worth a given number of points.
[0116] In yet another example, the given can have an instant win
format. Users can win games having the instant win format by
finding particular hidden artifacts in the videos.
[0117] As illustrated in the example of FIG. 11, the server
computing system 102 provides the server application 208, the video
modification module 210, a notification system 1100, and a resource
library 1102. The server computing system 102 provides the server
application 208, the video modification module 210, and the
notification system 1100 when one or more processing units in the
server computing system 102 execute appropriate software
instructions. The resource library 1102 contains a set of
resources. Resources in the resource library 1102 can be stored in
the data storage system 200 within the server computing system 102
or in one or more other data storage systems accessible to the
server computing system 102.
[0118] In the example of FIG. 11, the resource library 1102
includes profile creation resources 1106, profiles 1108, profile
pages 1110, coupons 1112, coupon redemption resources 1114, a
rewards catalog 1116, and point redemption resources 1118. In other
embodiments, the resource library 1102 may include other types of
resources or may not include each of these types of resources.
[0119] In addition, the resource library 1102 stores resources
associated with games 1104A through 1104N (collectively, "games
1104"). The games 1104 can have various formats. For example, one
of the games 1104 can correspond to a game having a
race-to-the-finish format and another one of the games 1104 can
have an instant-win format. In another example, one of the games
1104 can have a tournament format and another one of the games 1104
can have the tournament format.
[0120] In some instances, the different games correspond to
different advertising campaigns. For example, one of the games 1104
can correspond to an advertising campaign for a coffee house chain
and another one of the games 1104 can correspond to an advertising
campaign for an automobile maker. In this example, the games 1104
can have the same or different formats.
[0121] Each of the games 1104 is associated with one or more videos
1120, one or more discovery resources 1122, and one or more control
resources 1124. In the example of FIG. 11, the reference numbers of
the videos 1120, the discovery resources 1122, and the control
resources 1124 have alphabetical suffixes that correspond to the
alphabetical suffixes of the reference numbers of their associated
games.
[0122] Within each of the games 1104, the users 106 search for
hidden artifacts in the videos 1120 of the game. For example, the
users 106 who play the game 1104A search for hidden artifacts in
the videos 1120 associated with the game 1104A. The discovery
resources 1122 of the games 1104 correspond to hidden artifacts in
the videos 1120 of the games 1104. The discovery resources 1122
specify discovery operations. The server application 208 performs
the discovery operations of the discovery resources 1122 when the
users 106 find the corresponding hidden artifacts in the videos
1120. For example, the server application 208 can award points to
the users 106 when the users 106 find the corresponding hidden
artifacts in the videos 1120. The control resources 1124 specify
pre-playback operations and post-playback operations. The server
application 208 performs the pre-playback operations of the control
resources 1124 before presenting the videos 1120. The server
application 208 performs the post-playback operations of the
control resources 1124 after presenting the videos 1120.
[0123] Each of the profiles 1108 corresponds to a different one of
the users 106. Each of the profiles 1108 stores data regarding the
corresponding user. For example, each of the profiles 1108 can
store a point total for the corresponding user. In another example,
the profiles 1108 can store demographic information, contact
information, payment card information, social networking service
connectivity information, and/or other information about the
corresponding users.
[0124] In some embodiments, the profiles 1108 also include
information about the habits of the corresponding users. For
example, a given one of the profiles 1108 can correspond to a given
user. In this example, the given profile can include information
that indicates which ones of the videos 1120 the given user has
watched, what time of day the given user watched the videos 1120,
what types of prizes the given user tends to play for, what types
of prizes the given user tends to win, what other users 106 of the
media distribution system 100 the given user interacts with, what
coupons the given user has downloaded, what products the given user
has purchased using points, and/or other information about the
habits of the given user. Thus, the profiles 1108 can be used to
track viewing habits of the users 106.
[0125] Various embodiments implement the profiles 1108 in various
ways. For example, the profiles 1108 can comprise XML documents,
database records, flat files, or other types of data
structures.
[0126] The notification system 1100 provides notification messages
to the users 106. In various embodiments, the notification messages
can have various formats and contain various messages. For example,
the notification system 1100 can provide SMS text messages to the
users 106 alerting the users 106 that one of the games 1104 is
starting. In another example, the notification system 1100 can
provide email messages to the users 106 alerting the users 106
about the availability of new games.
[0127] FIG. 12 is a flowchart illustrating an example operation
1200 performed by the distribution entity 110. After the operation
1200 starts, the distribution entity 110 enters an advertising
agreement with one of the advertisers 112 (1202). In some
embodiments, the advertising agreement obligates the distribution
entity 110 to provide a new game that involves finding hidden
artifacts in videos. For ease of explanation, the following
discussion uses the reference number 1104A to refer to the new
game.
[0128] After receiving entering the advertising agreement, the
distribution entity 110 stores the one or more videos 1120A
associated with the game 1104A (1204). The videos 1120A include
hidden artifacts and advertisements. In some instances, the hidden
artifacts are advertisements. In other instances, the hidden
artifacts are not advertisements per se. In such instances, the
videos 1120A can contain advertisements separate from the hidden
artifacts.
[0129] In some instances, the distribution entity 110 modifies the
videos 1120A to include the hidden artifacts and/or the
advertisements. In other instances, the original versions of the
videos 1120A already contain the advertisements and/or the hidden
artifacts. In such instances, it may not be necessary for the
distribution entity 110 to modify the videos 1120A to include the
advertisements and/or the hidden artifacts.
[0130] Furthermore, after the distribution entity 110 enters the
advertising agreement, the distribution entity 110 develops the
discovery resources 1122A of the game 1104A (1206). Each of the
discovery resources 1122A corresponds to a different hidden
artifact. Each of the discovery resources 1122A specifies a
discovery operation. The discovery operation of a discovery
resource is performed when a user finds the hidden resource that
corresponds to the discovery resource. For example, the discovery
operation can increase a user's point total when the user selects a
region of a video containing a corresponding hidden artifact.
[0131] In various embodiments, the distribution entity 110 develops
the discovery resources 1122A of the new game in various ways. For
example, the distribution entity 110 can develop the discovery
resources 1122A using an object-oriented programming language.
Example object-oriented programming languages include C++, Java,
C#, Python, Ruby, and so on. In this example, the discovery
resources 1122A can be software objects having a same software
interface. The software interface comprises a predefined collection
of methods and attributes that other software components, such as
the server application 208, can use to interact with the discovery
resources 1122A. In this example, the discovery resources 1122A can
be pluggable because each of the discovery resources 1122A has the
same software interface.
[0132] In another example, the distribution entity 110 can develop
the discovery resources 1122A as sets of scripts in various
scripting languages. Example scripting languages include
JavaScript, Perl, XUL, and so on.
[0133] In yet another example, the distribution entity 110 can
develop the discovery resources 1122A using markup languages. For
example, each of the discovery resources 1122A can comprise an XML
document. In this example, the XML documents can specify parameters
that control which discovery operations the server application 208
performs.
[0134] Furthermore, the distribution entity 110 can develop the
control resources 1124A for the game 1104A (1208). As described in
greater detail elsewhere in this document, the control resources
1124A provide pre-playback and post-playback actions associated
with the game 1104A. The pre-playback actions are actions
associated with the game 1104A that are performed prior to the
users 106 playing back the videos 1120A associated with the game
1104A. The post-playback actions are actions associated with the
game 1104A that are performed after the users 106 have finished
playing back the videos 1120A associated with the game 1104A.
[0135] In various embodiments, the distribution entity 110 can
develop the control resources 1124A for the game 1104A in various
ways. For example, the distribution entity 110 can develop the
control resources 1124A using object-oriented programming
languages, markup languages, or other types of languages.
[0136] After storing the videos 1120A, developing the discovery
resources 1122A, developing the control resources 1124A, the
distribution entity 110 distributes the game 1104A (1210). In
various embodiments, the distribution entity 110 distributes the
game 1104A in various ways. For instance, in some example
embodiments, the distribution entity 110 distributes the game 1104A
by making the videos 1120A, the discovery resources 1122A, and the
control resources 1124A available for download from the server
computing device 102. In some such embodiments, the client devices
104 can download video files corresponding to the videos 1120A. In
other such embodiments, the server application 208 can stream the
videos 1120A to the client devices 104. Furthermore, in this
example, the client devices 104 can download the discovery
resources 1122A and/or the control resources 1124A and perform the
operations specified by the discovery resources 1122A and/or the
control resources 1124A. Alternatively, in this example, the client
devices 104 can request the server application 208 perform parts or
all of the operations specified by the discovery resources 1122A
and/or the control resources 1124A.
[0137] In other example embodiments, the distribution entity 110
distributes the game 1104A by manufacturing and distributing
physical computer-readable storage media. In this example, the
computer-readable storage media store the videos 1120A. In some
such embodiments, the computer-readable storage media also store
the discovery resources 1122A and/or the control resources 1124A.
In such embodiments, the client devices 104 perform the operations
specified by the discovery resources 1122A and/or the control
resources 1124A. In other such embodiments, the client devices 104
send messages to the server application 208 that comprise requests
for the server application 208 to perform some or all the
operations specified by the discovery resources 1122A and/or the
control resources 1124A.
[0138] FIG. 13 is a flowchart of an example operation 1300
performed by the server application 208. The example operation 1300
is explained with reference to the client device 104A and the user
106A. Readers will appreciate that the operation 1300 can be
applicable to other ones of the client devices 104 and users
106.
[0139] After the operation 1300 starts, the server application 208
receives a message from the client device 104A (1302). In various
embodiments, the message can conform to various communication
protocols. For example, the request can conform to the HTTP
protocol, a propriety protocol, or another type of communication
protocol. After the server application 208 receives the message,
the server application 208 performs different actions depending on
the content of the message.
[0140] If the message comprises a request to access a given one of
the profile creation resources 1106 ("YES" of 1304), the server
application 208 processes the given profile creation resource
(1306). Processing the profile creation resource causes the server
application 208 to establish a profile 1108 of the user 106A. In
various embodiments, the profile creation resources 1306 are
implemented in various ways. For example, one or more of the
profile creation resources 1306 can comprise scripts. In such
example, the scripts may be written in various interpreted
programming languages, such as JavaScript, Perl, PHP, Ruby, and so
on. In other instances, the profile creation resources 1306 can
comprise as compiled programs written in programming languages such
as C++, Java, Basic, and so on. The server application 208 persists
the profile 1108 during times when the videos 1120 are not being
presented to the user 106A.
[0141] In some embodiments, the server application 208 collects
personal data about the user 106A when the server application 208
establishes the profile 1108 for the user 106A. For example, the
server application 208 can collect name information, contact
information, payment card information, information regarding the
interests and tastes of the user 106A, demographic information,
and/or other information about the user 106A. In such embodiments,
the server application 208 adds such personal data to the profile
1108 of the user 106A. In some embodiments, the personal data can
be used to generate a marketing profile of the user 106A. The
marketing profile of the user 106A can be useful in marketing
products to the user 106A and other people with similar
characteristics.
[0142] Otherwise, if the message comprises a request to access one
of the profile pages ("YES" of 1308), the server application 208
sends the profile page data to the client device 104A (1310). The
profile page data represents a profile page 1110 of the user 106A.
In some embodiments, the profile pages 1110 are webpages that
contain data specific to the users 106. For example, the profile
pages 1110 can include a total number of points earned by the users
106. In another example, the profile pages 1110 can include lists
of games played by the users 106 and the numbers of points earned
in the games. In yet another example, the profile pages 1110 can
include links to games that might be interesting to the users 106.
In yet another example, the profile pages 1110 can include data
indicating what games have been played by people connected to the
users 106 in social networking services, such as Facebook. In this
example, the profile pages 1110 also include data indicating what
rewards have been won by people connected to the users 106 in the
social networking services. In yet another example, the profile
pages 1110 can include lists of coupons available to the users 106
and lists of coupons redeemed by the users 106.
[0143] If the message comprises a request to access the rewards
catalog 1116 (1312), the server application 208 sends rewards
catalog data to the client device 104A (1314). The rewards catalog
data represents the rewards catalog 1116. The rewards catalog 1116
comprises a list of rewards that the users 106 can get by redeeming
points accumulated by playing the games 1104. For example, the
rewards catalog 1116 can include a gift certificate that the users
106 can obtain by redeeming fifty points.
[0144] The rewards catalog 1116 can include a variety of rewards.
For example, the rewards catalog 1116 can include gift
certificates, coupons, raffle tickets, contest entries, physical
prizes, cash, tickets, VIP access to various locations, access to
special features of videos or games, travel, clues or hints
regarding the locations of hidden artifacts in the videos 1120 or
the real world, and other resources.
[0145] In some embodiments, the rewards in the rewards catalog 1116
are tied to advertising campaigns. For example, the rewards catalog
1116 includes items associated with products being marketed by the
advertisers 112. In this example, if one of the advertisers 112 is
running an advertising campaign for a particular store, the rewards
catalog 1116 can include gift certificates redeemable at the
particular store. In another example, the rewards catalog 1116 can
include promotional items associated with an advertising
campaign.
[0146] If the message comprises a request to access one of the
point redemption resources 1118 ("YES" of 1316), the server
application 208 processes the point redemption resource (1318).
When the server application 208 processes one of the point
redemption resources 1118 in response to the message from the user
106A, the server application 208 reduces a given number of points
from the point total of the user 106A and performs one or more
actions to provide the reward associated with the given point
redemption resource to the user 106A.
[0147] The server application 208 can provide different rewards to
the user 106A depending on whether the point total of the user 106A
exceeds various thresholds. For example, if the point total of the
user 106A exceeds a first threshold (e.g., 100 points), the server
application 208 can provide a first reward to the user 106A (e.g.,
a $10 gift card). In another example, if the point total of the
user 106A exceeds a second threshold (e.g., 200 points), the server
application 208 can provide a second reward to the user (e.g., a
$20 gift card).
[0148] As discussed above, the resource library 1102 comprises a
set of coupons 1112. Each of the coupons 1112 entitles the holder
to something, such as a discount or gift. For example, one of the
coupons 1112 can entitle a holder to receive $5 off the purchase
price of a particular item. If the message comprises a request to
access one of the coupons 1112 ("YES" of 1320), the server
application 208 sends coupon data to the client device 104A (1322).
The coupon data represents the coupon.
[0149] In some embodiments, applications are installed on mobile
devices used by the users 106. When one of the users 106 wants to
use one of his or her coupons when purchasing a product, the user
launches the application and uses the application to retrieve the
coupon. After the application retrieves the coupon, the application
displays the coupon. In some instances, a sales clerk can scan the
coupon displayed by the application to redeem the coupon. In other
instances, the application can print the coupon.
[0150] As discussed above, the resource library 1102 comprises a
set of coupon redemption resources 1114. Each of the coupon
redemption resources 1114 corresponds to a different one of the
coupons 1112. If the message comprises a request to access one of
the coupon redemption resources 1114 ("YES" of 1324), the server
application 208 performs a coupon redemption process specified by
the coupon redemption resource (1326). Various coupon redemption
resources can specify various coupon redemption processes. For
example, some coupon redemption resources specify coupon redemption
processes that involve updating the profile 1108 of the user 106A
to indicate that the user 106A has redeemed one of the coupons
1112. In another example, some coupon redemption resources can
specify coupon redemption processes that increase the point total
of the user 106A. In this example, some such coupon redemption
processes can selectively increase the point total of the user 106A
depending on whether the user 106A redeemed the coupon before
certain events occur. Such events can include calendar dates,
number of days, redemption by other users of the coupon, and so
on.
[0151] In some embodiments, the server application 208 receives
messages that comprise requests to access the coupon redemption
resources 1114 from mobile devices. For example, an application can
be installed on a mobile device. In this example, one of the users
106 can present one of the coupons 1112 to a clerk when the user
wants to purchase a product associated with the coupon. In this
example, the clerk launches the application and uses the
application to capture a photograph of the coupon. The application
then sends a request to access the coupon redemption resource
associated with the coupon.
[0152] When the server application 208 establishes the profiles
1008 for the users 106, the server application 208 establishes
personal coupon books for the users 106. A user's personal coupon
book lists coupons that the user has earned by playing the games
1104. If the message comprises a request to view a personal coupon
book ("YES" of 1328), the server application 208 sends coupon book
data to the client device 104A (1330). The coupon book data
contains data indicating coupons in the personal coupon book of the
user 106A. For example, the coupon book data can comprise HTML data
for a webpage that lists coupons that the user 106A has earned by
playing the games 1104.
[0153] In some embodiments, coupons in the personal coupon books
are organized by category. For example, the personal coupon books
can contain a first section, a second section, and a third section.
In this example, the first section lists coupons for groceries, the
second section lists coupons for electronics, and the third section
lists coupons for appliances. In this way, the users 106 can
efficiently review the coupons they have earned by playing the
games 1104.
[0154] If the message comprises a request to access one of the
videos 1120 ("YES" of 1332), the server application 208 performs a
portion of the operation 1300 illustrated in FIG. 14. In other
embodiments, the server application 208 does not receive request to
access the videos 1120. For example, if the distribution entity 110
distributes the games 1104 in computer-readable storage media, it
may be unnecessary for the client devices 104 to send requests to
the server application 208 to access the videos 1120.
[0155] FIG. 14 is a flowchart illustrating a continuation of the
operation 1300. As illustrated in the example of FIG. 13, the
server application 208 determines whether the message comprises a
request to access a given one of the videos 1120 associated with a
given one of the games (1332). For ease of explanation, the
following discussion assumes that the message comprises a request
to access a given one of the videos 1120A of the game 1104A.
[0156] In various embodiments, the server application 208 can
receive the request to access the given video in various ways. For
example, the profile pages 1110 can include links the videos
associated with one or more games. In this example, the server
application 208 receives the request to access the given video when
the users 106 select one of these links. In another example, the
server application 208 presents a webpage associated with the game
1104A to the user 106A. In this example, the webpage of the game
1104A includes links to the videos 1120A associated with the game
1104A. In this example, the server application 208 receives the
request to access the given video when the user 106A select one of
these links.
[0157] As briefly described above, the control resources 1124A
specify pre-playback operations. The server application 208
performs the specified pre-playback actions before the server
application 208 begins streaming the videos 1120A to the client
device 104A. After receiving the request to access the given video,
the server application 208 performs the pre-playback operation
specified by the control resources 1124A of the game 1104A
(1400).
[0158] Various control resources can specify various pre-playback
operations. For example, the pre-playback operation specified by
the control resources 1124A of the game 1104A can store data to the
profile 1108 of the user 106A indicating that the user 106A has
watched at least some of the given video. In this way, the server
application 208 can build up data regarding what types of videos
the user 106A likes to watch, what types of games, and or what
types of prizes interest the user 106A. In this way, the server
application 208 can track the viewing habits of the user 106A.
[0159] In another example, in another example the pre-playback
operation can present game instructions to the user 106A. For
instance, if the game 1104A is a tournament style game, the
pre-playback operation can describe how to advance to later
rounds.
[0160] In yet another example, the pre-playback operation presents
a list of hidden artifacts to the user 106A. This list of hidden
artifacts contains images of artifacts hidden in the given video.
The server application 208 does not indicate to the user 106A where
the hidden artifacts are located within the given video.
[0161] In various embodiments, the server application 208 presents
the list of hidden artifacts to the user 106A in various ways. For
example, the server application 208 can present the list of hidden
artifacts to the user 106A in a popup window that appears on a
display screen of the client device 104A.
[0162] FIG. 15 illustrates an example playback interface 1500. The
playback interface 1500 contains a video pane 1501 and a hidden
artifact pane 1502 and a video pane 1501. The video pane 1501
displays a video. The hidden artifact pane 1502 contains a list of
hidden artifacts 1504. As illustrated in the example of FIG. 15,
the hidden artifact pane 1502 also specifies how many points the
given user can earn by finding the hidden artifacts 1504.
[0163] In some embodiments, the appearances of the hidden artifacts
1504 change after the hidden artifacts 1504 have appeared in the
videos 1120 without being selected. For example, the hidden
artifacts 1504 can disappear or change color after the hidden
artifacts have appeared in the videos 1120 without being selected.
In this way, the users 106 can know to stop looking for the hidden
artifacts 1504.
[0164] The control resources 1124 of different games can specify
different pre-playback operations. For example, the control
resources 1124A can specify a pre-playback operation that presents
the rules of a tournament style game and the control resources
1124N can specify a pre-playback operation that presents the rules
of a race-to-the-finish style game.
[0165] Continuing reference is now made to the example of FIG. 14.
After the server application 208 performs the pre-playback actions,
the server application 208 begins streaming the given video to the
client device 104A (1402). In various embodiments, the client
device 104A can present the given video in various ways. For
instance, in the example of FIG. 15, the playback interface 1500
contains a video pane 1501 that presents the given video. Thus, in
the example of FIG. 15, the user 106A is able to see the given
video and the hidden artifact pane 1502 simultaneously. In other
embodiments, the client device 104A presents the given video in
other windows or interfaces.
[0166] After the server application 208 begins streaming the given
video to the client device 104A, the server application 208
determines whether the user 106A has finished watching the given
video (1404). In various embodiments, the server application 208
can determine whether the user 106A has finished watching the given
video in various ways. For example, the server application 208 can
determine that the user 106A has finished watching the given video
when the server application 208 receives an indication from the
client device 104A that the client device 104A has displayed a last
frame of the given video. In another example, the server
application 208 can determine that the user 106A has finished
watching the given video when the server application 208 receives
an indication from the client device 104A that the client device
104A has received input from the user 106A to stop playback of the
given video.
[0167] If the user 106A has not yet finished watching the given
video ("NO" of 1404), the server application 208 can receive a
selection of a hidden artifact in the given video (1406). In
response to receiving the selection of the hidden artifact, the
server application 208 performs a discovery operation of a
corresponding discovery resource (1408). The corresponding
discovery resources is the one of the discovery resources 1122A
that corresponds to the hidden artifact.
[0168] Various ones of the discovery resources 1122 have various
discovery operations. For example, a discovery operation can add
the given number of points to the point total of the user 106A. In
this example, the discovery operations of discovery resources
corresponding to different hidden artifacts can add different
numbers of points the point total of the user 106A. For instance,
the discovery operation can add twenty points to the user's point
total when the user 106A finds a first hidden artifact and can add
fifty points to the user's point total when the user 106A finds a
second hidden artifact.
[0169] In another example, a discovery operation can update the
hidden artifact pane 1502 (FIG. 15). In this example, the discovery
operation can update the hidden artifact pane 1502 in various ways.
For example, the discovery operation can update the hidden artifact
pane 1502 to remove the selected hidden artifact from the hidden
artifact pane 1502. In another example, the discovery operation can
update the hidden artifact pane 1502 to indicate that the selected
hidden artifact has already been found.
[0170] In yet another example, a discovery operation enables the
user 106A to access one of the coupons 1112. For instance, the
coupons 1112 can include a $5 coupon for a given product. The user
106A earns a right to use this coupon by finding the hidden
artifact.
[0171] In yet another example, the discovery operation can update
the hidden artifact pane 1502 to include a link to a given one of
the coupons 1112. In this example, the user 106A can click on this
link to download the given coupon. The discovery operation also
updates the profile 1008 of the user 106A to indicate that the user
106A has earned the given coupon. Furthermore, in this example, the
discovery operation can update a savings feature 1508 in the
playback interface 1500. The savings feature 1508 indicates a total
value of the coupons earned by the user 106A by playing the game
1104A. For example, if the user 106A finds a first hidden artifact
and earns a coupon worth $5 and then finds a second hidden artifact
and earns a coupon with $10, the savings feature 1508 indicates a
total value of $15.
[0172] In yet another example, the game 1104A can, in addition to
finding hidden artifacts in the videos 1120A, involve finding
physical objects hidden in the real world. For example, the game
1104A may be part of an advertising campaign for a coffee house
chain. In this example, physical objects are hidden in particular
locations of the coffee house chain. The physical objects can have
computer-readable indicia, such as bar codes or two-dimensional
matrix bar codes. The users 106 can take photographs of the
computer-readable indicia on the physical objects with cameras on
their mobile devices. When the users 106 upload the photographs to
the server application 208, the server application 208 performs the
discovery operation of the discovery resource that corresponds to
the physical object. For example, the server application 208 can
increase a point total of the user 106A.
[0173] Many other discovery operations are possible. For example, a
discovery operation can present a hint or clue to the user 106A
when the user 106A selects a particular combination of one or more
of the hidden artifacts. The hint or clue provides some information
about the location of one or more other hidden artifacts in the
videos 1120. In another example, the discovery operation can update
the profile 1008 of the user 106A to indicate that the user 106A
found the hidden artifact. In yet another example, a discovery
operation enters the user 106A in a drawing or raffle when the user
106A finds the hidden artifact.
[0174] After performing the discovery operation of the discovery
resource corresponding to the selected hidden artifact, the server
application 208 continues streaming the given video to the client
device 104A (1410). Subsequently, the server application 208 can
determine again whether the user 106A has finished watching the
given video (1404).
[0175] If the user 106A has finished watching the given video
("YES" of 1404), the server application 208 performs a
post-playback operation of the control resources 1124A of the game
1104A (1406).
[0176] The control resources 1124 for different games can specify
different post-playback operations. For example, the given game can
have the race-to-the-finish format. As mentioned above, users win
games having the race-to-the-finish format by finding hidden
artifacts in the videos 1120 of the games before other users do. In
this example, the post-playback operation determines whether the
user 106A has found all the hidden artifacts before any other user.
If the user 106A has found all the hidden artifacts before any
other user, the post-playback operation provides some resource to
the user 106A. For example, the post-playback operation can enter
the user 106A in a drawing for a prize.
[0177] In another example, the game 1104A can have the tournament
format. As mentioned above, tournament games have multiple rounds.
Users advance to later rounds by finding hidden artifacts in the
videos 1120. Users who are unable to find the hidden artifacts are
unable to advance to later rounds. In this example, the
post-playback operation can present a user interface indicating
whether the user 106A is allowed to access a next round of the game
1104A and update the profile 1008 for the user 106A
accordingly.
[0178] In yet another example, the user 106A accrues points by
finding hidden artifacts in the videos 1120A of the game 1104A. In
this example, the post-playback operation determines how many
points the user 106A accrued during the game 1104A. If the
post-playback operation determines that the total points of the
user 106A exceeds one or more thresholds, the post-playback can
provide various rewards to the user 106A. For example, if the point
total of the user 106A exceeds a first threshold (e.g., fifty
points), the post-playback operation updates the profile 1008 of
the user 106A to indicate that the user 106A has earned a coupon
worth $10. In this example, if the point total of the user 106A
exceeds a second threshold (e.g., seventy points), the
post-playback operation updates the profile 1008 of the user 106A
to indicate that the user 106A has earned a coupon worth $20.
[0179] Although the subject matter has been described in language
specific to structural features and/or methodological acts, it is
to be understood that the subject matter defined in the appended
claims is not necessarily limited to the specific features or acts
described above. Rather, the specific features and acts described
above are disclosed as example forms of implementing the
claims.
* * * * *