DETERMINING WHETHER TO PLACE AN ADVERTISEMENT REQUESTING AN ADDRESS

Disclosed herein is a system and method to determine whether to place an advertisement to a user requesting an address from the user. The system can iteratively determine multiple advertisement metrics of multiple advertisements to obtain multiple metrics. An advertisement metric among the multiple advertising metrics can indicate the value of placing the advertisement to the user. The system can rank multiple advertisements based on the multiple advertisement metrics and present a predetermined percentage of top-ranking advertisements among the multiple advertisements.

BACKGROUND

Online advertising is a form of marketing and advertising which uses the Internet to promote products and services to audiences and platform users. Like other advertising media, online advertising frequently involves a publisher, who integrates advertisements into its online content, and an advertiser, who provides the advertisements to be displayed on the publisher's content. Traditionally, the engagement of the user with an advertisement included viewing the advertisement, or clicking on the advertisement.

DETAILED DESCRIPTION

Disclosed herein is a system and method to determine whether to place an advertisement to a user requesting an address from the user. The system can iteratively determine multiple advertisement metrics of multiple advertisements to obtain multiple metrics. An advertisement metric among the multiple advertising metrics can indicate the value of placing the advertisement to the user. The system can rank multiple advertisements based on the multiple advertisement metrics, and present a predetermined percentage of top-ranking advertisements among the multiple advertisements.

To determine which advertisements to present, the system can obtain multiple metrics indicating a value associated with the user. A first metric among the multiple metrics can indicate a value of a new user, such as $10. A second metric among the multiple metrics can indicate a value of a repeat user, such as $5. A third metric among the multiple metrics can indicate an impact of length of delivery to the user. For example, each additional minute of delivery time can reduce the value of the advertisement by $0.50.

The system can obtain a profile associated with the user, a time to present the advertisement to the user, and a content associated with the advertisement. The profile associated with the user can indicate how frequently the user makes online purchases, and/or the user's demographic information. The advertisement can include a request to enter the address at which to deliver an item. Based on the profile associated with the user, the time, and the content, the system can determine a likelihood that the user will enter the address into the advertisement when the advertisement including the content is presented to the user at the time. Based on the likelihood and the multiple metrics, the system can determine a fourth metric indicating a value associated with the advertisement to obtain multiple advertisement metrics associated with the multiple advertisements. As described above, based on the ranking, the system can present a certain percentage, such as top 10%, of the highest-ranking advertisements to the users.

Determining Whether to Place an Advertisement Requesting an Address

FIG.1shows three major components of an advertising system. The three major components can include: advertising format110, data system120, and a success signal130. The system100can present an advertisement, described in this application, in an advertising format110on a publishing platform (“publisher”). The publisher can be the platform presenting the advertisement to the user, such as a new site, a blog site, a discussion website such as Reddit, etc. The advertiser can be the platform that determines which advertisements to present to which users. The provider can be a platform that commissions the placement of the advertisement, delivers the item to the user, and provides the application enabling the user to further interact with the provider.

The advertisement can collect the address of a user viewing the advertisement. The advertisement can directly solicit the user's address in the advertisement. In one embodiment, once the user enters the address into the advertisement, the system100can deliver an item, such as a snack, to the entered address. In another embodiment, if the system100already has the address, e.g., through the media company or publisher, then instead of showing the address box in the advertisement, the advertisement can present a button that when selected can provide a free item, such as a snack to the user at the address.

The data system120can collect the information from the advertisement and can share the collected information with the publisher and the advertiser. Based on the address, the data system120can estimate the value of delivering the item to the address. The data system120can consider distance between a nearest warehouse and the entered address, user information, context, etc. User information can include whether the user is a new user, if the user and is an existing user, total purchases from the user, etc. Context can include information such as if there are other users ordering items near the current user. The success signal130is a combination of a physical delivery and the address.

In one embodiment, once the user enters the address into the advertisement, the system can automatically download the application on the user's device, without requiring the user to manually download the application.

FIG.2shows a system for presenting an advertisement requesting a user address. The system200can present the advertisement210to a user on a third-party publishing platform. The user can enter the address and the ZIP code in the fields220,230, respectively. If the publisher has the user's address, the system200can pre-populate the fields220,230.

The advertisement210is different from the traditional advertisements in several ways. First, the advertisement requests user's address, and second, the advertisement can facilitate installation of the application associated with the provider. Traditionally, clicking on an advertisement can take the user to the provider's website, where the user has to download the application, and then the user needs to place the order in the application. In each of these steps, users tend to lose interest, and the number of users that actually download the application is small compared to the number of users that have selected the advertisement. By contrast, in the present case, the user needs to enter only the address in the advertisement210. Once the address is entered, the user automatically receives the order, and in addition can automatically have the application installed. Alternatively, the dasher of the order can facilitate the installation of the application.

