CROSS REFERENCE TO RELATED APPLICATIONThis application claims priority to U.S. Provisional Patent Application No. 61/748,718, filed on Jan. 3, 2013, and entitled, “SYSTEM AND METHOD FOR ADVERTISING ON A VIRTUAL KEYBOARD,” which is incorporated by reference herein in its entirety.
BACKGROUNDOnline advertising generates a large amount of online traffic and revenue. Online advertisements are a nearly ubiquitous feature of our online experience because online advertisers typically advertise goods and services on or with websites, mobile apps, video games, set-top boxes, streaming media, and so on. In many cases, advertisements may be targeted to users based on, for example, demographic information, online activities, search activities (e.g., search queries), online shopping activities, and so on. Online advertisements may take the form of one or more pop-up advertisements, pop-under advertisements, banner advertisements, audio advertisements, video advertisements, animated gifs, and so on. Desktop computers, which typically include computer monitors, can offer relatively vast amounts of space for displaying or presenting advertisements. Handheld devices, however, typically provide a limited amount of visual display space or real estate for users to view or interact with, necessarily making online advertisements either annoyingly large, or small and difficult to interact with. When the visual space available for online advertisements is limited, online advertisements may interfere with a user's online experience. For example, a pop-up advertisement may be displayed in such a way that it completely takes over the viewable area of the user's device. As another example, the user may accidentally click on or select the advertisement if the advertisement is displayed over or near a feature of a webpage or application with which the user interacts.
BRIEF DESCRIPTION OF THE DRAWINGSFIG. 1 is a block diagram illustrating an environment in which the disclosed techniques may operate.
FIG. 2 is a block diagram showing some of the components incorporated in associated computing systems.
FIG. 3 is a display page representing two screenshots of a virtual keyboard.
FIG. 4 is a flow diagram illustrating the processing of a display virtual keyboard ad component.
FIG. 5 is a block diagram illustrating the processing of a user interaction component.
DETAILED DESCRIPTIONSystems and methods for providing non-obtrusive techniques for presenting advertisements (e.g., an advertisement impression) to users of mobile devices, such as mobile telephones, tablets, smart phones, laptops, TVs, and other devices with limited display space. In some embodiments, the disclosed techniques display advertisements as part of or otherwise associated with a virtual keyboard displayed on the device. For example, a visual advertisement may be displayed as part of a spacebar or other key or keys of a virtual keyboard. In other words, the graphical representation of the spacebar (or another key or keys) may for example, be replaced by, blended (e.g., alpha compositing techniques) or otherwise modified with a graphical advertisement, such as a banner ad. Although the graphical representation of the visual spacebar is modified, the functionality of the spacebar may remain the same. For example, a user can continue to use the virtual keyboard and its associated keys to interact with the mobile device, (e.g., to type a message across the Internet, interact with an application (App), etc.) while the advertisement is display. In this manner, advertisements are presented in a less-intrusive or non-intrusive manner. Furthermore, user interactions with advertisements can be tracked across multiple websites or web access points, across multiple mobile device functions (e.g., mobile applications, email, text messaging, iMessaging, posts, searches, social network interactions), and across multiple devices.
In some embodiments, the disclosed techniques may allow a user to interact with a displayed advertisement using various gestures. For example, a user may be able to activate an advertisement displayed in place of or in addition to one or more keys of a virtual keyboard by performing a swipe gesture in a variety of directions, such as up, down, left or right. A swipe gesture, for example, can reduce the number unintentional “clicks” on or near the advertisement, thereby increasing the likelihood that activations of advertisements are intentional. By activating the advertisement, in some embodiments, a user is directed to one or more websites, applications, and/or files (e.g., media files, video files, or audio files) for or associated with, for example, the advertiser. Furthermore, the user may be able to perform other actions based on one or more swipe gestures in various directions, such as down or to the left. For example, in some embodiments, one or more swipes to the virtual keyboard can forward the advertisement to another user; save the advertisement; follow the associated advertiser on a social network site (e.g., TWITTER®); share the advertisement or associated advertiser (e.g., company) on a social networking site (e.g., FACEBOOK®, PINTEREST®, etc.); “like” (e.g., performing a binary-like approval or disapproval) the advertisement; and or rate the advertisement. The inventors have found that rating an advertisement has several advantages over “liking” the advertisement. For example, “likes” can be arbitrary. You may “like” something because: a friend requested you to do so, you actually do like it, or for any number of reasons. Ratings offer a much more accurate picture of what a brand, product, or company means to a person. For example, ranking an advertisement, in some embodiments, allows the advertisement to be marked as irrelevant, offensive, and or removed from future advertisements from a particular company or a particular type of advertisement.
In some embodiments, the disclosed techniques display advertisements at a mobile user device based on identifying one or more actions to associate with virtual key(s) proximate to the advertisement. The disclosed technique can detect and react to a selection of virtual key(s) based on one or more selection types. For example, a first selection type (e.g., a user gesture, eye movement, etc.) initiates (i.e., triggers) a first action for interacting with advertisement(s) (e.g., scroll through advertisements, open an advertisement in a new window, open a website, buy a good/service, etc.) and a second action (e.g., a non-gesture-based action, such as pressing a virtual ‘A’ key) initiates display of a representation of a symbol, character, or alphanumeric value associated with the selected virtual key (e.g., an “%,”A, ‘5’, etc.), for example. In some embodiments, a first gesture (e.g., a swipe) and a second, different gesture (e.g., an ‘L’-shaped gesture) performed proximate to the same advertisement initiate different actions. For example, a swipe across an advertisement may cause a display of more information regarding about that advertisement and a ‘L’-shaped gesture performed proximate to that same advertisement may minimize the advertisement to a portion of a display, save the advertisement for later, or send the advertisement to a friend, etc.
In some embodiments, the virtual keyboard is projected from a laser, LED, infrared component, or other transfer medium to form a 2D or pseudo 3D image of the virtual keyboard. For example, the disclosed techniques can cause a mobile device to focus light in the shape of a keyboard onto a surface, such as a table, All or some of techniques mentioned above and further discussed below (e.g., user based gestures to interact with advertisements) equally apply to projected virtual keyboards.
In some embodiments, the virtual keyboard provides feedback, such as a sound, light, one or more signals to an external device, or haptic feedback. For example, a virtual key (e.g., a space bar) of the virtual keyboard may display a picture of a Chevy Camaro. When the advertisement is touched, haptic feedback (e.g. a force, motion, and or vibration) may provide, via one or more of the virtual keys, the feeling that the Camaro's engine is revving, for example. Feedback, in some embodiments, is incorporated in situations where two or more users are in the same location experiencing advertisements related to a television program or “app” that they were participating in. For example, feedback can indicate that time is running out to input of an answer via the virtual keyboard.
In some embodiments, the described techniques aggregate information from different sources (e.g., remote networks, websites, advertisement services, a user profile, user history, cached data) to increase the accuracy and efficiency in targeting advertisements to a user. For example, when the virtual keyboard is used to fill-in a textbox on a website, navigate an online/local website, make a phone call, compose a message, etc., data from one or more of those sources can be used to refine and tailor a new add to target the user. The inventors have contemplated other techniques to refine and target advertisement, such as receiving an indication that an advertisement was selected via a separate virtual keyboard operated by the same or a different user; refining the information based on target data from an advertiser; and or refining the information based on one or more user preferences, user history, or tracking data.
FIG. 1 is a block diagram illustrating acomputing environment100 in which the disclosed techniques may operate in some embodiments. In this example,computing environment100 includes one or more computing device(s)110,advertisers120,advertising network130, andnetwork140.User computing environment110 includes, in some embodiments, display virtualkeyboard ad component111, user interaction component112, andadvertisement store113. Display virtualkeyboard advertisement component111 can be invoked to display an advertisement on or as part of a virtual keyboard. User interaction component112 is invoked to process user interactions with an advertisement displayed on or as part of a virtual keyboard.Advertisement store113 stores advertisements and associated information (e.g., number of times an ad is displayed, rate of display, time of day information for the advertisement, timeout duration, expiration date/time) received fromadvertisers120,advertising network130, etc.Advertisers120 can represent companies or other entities that generate advertisements.Advertising network130 can be a company or entity that targets and distributes advertisements to users on behalf of advertisers based on, for example, geographic area (e.g., city location, country, etc.), time, user data, demographic information, user preferences, and so on. In other embodiments, theadvertising network130 can be operated by a manufacture of the user computing device(s)110 or a distributor of theuser computing device110. Computing device(s)110,advertisers120, andadvertising network130 are connected and may communicate vianetwork140.
The computing device(s) on which the disclosed techniques may be implemented can include a screen (e.g., a touch screen), a central processing unit, memory, input devices (e.g., keyboards, virtual keyboards, touchscreens, and pointing devices), output devices (e.g., display devices)114, storage devices (e.g., disk drives), and various other software and/orhardware components115. The memory and storage devices are computer-readable storage media that may be encoded with computer-executable instructions that implement the technology, which means a computer-readable storage medium that stores the instructions. In addition, the instructions, data structures, and message structures may be transmitted via a computer-readable transmission medium, such as a signal on a communications link. Thus, “computer-readable media” includes both computer-readable storage media for storing information and computer-readable transmission media for transmitting information. Additionally, data used by the disclosed techniques may be encrypted. Various communications links may be used, such as the Internet, a local area network, a wide area network, a point-to-point dial-up connection, a cell phone network, wireless networks, and so on.
FIG. 2 is a block diagram200 showing some of the components201-205 incorporated in associated computing system(s)210 (e.g. advertisement network130,advertisers120, and or user computing device(s)110, etc.) in some embodiment.Computer system210 comprises one or more central processing units (“CPUs”)201 for executing computer programs; acomputer memory202 for storing programs and data while they are being used; apersistent storage device203, such as a hard drive for persistently storing programs and data; a computer-readable media drive204, such as a CD-ROM drive, for reading programs and data stored on a computer-readable storage medium; and anetwork connection205 for connecting thecomputer system210 to other computer systems, such as via the Internet. Whilecomputer systems210 configured as described above are suitable to support the operation of the disclosed technology, those skilled in the art will appreciate that the techniques may be implemented using devices of various types and configurations. Moreover, communications to and from theCPU201 and on data buses and lines can be encrypted to protect against snooping of internal data.
The disclosed technology may be described in the general context of computer-executable instructions, such as program modules, executed by one or more computers or other devices. Generally, program modules include routines, programs, objects, components, data structures, and so on that perform particular tasks or implement particular abstract data types. Typically, the functionality of the program modules may be combined or distributed as desired in various embodiments, including cloud-based implementations.
Many embodiments of the technology described herein may take the form of computer-executable instructions, including routines executed by a programmable computer. Those skilled in the relevant art will appreciate that aspects of the technology can be practiced on computer systems other than those shown and described herein. Embodiments of the technology may be implemented in and used with various operating environments that include personal computers, server computers, handheld or laptop devices, multiprocessor systems, microprocessor-based systems, programmable consumer electronics, digital cameras, network PCs, minicomputers, mainframe computers, computing environments that include any of the above systems or devices, and so on. Moreover, the technology can be embodied in a special-purpose computer or data processor that is specifically programmed, configured or constructed to perform one or more of the computer-executable instructions described herein. Accordingly, the terms “computer” or “system” as generally used herein refer to any data processor and can include Internet appliances and hand-held devices (including palm-top computers, wearable computers, cellular or mobile phones, multi-processor systems, processor-based or programmable consumer electronics, network computers, mini computers and the like).
The technology can also be practiced in distributed environments, where tasks or modules are performed by remote processing devices linked through a communications network. In a distributed computing environment, program modules or subroutines may be located in local and remote memory storage devices. Aspects of the technology described herein may be stored or distributed on computer-readable media, including magnetic or optically readable or removable computer disks. Furthermore, aspects of the technology may be distributed electronically over networks. Data structures and transmissions of data particular to aspects of the technology are also encompassed within the scope of the technology.
FIG. 3 is adepiction300 of twoexample screenshots301 and303 of avirtual keyboard308 ondisplay114, for example. For example, each ofscreenshots301 and303 include a virtual keyboard including a virtual spacebar302-304. Inscreenshot301,virtual spacebar302 is displayed without anadvertisement306. Thevirtual spacebar302 is configured to provide a relatively large area to display anadvertisement306. Inscreenshot303,virtual spacebar302 is displayed with anadvertisement306 inviting the user to “Swipe Here for Savings!!!” Although theadvertisement306 is displayed overvirtual spacebar302, a user may still enter space characters by pressing on or clicking the advertisement/spacebar. The user may interact with the advertisement by, for example, performing a swipe or other gesture at or near the advertisement. Although in this example theadvertisement306 is displayed in the vicinity of thevirtual spacebar302, one ormore advertisements304 may be displayed at any location on the virtual keyboard. For example, one advertisement (e.g., advertisement304) may span the ‘W,’ ‘E,’ ‘R,’ ‘T,’ ‘S,’ ‘D,’ ‘F,’ ‘Z,’ ‘X,’ and ‘C,’ keys while another advertisement (not shown) spans the Y,’ ‘U,’ ‘I,’ ‘O,’ ‘H,’ ‘J,’ ‘K,’ ‘B,’ ‘N,’ and ‘M’ keys. In this manner, the disclosed techniques can present advertisements to users without interfering with the user's ability to interact with thevirtual keyboard308 and associated computing device(s)110. Thevirtual keyboards308 can be part of an operating system (e.g., iOS, Android® Operating System, Blackberry operating system, or Microsoft Windows® operating system). In other embodiments, an application is installed to provide thevirtual keyboard308. The advertising functionality can be part of the virtual keyboard software or installed separately.
FIG. 4 is a flow diagram400 illustrating the processing of a display virtualkeyboard advertisement component111 in some embodiments. Inblock410, the display virtual keyboard advertisement component111 (e.g.308) displays avirtual keyboard308. Inblock420, the display virtualkeyboard advertisement component111 selects an advertisement for display. Selection of theadvertisement308 may be based on demographic information of one or more users, of thecomputing environment100, recent activity of one or more users, user preferences, and so on. For example, if a user is watching a television program on a smartTV and an advertisement or “product placement” for a particular product was recently displayed, the display virtualkeyboard advertisement component111 may select anadvertisement306 for the same or a similar product for display on anotheruser computing device110, such as the user's mobile telephone. In some embodiments, the display virtualkeyboard advertisement component111 may request anadvertisement306 from anadvertising network130 oradvertiser120. Inblock430, the display virtualkeyboard advertisement component111 selects one ore more virtual key(s) on thevirtual keyboard308 to display a selected ad. The display virtualkeyboard advertisement component111 may select virtual key(s) on thevirtual keyboard308 based on the shape of the advertisement, the virtual keyboard shape, virtual key layout, and availability of virtual keys that are currently displayed, user preferences, and so on. For example, if the selected advertisement (e.g., advertisement306) is in the shape of a vertically long rectangle, the display virtualkeyboard advertisement component111 may select thevirtual spacebar302 for displayingadvertisement304. However, if theadvertisement306 is a square, the display virtualkeyboard advertisement component111 for example, may select virtual key(s) that approximate a square. Additionally and or alternatively, a user and or the display virtualkeyboard advertisement component111 may specify a preference for displaying advertisements (e.g., advertisement306) on certain virtual keys or not displaying advertisements on certain virtual keys. For example, a user may specify thatadvertisements306 should never be displayed on virtual keys other than thevirtual spacebar302. Accordingly, the display virtualkeyboard advertisement component111 will avoid displaying advertisements on those virtual keys. In some embodiments,advertisements306 may include multiple representations (e.g., shapes, sizes, colors) so that the display virtualkeyboard advertisement component111 can more easily identify virtual keys capable of displaying theadvertisement306. Inblock440, the display virtualkeyboard advertisement component111 displays a selected advertisement on or in combination with the selected virtual keys. For example, the display virtualkeyboard advertisement component111 may display theadvertisement306 over certain virtual keys or blend (e.g., alpha compositing techniques) theadvertisement306 with the image data associated with the selected key(s). As another example, the display virtualkeyboard advertisement component111 may display theadvertisement306 over the virtual keys but texture the advertisement so that the corresponding virtual keys appear as “bumps” under theadvertisement306. Indecision block450, if the displayed advertisement (e.g., advertisement306) has timed out then the display virtualkeyboard advertisement component111 loops back to block420 to select another advertisement, else the display virtualkeyboard advertisement component111 continues atblock460. For example,advertisements306 may specify a “time out” duration (e.g., 30 seconds, 60 seconds, 5 minutes) so that theadvertisements306 are periodically updated. Accordingly, while a user is typing a message and or making a gesture the user may be presented with multiple advertisements. Indecision block460, if thevirtual keyboard308 has changed then the display virtualkeyboard advertisement component111 loops back to block430 to select virtual key(s) for the selected advertisement (e.g., advertisement306), else the display virtualkeyboard advertisement component111 continues atdecision block470. For example, if the user has shifted to another virtual keyboard with a different layout or a different set of virtual keys, the display virtualkeyboard advertisement component111 will loop back to select key(s) for displaying theadvertisement306. Indecision block470, if the user has interacted with the displayed advertisement306 (as opposed to the underlying or associated key), then the display virtualkeyboard advertisement component111 continues atblock480 to invoke a user interaction component112, else the display virtualkeyboard advertisement component111 continues atdecision block490. Indecision block490, if thevirtual keyboard308 is closed, then processing of the display virtualkeyboard advertisement component111 completes, else the display virtualkeyboard advertisement component111 loops back to decision block450 to determine whether theadvertisement306 has timed out.
FIG. 5 is a block diagram500 illustrating an example of a user interaction component112 in some embodiments. Indecision block510, if user interaction is an activation of the advertisement, (e.g.,306) for example, then the user interaction component112 continues atblock520, else the user interaction component112 continues atblock530. For example, the user interaction component112 may be configured to detect certain actions and or gestures (e.g., swipe to the right) as an “activation” of anadvertisement306 or an interest to view more information associated with theadvertisement306, and or other features associated withadvertisement306. In other embodiments, one or more actions and or gestures (e.g., swipe to the left) are detected by the user interaction component112 as non-activation interaction such as a selection of theadvertisement306 but no present interest in following theadvertisement306. Inblock520, the user is directed to a local and or remote media file, for example, or site or location associated with theadvertisement308, such as a website, mobile application, video, audio recording, etc. For example, the user interaction component112 may display a video over the virtual keyboard or in place of anadvertisement308 displayed with thevirtual keyboard308. As another example, the user interaction component112 may launch a browser directing the user to the advertiser's120 website. Alternatively, the user interaction component112 may initiate a “buy now” command for an advertised product or service, open a shopping cart, initiate a vote or survey response, open a full screen advertisement, and so on. In some examples, the user interaction component112 may prompt the user to select an action to take with respect to theadvertisement308. Inblock530, the user interaction component112 prompts the user for an action, such as saving theadvertisement308 for later use, forwarding the advertisement to another user, “liking” or sharing theadvertisement308 oradvertiser120 on a social networking site, etc. Inblock540, the user interaction component112 performs an action selected by the user and or determined by thecomputing environment100 and then ends. In various embodiments, other actions are taken in response to a user interaction with anadvertisement308. For example, opening anadvertisement308 in another window, activating an advertisement in a window of a messaging screen, morphing thevirtual keyboard308 to a video or image, claiming a product or prize, ordering or bidding on a good or service, entering a raffle or drawing, printing a coupon, “liking” a tv show, voting for a contestant (e.g., Dancing with the Stars, America's Got Talent, X Factor), reporting ratings for television programs, purchasing a product via a website, such as Groupon, Living Social, etc. and so on. In some cases, anadvertisement308 may be static such that a user interaction with theadvertisement306 is ignored.
The embodiments disclosed herein can be used to display various advertisement types (e.g., logos, text, graphics, images, etc.) or other information (e.g., information about operation ofuser computing device110, time, etc.). Theadvertisement306 can have one or more inactive areas and one or more active areas (e.g., a button, an activation icon, etc.). A user can contact the inactive area without activating theadvertisement306 and can activate theadvertisement306 by contacting the active area. The advertisements can be displayed continuously or at intervals (e.g., preset intervals, user defined intervals, intervals determined based on user input, etc.).Virtual keyboard308 can be used to enter characters (e.g., numbers, letters, punctuation, etc.) via a touch screen, for example. Touch screens can display different types of keyboards (e.g., a standard keyboard layout, a customized keyboard layout, etc.) such that a user can contact key images of the displayed keyboard image. A user can touch-type on the displayed keys similar to a physical keyboard.
In some embodiments thecomputing environment100 collects data via thevirtual keyboard308 and/or other user input. Displayingadvertisements308 can be controlled based on type data. For example, computing device(s)110 can cycle through numerous advertisements while a user composes a text message, an email, interact with a webpage, video or the like. Additionally or alternatively, collected data can be used to more accurately target users with new advertisements based on one or more users' interaction history and can capture analytics across multiple platforms and user computing device(s)110.
Thecomputing environment100 in various embodiments, stores, forwards, or otherwise alters advertisements. In one embodiment, anadvertisement306 is stored for later viewing and/or interaction. Theadvertisement306 can also be sent (e.g., forwarded) to another user computing device110 (e.g., another individual's smart phone). Theadvertisement306 or associated company can be “liked” on FACEBOOK® or otherwise associated with other websites (e.g., social website), programs, apps, etc.
Virtual keyboards and/or advertisements can be controlled, in some embodiments, based on program settings, operating system settings, or the like. The user and orcomputing environment100 can select a desired language (e.g., English, Spanish, French, Chinese, etc.) to be displayed by, for example, the virtual keyboard and/or advertisement. The virtual keyboard can be integrated into or part of an operating system such that its settings can be modified using the operating system settings. The operating system can select and/or deliver advertisements with cultural relevancy, language relevancy, or the like. User data can also be enhanced by knowing languages used by the user. The user data can be associated with the user's profile and analyzed with other data (e.g., geographic location, demographic information, online activities, search activities, online shopping activities, etc.). The user data can be analyzed based on the settings/profiles and can be used to determine appropriate advertising.
Profiles can also be used to deliver relevant advertisements via the virtual keyboard. A profile can associate one user computing device(s)110 (e.g., a smartphone, Smart TV, a gaming system such as an Xbox, etc.) with a different user computing device(s)110 such that either or both user computing device(s)110 can display anadvertisement306 selected via eitheruser computing device110. In some embodiments, a profile can associate login information or other user inputted data to the user, or one or more user computing device(s)110.
CONCLUSIONIn general, the detailed description of embodiments of the described technology is not intended to be exhaustive or to limit the technology to the precise form disclosed above. While specific embodiments of, and examples for, the technology are described above for illustrative purposes, various equivalent modifications are possible within the scope of the described technology, as those skilled in the relevant art will recognize. For example, while processes or blocks are presented in a given order, alternative embodiments may perform routines having steps, or employ systems having blocks, in a different order, and some processes or blocks may be deleted, moved, added, subdivided, combined, and/or modified. Each of these processes or blocks may be implemented in a variety of different ways. Also, while processes or blocks are at times shown as being performed in series, these processes or blocks may instead be performed in parallel, or may be performed at different times.
The teachings of the described technology provided herein can be applied to other systems, not necessarily the system described herein. The elements and acts of the various embodiments described herein can be combined to provide further embodiments.
These and other changes can be made to the described technology in light of the above Detailed Description. While the above description details certain embodiments of the technology and describes the best mode contemplated, no matter how detailed the above appears in text, the described technology can be practiced in many ways. The described technology may vary considerably in its implementation details, while still being encompassed by the technology disclosed herein. As noted above, particular terminology used when describing certain features or aspects of the described technology should not be taken to imply that the terminology is being redefined herein to be restricted to any specific characteristics, features, or aspects of the technology with which that terminology is associated. In general, the terms used in the following claims should not be construed to limit the described technology to the specific embodiments disclosed in the specification, unless the above Detailed Description section explicitly defines such terms. Accordingly, the actual scope of the described technology encompasses not only the disclosed embodiments, but also all equivalent ways of practicing or implementing the described technology.
To reduce the number of claims, certain aspects of the invention are presented below in certain claim forms, but the applicant contemplates the various aspects of the invention in any number of claim forms. For example, while only one aspect of the invention is recited as a means-plus-function claim under 35 U.S.C. sec.112, sixth paragraph, other aspects may likewise be embodied as a means-plus-function claim, or in other forms, such as being embodied in a computer-readable medium. (Any claims intended to be treated under 35 U.S.C. §112, ¶6 will begin with the words “means for”, but use of the term “for” in any other context is not intended to invoke treatment under 35U.S.C. §112, ¶6.) Accordingly, the applicant reserves the right to pursue additional claims after filing this application to pursue such additional claim forms, in either this application or in a continuing application.