Patent Publication Number: US-2013254791-A1

Title: Multimedia Content Viewing Confirmation

Description:
CROSS REFERENCE TO RELATED APPLICATIONS 
     This is a continuation application of U.S. non-provisional patent application no. 12/485,955, titled “Multimedia Content Viewing Confirmation”, filed Jun. 17, 2009 in the United States Patent and Trademark Office. 
     This application also claims the benefit of the following patent applications:
     1. Provisional patent application No. 61/094,094 titled “An Audiovisual Material Supply System and Method”, filed on Sep. 4, 2008 in the United States Patent and Trademark Office.   2. Provisional patent application No. 61/108,071, titled “An Audio Visual Matter Supply System and Method”, filed on Oct. 24, 2008 in the United States Patent and Trademark Office.   3. Provisional patent application No. 61/117,668, titled “An Audiovisual Material Supply System And Method”, filed on Nov. 25, 2008 in the United States Patent and Trademark Office.   4. Provisional patent application No. 61/162,393, titled “An Audiovisual Material Supply System and Method”, filed on Mar. 23, 2009 in the United States Patent and Trademark Office.   

     The specification of the above four referenced applications are herein incorporated in the present non-provisional application in their entirety. 
    
    
     BACKGROUND 
     The computer implemented method and system disclosed herein, in general, relates to a viewer response system. More particularly, the computer implemented method and system disclosed herein relates to supplying multimedia content to a client device of a viewer and confirming that the entire multimedia content has been viewed by the viewer. 
     Media service providers can reach viewers of their media services through a wide spectrum of technologies and devices such as general packet radio service (GPRS), 3G or other internet enabled cellular phones, computers with connection to the internet, and televisions with digital set top boxes. Using this outreach, media service providers earn revenue from product and service companies seeking to advertise their products and services through the media services. However, the efforts of the media service providers to advertise products and services may not achieve optimum results as the viewers may not view or may not be interested in viewing the multimedia content, for example, a video of the advertised products or services. This in turn reduces the outreach of companies seeking to advertise their products and services to potential customers through media services, and may lead to reduced revenue for both the companies that advertise their services through the media service providers, and for the media service providers. Also, product and service companies can not confirm whether the viewers viewed the advertisements, since the advertisements are delivered to remote devices. Current viewer measurement systems only provide passive viewer measurement based on whether the advertisement is played on the devices or not, but not based on whether the viewers have attentively viewed the advertisement. 
     Therefore, there is a need for a computer implemented method and system that enables the media service providers to confirm that a viewer viewed multimedia content such as advertisements on a client device, and encourages the viewer to provide the confirmation that in turn reflects the interest of the viewer in the advertisements. 
     SUMMARY OF THE INVENTION 
     This summary is provided to introduce a selection of concepts in a simplified form that are further described in the detailed description of the invention. This summary is not intended to identify key or essential inventive concepts of the claimed subject matter, nor is it intended for determining the scope of the claimed subject matter. 
     The computer implemented method and system disclosed herein addresses the above stated need for confirming that a viewer viewed the entire multimedia content on a client device, and for providing an incentive to the viewer to view the entire multimedia content. The computer implemented method and system can generally be used for confirming that a viewer viewed the entire multimedia content that is, for example, commercial, educational, and entertaining in nature. 
     In the computer implemented method and system disclosed herein, viewing of the multimedia content is confirmed using a challenge-response mechanism. A multimedia content owner, for example, an advertiser, uploads multimedia content on a server of a media service provider. The client device of a viewer receives the multimedia content, for example, an advertisement, a commercial message, an educational clip, an entertainment clip, etc., from the server and plays the multimedia content on a display screen of the client device, for example, in an audiovisual format. As used herein, the client device is, for example, an internet-enabled mobile device, a computer with a web browser, a set top box capable of delivering interactive multimedia content, etc. The client device is capable of receiving the multimedia content in different multimedia content formats, for example, Windows® audio video format and other proprietary formats. 
     A random challenge is presented to the viewer by overlaying the random challenge on the multimedia content. The random challenge is random in content, presented at random times during and/or after the play of the multimedia content, and presented at random physical locations on the multimedia content. The random challenge comprises, for example, one or more of a random number, a random icon, a random shape, a product logo, a service logo, a random color, a random mathematical equation, and a random target on the display screen of the client device for the viewer to interact therewith using touch or a pointing device. In an embodiment, the random challenge content is unrelated to the multimedia content. The random challenge changes for each multimedia content viewing. The random challenge is presented at one or more times during and/or after the multimedia content is played. The duration of play of the multimedia content is determined and the random challenge is presented during and/or after the play duration of the multimedia content. 
     One or more responses are invoked from the viewer for one or more presented random challenges. If one or more of the response entered by the viewer for the presented one or more random challenges is correct, the response confirms that the multimedia content has been viewed by the viewer. The presentation of the random challenge to the viewer may be repeated if the response from the viewer to the presented random challenge is incorrect. A response report is generated based on the response from the viewer. The generated response report is transmitted to the server for confirming that the multimedia content has been viewed. 
     In an embodiment, the random challenge is presented by interrupting the play of the multimedia content after an interrupt time period. The interrupt time period is less than duration of the multimedia content. A timer is provided to begin counting the interrupt time period at the start of the play of the multimedia content. When the timer reaches the interrupt time period, the play of the multimedia content is interrupted to present the random challenge to the viewer. 
     The random challenge is presented in different forms such as a visual overlay on the multimedia content, or a child window cascading with the content rendering window, or parent window. For example, the random challenge comprises one or more random numbers presented at different points in time when the multimedia content is being played. The correct response in this example comprises reproduction of the random numbers by entering the random numbers into the client device. In an embodiment, the random challenge comprises, for example, a random pair of geometrical shapes, a random mathematical equation, a random icon, a product logo or a service logo, a color, a target on a touch screen, etc, overlaid at random physical positions on the multimedia content. The correct response may comprise a selection of an option representing a pair of geometrical shapes from an options list, entering the result of the mathematical equation into the client device, selection of an option representing an icon from an options list, selection of an option representing a product logo or a service logo from an options list, selection of an option representing a color from an options list, selection or interaction with a target on a touch screen, etc. respectively. In another embodiment, one or more random challenges are presented at different time intervals during the play of the multimedia content or at the conclusion of the play of the multimedia content. 
     A response for a random challenge is deemed correct, i.e., viewing of the multimedia content is confirmed if the viewer provides the response within a response time-out period after the random challenge is presented. For example, a timer is provided to determine the time lapsed between the presentation of the random challenge and the submission of the response on the client device. 
     The response for a random challenge is invoked at any time during and/or after the multimedia content is played. For example, the viewer may be prompted to enter a response to the random challenge during the play of the multimedia content, or during and also at the end of the play of the multimedia content, or after the multimedia content is played. 
     In an embodiment, the client device downloads the multimedia content when the client device is connected to the server. In this embodiment, when the connection to the server is inactive, the client device renders the downloaded multimedia content in an off-line mode, performs a challenge-response interaction with the viewer, and generates and stores the response report. The off-line mode is triggered when the connection to the server is inactive. When a connection to the server is established via, for example, satellite, the network, etc., the response report is transmitted to the server over the connection. In another embodiment, the client device renders the multimedia content transmitted by the server as streaming multimedia content. In this embodiment, when the connection to the server is active, the client device renders the multimedia content in an online mode and performs a challenge-response interaction with the viewer. The response report generated after completing the challenge-response interaction is transmitted to the server over the active connection. 
     In an embodiment, the viewer is credited with an item of value, for example, cash, if the response report confirms the multimedia content was viewed by the viewer, and the multimedia content owner is debited a fee. When the viewer successfully responds to one or more of the random challenges, the correct or partially correct response to the random challenge indicates a confirmation that the multimedia content has been viewed. In an embodiment, the viewer is eligible for an item of value even when one or more responses entered by the viewer are incorrect. In an embodiment, the viewer is eligible for an item of value for each correct response to a random challenge presented. Offering an item of value for a confirmed view provides an incentive to the viewer to view the entire multimedia content and answer the random challenge presented during or after the play of the multimedia content. In another embodiment, the incentive is in the form of a redeemable credit score accumulated by the viewer over time. The credit score is redeemed, for example, with money, gifts, or any other item of value. The server is configured to receive the response report sent by the client device, and directs a payment module to credit an account of the viewer, for example, with a predetermined amount of money for a confirmed viewing of the multimedia content. In an embodiment, the response report is generated at the server. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       The foregoing summary, as well as the following detailed description of the invention, is better understood when read in conjunction with the appended drawings. For the purpose of illustrating the invention, exemplary constructions of the invention are shown in the drawings. However, the invention is not limited to the specific methods and instrumentalities disclosed herein. 
         FIG. 1  illustrates a first embodiment of a computer implemented method for confirming that a viewer viewed multimedia content on a client device. 
         FIG. 2  illustrates a second embodiment of the computer implemented method for confirming that a viewer viewed multimedia content on a client device. 
         FIG. 3  illustrates a computer implemented system for confirming that a viewer viewed multimedia content on a client device. 
         FIG. 4  exemplarily illustrates a computer system architecture employed on the client device and a server of a media service provider. 
         FIGS. 5A-5D  exemplarily illustrate screen shots for a video advertisement campaign. 
         FIGS. 6A-6D  exemplarily illustrate screen shots for a video advertisement campaign. 
         FIGS. 7A-7D  exemplarily illustrate screen shots of a training video for managers. 
         FIGS. 8A-8D  exemplarily illustrate screen shots for an iPhone application and coupon offer. 
         FIGS. 9A-9D  exemplarily illustrate screen shots for a video advertisement campaign. 
         FIG. 10  exemplarily illustrates a flow diagram for generating and presenting random challenges on multimedia content. 
         FIGS. 11A-11E  exemplarily illustrate a C++ implementation of a challenge generator. 
         FIG. 12  exemplarily illustrates a sample output after executing test cases established for the challenge generator. 
     
    
    
     DETAILED DESCRIPTION OF THE INVENTION 
       FIG. 1  illustrates a first embodiment of the computer implemented method for confirming that a viewer viewed multimedia content on a client device  301 . As used herein, the term “multimedia content” refers to different combined and individual formats of content, such as, text, audio, video, audiovisual, still images, animations, and rich content formats. The computer implemented method and system disclosed herein is used for promoting the viewing of multimedia content, for example, an advertisement clip of a product by providing an incentive to the viewer to view the multimedia content. The method and system can be used, in general, for confirming that the viewer has viewed the multimedia content that is commercial, educational, and entertaining in nature. 
     In the computer implemented method disclosed herein, viewing of the multimedia content is confirmed using a challenge-response mechanism. The challenge-response is incorporated within the multimedia content available for consumption by the viewer on a client device  301  capable of connecting to a network  303  and capable of rendering multimedia content formats. 
     The client device  301  possessed by the viewer is capable of establishing a client-server relationship with a server  302  via a network  303  as illustrated in  FIG. 3 . The client device  301  may also download a client software module, for example, a view confirmation module  301   b  over the network  303  for making service requests to the server  302 , while the server  302  addresses the service requests. The network  303  is, for example, a cellular network, the internet, a local area network, or any other network established using available networking protocols. 
     A multimedia content owner, for example, an advertiser, uploads multimedia content, for example, an advertisement, a commercial message, an educational clip, an entertainment clip, etc. on a server  302  of a media service provider. As used herein, “multimedia content owner” refers to an entity that generates multimedia content. Also, as used herein, “media service provider” refers to a service entity that provides the service of confirming that a viewer has viewed multimedia content uploaded by the multimedia content owner on the server  302 . The client device  301  of a viewer receives  101  the multimedia content from the server  302  and plays the multimedia content on a display screen  301   a  of the client device  301 , for example, in an audiovisual format. As used herein, the client device  301  refers to, for example, an internet-enabled mobile device, a computer with a web browser, and a set top box capable of delivering interactive multimedia content, etc. The client device  301  is capable of receiving the multimedia content in different multimedia content formats, for example, Windows® audio video format, and other proprietary formats. A random challenge is presented  102  to the viewer by overlaying the random challenge on the multimedia content. The random challenge comprises, for example, one or more of a random number, a random icon, a random shape, a product logo, a service logo, a random color, a random mathematical equation, and a random target on the display screen  301   a  of the client device  301  for the viewer to interact therewith using touch or a pointing device. The random challenge is overlaid at different positions on the multimedia content. The random challenge is overlaid using technologies, for example, Adobe® Flash or other video creation standards. The streams comprising the random challenge and the multimedia content are integrated at either the server level or combined at a web browser on the client device  301  of the viewer. The random challenge and the multimedia content may arrive at the client device  301  of the viewer as a single integrated stream or as two independent streams that are combined in real time at the client device  301 . 
     The content of the random challenge is, for example, numbers, letters, shapes, phrases, etc., from a predefined set. The random challenge is random in content, presented at random times during and/or after play of the multimedia content, and presented at random physical locations on the multimedia content. In an embodiment, the random challenge content is unrelated to the multimedia content. 
     In an embodiment, the challenge is a pseudorandom challenge. A pseudorandom challenge involves the random selection of a limited set of challenge icons from a fixed data set, displayed at random times with certain defined boundaries, and at random physical placements within a display screen  301   a . For example, the pseudorandom challenge involves a random selection of a number between 0-9; a random selection of a shape among, for example, a circle, square, triangle; a random selection of a letter within the alphabet, etc. Furthermore, the pseudorandom challenge comprises random placement of the randomly selected content, both in terms of time and space within the multimedia content. The pseudorandom placement of the challenge can define time boundaries. For example, a first challenge occurs between second “X” and second “Y” of the multimedia selected for play, while a second challenge occurs within 10 seconds of the end of the play. The two-dimensional space defined by the display screen  301   a  within which the challenge occurs can also be pseudorandom within fixed parameters. For example, the pseudorandom challenge appears in one of the four corners of the display screen  301   a , each time a pseudorandom challenge is displayed, at a pseudorandom time. 
     In an embodiment, the client device  301  receives a list of multimedia content from the server  302  for selection by the viewer. The multimedia content selected by the viewer is rendered on the display screen  301   a  of the client device  301 , and the duration of play of the selected multimedia content is determined. A random challenge is presented at one or more points in time by overlaying the random challenge on the rendered multimedia content. For example, the random challenge is presented for N seconds, after L seconds elapse with an audio-video clip of duration M seconds, wherein L is less than M. The random challenge is presented at one or more times during and/or after the multimedia content is played. The random challenge changes for each multimedia content viewing. 
     One or more responses are invoked  103  from the viewer for the presented random challenge. A response may be invoked from the viewer at the end of play of the multimedia content. If the viewer enters the response to the presented random challenge, the response confirms  104  that the multimedia content has been viewed by the viewer. The viewer may enter a response to the random challenge during the play of the multimedia content, and optionally during and after the multimedia play, and optionally after the multimedia play. A response report is generated  105  based on the response from the viewer. The generated response report is transmitted to the server  302  confirming that the multimedia content has been viewed by the viewer. In an embodiment, the response report is generated on the server  302 . 
     In an embodiment, the presentation of the random challenge to the viewer is repeated if the response from the viewer for the presented random challenge is incorrect. The steps of rendering the viewer selected multimedia content, presenting a random challenge, invoking a response, and generating a response report may be repeated for other multimedia content in the list depending on the selection of the viewer. 
     The random challenge is presented in different forms, for example, a visual overlay on the multimedia content or a child window cascading with the content rendering window. For example, the random challenge is presented as a graphical user interface (GUI) widget. In another example, the random challenge is a short audio message introduced briefly into visual-only media content. The randomness in the challenges is due to the randomness in visual elements presented in the challenges as well as the responses that the challenges elicit during or after multimedia content is played. For example, the random challenge comprises one or more random numbers flashed at different points in time when a multimedia content is being played. The correct response in this example comprises reproduction of the random numbers by entering the random numbers into the client device  301 . The response is verified by comparing the numbers entered by the viewer with the numbers flashed in the multimedia content. The random challenge further comprises, for example, one or more random geometrical shapes presented at different points in time, a random mathematical equation, a random icon, a product logo or a service logo, a color, a target on a touch-sensitive screen that the viewer has to touch, a target that is pointed at by a pointing device, etc. In these examples, the correct response comprises a selection of an option representing the geometrical shapes from an options list, entering the result of the mathematical equation into the client device  301 , selection of an option representing an icon from an options list, selection of an option representing a product logo or a service logo from an options list, selection of an option representing different colors from an option list, selection or interaction with the target on a touch screen, etc. respectively. 
     In an embodiment, one or more random challenges are presented at one or more times or at different time periods, during or after the multimedia content is played. For example, the first challenge is presented half way through the play of a multimedia clip and the second challenge is presented at the end of the multimedia clip. 
     The viewer is requested to provide a response to the random challenge on the client device  301  within a predetermined period of time after the random challenge is presented. A response for a random challenge may be deemed valid if the viewer provides the response within a response time-out period after the random challenge is presented. A timer  301   f  is provided to determine the time lapsed between the presentation of the random challenge and the submission of the response. 
     In an embodiment, the viewer is credited  106  with an item of value, for example, cash, if the response report confirms the multimedia content has been viewed by the viewer, while the multimedia content owner is debited a fee for the service provided to the multimedia content owner by the media service provider of the multimedia content. When the viewer&#39;s response to the random challenge is correct or partially correct in the event that more than one random challenge is presented to the viewer, the correct response to the random challenge confirms that the multimedia content was viewed. In an embodiment, the viewer is optionally eligible for an item of value even when one or more responses entered by the viewer are incorrect. In an embodiment, where the number of random challenges presented is more than one, the viewer is eligible for an item of value for each correct response. 
     Offering an item of value for a confirmed view provides an incentive to the viewer to view the entire multimedia content and answer the random challenge that is presented during or after the play of the multimedia content. In an embodiment, the incentive is in the form of a redeemable credit score accumulated by the viewer over time. For example, offering an incentive to answer the random challenge presented within an advertisement clip generates interest in a potential buyer to view the entire advertisement clip, thereby promoting the service or product advertised in the multimedia content. In an embodiment, the incentive is in the form of a redeemable credit score accumulated by the viewer over time. The credit score is redeemed with, for example, money, gifts, or any other items. The server  302  is configured to receive the response report sent by the client device  301 , and directs a payment module  302   b  to credit an account of the viewer with an item of value, for example, a predetermined amount of money for the confirmed view. In an embodiment, the response report is generated at the server  302 . 
     The response for a random challenge is invoked at any point in time during or after the multimedia content is played. For example, the viewer is prompted to enter a response to the random challenge at the end of the duration of the multimedia content. The random challenge may appear once or multiple times when the multimedia content is played on the viewer&#39;s device. The viewer may be prompted to answer the random challenge either during or immediately following the completion of the multimedia content. In an example, the multimedia content is an audio-video file with a duration of 20 seconds. During the playing of the video, the numerals 7 and 9 are each flashed for 2 seconds, for example, at the 10 th  and 15 th  second respectively, after the start of the play of the video for the observation of the viewer. At the completion of the audio-video file, an answer box appears prompting the viewer to enter the numbers flashed during the audio-video, in order to register a correct response and therefore a confirmation of the view. 
     In another example scenario, a video is played to the viewer, during which a pair of geometrical shapes, for example, a circle followed by a square appear in subsequent frames of the video. The geometrical shapes are overlaid at random positions on the video and appear independent of the video, or appear as part of the video. At the completion of the video, a pull down answer menu appears with several shape pairs as options. The viewer selects the correct option in the menu to register a correct response. In another example, a video is played in the primary window of the user interface and a child window appears either cascaded with or alongside the parent window. The companion window displays a mathematical equation, such as (3+3=?), as the challenge. The video is paused momentarily, or for a response time-out period within which the viewer is required to enter the correct answer, in this case 6. In an embodiment, the viewer is required to submit the correct response in order to resume playing of the video or avoid termination of the video. In another example, a color is flashed in the foreground or the background when the video clip is being played. The viewer is required to either enter a description of the color or select the color from an options list to register a correct response. 
     In an embodiment, the random challenge comprises a target that appears on a touch-sensitive screen of an iPhone of Apple Inc. or other touch sensitive Internet connected devices. The random challenge appears on the screen during the playing of a video. The response is invoked in real-time and involves the viewer touching a position on the touch sensitive screen where the target appears. For example, a commercial on baseball is displayed on the touch sensitive screen. During the play of the commercial, various baseball team logos are randomly displayed, each for 2 to 3 seconds. The viewer can confirm viewing of the commercial by touching the touch sensitive screen when and where the logos appear. In an embodiment, the challenge and response interactions are implemented using GUI widgets. The challenge presented to the viewer is to pinpoint a position on the parent window where a child window, such as modal window, appears at a random position during the playing of the video in the parent window. A modal window is a child window that requires the viewer to interact with the child window before the viewer can return to the flow of the parent window. The challenge further comprises selecting the pinpointed position within a response time-out period. The selection of the pinpointed position is performed, for example, using a touch stylus on a touch-sensitive screen, or using a pointing device and a corresponding pointer on the screen. For this example, the user interface is touch-sensitive screen or a pointing device in conjunction with a regular screen, respectively. The child window presenting the challenge may comprise a button that has to be selected by the viewer within the response time-out period to register a valid response. In another example, the viewer is required to complete more than one challenge-response interaction, that is, locate and select more than one random position at different time periods. For example, during the playing of a video in the parent window, a first button appears for 5 seconds at half-way through the video, while a second button appears for 5 seconds at the end of the video. The viewer is required to locate and select both the buttons within the relevant response time-out periods to register a valid response. 
     In an embodiment, the random challenge content is either visual or aural. In the latter case, the random challenge content is in a non visual alphanumeric form. If the random challenge content is aural in nature, the random challenge content is, for example, alphanumeric or indicative of a logo, icon, symbol, shape, picture, etc. If the random challenge content is visual, the random challenge content is, for example, in the form of a logo, icon, symbol, shape, picture, etc. The response for the random challenge requires the viewer to enter the random challenge content, or to select the correct option from the presented options. The response is also manually or orally registered. For example, the viewer has to perform a manual action such as depressing a button, operating a pointing device or touching a screen, or utter words or sounds to register a response. 
     Consider an example where the challenge content is visually presented to the viewer. The challenge content, such as, a logo, an icon, a symbol, a shape, a picture, etc. is displayed for 5 seconds within a first child window during the play of an advertisement in a parent window or content rendering window. A second child window displays a message or a prompt such as “Provide the symbol above at the end of the advertisement” or “Select the symbol previously displayed”. Consider another example where the challenge content is aurally presented to the viewer during the play of an advertisement. A speech synthesizer provides an audible sound indicative of the challenge content, and also prompts the viewer to remember and submit the challenge content at the end of the advertisement, for example, “Enter the two digits that you heard”. The viewer submits the response by selecting the correct option indicative of the challenge content presented. The viewer also submits the response by depressing the appropriate alphanumeric keys of the input means of the client device  301 . In another example, the viewer submits the response by uttering or orally articulating the challenge content, which is processed by suitable voice recognition software in the client device  301  or the server  302 . In an embodiment, the viewer is required to submit the correct response within a time-out period. 
     In the event that the viewer enters an incorrect response or enters the response after the elapse of the response time-out period, the challenge-response module  301   d  displays an error message or a prompt message, prompting the viewer to restart or replay the multimedia content. For example, the prompt message: “You have not entered the required digits quickly enough, or you have entered the wrong digits. Would you like to replay the advertisement?” is displayed, inviting the viewer to select either a “Yes” option or a “No” option. If the viewer chooses to replay the multimedia content, the multimedia content is replayed and the procedure is repeated with another challenge-response sequence. If the viewer chooses not to replay the multimedia content, the response report is generated indicating the incorrect response in the previous attempt, and the play of the multimedia content is terminated. 
       FIG. 2  illustrates a second embodiment of the computer implemented method for confirming that a viewer viewed multimedia content on a client device  301 . One or more multimedia content owners upload multimedia content on the server  302  of the media service provider. The client device  301  of a viewer receives  101  the multimedia content, for example, an advertisement, a commercial message, an educational clip, an entertainment clip, etc., from the server  302  and plays the multimedia content on a display screen  301   a  the client device  301 , for example, in an audiovisual format. The play of the multimedia content is interrupted  201  after an interrupt time period for presenting a random challenge. The interrupt time period is less than duration of the multimedia content. The random challenge content is generated and displayed at random on the multimedia content. The random challenge is presented to the viewer by overlaying the random challenge on the multimedia content as explained in the detailed description of  FIG. 1 . A response is invoked  103  from the viewer for the presented random challenge. If the viewer enters the response to the presented random challenge, the response confirms  104  that the multimedia content has been viewed by the viewer. A response report is generated  105  based on the response from the viewer. The viewer is credited  106  with an item of value, if the response report confirms the multimedia content was viewed by the viewer, while the multimedia content owner is debited a fee. 
     In an embodiment, the client device  301  receives a list of multimedia content from the server  302  for selection by the viewer as explained in the detailed description of  FIG. 1 . The multimedia content selected by the viewer is rendered on the client device  301  and the duration of the selected multimedia content is determined. The rendering of the multimedia content is interrupted after an interrupt time period for presenting a random challenge. The interrupt time period is less than the duration of the rendered multimedia content. For example, an audio-video clip of duration M seconds is interrupted, L seconds after the audio-video clip commences, for presenting a random challenge. The steps of rendering the viewer selected multimedia content, interrupting the multimedia clip for presenting a random challenge, invoking a response, and generating a response report may be repeated for other multimedia content in the list depending on the selection of the viewer. In an embodiment, the interrupted multimedia content is not resumed until a correct response is submitted for the random challenge by the viewer. 
     The interrupt time period is generated using a random generator. A timer  301   f  is provided to begin counting the interrupt time period at the start of the play of the multimedia content. When the timer  301   f  reaches the interrupt time period, the play of the multimedia content is interrupted to present the random challenge to the viewer on the client device  301 . 
       FIG. 3  illustrates a computer implemented system for confirming that a viewer viewed multimedia content on a client device  301 . The computer implemented system comprises a server  302  and a client device  301  connected via a network  303 . The client device  301  comprises a display screen  301   a , an input means (not shown), a transceiver  305 , and a timer  301   f . The server  302  comprises an upload module  302   f , a network interface  302   e , a report receiving module  302   a , a media database  302   d , a media aggregator  302   c , and a payment module  302   b . The system disclosed herein further comprises a view confirmation module  301   b  provided on the client device  301  or the server  302 . The server  302  provides multimedia content to a viewer. 
     The upload module  302   f  enables one or more multimedia content owners to upload the multimedia content on the server  302 . The client device  301  connects to the server  302  via the network  303  for receiving the multimedia content from the server  302 . The multimedia content is played on the display screen  301   a  of the client device  301 . The view confirmation module  301   b  on the server  302  or the client device  301  confirms that the viewer has viewed the multimedia content on the client device  301 . The view confirmation module  301   b  comprises a challenge generator  301   c , a challenge-response module  301   d , and a report generation module  301   e . The challenge generator  301   c  generates a random challenge that is random in content, presented at random times during and/or after play of the multimedia content, and presented at random physical locations on the multimedia content. The challenge generator  301   c  may also generate a pseudorandom challenge as explained in the detailed description of  FIG. 1 . The challenge-response module  301   d  presents the generated random challenge to the viewer on the display screen  301   a  of the client device  301  by overlaying the generated random challenge on the multimedia content. The challenge-response module  301   d  presents one or more random challenges at one or more times during and/or after the multimedia content is played. The timer  301   f  counts an interrupt time period for interrupting the playing of the multimedia content and presenting the random challenge, wherein the interrupt time period is less than duration of the multimedia content. 
     The challenge-response module  301   d  invokes a response from the viewer for the presented random challenge. The viewer enters the response to the presented random challenge using the input means on the client device  301 . The timer  301   f  ensures that the viewer provides the response to the random challenge within a predetermined period of time after the random challenge is presented. The challenge-response module  301   d  determines if the viewer enters a response for the presented random challenge. The response confirms that the multimedia content has been viewed by the viewer. The challenge-response module  301   d  also determines if the response from the viewer to the presented random challenge is correct. A correct response confirms that the multimedia content has been viewed by the viewer. The report generation module  301   e  generates a response report based on the response from the viewer and transmits the response report to the server  302 . 
     The payment module  302   b  credits the viewer with an item of value and debits a fee from the multimedia content owner, if the response report confirms that the multimedia content was viewed by the viewer In an embodiment, the payment module  302   b  credits the viewer with an item of value and debits a fee from the multimedia content owner for each correct response that the viewer provides to one or more of the presented random challenges. 
     The server  302  transmits multimedia content to the viewer either on request or automatically. The media database  302   d  stores several multimedia content files in different formats, and is updated after every cycle of production of multimedia content. The multimedia content stored in the media database  302   d  comprises audio, video, internet web pages, interactive games and applications, and other playable formats. The media aggregator  302   c  queries the media database  302   d  and prepares a list of multimedia content available for distribution over the network  303 . The network interface  302   e  connects the server  302  to the network  303 , such as the internet, a wireless network, or a wired network. 
     The client device  301  comprises a transceiver  305  that connects the client device  301  to the server  302  via the network  303 . In the case of a cellular client device, the transceiver  305  communicates with the server  302  via a cellular telephone network  304 . The input means accepts a selection of the multimedia content from the viewer. The client device  301  is capable of downloading, storing, and rendering multimedia content of one or more formats obtained from the server  302 . The multimedia content, incorporating the challenge response mechanism, may also be transmitted through the network  303  and rendered on a web browser in an internet enabled client device or mobile phone as streaming multimedia content. The multimedia content may also be distributed to televisions via integrated receivers/decoders or set top boxes and viewed through interactive television. In an example, the multimedia content is made available in an interactive group setting or multi-viewer environment, such as a focus group, for viewing the multimedia content, discussing, testing, or any other purposes. 
     The challenge-response module  301   d  in the view confirmation module  301   b  presents a random challenge by briefly overlaying the random challenge on the multimedia content being played. The challenge-response module  301   d  invokes a response from the viewer for the random challenge. In an embodiment, the server  302  comprises the view confirmation module  301   b  either in addition to or as a substitute for the challenge response module  301   d  on the client device  301 . The report receiving module  302   a  receives the response report transmitted by the client device  301 . The payment module  302   b  in communication with the report receiving module  302   a  generates and maintains a monetary credit for the viewer based on the response report. 
     In an embodiment, the client device  301  downloads the multimedia content when the client device  301  is connected to the server  302 . If eventually the viewer launches the view confirmation module  301   b  when the connection to the server  302  is inactive, the client device  301  renders the downloaded multimedia content in an off-line mode, performs a challenge-response interaction with the viewer, and generates and stores the response report. The off-line mode is triggered when the connection to the server  302  is inactive. When a connection to the server  302  is established via, for example, satellite, the network  303 , etc., the response report is transmitted to the server  302  over the connection. In another embodiment, the client device  301  renders the multimedia content transmitted by the server  302  as streaming multimedia content. If the viewer launches the view confirmation module  301   b  when the connection to the server  302  is active, the client device  301  renders the multimedia content in an online mode. In an embodiment, the challenge-response interaction with the viewer is performed by the view confirmation module  301   b  on the server  302 . The response report generated after completing the challenge-response interaction is transmitted to the server  302  over the active connection. The response report is also generated by the view confirmation module  301   b  on the server  302  in the online mode. 
     In an embodiment, the server  302  may periodically notify the viewer of the available multimedia content, such as advertisements, including the amount payable to the viewer for viewing each advertisement. The server  302  also notifies the viewer of the available advertisements upon request of the viewer. For example, the server  302  periodically transmits short message service (SMS) messages to the client device  301 , for example, a cellular phone of the viewer. In another example, the server  302  may notify the viewer by broadcasting unstructured supplementary service data (USSD) messages. Upon the request of the viewer, the server  302  may transmit an updated list of multimedia content to the client device  301  for selection and viewing by the viewer. 
     In an embodiment, the server  302  further comprises a registration facility whereby a potential viewer registers the client device  301  for the service. During the registration process, the viewer is requested to submit the unique identifier of the client device  301 , an identity of the viewer, and optionally a password or a personal identification number (PIN) for authentication, and a credit account number. After completing the registration process, a user identifier (ID) and suitable software module, such as, the view confirmation module  301   b  is supplied to the client device  301  of the viewer. The view confirmation module  301   b  is executed for programming the client device  301  of the viewer, whereby the client device  301  is rendered capable of establishing a client-server relationship with the server  302 . 
     In an example, the viewer requests the server  302  to access the service through the client device  301 . The server  302  verifies whether the viewer is authenticated to access the service by requesting the user identifier supplied during registration, and transmits multimedia content to the client device  301  for selection. If the server  302  fails to authenticate the viewer, the server  302  prompts the viewer to undergo the registration process. The viewer may choose to continue with the registration process or terminate the connection to the server  302 . In the former example, the multimedia content is received by the client device  301 . The client device  301  launches the view confirmation module  301   b  and the display screen  301   a  presents a menu with options for displaying the list of multimedia content including the monetary amount payable to the viewer for viewing each multimedia content item in the list. The viewer selects a desired multimedia content item using the menu, and the selected multimedia content item is played to the viewer. The challenge-response module  301   d  presents the random challenge and invokes a response during or after the multimedia content is played. 
     The report generation module  301   e  generates a response report with report details based on the response received from the viewer. The client device  301  verifies whether the connection to the server  302  is active, and transmits the response report to the server  302 . The report receiving module  302   a  receives the response report and instructs the payment module  302   b  to credit the viewer&#39;s account with a designated amount of money. If the connection to the server  302  is temporarily unavailable, the response report is temporarily stored in the client device  301 , and transmitted when the connection is available again. The recently viewed multimedia content is deleted from the list, and the list of available multimedia content is updated and displayed again on the client device  301  for repeating the steps described above. Alternatively, the viewer may choose to terminate the view confirmation module  301   b  at this point by selecting an exit option from the menu. 
       FIG. 4  exemplarily illustrates a computer system architecture employed on the client device  301  and the server  302  of the media service provider. The computer system  400  executes the view confirmation module  301   b . The computer system  400  comprises a processor  401 , a memory unit  402  for storing programs and data, an input/output (I/O) controller  403 , an interface  404 , and a display unit  406  communicating via a data bus  405 . The memory unit  402  comprises a random access memory (RAM) and a read only memory (ROM). The computer system  400  further comprises one or more input devices  407 , for example, a keyboard  411  such as an alphanumeric keyboard, a mouse  413 , a joystick  412 , a touch-sensitive screen, etc. The computer system  400  communicates with other computer systems through the interface  404 , comprising, for example, a Bluetooth® interface, an infrared (IR) interface, a WiFi interface, a universal serial bus interface (USB), a local area network or wide area network (LAN or WAN) interface, etc. 
     The computer system  400  further comprises a fixed media drive  408  and a removable media drive  409  for receiving removable media. The computer system  400  further comprises output devices, for example, a printer  410  for receiving and reading digital data on a compact disk, a digital video disk or other medium. Computer applications or programs are used for operating the computer system  400 . The programs are loaded onto the fixed media drive  408  and into the memory unit  402  of the computer system  400  via the removable media drive  409 . Applications are executed by double clicking a related icon or menu displayed on the display unit  406  using the mouse  413  or through other input devices  407 . Further the computer system  400  employs an operating system for performing multiple tasks. The operating system manages execution of the view confirmation module  301   b  and other modules of the client device  301  or server  302 . 
     The operating system further manages security of the computer system  400 , peripheral devices connected to the computer system  400 , and network connections. The operating system recognizes keyboard inputs and pointing device inputs of a viewer, output display, files and directories stored locally on the fixed media drive  408 . Different programs, for example, web browser, e-mail application, etc. initiated by the viewer are executed by the operating system with the help of the processor  401 , for example, a central processing unit (CPU). The operating system monitors the use of the processor  401 . 
     The instructions from the view confirmation module  301   b  are stored in the memory unit  402 . The multimedia content is transferred from the media database  302   d  to the view confirmation module  301   b  through the interface  404  and via the network  303 . A viewer initiates the execution of the view confirmation module  301   b  by double clicking on the icon for the view confirmation module  301   b  on the display unit  406  or the execution of the view confirmation module  301   b  is automatically initiated on transmitting multimedia content to the view confirmation module  301   b . The CPU retrieves instructions for executing the view confirmation module  301   b  from various modules, for example, the challenge generator  301   c , the challenge-response module  301   d , and the report generation module  301   e  in the view confirmation module  301   b . The locations of the instructions in the modules  301   c ,  301   d , and  301   e  are determined by a program counter (PC). The program counter stores a number that identifies the current position in the program of the view confirmation module  301   b . The instructions fetched by the CPU from the program memory after being processed are decoded. The instructions are placed in an instruction register (IR) in the CPU. After processing and decoding, the CPU executes the instructions. The instructions comprise, for example, rendering the multimedia content selected by the viewer, presenting a random challenge by overlaying the random challenge on the multimedia content, generating a response report for the viewer, etc. At the time of execution, the instructions stored in the instruction register are examined to determine the operations to be performed. The specified operation is then performed by the CPU. The operations include arithmetic and logic operations. 
     The operating system performs multiple routines for performing a number of tasks required to assign input devices  407 , output devices, and memory for execution of the view confirmation module  301   b . The tasks performed by the operating system comprise assigning memory to the view confirmation module  301   b  and data, moving data between memory and disk units and handling input/output operations. The operating system performs the tasks on request by the operations and after performing the tasks, the operating system transfers the execution control back to the CPU. The CPU continues the execution to obtain one or more outputs. The outputs of the execution of the view confirmation module  301   b  are displayed to the viewer on the display unit  406 . 
     An exemplary server setup as illustrated in  FIG. 3  comprises a media database  302   d  for storing multimedia content of commercial, educational, and entertaining in nature. For example, multimedia content such as advertisement media clips are obtained in suitable formats from advertisement agencies or media representatives of product and service companies, and uploaded to the media database  302   d . In another example, the advertisement agencies or the media representatives undertaking extensive campaigning may add new advertisement media clips, and update or modify existing advertisement media clips by accessing the media database  302   d . The media aggregator  302   c  recognizes changes made to the contents of the media database  302   d , including metadata changes, for example, changes in the duration of the advertisement media clips, the names of the advertisement media clips, etc., and prepares and updates the list of multimedia content. 
     The server  302  may allow controlled access to the server  302  and the resources therein, such as the media database  302   d , through a web front-end. An example of such a web front-end is a website, for example, http://www.beezag.com. The advertisement agencies or the multimedia representatives are required to setup an account for themselves by registering as an approved advertiser through the web front-end before submitting their advertisement clips. The approval workflow for registering advertiser accounts and uploading advertisement clips may be assigned to process owners or administrators on a regional basis. Furthermore, the approval workflow may include different stages of approval such as account-level approval, financial approval, and publishing approval. After the advertiser registers an account, the advertiser may upload advertisement clips and other multimedia content into the media database  302   d  for distribution to targeted viewers. The advertiser may be charged a designated amount for each confirmed view and non-confirmed view response report received by the server  302 . 
     The advertisement multimedia clips comprise, for example, audio clips, video clips, animations, still images, text attachments, or suitable combinations of these. The advertisement clips also comprise promotional segments such as universal resource locators (URLs) directing viewers to the web front-end or other proprietary websites of the product and service companies. The promotional segments may also include digital coupons or vouchers redeemable for special discounts on advertised products and services, questionnaire for sharing additional information, etc. The coupons and vouchers may also be distributed to targeted viewers via SMS messages. 
     In an embodiment, the viewer is prompted to share the viewed multimedia content, such as advertisement clips through the view confirmation module  301   b  on the client device  301  or the server  302 . The viewers may share the advertisement clips by syndicating or micro-blogging the advertisement clips on social networking websites such as Twitter™, Facebook™, Myspace™, etc., or by forwarding the advertising clips through email services and SMS. 
     Enumerated herein are examples of the computer implemented method and system disclosed herein, categorized by the challenge content and the invoked response. In an example, the challenge content and the invoked response comprise visual and mentally-solvable challenge-responses. For example, Pfizer Inc. creates a video advertisement for Purell® hand sanitizer targeted for mothers of children between the ages of 5 to 21. A video advertisement campaign is created and uploaded into the media database  302   d  using the upload module  302   f , via the web front-end of the media service provider, for delivery to the target demographic membership selected in the web front-end.  FIGS. 5A-5D  exemplarily illustrate screen shots for a video advertisement campaign for the hand sanitizer. An alphanumeric-based challenge comprising random letters is presented to the viewer during the play of the video advertisement. A first letter “C” occurs at 10 seconds into the video advertisement and is placed in the top right corner of the display screen  301   a  as illustrated in  FIG. 5A . A second letter “X” occurs 5 seconds before the end of the video advertisement and is placed in the bottom right corner of the display screen  301   a  as exemplarily illustrated in  FIG. 5B . When the video advertisement ends, the viewer is presented with a question, for example, “Which two letters appeared during the advert?” as exemplarily illustrated in  FIG. 5C . If the viewer answers the question accurately, the viewer confirms viewing of the video advertisement. The view confirmation module  301   b  sends a message, for example, “You have answered correctly!” as exemplarily illustrated in  FIG. 5D  and credits an item of value, for example, $1, to the viewer&#39;s account. The view confirmation module  301   b  enables control of random challenge variables, for example, the number of alphanumeric characters presented during the advertisement play, the timing of the appearance and disappearance of the alphanumeric characters, a threshold accuracy of the viewer&#39;s response to the challenge to register a positive response, the time-out period for the response, etc. 
     In another example, the Kentucky Fried Chicken (KFC®) Corporation creates a video advertisement for their new chicken snacker targeted for men and women between the ages 18 to 55 in northeast United States. A video advertisement campaign is created and uploaded into the web front-end for delivery to the target demographics.  FIGS. 6A-6D  exemplarily illustrate screen shots for a video advertisement campaign for KFC&#39;s chicken snacker. A keywords and phrases based challenge comprising a random word or phrase is presented to the viewer during the play of the video advertisement. During the play of the video advertisement as exemplarily illustrated in  FIG. 6A , the phrase “Finger Licking Good!” is presented in a child window as exemplarily illustrated in  FIG. 6B . When the video advertisement ends, the viewer is presented with a question about the words or phrases presented during the video advertisement as exemplarily illustrated in  FIG. 6C . If the viewer answers the question correctly, the viewer confirms viewing of the video advertisement as exemplarily illustrated in  FIG. 6D . Amongst the random challenge variables, a variable in this example is the description of the keywords and phrases in a predefined set for random selection. The phrases in the predefined set comprise, for example, “Think KFC”, “Finger Licking Good”, “We do chicken right”, “There&#39;s Fast Food, Then There&#39;s KFC”, etc. 
     In another example, a human resource consultancy creates a sexual harassment training video for managers of employees in the state of California. The video is delivered online in discreet video chapters.  FIGS. 7A-7D  exemplarily illustrate screen shots of a training video for managers. A mathematical equation based challenge selected by the consultancy, comprising a random equation (3+4=?) or random numbers such as “6” and “2” as exemplarily illustrated in  FIGS. 7A-7B  is presented to the viewer during the video chapter. When the video chapter ends, the viewer is presented with an opportunity to submit a solution to the mathematical equation, such as, “What is the sum of the numbers shown during the video?” as exemplarily illustrated in  FIG. 7C . If the viewer answers the question accurately, the viewer confirms viewing of the video chapter as exemplarily illustrated in  FIG. 7D . Amongst the random challenge variables, a variable in this example is the degree of difficulty of the random equations depending on the operators in the equation. 
     In another exemplary category, the challenge content and the invoked response comprise visual and motor based challenge-responses. Johnson &amp; Son, Inc. creates an iPhone application and coupon offer for Off!® Insect Repellants targeted for iPhone users herein referred to as “viewers”.  FIGS. 8A-8D  exemplarily illustrate the screen shots for an iPhone application and coupon offer. The iPhone application randomly overlays and removes images of mosquitoes and other bugs as exemplarily illustrated in  FIG. 8B-8C  during the play of a video and requests the viewer to, for example, “Squash all the insects while viewing the advertisement” as exemplarily illustrated in  FIG. 8A . In responding to the challenge in real time, the viewer touches the iPhone screen for simulating squashing of the random bugs that appear during the video. When the video ends, the viewer is presented with a score reflecting the viewer&#39;s performance. If the score is sufficient, the viewer is presented with a digital coupon as exemplarily illustrated in  FIG. 8D . If the score is insufficient, the viewer has the opportunity to replay. The random challenge variables, such as, the number of bug images presented during the video play, the timing of the appearance and disappearance of the bug images, a threshold score for earning a coupon, etc. is implemented in the iPhone application. 
     In another example, Johnson &amp; Son, Inc. creates a web-based gaming application and coupon offer for “Off! Insect Repellants” targeted for males and females of ages 18 to 55 and above in the southeast, United States. The web-based gaming application randomly overlays and removes images of mosquitoes and other bugs during the play of a video. In responding to the challenge in real time, the viewer right-clicks over as many bug images as possible on a computer monitor screen, for simulating squashing of the random bugs, before the video ends. When the video ends, the viewer is presented with a score reflecting the viewer&#39;s performance. If the score is sufficient, the viewer is presented with a digital coupon to print or forward to a mobile client device. If the score is insufficient, the viewer has the opportunity to replay. 
     In another example, the challenge content and the invoked response comprise audio based challenge-responses. For example, the San Diego zoo creates a video advertisement for the summer season targeting mothers in southern California. A video advertisement campaign is created and uploaded into the web front-end for delivery to the target demographics.  FIGS. 9A-9D  exemplarily illustrate the screen shots for a video advertisement campaign. A hear and type challenge is presented to the viewer with a question about the audio elements randomly inserted and overlaid onto the audio content of the video advertisement as exemplarily illustrated in  FIGS. 9A-9B . The random audio elements comprise, for example, animal sounds, bird sounds, etc. The question is, for example, “What animal produced the sounds you heard?” as exemplarily illustrated in  FIG. 9C . If the viewer answers the question accurately, the viewer confirms viewing of the video advertisement as exemplarily illustrated in  FIG. 9D . Among the random challenge variables, a variable in this example is the type of audio elements in the predefined set for random selection and overlaying. 
     In another example, the San Diego zoo creates a mobile phone based marketing campaign for the summer season targeted at mothers in southern California. The marketing campaign involves a chance to win a 10% discount on adult entry ticket prices. The mobile phone based marketing campaign is created for delivery to the target demographics, and a hear and speak challenge-response is selected by the advertiser. A mobile phone user is notified of the marketing campaign through print advertisements or USSD broadcast messages directing the mobile phone user to call a phone number, listen to the summer events at the zoo, and win a 10% discount on the entry ticket price. When the mobile phone user calls, the mobile phone user is greeted with a recorded voice that lists the upcoming zoo events and attractions. The recorded voice is randomly interrupted, for example, by the sounds of animals and birds, etc. At the end of the call, the recorded voice presents the mobile phone user with a question about the audio elements randomly inserted and overlaid onto the recorded voice. The mobile phone user is then prompted to answer with a voice prompt, for example, “Speak your answer at the tone”. The speech recognition software in the mobile phone or the server  302  processes the speech utterance representing the answer from the mobile phone user. If the mobile phone user answers the question accurately, the mobile phone user confirms that the mobile phone user has listened to the voice recording, and obtains a coupon by SMS. Amongst the random challenge variables, a variable in this example is the accuracy in recognizing the speech utterance that qualifies the mobile phone user to type in the answer using a keypad for a positive response. 
       FIG. 10  exemplarily illustrates a flow diagram for generating and presenting random challenges on multimedia content. The viewer requests  1001   a  video for viewing from the server  302 . The client device  301  receives the requested video and also retrieves  1002  the meta data associated with the video. The video is stored  1003  in the client device  301 . The meta data of the video is parsed  1004  to determine, for example, the duration of the video. The challenge parameters, for example, the number of challenges  1005 , the type of content  1006 , the number of locations  1007  within predefined limits, the timing  1008  of the challenges including restrictions on the timing of the challenges are invoked based on the meta data of the video. One or more of the random challenge content is randomly selected  1009  from the available content types. The random locations and timing of the challenges are also determined  1010  and  1011 . The selected content is verified to determine whether the challenge content is within the limits of the invoked parameters, such as the number of challenges  1012 , number of locations  1013 , timing restrictions  1014 , etc. The challenge files are created  1015  with the selected challenge content, locations, and timing. The challenge content in the challenge files created are overlaid  1016  on the stored video. The video with the incorporated challenge content is streamed  1017  or played to the viewer. 
       FIGS. 11A-11E  exemplarily illustrate a C++ implementation of the challenge generator  301   c  using Microsoft® Visual Studio® of Microsoft Inc. In the C++ code listing including the header files of  FIGS. 11A-11E , two test cases are established for the challenge generator  301   c . The two test cases are defined in the C++ code listing of  FIG. 11A . The first test case generates a sequence of challenges for a 30 second video until the end of the video. The second test case generates a challenge within every 10 second segment of a video clip. The implementation exemplarily comprises two classes, namely, “Class bzChallengeGenerator” and “Class bzChallenge”. The code for implementing the “Class bzChallengeGenerator” is exemplarily illustrated in  FIG. 11B . The code for implementing the “Class bzChallenge” is exemplarily illustrated in  FIG. 11D .  FIG. 11C  and  FIG. 11E  illustrate example header file definitions of “bzChallengeGenerator.h” and “bzChallenge.h”. “Class bzChallengeGenerator” is used to specify the necessary parameters and generate a challenge within an optional sub-segment of the video. The static members of “Class bzChallengeGenerator” comprise the following:
         “static const char* s_content[ ]” is an array of arrays of character instances comprising numbers, letters, or symbols. This implementation assumes that the challenge content data type is, for example, a single byte character, however the content&#39;s data type has alternate definitions in other implementations.   “static const unsigned int s_contentDuration” is the duration of the display of the content. For example, this value is kept constant at 3 seconds in this implementation, but may vary in other implementations.
 