The advertisement210can send the address to the server240, which in turn can dispatch a dasher250to the address. The dasher can be a person, or an autonomous aerial, terrestrial and/or hydro vehicle. The autonomous vehicle can include an autonomous aerial vehicle, such as a drone, an autonomous terrestrial vehicle, such as a car, and/or an autonomous hydro vehicle. Upon delivery, the dasher can notify the advertiser as well as the provider of the item that a successful delivery has been made. In addition, upon delivery the dasher can ensure that the user has installed the software application (“application”) associated with the provider of the item, and can notify the advertiser and the provider of the item that the application has been installed. If the user has not installed the software application, the dasher can offer assistance and installation.

The physical address is the identity connector between the media delivery, user engagement, and order fulfillment by the direct-response advertiser. Upon completing the delivery, the dasher250can confirm the delivery, and can also confirm installation of the application. The confirmation of the delivery and/or the confirmation of the installation of the application can be used as a success signal for that physical address. The system200can use the success signal for future advertisement optimization and event pricing, for example, by using the success signal for training machine learning (ML).

FIG.3shows a system for modifying a placed order. To modify the order, the user can download or open the provider's application300and can change the address, add or change payment method, and/or add items310,320,330to the order. The user can add more items310,320,330to the order by selecting more items either from the advertisement210inFIG.2, or from a user interface associated with the application300. A hardware or software processor associated with the application300and/or the advertisement210, can send the unique identifier of the selected item to the server240inFIG.2.

If the processor sends the modification to the placed order within a short period of time, such as before the originally ordered items were sent for delivery, the new items310,320,330can be added to the order. If the server240receives the modification after the original order has been delivered, the server240can generate a prompt to the user for a new order confirmation.

FIG.4shows a system to determine a value of an advertisement. The system can determine the value of the advertisement prior to placing the advertisement. The system400determining the value of an advertisement can include two parts410,420. First, the system410can determine the likelihood418that an event happens if the advertisement210is presented to the user414at a particular time416. The system410can be an ML model trained on data from users similar to the user414. The event that the system410is predicting can be selecting the advertisement210, entering the address of the user, successful delivery, installation of the application, etc., as explained below.

Second, assuming that the event has happened, the system420can determine the value422of completing the action to the provider. Completing the action can include successful delivery, installation of the application, etc. The system420can be an ML trained on data from users similar to the user414. The value422can be expressed in terms of benefit minus the cost.

To calculate the value, the system420can start with a default value for each user and adjust based on various parameters such as whether the user is a new user424, distance to the user426, group order428, etc. For example, the system420can estimate that each user is worth $10. If the user414is a repeat purchaser then the repeat user414can be half as valuable as a new user, because the system420can treat new users as more valuable than existing users.

The system400can determine whether the user is new prior to placing the advertisement, or after the user enters the address. To determine whether the user is new after entering the address, the system400can determine whether the entered address is already in the system database. If the entered address is not in the system database, the system400can determine that the user is new. To determine whether the user is new prior to placing the advertisements, the system400can use location heuristics. For example, the system400can obtain the IP address of a device associated with the user. Based on the IP address, the system400can determine a general geographic location of the user such as the user is in San Francisco, or Seattle, or in Austin. In addition, the system400can determine if the user is sharing his location, and can determine the user's location based on location sharing. For example, location sharing can be accurate to within six meters. Based on location sharing and/or IP address, the system can determine whether the user is new within 80% accuracy. Even if the system incorrectly classifies a user as new with the 20% probability, that is an acceptable error rate for the system.

From a distance perspective, the system420, for example, can determine that every minute of delivery is an extra dollar. So, once the value422of completing the action becomes $0, the action is never completed. In a more specific example, if delivering to a repeat user takes more than five minutes, completing the action becomes $0 or less, and the action is never completed.

In addition to distance, the system420can consider whether the order is a group order428and/or can be combined with another order, in which case the distance to the particular user can be reduced. For example, if the system420is already delivering an order to a second user within two minutes to the first user, the cost of delivering to the first user is only $2, even though the distance from the distribution center to the first user is 15 minutes.

To determine the value422of completing the action, the system420can obtain values from the provider that indicate, in dollar amounts, the value of the new user, the value of a repeat user, the cost for every minute of delivery, etc. The values can vary based on location of the user.

To determine the value of placing an advertisement210, the system400can combine how likely the event is with how valuable completing the action is. For example, if the likelihood that the user enters the address is 0.5, and the value of delivering the snack to the address is $5, the value of the advertisement210, prior to presenting the advertisement to the user is $2.50. In another example, if the likelihood that the user enters the address is 0.9, and the value of delivering the snack to the address is $8 the value of the advertisement is $7.20. The system400can compare the values of the advertisements, rank them, and present the advertisements having the highest value.

