A mobile device can provide a user with a variety of different types of content, such as email, instant messaging, photographs, and so on. Advertisers often utilize content as a vehicle for presenting advertisements to users of mobile devices. For example, an email service may receive an advertisement (hereinafter “ad”) from an advertiser, and may embed the ad into an email before the email is downloaded onto a mobile device. When the email is downloaded to the mobile device and displayed to a user, the user will view the ad along with the content of the email. There are two primary disadvantages to this technique for providing ads with content.
First, a content provider that embeds an ad in content typically has little or no knowledge about the mobile device that is receiving the content, or the user of the mobile device. Accordingly, the ads received by the device as part of the content are usually very general in nature and do not take into consideration specific device configurations or information about the user of the device.
Second, when an ad is embedded into content at a content source, the original form of the content is altered by the addition of the ad. Thus, when content with an embedded ad is received by a mobile device, the content with the embedded ad is stored on the device. When the content is sent from the mobile device (e.g., when an email is forwarded), the ad will typically persist with the content. In the case of an evolving email thread, ad persistence can increase the size of an email and clutter the appearance of the email. Also, the ad may lose relevance over time (e.g., a weekend sale at a local merchant) such that the ad is irrelevant or annoying to a subsequent consumer of the content.
This Summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This Summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used to limit the scope of the claimed subject matter.
Various embodiments provide context-sensitive advertising for content on a mobile device. In some embodiments, context information about a mobile device, a user of the device, and/or content to be consumed on the device is used to formulate an advertisement request. The advertisement request is submitted to an advertisement source, which gathers relevant advertisements that correspond to the context information. The relevant advertisements are provided to the mobile device, and one or more of the relevant advertisements are injected, on the mobile device, into content before the content is consumed by a user of the device. In some embodiments, an advertisement is marked with a sentinel marker when it is injected into content. When the content is to be sent from the device, the sentinel marker is detected and the marked advertisement is removed from the content before the content leaves the device.
The same numbers are used throughout the drawings to reference like features.
Various embodiments provide context-sensitive advertising for content on a mobile device. Examples of content include an email, an instant message, a photograph, a contact file, and so on. In some embodiments, context information about a mobile device, a user of the device, and/or content to be consumed on the device is used to formulate an advertisement (hereinafter “ad”) request. The ad request is submitted to an ad source, which gathers relevant ads that correspond to the context information. The relevant ads are provided to the mobile device, and one or more of the relevant ads are injected, by the mobile device, into content before the content is consumed by a user of the device.
In some embodiments, an ad is marked with a sentinel marker when the ad is injected into content. When the content is to be sent from the device (e.g., when an email is going to be forwarded), the sentinel marker is detected and the marked ad is removed from the content before the content leaves the device.
In the discussion that follows, a section entitled “Operating Environment” is provided and describes one environment in which one or more embodiments can be employed. Following this, a section entitled “Example User Interface” is provided and describes a user interface that is configured to display context-sensitive advertising along with content. Next, a section entitled “Example Methods” is provided that discusses examples of methods that implement various techniques for providing context-sensitive advertising. Finally, a section entitled “Example System” is provided and describes an example system that can be used to implement one or more embodiments.
Residing on the computer-readable media and executable by the processor(s) are one or more client applications 108 and an ad engine 110. The computer-readable media can include, by way of example and not limitation, all forms of volatile and non-volatile memory and/or storage media that are typically associated with a computing device. Such media can include ROM, RAM, flash memory, hard disk, removable media and the like. One specific example of a mobile device is shown and described below in
Examples of the client application(s) include an email application, an instant messaging application, a photograph viewer, a contacts application, a calendar application, a social networking application, and so on. One example of a contacts application is an application that stores and/or manages contact information (e.g., names, physical addresses, email addresses, and so on) for persons and/or other entities. In at least some embodiments, one or more of the client applications are configured to receive content from a content source and present the content in a form suitable for consumption by a user of the mobile device. In an email application example, the email application is configured to receive email from an email service and make the email available to be displayed on the mobile device.
In the context of a calendar application, events from a user's calendar can be used to determine temporally significant context information (e.g., holidays, vacations, recreational activities, and so on.) The temporally significant context information can be fed to the ad engine 110, which can retrieve ads that are relevant to the temporally significant context information. For example, if a user's calendar includes an event marked “Night at the Symphony”, one or more ads can be retrieved for the user that are relevant to the symphony and/or symphonic music.
The client application(s) also includes or otherwise makes use of a communication suite 112 that is configured to handle a variety of tasks for the client application. In some embodiments, the communications suite gathers context information about the mobile device and/or a user of the mobile device. For example, the communication suite may determine a user's current location using a GPS engine (not shown), cell location and the like. The communications suite may also inspect content for keywords and other context information specific to the content. In some embodiments, the communications suite is configured to forward the context information to the ad engine 110, receive ads from the ad engine, inject an ad into content, and remove an ad from content.
In one or more embodiments, the ad engine is configured to interface with the client application(s) and to receive context parameters from a client application. The ad engine is also configured to formulate an ad request that includes one or more of the parameters. Context parameters may include a variety of different information about the mobile device, such as its screen size, screen orientation (e.g., landscape or portrait), screen resolution, geographic location, media capabilities, battery level, memory capabilities, processing capabilities, calendar events (temporal significance revealing holidays, festivals, etc) and so on. Context parameters may also include a variety of different information about a user of the mobile device, such as web sites visited, instant messaging logs, call history, geographic location history, email content, contacts, and so on. The ad engine is configured to send the ad request to an ad source, such as advertisement (“ad”) source 114. In at least some embodiments, the ad source may be a remote resource that is remote from the mobile computing device. The ad source receives an ad request and gathers ads that correspond to one or more of the context parameters included in the ad request. The ad source may store ads locally and/or retrieve ads from a third-party resource.
Environment 100 also includes a content source 116 that is configured to provide content to the mobile device. Examples of the content source include, by way of example and not limitation, an email service, an instant messaging service, a photograph service, a web content service, and so on. In addition, environment 100 includes a network 118, such as the Internet, through which the various components of environment 100 may communicate and exchange information.
Having described an example operating environment, consider now a discussion of an example user interface in accordance with one or more embodiments.
The user interface may be associated with a variety of different client applications, examples of which are discussed above. Illustrated in this example user interface is a conversation between two individuals, RaviS and ScottC. The user interface includes a content region 202, an advertisement banner 204 and an ad region 206. The content region displays content such as text, images, web pages, video, and so on. The advertisement banner 204 indicates to a viewer that the ad region 206 immediately below the advertisement banner (i.e., the ad region) includes an ad.
In this example, an ad has been retrieved based on one or more context parameters and displayed in the ad region. The context parameters considered in this example may include keywords from the conversation (e.g., “lunch”, “belsquare”, and so on), and may also include mobile device-specific parameters and/or user-specific parameters. In this example, an ad for Milliways restaurant is displayed. Milliways may be a restaurant that serves lunch in the region of belsquare.
According to some embodiments, ads that are provided with content can be passive or active in nature. A passive ad simply conveys information, such as the name of a restaurant or other merchant, to a content consumer. An active ad enables a user to take a subsequent action by interacting with the ad. For example, an active ad may include a hyperlink which, if selected (e.g., by clicking on the ad), navigates a user to a website associated with the ad. The website may convey further information about a merchant and/or product associated with the original ad. In embodiments that involve a phone-enabled mobile device, when selected, an active ad may automatically dial a merchant or other party associated with the ad.
Having considered an example user interface, consider now some example methods in accordance with one or more embodiments.
Step 300 gathers context parameters, such as device context parameters and/or user context parameters. Context parameters may be continually and/or periodically gathered and updated as device settings change (e.g., a change from portrait view to landscape view) and/or as user context changes (e.g., the user moves to a new geographic location). Also, in some embodiments, a change to one or more parameters may trigger an automatic ad request that corresponds to the parameter change(s). Step 302 formulates an ad request that includes the context parameters.
Step 304 forwards the ad request to an ad source, such as ad source 114 discussed in
Step 310 injects one or more of the ads into content. In some embodiments, an ad with the highest rank may be considered the most relevant ad and thus can be selected to be injected into the content. The content may be presented with the ad(s) on a mobile device. Presenting content and/or an associated ad may include visual presentation and/or audio presentation.
Step 400 receives content (e.g., an email message, an instant message, and the like) to be presented on a mobile device. Step 402 inspects the content for one or more content parameters. Content parameters may include keywords within the content, a content source, content geographical data (e.g., geotagging data), contacts associated the content (e.g., a person sending the content, a person receiving the content, and/or a person copied on the content), and so on.
Step 404 formulates an ad request that includes the content parameters. Step 406 forwards the ad request to an ad source. Step 408 receives one or more ads in response to the ad request. In at least some embodiments, step 410 ranks the ads according to their relevancy to the content parameters. Some suitable ways for ad ranking are discussed above. Step 412 injects one or more of the ads (e.g., in at least some embodiments, according to the highest rank) into content. The content and associated ad(s) may be displayed and/or otherwise presented on the mobile device.
This example method enables, in at least some embodiments, ads to be retrieved for content before a viewer selects the content to be presented. For example, when an email client application downloads an email from an email service, the application can immediately receive an ad from the ad engine and inject the ad into the email before a user selects the email to be viewed.
Step 500 provides one or more context and/or content parameters to the ad engine. Step 502 creates a batch ticket associated with the parameters and forwards the batch ticket to the client application. Step 504 gathers ads that correspond to the parameters into a batch (e.g., by submitting an ad request with the parameters to an ad source). The ads may be gathered immediately in response to receiving the content parameters from the client application, or the ads may be gathered asynchronously to generate the batch of ads.
Step 506 receives and stores the batch ticket. Step 508 receives content to be presented on a mobile device. Step 510 queries an ad engine for one or more ads using the batch ticket. The batch ticket serves as a reference to the parameters that were provided to the ad engine and is a callback mechanism for requesting an ad from the batch of ads that were gathered using the parameters. In some embodiments, the ad engine can generate and manage multiple distinct batches of ads for one or more client applications. Step 512 retrieves one or more ads from the batch of ads that corresponds to the batch ticket. Step 514 forwards the ad(s) to the client application. Step 516 receives the ad(s) and injects the ad(s) in the content. The content with its associated ad(s) may then be presented on the mobile device.
In some embodiments, the method may be implemented in response to receiving content at a mobile device that is to be presented on the device. Step 600 queries an ad engine for one or more ads and provides context parameters and/or content parameters to be used in retrieving the ad(s). Step 602 creates an ad ticket that corresponds to the parameters and forwards the ad ticket to the client application. Step 604 receives the ad ticket and inserts the ad ticket into the content as a placeholder for an ad.
Step 606 retrieves an ad that corresponds to the parameters. Step 608 forwards the ad and the ad ticket to the client application. Sep 610 receives the ad and injects the ad into the content to replace the placeholder ad ticket.
In one example implementation, the methods discussed above can be utilized to inject an ad into an HTML display of an instant messaging conversation. One example of a suitable HTML representation is presented below:
In the illustrated HTML, the “ad ticket” serves as a placeholder for an ad while the ad is being retrieved, and the ad ticket itself is not displayed to the user. When an ad is received that corresponds to the ad ticket, the ad ticket is replaced with the actual ad. This is illustrated in the HTML below, which illustrates in bold that the ad ticket is replaced with an ad and/or a link to an ad:
launch ad web site”/>
The content with the linked ad can be viewed by the user.
Step 700 receives an ad, for example, in response to an ad request. Step 702 injects the ad into content. In one example implementation, the content is an email message on a mobile device, and the ad is injected into the email message. Step 704 marks the ad within the content with a sentinel marker. In some embodiments, the sentinel marker comprises a piece of code or other pointer that identifies the ad as being distinct from the content.
Step 706 receives an indication that the content is to be sent and prepares the content to be sent. In the email message example presented above, the email message is prepared to be forwarded, replied to, or otherwise sent from the mobile device. Step 708 detects the sentinel marker in the content and removes the marked ad from the content. Step 710 makes the content without the ad available to be sent. By marking ads and removing ads from content before the content is sent, ads that are displayed are relevant to a particular device and/or user context, and stale ads are not propagated when content moves from user-to-user and location-to-location.
Having described techniques for providing relevant ads for content on a mobile device, consider now an example system that can be utilized to implement one or more of the above-described embodiments.
Mobile computing device 800 includes one or more processors or processing units 802, one or more memory and/or storage components 804, one or more input/output (I/O) devices 806, and a bus 808 that allows the various components and devices to communicate with one another. Bus 808 represents one or more of any of several types of bus structures, including a memory bus or memory controller, a peripheral bus, an accelerated graphics port, and a processor or local bus using any of a variety of bus architectures. Bus 808 can include wired and/or wireless buses.
Memory/storage component 804 represents one or more computer storage media. Component 804 can include volatile media (such as random access memory (RAM)) and/or nonvolatile media (such as read only memory (ROM), Flash memory, optical disks, magnetic disks, and so forth). Component 804 can include fixed media (e.g., RAM, ROM, a fixed hard drive, etc.) as well as removable media (e.g., a Flash memory drive, a removable hard drive, an optical disk, and so forth).
One or more input/output devices 806 allow a user to enter commands and information to mobile computing device 800, and also allow information to be presented to the user and/or other components or devices. Examples of input devices include a keyboard, a cursor control device (e.g., a mouse), a microphone, a scanner, and so forth. Examples of output devices include a display device (e.g., a monitor or projector), speakers, a printer, a network card, and so forth.
Various techniques may be described herein in the general context of software or program modules. Generally, software includes routines, programs, objects, components, data structures, and so forth that perform particular tasks or implement particular abstract data types. An implementation of these modules and techniques may be stored on or transmitted across some form of computer readable media. Computer readable media can be any available medium or media that can be accessed by a computing device. By way of example, and not limitation, computer readable media may comprise “computer storage media”.
“Computer storage media” include volatile and non-volatile, removable and non-removable media implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules, or other data. Computer storage media include, but are not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile disks (DVD) or other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to store the desired information and which can be accessed by a computer.
Various embodiments provide context-sensitive advertising for content on a mobile device. In some embodiments, context information about a mobile device, a user of the device, and/or content to be consumed on the device is used to formulate an advertisement request. The advertisement request is submitted to an advertisement source, which gathers relevant advertisements that correspond to the context information. The relevant advertisements are provided to the mobile device, and one or more of the relevant advertisements are injected, by the mobile device, into content before the content is consumed by a user of the device. In some embodiments, an advertisement is marked with a sentinel marker when it is injected into content. When the content is to be sent from the device, the sentinel marker is detected and the marked advertisement is removed from the content before the content leaves the device.
Although the subject matter has been described in language specific to structural features and/or methodological acts, it is to be understood that the subject matter defined in the appended claims is not necessarily limited to the specific features or acts described above. Rather, the specific features and acts described above are disclosed as example forms of implementing the claims.