Class bzChallengeGenerator also defines an enumerated data type as follows:
   “enum ContentTypeEnum {NUMBERS=0, LETTERS=1, SYMBOLS=2}” identifies the character set to be used.
 
Class bzChallengeGenerator also defines the following data members:
   “ContentTypeEnum m_contentType” defines the type of characters to be displayed in the video as a challenge.   “unsigned int m_contentDisplaySize” defines the size of the content&#39;s display area (square), in pixels, within a video frame.   “unsigned int m_videoDisplayWidth” is the width of the video display frame, in pixels.   “unsigned int m_videoDisplayHeight” is the height of the video display frame, in pixels.   “unsigned int m_videoDuration” is the total play time of the video.
 
The following methods are defined in the Class bzChallengeGenerator:
   “static int RangedRand(int from, int to)”—this class method returns a random integer in the closed interval [from, to].   “bzChallenge Generate(int begin=−1, int end=−1) const”—this method generates a random challenge with the specified properties. The caller optionally specifies the end points of a segment within the entire video in order to satisfy timing constraints of the application, for example, to ensure that a challenge is displayed in the last 20% or 10 seconds of the video&#39;s play time. An object of type bzChallenge is returned with the necessary attributes.       

     Class bzChallenge represents a result of the challenge generator  301   c  in the form of a challenge object. Class bzChallenge defines the following data members:
         “char m_content”—selection of challenge content to display.   “unsigned int m_contentDisplaySize”—content display area in pixels (square).   “unsigned int m_offset”—offset in seconds from the beginning and the end of the video when the challenge content is displayed.   “unsigned int m_duration”—the duration of the display of challenge content.   “unsigned int m_xPosition”—the pixel position along the width of the display area where the challenge content is displayed.   “unsigned int m_yPosition”—the pixel position along the height of the display area where the challenge content is displayed.       

     This implementation randomly selects a position for the challenge content&#39;s display area within the specified dimensions of the video frame. Alternatively, the implementation uses an external location map that defines discrete placements of the challenge content on the video frame. In the alternative case, the challenge generator  301   c  randomly selects an index into the location map.  FIG. 12  exemplarily illustrates sample output after executing the two test cases twice, referred to as “Run #1” and “Run #2”. 
     For the purposes of illustration, the detailed description refers to a single client device  301 ; however the scope of the method and system disclosed herein is not limited to the client device  301  but may be extended to include multiple client devices and multiple levels of clients. 
     It will be readily apparent that the various methods and algorithms described herein may be implemented in a computer readable medium appropriately programmed for general purpose computers and computing devices. Typically a processor, for e.g., one or more microprocessors will receive instructions from a memory or like device, and execute those instructions, thereby performing one or more processes defined by those instructions. Further, programs that implement such methods and algorithms may be stored and transmitted using a variety of media, for e.g., computer readable media in a number of manners. In one embodiment, hard-wired circuitry or custom hardware may be used in place of, or in combination with, software instructions for implementation of the processes of various embodiments. Thus, embodiments are not limited to any specific combination of hardware and software. A “processor” means any one or more microprocessors, central processing unit (CPU) devices, computing devices, microcontrollers, digital signal processors or like devices. The term “computer-readable medium” refers to any medium that participates in providing data, for example instructions that may be read by a computer, a processor or a like device. Such a medium may take many forms, including but not limited to, non-volatile media, volatile media, and transmission media. Non-volatile media include, for example, optical or magnetic disks and other persistent memory volatile media include dynamic random access memory (DRAM), which typically constitutes the main memory. Transmission media include coaxial cables, copper wire and fiber optics, including the wires that comprise a system bus coupled to the processor. Common forms of computer-readable media include, for example, a floppy disk, a flexible disk, hard disk, magnetic tape, any other magnetic medium, a compact disc-read only memory (CD-ROM), digital versatile disc (DVD), any other optical medium, punch cards, paper tape, any other physical medium with patterns of holes, a random access memory (RAM), a programmable read only memory (PROM), an erasable programmable read only memory (EPROM), an electrically erasable programmable read only memory (EEPROM), a flash memory, any other memory chip or cartridge, a carrier wave as described hereinafter, or any other medium from which a computer can read. In general, the computer-readable programs may be implemented in any programming language. Some examples of languages that can be used include C, C++, C#, or JAVA. The software programs may be stored on or in one or more mediums as an object code. A computer program product comprising computer executable instructions embodied in a computer-readable medium comprises computer parsable codes for the implementation of the processes of various embodiments. 
     Where databases are described such as the media database  302   d , it will be understood by one of ordinary skill in the art that (i) alternative database structures to those described may be readily employed, and (ii) other memory structures besides databases may be readily employed. Any illustrations or descriptions of any sample databases presented herein are illustrative arrangements for stored representations of information. Any number of other arrangements may be employed besides those suggested by, e.g., tables illustrated in drawings or elsewhere. Similarly, any illustrated entries of the databases represent exemplary information only; one of ordinary skill in the art will understand that the number and content of the entries can be different from those described herein. Further, despite any depiction of the databases as tables, other formats including relational databases, object-based models and/or distributed databases could be used to store and manipulate the data types described herein. Likewise, object methods or behaviors of a database can be used to implement various processes, such as the described herein. In addition, the databases may, in a known manner, be stored locally or remotely from a device that accesses data in such a database. 
     The present invention can be configured to work in a network environment including a computer that is in communication, via a communications network, with one or more devices. The computer may communicate with the devices directly or indirectly, via a wired or wireless medium such as the Internet, Local Area Network (LAN), Wide Area Network (WAN) or Ethernet, Token Ring, or via any appropriate communications means or combination of communications means. Each of the devices may comprise computers, such as those based on the Intel® processors, AMD® processors, UltraSPARC® processors, Sun® processors, IBM® processors, etc. that are adapted to communicate with the computer. Any number and type of machines may be in communication with the computer. 
     The foregoing examples have been provided merely for the purpose of explanation and are in no way to be construed as limiting of the present invention disclosed herein. While the invention has been described with reference to various embodiments, it is understood that the words, which have been used herein, are words of description and illustration, rather than words of limitation. Further, although the invention has been described herein with reference to particular means, materials and embodiments, the invention is not intended to be limited to the particulars disclosed herein; rather, the invention extends to all functionally equivalent structures, methods and uses, such as are within the scope of the appended claims. Those skilled in the art, having the benefit of the teachings of this specification, may effect numerous modifications thereto and changes may be made without departing from the scope and spirit of the invention in its aspects.