The system420can optimize for successful delivery. Successful delivery can have few criteria such as whether the address is valid, whether the item was successfully delivered, whether the user414has installed the application, whether the user has made an additional purchase, etc. The system420can optimize for one or more of the successful delivery criteria.

FIG.5shows use of proxies to determine a value of an advertisement. The final objective of the system400inFIG.4is to determine lifetime value of a user. However, a lifetime timeline is difficult to measure. Instead of the lifetime timeline, the system400determines proxies500,510,520,530representing events that are more frequent and happen sooner.

Proxy500, “click,” can indicate that the user has selected the advertisement210inFIGS.2,4. Proxy510, “address,” can indicate that the user has entered the address into the advertisement210. Proxy520, “delivery success,” can indicate that the dasher has made a successful delivery. Proxy530, “order success,” can indicate that the user has successfully installed the application. Order success530can include successful installation of the provider's application300inFIG.3.

The amount of data available in each proxy500,510,520,530reduces from left to right because for the rightmost event530to happen, namely, order success, all the events500,510,520need to have happened already. From a machine learning perspective, the more data to train, the better the machine learning model, and consequently systems410,420inFIG.4can use proxies500or510to determine the likelihood that events520and/or530happen. In addition, the system400can determine correlation between events500,510,520,530. The correlation is positive and can be factored into the value of the advertisement. For example, if the system420optimizes for proxy500but, in reality, the system would like to optimize for proxy530, the system420can determine that the correlation between proxy500and530is 0.7. Consequently, when the system420determines the value of the advertisement based on proxy500, the value of the advertisement can be multiplied by 0.7, that is, the correlation between proxy500and530.

The proxies500,510,520,530are easier to optimize for, but they are proxies and not exactly representative of the lifetime value of the user. To cure this issue, the system400can optimize for a proxy, as well as the less frequent event that the system is actually interested in. For example, the system400can be optimizing for the successful delivery520. However, because successful delivery520is a less frequent event than clicking on an advertisement500, the system can optimize for both the clicking on an advertisement500and the successful delivery520. The system400can track the proxy events500,510,520,530as they are happening, and as the successful delivery520becomes more likely, the value of completing the delivery can increase.

Computer System

FIG.6is a block diagram that illustrates an example of a computer system600in which at least some operations described herein can be implemented. As shown, the computer system600can include one or more processors602, main memory606, non-volatile memory610, a network interface device612, video display device618, an input/output device620, a control device622(e.g., keyboard and pointing device), a drive unit624that includes a storage medium626, and a signal generation device630that are communicatively connected to a bus616. The bus616represents one or more physical buses and/or point-to-point connections that are connected by appropriate bridges, adapters, or controllers. Various common components (e.g., cache memory) are omitted fromFIG.6for brevity. Instead, the computer system600is intended to illustrate a hardware device on which components illustrated or described relative to the examples of the Figures and any other components described in this specification can be implemented.

The computer system600can take any suitable physical form. For example, the computing system600can share a similar architecture as that of a server computer, personal computer, tablet computer, mobile telephone, game console, music player, wearable electronic device, network-connected “smart” device (e.g., a television or home assistant device), AR/VR systems (e.g., head-mounted display), or any electronic device capable of executing a set of instructions that specify action(s) to be taken by the computing system600. In some implementations, the computer system600can be an embedded computer system, a system-on-chip, a single-board computer system or a distributed system such as a mesh of computer systems, or can include one or more cloud components in one or more networks. Where appropriate, one or more computer systems600can perform operations in real time, near real time, or in batch mode.

The network interface device612enables the computing system600to mediate data in a network614with an entity that is external to the computing system600through any communication protocol supported by the computing system600and the external entity. Examples of the network interface device612include a network adaptor card, a wireless network interface card, a router, an access point, a wireless router, a switch, a multilayer switch, a protocol converter, a gateway, a bridge, bridge router, a hub, a digital media receiver, and/or a repeater, as well as all wireless elements noted herein.

The memory (e.g., main memory606, non-volatile memory610, or machine-readable medium626) can be local, remote, or distributed. Although shown as a single medium, the machine-readable medium626can include multiple media (e.g., a centralized/distributed database and/or associated caches and servers) that store one or more sets of instructions628. The machine-readable (storage) medium626can include any medium that is capable of storing, encoding, or carrying a set of instructions for execution by the computing system600. The machine-readable medium626can be non-transitory or comprise a non-transitory device. In this context, a non-transitory storage medium can include a device that is tangible, meaning that the device has a concrete physical form, although the device can change its physical state. Thus, for example, non-transitory refers to a device remaining tangible despite this change in state.

Remarks