Generating Advertisements Based On Proximate Computing Devices
Techniques include identifying one or more proximate devices (e.g., networked computing devices, or networked appliances) that are located proximate to a user device (e.g., a mobile computing device, such as a smartphone, or a tablet) using a local wireless network (e.g., Wi-Fi, Bluetooth, or NFC). The techniques further include generating one or more advertisements (ads) based on the identified proximate devices, based on one or more device types (e.g., categories) associated with the devices, and/or based on one or more states of the devices. In some examples, the techniques include transmitting an indication of the identified proximate devices, their types, and/or their states to an ad system and receiving the ads from the system in response to transmitting the indication. The techniques also include displaying the ads to a user at the user device (e.g., within a software application executing on the device).
The present application is a continuation of U.S. patent application Ser. No. 14/982,104, filed on Dec. 29, 2015, which claims the benefit of U.S. Provisional Application No. 62/170,044, filed on Jun. 2, 2015. The entire disclosures of the applications referenced above are incorporated by reference.
FIELDThis disclosure generally relates to the field of advertisement, and more particularly to techniques for generating and displaying advertisements on user devices.
BACKGROUNDIn recent years, the use of computers, tablets, smartphones, smart watches, and other stationary and mobile computing devices has grown significantly. Additionally, the presence of network connectivity among these and other devices has also increased. Today, many consumer and industrial computing devices and appliances are capable of being connected to local computer networks and even the Internet. Advertisers advertise products and services using a variety of different computing devices, including such networked and Internet-enabled devices. To efficiently and effectively advertise the products and services to users, the advertisers may advertise to targeted audiences, which may include specific groups of users or user device types.
SUMMARYIn one example, a method includes identifying, using a user device, a proximate device located proximate to the user device using a local wireless network. In this example, the proximate device is configured to communicate via the local wireless network. Also in this example, identifying the proximate device includes receiving, at the user device, an indication of the proximate device from the proximate device via the local wireless network. The method further includes, in response to identifying the proximate device, generating, using the user device, an advertisement (ad) based on the identified proximate device, and displaying the generated advertisement to a user at the user device.
In another example, a computing device includes a network interface component configured to communicate with a local wireless network, a display device, one or more memory components configured to store computer-readable instructions, and one or more processing units configured to execute the instructions. In this example, the instructions, when executed by the processing units, cause the processing units to receive an indication of a proximate device located proximate to the computing device via the local wireless network using the network interface component. Also in this example, the proximate device is configured to communicate via the local wireless network. The instructions further cause the processing units to identify the proximate device based on the received indication, in response to identifying the device, generate an ad based on the identified device, and display the ad to a user using the display device.
The details of one or more examples are set forth in the accompanying drawings and the description below. Other features, objects, and advantages will be apparent from the description and drawings, and from the claims.
The figures and the following description relate to example implementations by way of illustration only. It should be noted that from the following discussion, alternative implementations of the structures and methods disclosed herein will be readily recognized as viable alternatives that may be employed without departing from the scope of this disclosure.
The present disclosure generally relates to the field of advertising, and, more particularly, to techniques for generating and displaying advertisements (ads) on user devices. According to the techniques of this disclosure, a user device (e.g., a smart watch, smartphone, tablet computer, or laptop computer) may be located proximate to (e.g., nearby) one or more other devices (e.g., one or more consumer and/or industrial devices) that are capable of indicating their proximity to the user device. In other words, the proximate devices may be capable of indicating their presence near the user device to the device. For example, the proximate devices may include one or more network-connected (e.g., communicatively coupled via a computer network, or “networked”) computing devices and/or appliances. In some examples, the proximate devices may include any of networked desktop computers, printers, routers, smart televisions, gaming consoles, and wireless speakers. Additionally, or alternatively, the proximate devices may include any of networked home thermostats, light switches, refrigerators, microwaves, toasters, crock-pots, and other home and kitchen devices and appliances. In some examples, the proximate devices may be networked using any of Wi-Fi, Bluetooth, near-field communication (NFC), ZigBee, Z-Wave, radio frequency identification (RFID), and/or other short-range local wireless communication protocols, interfaces, and technologies. In these examples, the proximate devices may be further networked using any of Ethernet, USB, optical fiber, power line and/or other wired communication protocols, interfaces, and technologies. As a specific example, the proximate devices may include one or more devices commonly referred to as “Internet of Things” (IoT) devices that are connected to a local network and, e.g., the Internet, via a wired and/or wireless communications interface. In this disclosure, the user device may include any computing device that is capable of connecting to and interacting with one or more of the proximate devices via any of the local wireless communication protocols, interfaces, and technologies described herein. In some examples, the user device may also be capable of connecting to and interacting with other computing devices via any of the wired communication protocols, interfaces, and technologies described herein.
According to the disclosed techniques, the proximate devices may be configured to indicate their proximity to the user device via a local wireless communication protocol, interface, or technology (e.g., any of the local wireless communication protocols, interfaces, and technologies described herein). Specifically, each proximate device may be configured to transmit an indication of the device to the user device via a short-range local wireless network (e.g., Wi-Fi, Bluetooth, or NFC). A local wireless network, as used herein, may refer to any communication protocol, interface, or technology that enables two or more computing devices to exchange data wirelessly over a relatively short distance (e.g., up to 10-100 meters). Using the local wireless network, a first computing device may transmit data wirelessly to a second, different computing device. In some examples, the second computing device may also transmit data wirelessly to the first computing device using the local wireless network. As a result, the proximate device transmitting the indication of the device to the user device via the short-range local wireless network may indicate that the proximate device is located proximate to (e.g., nearby) the user device. In some examples, the proximate device may transmit the indication to the user device as part of actively communicating with the user device (e.g., the proximate device may be communicatively coupled with the user device). In other examples, the proximate device may transmit the indication to the user device as part of (e.g., in response to) the user device scanning for, or “pinging” (e.g., querying to determine a connection with, or activity of) nearby devices using a local wireless network (e.g., Wi-Fi, or Bluetooth). In still other examples, the proximate device may transmit the indication as part of a transmission (e.g., a broadcast) intended for one or more computing devices other than the user device (e.g., as part of pairing the proximate device with, or transmitting data to, the computing devices). In these examples, the user device may receive the indication as a result of the transmission (e.g., by listening for and/or receiving the transmission). In other words, in some examples, the user device may not transmit any data to the identified proximate device as part of receiving the indication of the proximate device from the proximate device. In this manner, the user device may receive the indication as a result of various types of data transmission by the proximate device, including data transmission directly to the user device, and data transmission to one or more other computing devices. As described herein, the proximate device may transmit the indication to the user device over a local wireless network. In some examples, the proximate device may transmit the indication wirelessly using an intermediate device, such as a wireless router, a Wi-Fi adapter, or a Bluetooth adapter.
In this disclosure, one or more such indications received by the user device from one or more proximate devices that are located proximate to the user device may be referred to as a “snapshot” of the proximate devices from the standpoint of the user device. According to the disclosed techniques, upon receiving the indications (e.g., the snapshot), the user device may identify the proximate devices as located proximate to the user device. As one example, the user device may identify each proximate device as being located proximate to the user device. As another example, the user device may identify a subset of the proximate devices as being located proximate to the user device. As a specific example, the user device may identify one or more of the proximate devices as being located the most proximate (e.g., closest) to the user device.
Upon identifying the one or more proximate devices, the user device (e.g., using an ad system) may generate one or more ads based on the devices and display the ads to a user. As described herein, the ads may be specified by one or more advertisers of various products and services. As also described herein, the ads may be associated with (e.g., tailored to) the identified proximate devices, their types (e.g., device categories), and/or their specific states at the time the devices were identified. In some examples, the user device may generate the ads in response to identifying the proximate devices. In other examples, the user device may generate the ads at a later point in time after identifying the proximate devices. In still other examples, after identifying the proximate devices, the user device may generate the ads in response to another event (e.g., a user input, or a specific state of the user device), or automatically (e.g., at regular time intervals). For example, the user device may generate the ads based on a timed event (e.g., using an output of a timer of a software application, or “app,” included on the device), upon the user performing a search using the device, or in response to the user browsing and/or interacting with a web page or a state of a software app on the device. In additional examples, the user device may initially identify the proximate devices in response to the event, and subsequently generate the ads based on the identified proximate devices.
In this manner, the techniques of the present disclosure may, in some examples, enable advertisers to effectively and efficiently advertise various products and services. The techniques may also enable generating ads that are more relevant to device users compared to other techniques (e.g., ad targeting using geo-location, explicit or inferred user demographic, or user searching and/or browsing history). For example, using the techniques, advertisers may generate ads for products or services that are directly applicable, complementary, or tangentially related to computing devices or appliances located near user devices. As a result, the techniques may enable the advertisers to advertise the products or services to device users who are more likely to desire the products or services and interact with the corresponding ads. Accordingly, the techniques may enable the advertisers to advertise the products or services relatively more effectively. Additionally, by enabling the advertisers to automatically generate the ads in response to determining that the computing devices or appliances are located near the user devices, the techniques may further enable the advertisers to advertise the products or services relatively more efficiently in terms of time and resources used to generate the corresponding ads.
In the example of
The ads may include any combination of text and image (and, e.g., audiovisual) data that describe an ad for a product, service, and/or business. In some examples, the ads may be associated with one or more states of one or more web-based apps (e.g., software apps that are accessible from a user device 102 via a web browser app), or one or more native apps (e.g., software apps that are installed and executed on a user device 102). For example, the ads may specify one or more monetary discounts or other promotions associated with the states. In these examples, the ads may include one or more user selectable links that, when selected by the user, direct the user device 102 to the states in the web-based or native apps. Also in these examples, the user selectable links may indicate (e.g., using text and/or image data) to the user the corresponding states in the web-based or native apps. In other examples, the ads may specify monetary discounts or promotions that are not directly associated with states of web-based or native apps (e.g., as in the case of ads for in-store or catalog purchases).
The user device 102 may generate the ads based on the identified proximate devices 104 using any of a variety of techniques. As one example, as described herein, the user device 102 may generate the ads using the identified proximate devices 104. For example, the user device 102 may generate the ads using the identified proximate devices 104 as contextual information regarding the device 102 and/or the user. In one example, the user device 102 may generate an ad for a smart television upon determining that the device 102 is located proximate to a particular smart television model name and/or number. In another example, the user device 102 may generate an ad for printer ink cartridges upon determining that the device 102 is located proximate to a specific networked printer model name and/or number. In these examples, the identified proximate devices 104 may be indicated using so-called “device IDs” of the devices 104. In some examples, the device IDs may be represented using textual and/or numerical data.
As another example, as also described herein, the user device 102 may generate the ads using categories, or types, associated with the identified proximate devices 104, e.g., again as contextual information regarding the device 102 and/or the user. In one example, the user device 102 may generate an ad for a fitness band upon determining that the device 102 is located proximate to a particular fitness band, irrespective of its model name and/or number. In another example, the user device 102 may generate an ad for ground or whole coffee beans upon determining that the device 102 is located proximate to a networked coffee maker, again irrespective of its model name and/or number. In these examples, the types of the identified proximate devices 104 may be indicated using so-called “type IDs” generated using information associated with the devices 104 (e.g., device IDs and/or other device information). The type IDs may be represented using textual and/or numerical data in some examples.
As still another example, as further described herein, the user device 102 may generate the ads using states of the identified proximate devices 104, e.g., again as contextual information regarding the device 102 and/or the user. In other words, the user device 102 may generate an ad for a specific product, service, and/or business upon determining that the device 102 is located proximate to a particular proximate device 104 or proximate device type that indicates a given state. Using a previous example, the user device 102 may generate an ad for printer ink cartridges upon determining that the device 102 is located proximate to a (e.g., specific model of) networked printer that is nearly or completely out of printer ink. As another example, the user device 102 may generate an ad for a crock-pot upon determining that the device 102 is located proximate to a networked crock-pot (e.g., irrespective of its model) that indicates a malfunction (e.g., a hardware fault). As still another example, the user device 102 may dynamically generate different ads for hot or cold food items or beverages depending on whether a (e.g., specific model, or a general type of) networked home thermostat located proximate to the device 102 indicates a particular indoor or outdoor temperature, temperature range, or ongoing mode of operation (e.g., cooling, or heating). In these examples, the states of the identified proximate devices 104 or of proximate device types may be indicated using so-called “state IDs” generated using information associated with the devices 104 or types (e.g., device IDs, type IDs, or other device information) and including textual and/or numerical data.
In some examples, the user device 102 may generate the ads by performing searches for the ads using the identified proximate devices 104, their types, and/or their states, as described herein. In other examples, the user device 102 may generate the ads using ad logic that associates the identified proximate devices 104, their types, and/or their states with the ads, as also described herein. For example, the ad logic may specify a mapping between each identified proximate device 104, its type, and/or its state and one or more ads. In one example, the mapping may associate a model name and/or number (e.g., as indicated by a device ID) of the identified proximate device 104 with the one or more ads. In another example, the mapping may associate a category, or type (e.g., as indicated by a type ID), of the identified proximate device 104 with the one or more ads. In still another example, the mapping may associate a state of the identified proximate device 104 or of its device type (e.g., as indicated by a state ID) with the one or more ads. In general, the mapping may associate any combination of one or more model names and/or numbers, types, and states of one or more of the identified proximate devices 104 with one or more ads. In some examples, the mapping may be generated and/or updated manually by the advertisers or third parties (e.g., companies or organizations that operate the ad system 100). Additionally, or alternatively, the mapping may be generated and/or updated manually and/or automatically using historical user behavioral data (e.g., data indicating past user actions with respect to one or more of the user device(s) 102, such as browsing and/or purchasing products or services, when in proximity to one or more of the proximate device(s) 104). In additional examples, the mapping may also be updated based on user ad selection data that indicates whether the user has selected one or more of the ads on the user device 102.
In this manner, the ads generated by the user device 102 based on the identified proximate devices 104 may be directly applicable to the devices 104 (e.g., offering equivalent or improved products or services) and/or complimentary to the devices 104 (e.g., offering accessories, enhancements, and/or associated products and services). In some examples, the ads may be tangentially related, although not directly applicable or complimentary, to the proximate devices 104 (e.g., offering products or services that the user is likely interested in given the devices 104, their types, and/or their states). As a specific example, the user device 102 may generate an ad for a tropical adventure vacation based on an identified proximate device 104 corresponding to smart adventure gear used in snow, irrespective of whether the user is able to use the device 104 during the advertised vacation.
As described herein, in some examples, to generate the ads, the user device 102 may use the ad system 100. In these examples, the ad system 100 may be a part of the user device 102, a part of another system or device, or a stand-alone system or device. The ad system 100 may include ad content related to one or more ads. The ad content may be defined (e.g., specified) by one or more advertisers using the ad system 100 (e.g., via the advertiser device(s) 108). As described herein, the user device 102 may transmit an indication of the identified proximate devices 104, their types, and/or their states to the ad system 100. The ad system 100 may receive the indication from the user device 102, generate the ads using the indication and the ad content, and transmit the ads to the device 102. For example, the user device 102 may transmit the indication to the ad system 100 as part of an ad request, thereby offering the system 100 an opportunity to fulfill the request (e.g., generate the ads). The ad system 100 may generate the ads in response to receiving the ad request and transmit the ads to the user device 102.
The advertisers may generate the ad content using any of a variety of techniques. In general, the advertisers may generate the ad content by bidding via the ad system 100 to have ads for products, services, and/or businesses shown to users of user devices 102 that are located proximate to one or more sponsored proximate devices, sponsored proximate device types, and/or sponsored proximate device states. In some examples, the advertisers may bid on one or more specific proximate devices 104 (e.g., model names and/or numbers, such as the “UN65JU7500FXZA” smart television by Samsung®). In these examples, the proximate devices 104 may be indicated using device IDs. In other examples, the advertisers may bid on one or more categories, or types, of proximate devices 104 (e.g., specific or broad device types, such as “Fitbit® fitness bands,” “smart televisions,” or “kitchen appliances”). In these examples, the proximate device types may be indicated using type IDs. In still other examples, the advertisers may bid on one or more states of proximate devices 104, or one or more states of proximate device types (e.g., a “low ink” state of a “WorkForce Pro WP-4010” Epson® networked printer, or a “cooling” state of any Nest® networked home thermostat). In these examples, the proximate device or device type states may be indicated using state IDs.
In the examples described herein, the ad system 100 may store the ad content specified by the advertisers in one or more ad records included in the ad data store 114. In some examples, the ad system 100 (e.g., the ad generation module 110) may generate the ads by performing searches for ad records included in the ad data store 114 that specify one or more of the identified proximate devices 104, their types, and/or their states indicated by the user device 102. In other examples, the advertisers may specify one or more ads for one or more products, services, and/or businesses without associating the ads with any proximate devices 104, proximate device types, or proximate device states. In these examples, ad logic and associated (e.g., mapping) data specified by the advertisers or a third party (e.g., a company or organization that operates the ad system 100) may be configured to associate the ads with one or more of the identified proximate devices 104, their types, and/or their states. As described herein, the ad logic and/or the associated data may be generated and/or updated over time manually and/or automatically using any combination of user input, historical user behavioral data, and user ad selection data. In some examples, the ad logic data, the historical user behavioral data, and/or the user ad selection data may be stored in the ad data store 114.
To generate the ads, the ad system 100 may identify ad records included in the ad data store 114 using any of a variety of techniques. In some examples, the ad system 100 may identify one or more ad records that specify the identified proximate devices 104, their types, and/or their states. The ad system 100 may then select those of the identified ad records that are associated with (e.g., that specify) the highest one or more advertiser bids (e.g., prices). In other examples, the ad system 100 may generate a score for each identified ad record. The score may indicate a likelihood of maximizing ad revenue by generating an ad using the corresponding ad record. For example, the score may be generated using any combination of the associated advertiser bid and an expected probability that a user will select the resultant ad (e.g., score=Bid_price*P(click_on_ad), where “Bid_price” is the advertiser bid and “P(click_on_ad)” is the expected probability). The expected probability may be calculated using historical user ad selection data (e.g., data indicating past user selections of ads while browsing and/or purchasing products or services). In these examples, the ad system 100 may select those of the scored identified ad records having the highest one or more scores. In further examples, the ad system 100 may identify one or more ad records using the identified proximate devices 104, their types, and/or their states and a mapping and select those of the identified records that are associated with the highest one or more advertiser bids or scores, in a similar manner as described above.
The techniques of this disclosure may also optionally include one or more of the following features. In some examples, the user device 102 may generate the ads in response to determining that the identified proximate devices 104 exclude one or more devices (e.g., specific model names and/or numbers), device types (e.g., broad or general device categories), and/or device states (e.g., states of particular devices or device types). As one example, the user device 102 may generate an ad for a specific model of a Fitbit® fitness band upon determining that the identified proximate devices 104 do not include that model. In this example, the user device 102 may determine that the identified proximate devices 104 include another model of a fitness band (e.g., Garmin® Vivofit). As another example, the user device 102 may generate an ad for a smart air conditioner upon determining that the identified proximate devices 104 do not include any smart air conditioners, irrespective of model name and/or number. In other examples, the user device 102 may generate the ads in response to determining that the identified proximate devices 104 include (e.g., fall into) one or more device categories (e.g., types), but exclude one or more specific devices within those categories. For example, the user device 102 may generate an ad for a particular smart kitchen appliance model (e.g., a KitchenAid® smart appliance) upon determining that the identified proximate devices 104 include one or more smart kitchen appliances, but do not include that model. In further examples, the user device 102 may generate an ad for a product, service, or business (e.g., a specific model of a wireless router) in response to determining that the identified proximate devices 104 are not in one or more particular states (e.g., a wireless router that is actively transmitting data, indicating its proper operation).
In some examples, the user device 102 may generate the ads in response to determining ownership of the identified proximate devices 104. As one example, the user device 102 may definitively determine whether the user owns or is otherwise associated with one or more of the identified proximate devices 104. For example, the user may register one or more of the proximate device(s) 104 via the user device 102. As a result, the user device 102 may store device information, such as device IDs, associated with the registered proximate devices 104 on the device 102 and/or in another network location (e.g., via cloud storage). The user device 102 may then determine whether the identified proximate devices 104 include any of the registered proximate devices 104 using the device information, thereby establishing the user's ownership of or association with one or more of the identified proximate devices 104. As another example, the user device 102 may infer whether the user owns or is associated with one or more of the identified proximate devices 104. For example, the user device 102 may predict whether an identified proximate device 104 is owned by or associated with the user by determining any of the following: whether (and, e.g., how frequently) the user has previously interacted with the device 104 (e.g., via the user device 102); whether (and, e.g., how frequently) the user device 102 has been located proximate to the device 104; and whether the user owns or is associated with other devices that are similar to the device 104 (e.g., the user owning or being associated with a given device may make it more or less likely that the user also owns or is associated with a similar device). Upon determining the ownership or association of the identified proximate devices 104, the user device 102 may generate the ads using any of a variety of techniques. In some examples, the user device 102 may generate an ad for an identified proximate device 104 if the device 104 is owned by or associated with the user, and otherwise refrain from generating the ad. In other examples, the user device 102 may generate different ads for an identified proximate device 104 depending on whether the device 104 is owned by or associated with the user. For example, upon determining that the user device 102 is located proximate to a networked printer owned by or associated with the user, the device 102 may generate an ad for printer ink cartridges that are compatible with the printer. Alternatively, upon determining that the networked printer is not owned by or associated with the user, the user device 102 may generate an ad for a networked printer of the same or different model or brand.
In some examples, the user device 102 and ad system 100 may generate the ads by taking into consideration user privacy. As one example, upon identifying the proximate devices 104, the user device 102 may transmit a generalized version (e.g., a summary) of the indication of the devices 104 to the ad system 100. For example, after determining one or more specific model names and/or numbers (e.g., device IDs) of the identified proximate devices 104, the user device 102 may transmit data describing one or more general categories, or types (e.g., type IDs) associated with the devices 104 to the ad system 100. In other examples, upon determining one or more specific categories (e.g., specific type IDs) of the identified proximate devices 104, the user device 102 may transmit data describing one or more general categories (e.g., broader type IDs) associated with the devices 104 to the ad system 100. In still other examples, upon determining one or more states (e.g., state IDs) of the identified proximate devices 104, the user device 102 may transmit to the ad system 100 an indication of each state along with data describing a category (e.g., a type ID) associated with the corresponding device 104, rather than a specific device model name and/or number (e.g., a device ID) of the device 104. In these examples, the ad system 100 may generate the ads using the generalized version of the indication of the identified proximate devices 104, their types, and/or their states, rather than the indication.
As another example, the user device 102 may transmit an encrypted (e.g., compressed) version of the indication of the identified proximate devices 104, their types, and/or their states to the ad system 100. For example, the user device 102 may transmit the indication using a Bloom filter representation. In this example, instead of indicating the identified proximate devices 104, their types, and/or their states directly, the representation may indicate whether the devices 104 potentially include a particular device, type, and/or state, or definitively do not include the device, type, and/or state. As still another example, the user device 102 may refrain from transmitting the indication to the ad system 100 altogether. In this example, the user device 102 may select the ads from a set of ads provided by the ad system 100 using the identified proximate devices 104, their types, and/or their states. For example, the ad system 100 may generate a set of one or more so-called “candidate” ads and transmit the set to the user device 102. The user device 102 may then use the identified proximate devices 104, their types, and/or their states (and, e.g., ad logic) to select the ads from (e.g., select a subset of) the set.
In general, the user device 102 may generate the ads based on the identified proximate devices 104 using any combination of the techniques, features, and considerations described herein. For example, the user device 102 may generate the ads using any of the identified proximate devices 104, their types, their states, ad logic that associates the devices 104, types, and/or states with the ads, absence of specific devices or general device types from the devices 104, ownership of the devices 104, generalized versions of indications of the devices 104, types, and/or states, encrypted versions of the indications, and selection of the ads from sets of candidate ads. Moreover, in some examples, the user device 102 may generate the ads using any of the above-described techniques, features, and considerations in conjunction with any other information associated with the user and/or the device 102, such as, e.g., geographic location, a time of day, and a local temperature associated with the user and/or the device 102.
As such, the techniques described herein may enable generating targeted ads using the proximate device(s) 104 instead of, or along with, other information commonly available on the user device(s) 102 (e.g., geo-location, user demographic, user searching, browsing, and social network activity history, contacts, call, text, and chat history, and other information). In some examples, using the proximate device(s) 104 in this manner may be advantageous because other information associated with users of the user device(s) 102 and/or the device(s) 102 may be unavailable, unreliable, or inaccessible. In other examples, the proximate device(s) 104 may represent more current or instantaneous contextual user data compared to the information associated with the users and/or user device(s) 102, which may represent older or averaged data.
In this disclosure, a software app may refer to computer software that causes a computing device to perform a task. In some examples, a software app may be referred to as an “app,” or a “program.” Example apps include word processing apps, spreadsheet apps, messaging apps, media streaming apps, social networking apps, and games. Apps can be executed on a variety of different computing devices. For example, apps can be executed on mobile computing devices, such as smartphones, tablets, and wearable computing devices (e.g., smart watches, fitness bands, and headsets, such as smart glasses). Apps can also be executed on other types of computing devices having other form factors, such as laptop and desktop computers, and other consumer electronic devices (e.g., smart home appliances, home networking devices, and home automation devices). In some examples, apps may be installed on a computing device prior to a user purchasing the device. In other examples, the user may download and install apps on the computing device after purchasing the device. A native app, as used herein, may refer to an app that is installed and executed on a user device 102. A web-based app may refer to an app that is accessible from a user device 102 via a web browser app.
An AM, as used herein, may include any of a native app AM (hereinafter, “AAM”) and a web AM (hereinafter, “WAM”). As such, a user device 102 of this disclosure may use an AM to access the functionality provided by a native or web-based app. For example, a user of the user device 102 may select an ad that includes the AM to access the functionality of the native or web-based app. An AAM may be a string that references a native app and indicates one or more operations for a user device 102 (e.g., the app) to perform. If the user selects an ad that includes the AAM, the user device 102 may launch the native app referenced by the AAM and (e.g., cause the app to) perform the operations indicated by the AAM. In other words, the user selecting the ad may cause the user device 102 to launch the native app and set the app into a state (e.g., in which the app displays a graphical user interface (GUI), or screen) that corresponds to the operations. As a result, the native app may be configured to display one or more products, services, vendors, and/or associated monetary discounts to the user, e.g., via a display device of the user device 102. In this manner, the AAM may specify the state of the native app. The state, in turn, may refer to the operations indicated by the AAM and/or the outcome of the native app performing the operations in response to the user selecting the ad that includes the AAM. A WAM may include a resource identifier that references a web resource (e.g., a page of a web-based app, or website). For example, the WAM may include a uniform resource locator (URL) (i.e., a web address) used with the hypertext transfer protocol (HTTP). If the user selects an ad that includes the WAM, the user device 102 may launch a web browser app and retrieve the web resource referenced by the resource identifier. Stated another way, if the user selects the ad, the user device 102 may launch the web browser app and access a state (e.g., a page) of a web-based app, or website, specified by the WAM. The state of the web-based app may be configured to display one or more products, services, vendors, and/or associated monetary discounts to the user, in a similar manner as previously described.
The user device(s) 102 may be any computing devices capable of providing indications of the proximate device(s) 104, their types, and/or their states to the ad system 100 and receiving ads from the system 100. The user device(s) 102 may include any of smart watches, smartphones, and tablet or laptop computing devices. The user device(s) 102 may also include computing devices having other form factors, e.g., wirelessly-networked desktop computers, vehicle navigation systems, gaming devices, and smart televisions. The user device(s) 102 may use a variety of different operating systems or platforms (e.g., an operating system, or “OS,” 120, as shown in
The user device(s) 102 may communicate with the ad system 100 via the network 106. In general, the user device(s) 102 may communicate with the ad system 100 using any app that can transmit indications of the proximate device(s) 104, their types, and/or their states to the system 100 and receive ads from the system 100. In some examples, the user device(s) 102 may include an app that is dedicated to interfacing with the ad system 100, such as an app dedicated to ads (e.g., any of one or more native apps 124, as also shown in
The proximate device(s) 104 may be any computing devices capable of indicating their proximity to (e.g., presence near) the user device(s) 102 using a local wireless network (e.g., Wi-Fi, Bluetooth, or NFC). As described herein, the proximate device(s) 104 may include any networked computing devices and/or appliances, including desktop computers, printers, routers, televisions, gaming consoles, wireless speakers, thermostats, light switches, refrigerators, microwaves, toasters, crock-pots, and other devices and appliances.
The advertiser device(s) 108 may be any computing devices capable of receiving ad content (e.g., ad data and/or ad parameters) from users of the device(s) 108 (e.g., advertisers) and transmitting the content to the ad system 100. For example, the advertiser device(s) 108 may be any computing devices capable of receiving indications of sponsored proximate devices, sponsored proximate device types, and/or sponsored proximate device states from the users, as well as any of ad bid prices and additional parameters, and transmitting this information to the ad system 100. In some examples, the advertiser device(s) 108 may provide a GUI that enables the users of the device(s) 108 to specify the ad content and transmit the content to the ad system 100.
In the example of
As shown in
As also shown in
In response to identifying the proximate device 104, the user device 102 may generate an ad based on the identified device 104. For example, in block 504A, in response to identifying the proximate device 104, the user device 102 may transmit an indication of the device 104, its category (e.g., type), and/or its state 116 to the ad system 100. In some examples, the user device 102 may transmit indications of additional identified proximate devices 104, their categories, and/or their states 116 to the ad system 100. As described with reference to
In block 706B, the ad system 100 may generate one or more ads 118 using (e.g., ad data 134, such as ad content 406 and/or ad parameters 408, included in) the identified ad records 400. In block 708B, the ad system 100 may transmit the generated ads 118 (e.g., text and/or image data) to the user device 102. As described herein, the user device 102 may receive the transmitted ads 118 from the ad system 100 and display the ads 118 to a user of the device 102.
In block 710B, the ad system 100 may optionally receive a second indication of whether the user of the user device 102 has selected (e.g., touched, or clicked on) one or more of the transmitted ads 118 (e.g., an indication of user ad selection) 117 from the device 102. In this disclosure, one or more such indications of user ad selection 117 may be referred to (e.g., collectively) as user ad selection data 152. In block 712B, the ad system 100 (e.g., the mapping updating module 144) may optionally update the mapping data 148 based on the received first and second indications 116, 117. Specifically, the ad system 100 may use the second indication 117 to modify the portion of the mapping data 148 used to identify the ad records 400 used to generate the transmitted ads 118 based on the first indication 116. For instance, in the event the second indication 117 indicates that the user has selected a particular one of the ads 118, the ad system 100 may retain or reinforce (e.g., strengthen) the mapping, as specified by the mapping data 148, between the proximate device 104, its type, and/or its state (e.g., the device IDs, type IDs, and/or state IDs) and the corresponding ad record 400. Alternatively, in the event the second indication 117 indicates that the user has not selected a given one of the ads 118, the ad system 100 may reduce (e.g., weaken) or remove the mapping, as specified by the mapping data 148, between the proximate device 104, its type, and/or its state (e.g., the device IDs, type IDs, and/or state IDs) and the associated ad record 400. In this manner, the ad system 100 may be configured to dynamically adjust (e.g., fine-tune) the association between the proximate device(s) 104, their types, and/or their states and the ad records 400 (i.e., the corresponding ads 118), as defined by the mapping data 148, based on the user ad selection data 152 received from the user device 102 and/or other ones of the user device(s) 102. In some examples, the ad system 100 may also store the user ad selection data 152 in the ad data store 114, e.g., for later retrieval.
In additional examples, upon identifying one or more of the proximate device(s) 104 in the manner described herein, or using other techniques (e.g., geo-location), the user device 102 (e.g., via the ad system 100) may generate an ad 118 associated with one of the identified proximate devices 104 and display the ad 118 to a user of the user device 102. For example, the ad 118 may specify a monetary discount or another promotion (e.g., 10% off a purchase price) associated with the identified proximate device 104 (e.g., a vending machine). The user may select the ad 118 on the user device 102. As a result, the user device 102 (e.g., via the ad system 100) may issue (e.g., generate) a user ID to the user. The user ID may indicate that the user has selected the ad 118 and may be set to expire after a predetermined period of a time following its issuance. The user device 102 may communicate the user ID to the identified proximate device 104 associated with the ad 118 (e.g., upon the user approaching the device 104). The user may then redeem or take advantage of the monetary discount or promotion specified by the ad 118 at the identified proximate device 104 using the user ID.
In other examples, one or more of the identified proximate devices 104, rather than the user device 102, may generate the ads 118 (e.g., via the ad system 100) and display the ads 118 to the user of the device 102. In still other examples, the user device 102 (e.g., via the ad system 100) may advertise and provide a monetary discount or another promotion associated with one or more particular ones of the proximate device(s) 104 (e.g., 50% off vending machine soda for a month). The monetary discount or promotion may be redeemed or taken advantage of by the user downloading and installing a specific native app (e.g., Venmo®) on the user device 102. In further examples, the user device 102 (e.g., via the ad system 100) may generate an ad 118 related to a device category or theme (e.g., fitness) upon determining that the user is located proximate to (e.g., the user is wearing) one of the proximate device(s) 104 associated with that category or theme (e.g., a Fitbit® fitness band).
In still other examples, the user device 102 may identify the proximate device(s) 104 using any optical communication protocols, interfaces, and technologies, such as wireless infrared communications (e.g., IrDA) and laser-based communications (e.g., using a barcode scanner included in the user device 102 and barcodes present on the proximate device(s) 104). The user device 102 may then generate the ads 118 (e.g., via the ad system 100) and display the ads 118 to the user of the device 102. In further examples, the user device 102 may identify the proximate device(s) 104 using a current location of the device 102 (e.g., GPS coordinates associated with the device 102) and a database (e.g., a data store) including an indication of one or more proximate devices 104 and their corresponding geographic locations (e.g., GPS coordinates associated with the devices 104). The user device 102 may then generate the ads 118 and display the ads 118 to the user of the device 102.
The modules and data stores included in the ad system 100 represent features or functionality that may be included in the system 100 as it is described in the present disclosure. For example, the ad generation module 110, ad record generation module 112, ad data store 114, and the components thereof may represent features included in the ad system 100. The modules and data stores described herein may be embodied by electronic hardware, software, firmware, or any combination thereof. Depiction of different features or functionality as separate modules or data stores does not necessarily imply whether the modules or data stores are embodied by common or separate electronic hardware, software, or firmware components. In some examples, the features or functionality associated with one or more of the modules and data stores may be realized by common or separate electronic hardware, software, or firmware components.
The modules and data stores may be embodied by electronic hardware, software, and/or firmware components including one or more processing units, memory components, input/output (I/O) components, and interconnect components. The interconnect components may be configured to provide communication between the processing units, memory components, and I/O components. For example, the interconnect components may include one or more buses configured to transfer data between electronic components. The interconnect components may also include one or more control circuits (e.g., a memory controller and/or an I/O controller) configured to control communication between electronic components.
The processing units may include one or more central processing units (CPUs), graphics processing units (GPUs), digital signal processing units (DSPs), application specific integrated circuits (ASICs), field programmable gate arrays (FPGAs), or other processing units. The processing units may be configured to communicate with the memory components and I/O components. For example, the processing units may be configured to communicate with the memory components and I/O components via the interconnect components.
A memory component, or memory, as described herein may include any volatile or non-volatile media. For example, a memory component may include electrical media, magnetic media, and/or optical media, such as any of random access memory (RAM), non-volatile RAM (NVRAM), read-only memory (ROM), electrically-erasable programmable ROM (EEPROM), Flash memory, solid state drives (SSDs), hard disk drives (HDDs), magnetic tape drives, optical storage technology (e.g., compact disc, digital versatile disc, and/or Blu-ray Disc), and any other equivalent or similar memory components, systems, or devices. The memory components may include (e.g., store) the various types of data described herein. For example, the memory components may store data included in one or more ad records 400 of the ad data store 114. The memory components may also include one or more instructions that may be executed by the processing units. For example, the memory components may include one or more computer-readable instructions that, when executed by the processing units, cause the units to perform the various functions attributed to the modules and data stores described herein.
The I/O components may refer to electronic hardware, software, and/or firmware that provide communication with various different devices. For example, the I/O components may provide communication between other devices and the processing units and memory components. In some examples, the I/O components may be configured to communicate with a computer network, such as the network 106. For example, the I/O components may be configured to exchange data over a computer network using any of a variety of different physical connections, wireless connections, and protocols. The I/O components may include one or more network interface components (e.g., a network interface controller), repeaters, network bridges, network switches, routers, and firewalls. In some examples, the I/O components may include hardware, software, and/or firmware configured to communicate with various human interface devices, including display screens, keyboards, pointer devices (e.g., a mouse), touchscreens, speakers, and microphones. In other examples, the I/O components may provide communication with additional devices, such as external memory (e.g., external HDDs).
In some examples, the ad system 100 may be a system of one or more computing devices (e.g., a computerized ad system) configured to implement the techniques described herein. In other words, the features or functionality attributed to the modules and data stores described herein may be implemented by one or more computing devices. Each computing device may include any combination of electronic hardware, software, and/or firmware, as described herein. Additionally, each computing device may include any combination of processing units, memory components, I/O components, and interconnect components, as also described herein. The computing devices of the ad system 100 may also include various human interface devices, including display screens, keyboards, pointing devices (e.g., a mouse), touchscreens, speakers, and microphones. The computing devices may also be configured to communicate with additional devices, such as external memory (e.g., external HDDs).
The computing devices of the ad system 100 may be configured to communicate with the network 106. The computing devices may also be configured to communicate with one another (e.g., within the ad system 100) via a computer network. In some examples, the computing devices may include one or more server computing devices configured to communicate with user devices, such as the user device(s) 102 or advertiser device(s) 108 (e.g., receive indications of proximate devices, their types, and/or their states 116, ad data 134, and associated information, and generate and transmit ads 118). The server computing devices may also gather data from various data sources, index the data, and store the data, as well as gather, index, and/or store other documents or information. The computing devices of the ad system 100 may reside within a single machine or within multiple machines at a single geographic location, or may be distributed across a number of geographic locations.
Additionally, the various implementations of the ad system 100 described herein (e.g., using one or more computing devices that include one or more processing units, memory components, I/O components, and interconnect components) are equally applicable to any of the user device(s) 102, proximate device(s) 104, and advertiser device(s) 108 described herein, as well as to the various components thereof.
Claims
1. A method comprising:
- identifying, using a user device, a proximate device located proximate to the user device using a local wireless network, wherein the proximate device is configured to communicate via the local wireless network, and wherein identifying the proximate device comprises receiving an indication of the proximate device from the proximate device via the local wireless network;
- in response to identifying the proximate device, generating, using the user device, an advertisement (ad) based on the identified proximate device; and
- displaying the generated ad to a user at the user device.
2. The method of claim 1, wherein the user device and the proximate device are communicatively coupled via the local wireless network, and wherein receiving the indication of the proximate device from the proximate device via the local wireless network comprises receiving the indication as part of the proximate device communicating with the user device.
3. The method of claim 1, wherein the proximate device is connected to the local wireless network, and wherein receiving the indication of the proximate device from the proximate device via the local wireless network comprises receiving the indication in response to the user device performing a scan for computing devices that are connected to the local wireless network.
4. The method of claim 1, wherein receiving the indication of the proximate device from the proximate device via the local wireless network comprises receiving the indication in response to the user device pinging the proximate device via the local wireless network.
5. The method of claim 1, wherein the proximate device and another computing device are communicatively coupled via the local wireless network, and wherein receiving the indication of the proximate device from the proximate device via the local wireless network comprises receiving the indication as part of the proximate device communicating with the other computing device.
6. The method of claim 1, wherein generating the ad based on the identified proximate device comprises determining, using the user device, one or more of a model name, a model number, and a device ID of the identified proximate device, and generating, using the user device, the ad based on the determined one or more of the model name, model number, and device ID.
7. The method of claim 1, wherein generating the ad based on the identified proximate device comprises determining, using the user device, a category of the identified proximate device, and generating, using the user device, the ad based on the determined category.
8. The method of claim 1, wherein generating the ad based on the identified proximate device comprises determining, using the user device, a state of the identified proximate device, and generating, using the user device, the ad based on the determined state.
9. The method of claim 1, wherein generating the ad based on the identified proximate device comprises transmitting, using the user device, an indication of one or more of the identified proximate device, a category of the identified proximate device, and a state of the identified proximate device to an ad system, and receiving, at the user device, the ad from the ad system in response to transmitting the indication.
10. The method of claim 1, wherein generating the ad based on the identified proximate device comprises:
- identifying an ad record included in an ad data store based on one or more matches between an indication of one of the identified proximate device, a category of the identified proximate device, and a state of the identified proximate device and information included in the ad record;
- selecting ad content from the identified ad record; and
- generating the ad based on the selected ad content.
11. The method of claim 1, wherein generating the ad based on the identified proximate device comprises:
- identifying an ad record included in an ad data store based on an indication of one of the identified proximate device, a category of the identified proximate device, and a state of the identified proximate device and based on a mapping between at least one of a device, a device category, and a device state and one or more ad records included in the ad data store;
- selecting ad content from the identified ad record; and
- generating the ad based on the selected ad content.
12. The method of claim 11, further comprising receiving, at the user device, an indication that the user has selected the ad on the user device, and updating, using the user device, the mapping based on the received indication.
13. The method of claim 1, wherein generating the ad based on the identified proximate device comprises determining, using the user device, that the identified proximate device does not correspond to one or more of a specific device, a specific device category, and a specific device state, and generating, using the user device, the ad based on the determination.
14. The method of claim 1, wherein generating the ad based on the identified proximate device comprises determining, using the user device, an indication of ownership associated with the identified proximate device, and generating, using the user device, the ad based on the determined indication.
15. The method of claim 14, wherein determining the indication of ownership associated with the identified proximate device comprises determining one or more of the following: whether the user has indicated ownership of the identified proximate device via a user input on the user device; whether the user has previously interacted with the identified proximate device via the user device; how frequently the user has previously interacted with the identified proximate device via the user device; whether the user device has been previously located proximate to the identified proximate device; how frequently the user device has been previously located proximate to the identified proximate device; and
- whether the user is associated with one or more other devices that are similar to the identified proximate device.
16. The method of claim 1, wherein generating the ad based on the identified proximate device comprises receiving, at the user device, one or more candidate ads from an ad system, and selecting, using the user device, the ad from the one or more candidate ads based on the identified proximate device.
17. The method of claim 1, wherein the local wireless network comprises a Wi-Fi network.
18. The method of claim 1, wherein the local wireless network comprises a Bluetooth network.
19. The method of claim, 1 wherein the local wireless network comprises a near-field communications (NFC) network.
20. A computing device comprising:
- a network interface component configured to communicate with a local wireless network;
- a display device;
- one or more memory components configured to store computer-readable instructions; and
- one or more processing units configured to execute the computer-readable instructions, wherein the computer-readable instructions, when executed by the one or more processing units, cause the one or more processing units to: receive an indication of a proximate device located proximate to the computing device via the local wireless network using the network interface component, wherein the proximate device is configured to communicate via the local wireless network; identify the proximate device based on the received indication; in response to identifying the proximate device, generate an advertisement (ad) based on the identified proximate device; and display the generated ad to a user using the display device.
Type: Application
Filed: Aug 24, 2016
Publication Date: Dec 15, 2016
Inventor: Eric GLOVER (Palo Alto, CA)
Application Number: 15/245,378