WO2018103039A1 - Apprentissage-machine dans la distribution de messages - Google Patents

Apprentissage-machine dans la distribution de messages Download PDF

Info

Publication number
WO2018103039A1
WO2018103039A1 PCT/CN2016/109009 CN2016109009W WO2018103039A1 WO 2018103039 A1 WO2018103039 A1 WO 2018103039A1 CN 2016109009 W CN2016109009 W CN 2016109009W WO 2018103039 A1 WO2018103039 A1 WO 2018103039A1
Authority
WO
WIPO (PCT)
Prior art keywords
user
computer
advertisement
message
delivery
Prior art date
Application number
PCT/CN2016/109009
Other languages
English (en)
Inventor
Shijun Wang
Shenghuo Zhu
Fangquan LIN
Mou SUN
Ling YAN
Hua Xu
Cheng Yang
Tao Li
Rong Jin
Original Assignee
Alibaba Group Holding Limited
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Alibaba Group Holding Limited filed Critical Alibaba Group Holding Limited
Priority to CN201680091701.8A priority Critical patent/CN110447047A/zh
Priority to PCT/CN2016/109009 priority patent/WO2018103039A1/fr
Publication of WO2018103039A1 publication Critical patent/WO2018103039A1/fr

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/02Marketing; Price estimation or determination; Fundraising
    • G06Q30/0241Advertisements
    • G06Q30/0251Targeted advertisements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/02Marketing; Price estimation or determination; Fundraising
    • G06Q30/0241Advertisements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/02Marketing; Price estimation or determination; Fundraising
    • G06Q30/0241Advertisements
    • G06Q30/0251Targeted advertisements
    • G06Q30/0269Targeted advertisements based on user profile or attribute

Definitions

  • big data plays more and more important roles in many technology and business areas.
  • “big data” is often used for advanced data analytics like predictive analytics and user behavior analytics, which are changing the characteristics of various ecosystems adopting the “big data” concept.
  • Machine learning or artificial intelligence is one of the areas that is taking advantage of big data analysis. For example, computing machines can be trained using historical data to exploit behavior patterns of or relationships among many factors to allow the prediction of future behaviors associated with a particular set of conditions such that decision making by the computing machines will be well guided.
  • FIGURE 1A and 1B are example message delivery budget distribution charts.
  • FIGURE 2 illustrates an example message distribution platform system.
  • FIGURE 3 illustrates an example operation environment of a message distribution platform system.
  • FIGURE 4 illustrates an example operation process of a message distribution platform system.
  • FIGURE 5 illustrates another example operation process of a message distribution platform system.
  • FIGURE 6 illustrates an example computer architecture diagram illustrating an illustrative computer hardware and software architecture for a computing system capable of implementing aspects of the techniques and technologies presented herein.
  • FIGURE 7 illustrates a diagram illustrating an example distributed computing environment capable of implementing aspects of the techniques and technologies presented herein.
  • FIGURE 8 illustrates a computer architecture diagram illustrating an example computing device architecture for a computing device capable of implementing aspects of the techniques and technologies presented herein.
  • On-line message distribution/publishing usually involve clients (e.g., merchants/advertisers) , a publisher or a message distribution platform, and users.
  • clients e.g., merchants/advertisers
  • merchants engage a publisher to integrate their advertisement contents into the publisher’s content site to expose to users.
  • the engagements usually include budget arrangements and related compensation arrangements.
  • the budget arrangements may include a total amount of message distributions (also referred to as “exposures” ) to users and/or a total amount of user reactions, e.g., user actuations on message links and/or enquiries of the content of the message, e.g., products included in the message.
  • the compensation arrangements may include cost per mille (CPM) , cost per click (CPC) , cost per engagement (CPE) , or cost per view (CPV) .
  • Message distribution platforms may strive to improve the experience of clients and users involved in the message distributions through the platforms.
  • a client may prefer that the limited message distribution budget purchased from a message distribution platform be used toward users who are interested in the message content, e.g., advertised products.
  • a user generally prefers that her/his limited time spent on message distribution platform be directed to contents of interest to her/him.
  • a merchant client may prefer that it can predict the amount of advertisement exposures to users so that logistics of the related products may be properly arranged, e.g., manufacturing plans, fabrication facility loads, shipping, and inventory sizes, storage locations, etc.
  • on-line message distribution platforms be able to predictably distribute messages to target users and at the same time ensure clients with certain amounts of overall message exposure based on their budgets.
  • the existing real-time bidding solutions and the search linked advertising solutions do not handle these challenges satisfactorily.
  • a “user” refers to any individual that can access/be accessed to/by a message distribution platform through an on-line message distribution application (s) thereof.
  • an on-line message distribution plat may perform an on-line advertisement process, wherein clients (advertisers) and users are supposedly linked through the message distribution platform (s) (hereinafter “platform” ) .
  • a platform may be affiliated with or part of a client or -a third party platform.
  • a platform may include or perform any type/form of on-line message distribution, including, but not limited to, email marketing, web page banner display, search advertisement, news feed advertisements, social media marketing, on-line shop/on-line mall, etc., and all are included in the disclosure.
  • a platform may include various applications to deliver a message to users via various manners.
  • a message may be of any form of publishing a content, e.g., a product or any other contents.
  • an advertisement item may also include native advertising, with or without disclosure.
  • platforms may be able to specifically identify each user through identifiers linked to the computing terminal (s) , e.g., cookies.
  • identifiers linked to the computing terminal (s) e.g., cookies.
  • platforms may be able to selectively choose to deliver different advertisement items to different users through a same/different application (s) .
  • a platform may deliver a bicycle equipment related message/advertisement item to user A who is supposed to be a cycling fan and deliver a perfume related message/advertisement item to user B who has a history of purchasing perfume products on-line.
  • the advertisement item as delivered is essentially a message to the user.
  • on-line advertisement message distribution may be used as an illustrative example to describe machine learning of a platform in the message distribution.
  • An advertisement item may be used as an illustrative example of a message
  • an advertised product may be used as an illustrative example of a message content. It should be appreciated that the techniques can be applied to other message distributions and all are included in the disclosure.
  • a platform may collect/be provided with various data regarding a user relevant to on-line shopping activities.
  • examples are mainly described in a way that data are collected by a platform. It is appreciated that such data could also be received from a third party resource and all possibilities are included in this disclosure.
  • a platform may collect and store on-line shopping history data and current or historical contextual information with respect to on-line shopping.
  • the on-line shopping history data may include any and all details of a user’s on-line shopping activities available to the platform, e.g., categories of items purchased, brands, time of on-line shopping, etc.
  • Contextual information may include the contexts with/within which a user’s on-line shopping activities happened/happen/are about to happen.
  • the contextual information may include, but is not limited to, geo-targeting information, contextual activities, social activities, and/or bio-signals/physical conditions of a user, e.g., concurrent web surfing activities, social media activities, group shopping, exercising in a gym, socials with friends of a fan club, etc.
  • the contextual information may be monitored or may be implied. For example, a GPS or other positioning techniques to locate a mobile device maybe used to track a location of a user.
  • a wearable device may be used to monitor bio-signals and physical conditions of a user, e.g., a user’s heartbeat. If a user is located near a gym and is also monitored to have elevated heartbeats, it could be implied that the user is currently conducting physical exercises.
  • Geo-targeting information may include a location, an itinerary or a moving direction of a user or may include other geographically meaningful information. Some or all such contextual information/data may be used to determine whether and how a user and an advertisement item is relevant to each other. For example, when a user is detected as being in a gym surfing a webpage of an online shopping platform, the user may be determined as more relevant to a fitness/sports related item for the moment. For another example, when a group of users are monitored as geographically proximate to one another and all doing on-line shopping, they may be determined as more relevant to an advertisement item related to their common interest (s) .
  • s common interest
  • a platform or a third party analysis service supplier to the platform may relate a user to some advertisement items and/or may relate an advertisement item to some users based on relevancy levels.
  • users may be linked to an advertisement item through a relevancy level of the advertisement item to the users.
  • the relevancy level may be identified as a relevancy score.
  • the relevancy scores may be in a continuous scale or may be in a staggered scale. Other examples of scaling relevancy scores may also be possible and included in the disclosure.
  • the relevancy score of a user to an advertisement item may be determined based on one or more of an on-line shopping history of the user (or referred to as “historical shopping behavior” ) and contextual information of the user.
  • a user may be related to multiple advertisement items and each of the related advertisement items may have a relevancy score according to its respective relevancy level to the user.
  • the relevancy score of an advertisement item to a user may be determined based on one or more of a historical shopping behavior and contextual information of the user.
  • a relevancy score of a user to an advertisement item and/or a relevancy score of an advertisement item to a user may be relatively static for a given time frame or may be dynamically determined and adjustable, or may be any combination thereof.
  • a relevancy level of a user to an advertisement item and a relevancy level of an advertisement item to a user may be scored similarly or the same and be identified as a relevancy score for the specific user-advertisement item pair.
  • Each specific message distribution application of a platform may have a certain number of potential users.
  • the specific application may also include multiple ways to display multiple advertisement items concurrently in a same display or in a sequential order or in various combinations thereof.
  • the platform may partition the display spaces (also referred to as “content site” ) of an application into display slots.
  • the display slots may be ranked using an impression ranking score based on, for example, the potential amount of exposure (e.g., potential number of users to which such advertisement is delivered) and/or potential amount of reactions (e.g., users actuation on an advertisement after exposed to the advertisement) .
  • the potential amount of exposure e.g., potential number of users to which such advertisement is delivered
  • potential amount of reactions e.g., users actuation on an advertisement after exposed to the advertisement
  • a homepage of a platform may include positions for multiple banners, a few pop up advertisements, and a sequence of multiple floating advertisements. Each of these may be specified as a display slot and each may be ranked by a potential amount of exposure, potential number of user reactions, and/or other factors.
  • a platform may choose to deliver different advertisement items through various display slots to a user based the relevancy scores of the different advertisement items to the user. For an illustrative example, for user A, a platform may choose to display a sports related advertisement item using a larger banner and to display a childcare related advertisement item using a smaller banner; and for user B, the platform may choose to display the childcare related advertisement item using a bigger banner and display the sports related advertisement item using a smaller banner.
  • a platform may link potential users accessible through the message distribution application (s) it operates to the display slots of the message distribution application to constitute a supply of advertisement potentials.
  • a delivery/distribution schedule may be generated.
  • the delivery/distribution schedule may provide a detailed schedule of delivering the advertisement item to users of specified and/or unspecified target user groups through the platform’s distribution applications.
  • the terms “distribution/distribute” or “delivery/deliver” each and all may be used to refer to that a message, e.g., an advertisement item (s) , be displayed to a user (s) , and may be used inter-changeably in some scenarios.
  • the delivery schedule may include one or more of a time frame, a display slot (s) , and a budget of delivering the advertisement item through an application to users.
  • a budget includes quantity related measures for the distribution of the advertisement item.
  • a budget may provide an expected total amount of delivery of the advertisement item to users.
  • the amount of delivery may be measured in different ways and all are included in the disclosure. For example, the amount of delivery may be measured based on a number of users the advertisement item is delivered to. For another example, the amount of delivery may be measured based on the total amount of time duration that the advertisement item is displayed to users.
  • the delivery schedule may also provide an expected/estimated user reaction (also referred to as user performance) obtained through the delivery. For example, the delivery schedule may provide an expected amount of user actuations, e.g., clicks, on the advertisement items delivered to users.
  • a time frame may specify any and all time related specifics in delivering the advertisement item.
  • a time frame may specify a duration for each single display/delivery of the advertisement item through a display slot.
  • a time frame may be linked to a display slot.
  • a time frame is not linked to a display slot, with both specified individually in the delivery schedule.
  • a time frame may also specify that an advertisement will be run through a social media application for a given duration, e.g., two months, with a specified starting date.
  • a delivery schedule may provide an expected distribution of a desired delivery amount of an advertisement item within a period of time.
  • FIGURES 1A and 1B show an expected distribution of delivery amount within a week and an expected distribution of delivery amount within a day, respectively.
  • a total amount (budget) of advertisement flow be distribution among a period of time in a specific manner. For example, it may be expected that users do more shopping during weekend days for children related products such that an advertiser may prefer that more advertisement deliveries (budget) be performed at weekend days as compared to weekdays.
  • the platform may map the advertisement budgets of each and every advertiser into the available supply of advertisement potentials (e.g., display slots linked to potential number of accessible users) .
  • advertisement potentials e.g., display slots linked to potential number of accessible users
  • the available supply of advertisement potentials may be limited.
  • Various now existing and/or future developed mapping techniques may be used in mapping the advertisement budgets of multiple advertisement items into the available supply of advertisement potentials, and all are included in the disclosure. For example, a Max-Flow algorithm may be used to map advertiser budgets into available supply of advertisement potentials to obtain a delivery schedule for each advertiser.
  • advertisement requirements of each advertiser may be modeled with budget constraints and preferred target users whose relevancy scores are above a certain threshold as sources, and traffic capacity and time availability of each display slot as sinks.
  • the max-flow algorithm will assign a budget of each advertisement requirement into multiple display slots under the traffic capacity and availability constraints of each slot. That is, under given requirements and constraints of advertisers and display slots, the max-flow algorithm finds a feasible solution to fulfill the advertisement demand under given display slots.
  • a delivery schedule of an advertisement item may also provide a target group (s) of users to whom the advertisement item is scheduled to be delivered.
  • a target group of users is determined using a grouping criterion based on a relevancy level of a user to a content of the advertisement item, e.g., the advertised product.
  • a “product” may include both goods and services.
  • a relevancy level of users to an advertised product may be identified as relevancy scores. A relevancy score may be compared with a threshold to determine whether a user belongs to a user group or not.
  • the relevancy score may also be determined based on other factors, e.g., the availability of the advertisement item to be delivered to the user. For example, even if a user is very relevant to an advertisement item, if the budget of the advertisement item is about to be used up, a relevancy score of the user to the advertisement item may be adjusted (or weighted) to reflect the fact that the advertisement item has become less available to be delivered to the user. Other criteria to determine a target group of users are also possible and are included in the disclosure.
  • a target group of users may be separately determined from the delivery schedule.
  • the delivery schedule may be negotiated and agreed upon between an advertiser and the platform.
  • the platform may separately determine a target group of users to deliver the advertisement item according to the delivery schedule.
  • the platform may be able to achieve more flexibility in setting up a relevancy score threshold and in adjusting the relevancy score threshold dynamically in real time or periodically, if needed.
  • the methods for determining a relevancy score of a user and a threshold for determining a target user group may be kept within the platform and may not be fully disclosed to an advertiser.
  • a target group may be described as part of a delivery schedule for purpose of simplicity only, which should not limit the scope of the disclosure.
  • a target group may be linked to a specific display slot.
  • a delivery schedule may include multiple different display slots for delivering the relevant advertisement item and thus may include and/or may be associated to different target groups (or sub-groups) for the different display slots.
  • the platform delivers the advertisement item to users of the determined target user group (s) based on the delivery schedule (s) .
  • a delivery of an advertisement item means that the advertisement item is exposed to a user in a certain manner.
  • the advertisement item is delivered as a message to a user in a certain manner, e.g., webpage banner, social media advertisement., mobile advertisement, etc. Any now existing and/or future developed ways/manners to deliver an advertisement item/message to a user are possible, and all are included in the disclosure. Due to the nature of on-line advertisement, a platform may not be able to accurately predict the number of users who are accessible/available for advertisement delivery.
  • a user For example, for webpage banner advertisement, a user needs to be visiting the webpage so that the banner can be displayed to the user, i.e., message delivered.
  • a user For a social media advertisement, a user needs to log onto the social media platform so that an advertisement message can be delivered to the user. It may be difficult to estimate the number of available/accessible users. Also, it may be difficult to predict/estimate user reactions to the advertisement message delivered to them.
  • the actual delivery of advertisement messages through a message distribution application may be monitored in substantially real time or periodically.
  • Various parameters/measures related to the flow of the advertisement deliveries may be monitored, and all are included in the disclosure.
  • at least one of a total delivery amount of an advertisement item (at the moment of monitoring) and a total amount of user reactions (at the moment of monitoring) may be monitored.
  • the term “total” refers to that the advertisement item is delivered to various users of the target user group.
  • the “total” delivery amount accumulates as the monitoring proceeds.
  • a platform may monitor the actual amount of delivery of the advertisement item to users of the target user group. The monitoring may include further details of the advertisement distribution flow.
  • the monitoring may map the monitored deliveries into different relevancy scores in the target group.
  • the monitored total amount of deliveries of the advertisement items may be compared ( “analyzed” may be broader) to an expected amount of delivery of the advertisement item, which may be contained in the delivery schedule or may be held separately.
  • the result of the analysis may be used as a basis to adjust the advertisement message distribution.
  • the delivery schedule includes an expected distribution of the desired amount of delivery of the message within a specific period of time (like illustrated in FIGURES 1A and 1B)
  • the monitored actual deliveries of the advertisement item may be analyzed with the expected distribution as a basis of the adjusting.
  • an advertisement exposure score may be generated.
  • a simple total number of delivery of the advertisement item to users of the target group may be used to determine the exposure score.
  • the numbers of deliveries to users of different relevancy scores may be determined separately and be assigned a respective weight to calculate a weighted exposure score.
  • the weight assigned to users of a relevancy score (or a range of relevancy scores) may be determined based on possibility of purchase by the users of the relevancy score.
  • the relevancy score could be used as a weight.
  • An overall exposure score may be determined based on a weighted total number of deliveries.
  • the monitoring of the actual delivery of an advertisement message may also include monitoring user reactions (also called user performance) to the delivered advertisement items. Any measures of user reaction may be monitored and all are included in the disclosure. In an example, the total number of user actuations on the delivered advertisement item may be monitored. In another example, user enquiries in relation to the advertisement content, e.g., advertised products, may be monitored. Similar to the monitoring of delivery amount, the user performance monitoring may also include further details of user reactions.
  • the user performance monitoring may serve multiple purposes. For example, the initial target group of users under the delivery schedule may include multiple sub-groups of users, each subgroup of users sharing some common characteristics. The monitoring of the user performance of each sub-group of users may provide useful information for future advertisement scheduling/mapping or for adjustment of the delivery schedule.
  • a user performance score may be generated, reflecting a concerned parameter of user performance. For example, the total number of user actuations may be a parameter to generate a user performance score. The actual number of purchases of the advertised product may also be used as a parameter to generate the user performance score.
  • the monitored actual delivery e.g., the exposure score and/or user performance score
  • the monitored actual delivery may be analyzed in relation to the delivery schedule and/or other estimate/expectations to see whether the expectations are met.
  • the platform may wish to ensure that the expected amount of advertisement delivery (budget) is achieved for an advertiser.
  • An advertiser may wish to keep track of how many users show interest on the advertised products such that the advertiser may plan logistics accordingly or may decide on follow-up advertisement plans.
  • the delivery schedule may be adjusted.
  • One example approach to adjust the delivery schedule may include adjusting the grouping criterion to obtain a new target group of users.
  • the grouping criterion includes a threshold on a relevancy score of a user to an advertisement item. The threshold may be adjusted based on the analysis of the actual delivery of the advertisement item in relation to the expectation, e.g., a comparison between the actual delivery of advertisement items and the expectation.
  • a platform may decide to increase the threshold of relevancy score to shrink the size of the target group such that the advertisement item will only be delivered to users with higher relevancy scores (more relevant) to the advertisement content, e.g., advertised products. If it is determined that less exposure of the advertisement item has been made, the platform may choose to lower the criterion on the relevancy score such that future delivery of the advertisement item will be made to more users of adjusted target user group comprising also users of lower relevancy scores (less relevant to) to the advertisement content., who are not in the previous user group.
  • the monitoring may map the monitored deliveries into different relevancy scores in the target group.
  • the monitored total number of deliveries of the advertisement items may be compared to an expected number of delivery of the advertisement item to users of each different ranges of relevancy scores as a basis to make adjustment.
  • the delivery manner/display slots may be adjusted based on the monitored the actual delivery of advertisement items. For example, if the actual delivery of the advertisement item is lower than expected, a better display slot may be assigned for the delivery of the advertisement item to increase exposure. For example, in a webpage advertisement, a better display slot might mean that a user does not need to scroll down the cursor to make the advertisement visible.
  • a platform may be able to dynamically adjust the target user group and/or delivery manners to potentially increase or decrease the exposure of the advertisement such that the overall advertisement budget of the advertiser or the overall user performance can be achieved in a satisfied manner, e.g., generally following the advertisement distribution schedule.
  • the monitoring of the actual distribution of the advertisement item and the adjustment of target user group/delivery manner need to be conducted in a time sensitive manner, for example, in substantially real time. For example, communication through computer networks and/or communication networks are required in transferring of the monitoring results in substantially real time.
  • FIGURE 2 illustrates a system diagram showing aspects of one illustrative example system disclosed herein for providing deterministic advertisement traffic distribution and control.
  • a message distribution platform system 100 may include an on-line advertisement flow control unit 110 ( “flow control unit 110” ) , an advertisement flow monitoring unit 120 ( “monitoring unit 120” ) , an advertisement scheduling unit 130 ( “scheduling unit 130” ) and a user resource management unit 140 ( “resource management unit 140” ) .
  • Each and/or every of flow control unit 110, monitoring unit 120, scheduling unit 130 and resource management unit 140 may utilize resource 150.
  • Resource 150 may include any resource that can be locally or remotely accessed by the other units 110, 120, 130 and/or 140 in the operations, such as a search engine or a cloud data service.
  • Platform 100 may be embedded into an e-commerce platform or may be separated from an e-commerce platform and may provide message distribution and control service as a third party service provider.
  • flow control unit 110 may operate together locally on a stand-alone computing device, or may be located on networked computers communicating and coordinating in conjunction with one another to form a distributed computing system.
  • flow control unit 110, monitoring unit 120, scheduling unit 130 and resource management unit 140 and further resource 150 may be interconnected through one or more local and/or wide area networks 160.
  • the examples are provided herein for illustrative purposes only and are not to be construed as limiting. The techniques described herein may utilize more or fewer computers/units than those shown in example FIGURE 2.
  • Flow control unit 110 may further include a load balancing unit 112 and an adjusting unit 114.
  • Monitoring unit 120 may further include an exposure monitoring unit 122 and a user performance monitoring unit 124.
  • Scheduling unit 130 may further include a user group determination unit 132, a display slot determination unit 134 and a mapping unit 136.
  • Resource management unit 140 may further include a historical behavior determination unit 142, a contextual behavior determination unit 144 and a relevancy pair determination unit 146.
  • scheduling unit 130 receives an advertisement budget (demand) as an input. Based on the demand and the available supply of advertisement potentials, scheduling unit 130 is configured to determine an advertisement delivery schedule.
  • the delivery schedule may include at least one of a time frame, a display slot and a delivery budget for delivering the advertisement.
  • a display slot may include any parameters related to displaying the advertisement, including, but not limited to, a display position, a size of the content, or a displaying type of the advertisement message delivered through a message distribution application.
  • User group determination unit 132 is configured to determine based on a grouping criterion a target group of users to deliver the advertisement item.
  • the grouping criterion may include a threshold on a relevancy level or a relevancy score of a user to a content of the advertisement item, e.g., an advertised product.
  • the user-content relevancy information may be received from resource management unit 140 or may be received from resource 150 as an input.
  • Display slot determination unit 134 is configured to determine a specific display slot to deliver the advertisement item to target user group.
  • Display slot determination unit 134 may partition a content site of the message distribution application into multiply display slots, each display slot having an impression ranking score indicating how likely a content displayed in the display slot will attract user attention.
  • multiple display slots may be shown simultaneously in a same display frame and/or may be shown sequentially.
  • a display slot is related to the users of the user group.
  • Display slot determination unit 134 may specifically determine a display slot for a user (s) of the target user group.
  • Mapping unit 136 is configured to map the received advertisement budget into the display slots as associated to users of the target group and generate a delivery budget.
  • a delivery budget may include measures on expected progress of the advertisement delivery.
  • a delivery budget may include an expected amount of deliveries and/or an expected amount of user reactions.
  • Load balancing unit 112 is configured to control delivery of the advertisement item based a delivery schedule received from scheduling unit 130. For example, load balancing unit 112 may control the distribution of advertisement items into different hosts/servers/applications evenly according to the delivery schedule.
  • Adjusting unit 114 is configured to adjust a grouping criterion under which a user is determined as belonging to a target user group or not. In an example, adjusting unit 114 may increase or lower a threshold on user-content relevancy in forming/reforming a target user group. Adjusting unit 114 may use the monitoring results from monitoring unit 120 and the user-content relevancy pair information from resource management unit 140 as a basis for the adjustments. In an example, adjusting unit 114 is configured to adjust other parameters of the delivery schedule, e.g., the display slot (s) and/or the time frame in delivering an advertisement message.
  • Exposure monitoring unit 122 of monitoring unit 120 is configured to monitor an amount of actual delivery of an advertisement item to users of the target user group.
  • User performance monitoring unit 124 is configured to monitor user reactions to advertisement items delivered to the users. Different parameters of user reactions may be monitored and all are included in the disclosure. For example, user performance monitoring unit 124 may monitor a total number of actuations users made on the advertisement items delivered to them. Based on the monitoring results, exposure monitoring unit 122 may generate an advertisement exposure score and user performance monitoring unit 124 may generate a user performance score.
  • Resource management unit 140 is configured to determine a relevancy level of a user to an advertisement content, e.g., an advertised product, and/or a relevancy level of an advertisement content to a user.
  • a relevancy level of a user to an advertisement content and relevancy level of an advertisement content to a user may be treated as the same thing from different perspectives and a user-content relevancy pair may be used to indicate the relevancy level between the two.
  • Historical behavior determination unit 142 is configured to collect historical shopping data of a user to be used in determining a user-content relevancy pair.
  • Contextual behavior determination unit 144 is configured to collect contextual information of a user in relation to the user’s on-line shopping activity. Contextual information indicates a context under which an advertisement item will be delivered to a user. Contextual information may include a contextual activity, geo-targeting information and a physical condition of a user to be used in determining a user-content relevancy pair.
  • Various techniques may be used in collecting and transferring contextual information and all are included in the disclosure. For example, geo-targeting information of a user may be collected through a geographic positioning technique like GPS and/or an in-door positioning technique using mobile device signal strength and/or radio frequency (RF) positioning.
  • RF radio frequency
  • contextual information may be time sensitive, like location information, and techniques need to be used to ensure substantially real time data collection of contextual information.
  • computer networks and/or communication networks are used in the transferring of contextual information to ensure the timeliness of collecting and processing of the contextual data.
  • Relevancy pair determination unit 146 is configured to determine a relevancy level between a user and an advertisement content based at least in part on the historical shopping data and/or contextual information of a user. Other information may also be used by relevancy pair determination unit 146 in the determination of the relevancy pair. For example, the monitored actual delivery of an advertisement item may be used in determining/adjusting a relevancy level between the advertisement item and a user.
  • FIGURE 3 illustrates an operation environment 200 of platform 100.
  • Platform 100 is configured to communicate with user devices 210 (Personal Computer 210-1, Tablet Computing Device 210-2, Mobile Computing Device 210-3 ...Other Computing Devices 210-n) through network 260.
  • user devices 210 Personal Computer 210-1, Tablet Computing Device 210-2, Mobile Computing Device 210-3 ...Other Computing Devices 210-n
  • Each user device 210 when accessible through a message distribution application, may include multiple display slots (212-1...212-n) available for delivering an advertisement item. Further, a user may have multiple user devices 210 available to receive an advertisement message.
  • flow control unit 110 receives an advertisement delivery schedule for delivering an advertisement item to users of a user group.
  • the delivery schedule may include details regarding the target user group, for example, a required relevancy level of a user to a content of the advertisement item.
  • the delivery schedule may provide that the advertisement item be delivered to users having a relevancy level higher than a threshold.
  • the delivery schedule may also include details regarding a delivery manner under which to deliver the advertisement item to target user group.
  • a delivery manner may include a time frame and a display slot for delivering the advertisement item to a user of the target user group. It should be appreciated that a display slot may be specific to a user device.
  • the delivery schedule may provide different display slots for the different user devices 210.
  • a same or different message distribution application may be used in the delivery of the advertisement items to different user devices 210.
  • different message distribution applications may be used for users accessible through wired data connections or users accessible through wireless data connections.
  • a display slot may specify at least one of a display position, a size of the content, or a displaying type of delivering the message through an application. All possible ways of delivery manners can be specified in the delivery schedule and all are included in the disclosure.
  • load balancing unit 112 causes the advertisement to be delivered to users of the target user group through relevant application (s) based on the received delivery schedule.
  • Platform 100 may include multiple applications to deliver an advertisement item to users.
  • the delivery schedule may also specify one or more applications used for delivering an advertisement item. For example, an advertiser may require that an advertisement of a product be published (delivered) only through on-line shopping platform and a social media platform.
  • monitoring unit 120 monitors an actual delivery of the advertisement item through the application (s) to users of the target user group.
  • the monitoring may be implemented using various techniques, and all are included in the disclosure. For example, goal tracking, call tracking, and/or user engagement tracking, etc., may be used individually or in various combinations in the monitoring.
  • exposure monitoring unit 122 may monitor a total amount of delivery (exposure) of the advertisement items to users of the target user group in various measures. An exposure score may be generated based on the monitored total amount of deliveries.
  • the monitoring may be conducted substantially in real time and the exposure score may be generated based on the monitoring requirements under the delivery schedule. For example, if the delivery schedule provides a daily delivery budget of the amount of exposures, the exposure score may be generated hourly so that there is sufficient space to make adjustment (s) based on the hourly exposure scores to achieve the daily delivery budget.
  • User performance monitoring unit 124 may monitor a total amount of user reactions to the advertisement item delivered to them. There are various ways to monitor user reaction and all are included in the disclosure. For example, user performance monitoring unit 124 may monitor user actuations on a delivered advertisement item, e.g., a click. User performance monitoring unit 124 may also monitor how long a user stays with the content page of an advertisement item. When a user clicks on the advertisement item delivered through the application, the user may be directed to a content page providing more details of the advertised product. A relative longer stay with the content page may indicate that the user is more interested in the advertised product/service. User performance monitoring unit 124 may also monitor user enquiries into the advertised product/service. For example, a user may be required to provide certain user information to receive further information of the advertised product. The user feedback of information itself may be monitored as a measure to indicate user reaction. Multiple measures to monitor user performance may be used individually or in various combinations in example operation 330. Based on the monitored user reactions, a user performance score may be generated in real time or periodically.
  • adjusting unit 114 of flow control unit 110 adjusts a grouping criterion and/or a delivery manner based on the monitored actual delivery of the advertisement item. Based on the adjusted grouping criterion, a new target group of users will be formed. Adjusting unit 114 may analyze the monitored actual delivery in relation to the expectations. For example, the monitored actual delivery of the advertise item may be compared to the expectations. For example, the actual total number of delivery, e.g., the generated exposure score, may be compared to an expected delivery amount to evaluate the progress or flow of advertisement delivery. The monitored actual user reaction, e.g., the generated user performance score, may be compared to an expected user performance measure to evaluate an effectiveness of the advertisement progress or flow. The expected delivery amount or user performance measures may be received from the delivery schedule or may be determined by other approaches. The analysis may be conducted in substantially real time and/or may be conducted in various intervals, which are all included in the disclosure.
  • adjusting unit 114 may determine an adjusted grouping criterion to form a new target user group. For example, if a comparison result shows that the actual delivery is less than expected, either less than expected amount of deliveries or less than expected user reactions, adjusting unit 114 may decide to lower the relevancy threshold to include more users into the new target user group. As a consequence, the total number of deliveries of the advertisement item will likely increase.
  • the adjusting of grouping criterion may shift users from the target group of one advertisement item to the target group of another advertisement item.
  • Platform 100 may work with multiple advertisers for multiple different products.
  • a user may be linked to different products through user-content relevancy pairs. So, it could happen that a user with a high relevancy score with a product A is not initially included in the target group of product A because the user is included in the target group of another product B to which the user may be, for example, more relevant.
  • adjusting unit 114 may adjust the grouping criterion for the relevancy requirements for both target group A and target group B so that the user is shifted from the target group of product B to target group of product A.
  • adjusting unit 114 may calculate a weighted relevancy score for each user-content relevancy pair, and may determine the adjusted grouping criterion based on the weighted relevancy score. For example, the weight may be determined based on a ratio ( “R” ) between the actual delivery of an advertisement item and the expected delivery of the advertisement item. And 1/R may be used as the weight for the user-content relevancy pair.
  • a user may have a relevancy score 100 to golf equipment and a relevancy score 120 to biking equipment and is initially part of the target group for biking equipment.
  • Monitored results may show that the actual delivery v. expected delivery ratio R for the golf equipment R golf is 4/5 and the ratio R for biking equipment R bike is 8/5. Then the weighted relevancy of the user to golf equipment is:
  • the user may be shifted to the target group of golf equipment.
  • An example relevancy score threshold adjustment algorithm may use a proportional–integral–derivative controller (PID controller) to dynamically adjust relevancy score threshold of each advertisement item based on the monitored advertising progress and delivery scheduled, e.g., expected number of delivery.
  • PID controller proportional–integral–derivative controller
  • a target group may include multiple subgroups and each subgroup may be treated differently in the delivery of the advertisement items. For example, different subgroups may be linked to different display slots.
  • User group adjusting unit 114 may adjust the grouping criterion of the subgroups so that some users will be shifted to other subgroups to receive the delivery of advertisement items with different display slots.
  • Adjusting unit 114 may also adjust the delivery manner for delivering the advertisement item to users of the target user group/adjusted target user group.
  • load balancing unit 112 causes the advertisement item to be delivered to users of the new user group formed based on the adjusted grouping criterion.
  • the delivery may also be conducted under the adjusted delivery manner.
  • resource management unit 140 relates a user to multiple advertisement items.
  • Historical behavior determination unit 142 may collect information regarding the user’s past shopping behavior/experience. All information that could be used in determining a relevancy level of a product to a user may be collected and all are included in the disclosure. For example, based on the past shopping behavior/experience, historical behavior determination unit 142 may be able to determine the user’s preferences with respect to on-line shopping, e.g., product preference, brand preference, shipping/payment preference, average amount of money to spend monthly/quarterly, etc.
  • the historical shopping behavior data may be collected by the platform 100 itself may be obtained from a third party data provider.
  • the data collection and analysis is dynamic and historical behavior determination unit 142 may keep obtaining additional shopping information of a user to update the analysis.
  • newer data may be assigned more weight in the analysis of a user’s relevancy to an advertisement content as compared to older data.
  • Contextual behavior determination unit 144 determines contextual information related to a user’s shopping behavior.
  • the contextual information may include past contextual information and current contextual information.
  • the past contextual information may be used together with the historical shopping behavior information to determine how the contextual information be used in determining a relevancy level of the user to an advertisement item. For example, if past contextual information together with historical shopping information show that when a user is exercising in a gym, she is more likely to react positively to a sports related advertisement item, a current contextual information related to gym activities will be used to increase the user’s relevancy to sports related advertisement item.
  • a contextual information may include a contextual activity, a geo-targeting information, or a physical condition of the user.
  • a contextual activity may include any activity a user is engaged immediately before or while she is accessible for delivery of advertisement item.
  • a geo-targeting information includes one or more of a location, an itinerary or a moving direction of the user immediately before (flexible) or while she is accessible for delivery of advertisement item.
  • a physical condition information, e.g., bio-signals, of a user may also be relevant because a physical condition of the user may indicate the user’s current interest points. For example, if it is detected that a user’s heat beat is over 150 bpm, it may be assumed that the user is or just finished exercising and thus he/she may be more interested in sports related advertisements.
  • contextual information needs to be sufficiently current.
  • Techniques need to be used to obtain such contextual information in substantially real time.
  • a wearable device with various sensors like a motion sensor, a magnetometer, a compass, etc., may be used to detect a physical condition of a user and may be used to detect an activity of the user.
  • Such real-time detection of contextual information may be collected by a communication hub device, e.g., a mobile terminal of the user, and then may be communicated to resource management unit 140 through network 260.
  • relevancy pair determination unit 146 may determine a relevancy level between a user and a content of an advertisement item. Platform 100 may, at a same time, working with multiple advertisers of multiple advertisement items. In an example, relevancy pair determination unit 146 may determine a relevancy level of a user to each and every advertisement items. Further, a relevancy score may be generated for a user to each and every advertisement items. For another example, relevancy pair determination unit 146 may determine relevancy scores of a user to a selected group of advertisement items and generate user-content pair relevancy only for the selected group of advertisement items. The determined user-content relevancy pairs may be provided to flow control unit 110.
  • flow control unit 110 monitors the actual delivery of the multiple advertisement items to their respective target user groups.
  • a user may be part of the target user groups of one or more of the advertisement items or may not be included in any of the target groups.
  • the monitoring in operation 420 may be similar to that of example operation 330 of example process 300 illustrated in FIGURE 4.
  • adjusting unit 114 analyzes the monitored actual delivery of the multiple advertisement items in relation to the respective expectations to determine an availability of one (s) of the multiple advertisement items to be delivered to the user.
  • the analysis may be conducted in similar ways as example operation 340 of example process 300 illustrated in FIGURE 4.
  • the expectations may be different.
  • the expectation may be an expected user reaction amount, and for another advertisement item, the expectation may be a total number of delivery of the advertisement item.
  • An actual delivery vs. expected delivery ratio R may be generated for each of the multiple advertisement items.
  • the relevancy level of one of the multiple advertisement items may be compared to a threshold to determine whether the available advertisement item will be delivered to the user.
  • the threshold may vary. For example, if ratio R is higher than 1 for one advertisement item, which means that the actual delivery of the advertisement item is better than expected, the relevancy threshold for that advertisement item may be increased to make it less likely that the advertisement item is available to be delivered to the user. if ratio R is lower than 1 for another advertisement item, which means that the actual delivery of the advertisement item is less than expected, the relevancy threshold for that advertisement item may be lowered to make it more likely that the advertisement item is available to be delivered to the user.
  • Adjusting unit 114 may generate an availability score for all the multiple available advertisement items to determine which one (s) will be delivered to the user.
  • the availability score of an advertisement item is determined based on a weighted relevancy score of the advertisement item to the user.
  • 1/R may be used as the weight for calculating the weighted relevancy score.
  • the same illustrative example as described in example operation 340 may be used herein to illustrate the determination of an availability score of an advertisement item based on the weighted relevancy score.
  • a user may have a relevancy score 100 with a golf equipment related advertisement and a relevancy score 120 with a biking equipment related advertisement. Monitored results may show that the actual delivery vs.expected delivery ratio R for the golf equipment R golf is 4/5 and the ratio R for biking equipment R bike is 8/5.
  • the golf equipment related advertisement is more available (higher availability score) to be delivered to the user as compared to the biking related.
  • load balancing unit 112 causes the available advertisement item (s) of the multiple advertisement items be delivered to the user based on the relevancy scores.
  • the relevancy score may be simply the relevancy score determined by the user resource management unit 140 or may a weighted relevancy score (availability score) which is calculated based on the relevancy score and the monitored actual delivery of the advertisement item. In an example, among multiple available advertisement items, the ones with higher relevancy score will have priority in being delivered to the user.
  • the logical operations described herein are implemented (1) as a sequence of computer implemented acts or program modules running on a computing system and/or (2) as interconnected machine logic circuits or circuit modules within the computing system.
  • the implementation is a matter of choice dependent on the performance and other requirements of the computing system.
  • the logical operations described herein are referred to variously as states, operations, structural devices, acts, or modules. These operations, structural devices, acts, and modules may be implemented in software, in firmware, in special purpose digital logic, and any combination thereof.
  • example process 300 and example process 400 are described herein as being implemented, at least in part, by an application, component, and/or circuit.
  • the described illustration refers to the components of FIGURE 2, it can be appreciated that the operations of the processes 300, 400 may be also implemented in many other ways.
  • the processes 300, 400 may be implemented, at least in part, by computer processor or processor of separate computers.
  • one or more of the operations of the processes 300, 400 may alternatively or additionally be implemented, at least in part, by a computer working alone or in conjunction with other software modules, such as a server module.
  • a computing device where any one or more of flow control unit 110, monitoring unit 120, scheduling unit 130 and resource management unit 140 of FIGURE 2 are located may be in the form of a personal computer, a wearable computing device, a mobile phone, or any other device having components for processing and communicating data.
  • a computing device may be a tablet having one or more user-machine interface such as a display interface and/or an input device.
  • a display interface may include a monitor, a projection surface, a touch screen, and/or any other interface device capable of displaying.
  • an input device may include a camera, a microphone, a keyboard or any other input device, capable of inputting data to the computing device.
  • the computing device may also include a local memory that is capable of storing, communicating, and processing input data, output data, and other data.
  • the local memory may also include a program module configured to manage techniques described herein including the one or more of flow control unit 110, monitoring unit 120, scheduling unit 130 and resource management unit 140 of FIGURE 2.
  • FIGURE 6 shows additional details of an example computer architecture 500 for a computer, on which one or more of the units of platform 100 of FIGURE 2 may be located, and which is capable of executing the program components including the units of platform 100 described herein.
  • the computer architecture 500 illustrated in FIGURE 6 illustrates an architecture for a server computer, mobile phone, a PDA, a smart phone, a desktop computer, a netbook computer, a tablet computer, and/or a laptop computer.
  • the computer architecture 500 may be utilized to execute any aspects of the software components presented herein.
  • the computer architecture 500 illustrated in FIGURE 6 includes a central processing unit 502 ( “CPU” ) , a system memory 504, including a random access memory 506 ( “RAM” ) and a read-only memory ( “ROM” ) 508, and a system bus 510 that couples the memory 504 to the CPU 502.
  • the computer architecture 500 further includes a mass storage device 512 for storing an operating system 507, data, such as the output data 509, and one or more application programs.
  • the mass storage device 512 is connected to the CPU 502 through a mass storage controller (not shown) connected to the bus 510.
  • the mass storage device 512 and its associated computer-readable media provide non-volatile storage for the computer architecture 500.
  • computer-readable media can be any available computer storage media or communication media that can be accessed by the computer architecture 500.
  • Communication media includes computer readable instructions, data structures, program modules, or other data in a modulated data signal such as a carrier wave or other transport mechanism and includes any delivery media.
  • modulated data signal means a signal that has one or more of its characteristics changed or set in a manner as to encode information in the signal.
  • communication media includes wired media such as a wired network or direct-wired connection, and wireless media such as acoustic, RF, infrared and other wireless media. Combinations of the any of the above should also be included within the scope of computer-readable media.
  • computer storage media may 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 media includes, but is not limited to, RAM, ROM, EPROM, EEPROM, flash memory or other solid state memory technology, CD-ROM, digital versatile disks ( “DVD” ) , HD-DVD, BLU-RAY, 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 the computer architecture 500.
  • DVD digital versatile disks
  • HD-DVD high definition digital versatile disks
  • BLU-RAY blue ray
  • computer storage medium, ” “computer-readable storage medium” and variations thereof does not include waves, signals, and/or other transitory and/or intangible communication media, per se.
  • the computer architecture 500 may operate in a networked environment using logical connections to remote computers through the network 756 and/or another network (not shown) .
  • the computer architecture 500 may connect to the network 756 through a network interface unit 514 connected to the bus 510. It should be appreciated that the network interface unit 514 also may be utilized to connect to other types of networks and remote computer systems.
  • the computer architecture 500 also may include an input/output controller 516 for receiving and processing input from a number of other devices, including a keyboard, mouse, or electronic stylus (not shown in FIGURE 6) . Similarly, the input/output controller 516 may provide output to a display screen, a printer, or other type of output device (also not shown in FIGURE 6) .
  • the software components of platform 100 described herein may, when loaded into the CPU 502 and executed, transform the CPU 502 and the overall computer architecture 500 from a general-purpose computing system into a special-purpose computing system customized to facilitate the functionality presented herein.
  • the CPU 502 may be constructed from any number of transistors or other discrete circuit elements, which may individually or collectively assume any number of states. More specifically, the CPU 502 may operate as a finite-state machine, in response to executable instructions contained within the software modules disclosed herein. These computer-executable instructions may transform the CPU 502 by specifying how the CPU 502 transitions between states, thereby transforming the transistors or other discrete hardware elements constituting the CPU 502.
  • Encoding the software modules presented herein also may transform the physical structure of the computer-readable media presented herein.
  • the specific transformation of physical structure may depend on various factors, in different implementations of this description. Examples of such factors may include, but are not limited to, the technology used to implement the computer-readable media, whether the computer-readable media is characterized as primary or secondary storage, and the like.
  • the computer-readable media is implemented as semiconductor-based memory
  • the software disclosed herein may be encoded on the computer-readable media by transforming the physical state of the semiconductor memory.
  • the software may transform the state of transistors, capacitors, or other discrete circuit elements constituting the semiconductor memory.
  • the software also may transform the physical state of such components in order to store data thereupon.
  • the computer-readable media disclosed herein may be implemented using magnetic or optical technology.
  • the software presented herein may transform the physical state of magnetic or optical media, when the software is encoded therein. These transformations may include altering the magnetic characteristics of particular locations within given magnetic media. These transformations also may include altering the physical features or characteristics of particular locations within given optical media, to change the optical characteristics of those locations. Other transformations of physical media are possible without departing from the scope and spirit of the present description, with the foregoing examples provided only to facilitate this discussion.
  • the computer architecture 500 may include other types of computing devices, including hand-held computers, embedded computer systems, personal digital assistants, and other types of computing devices known to those skilled in the art. It is also contemplated that the computer architecture 500 may not include all of the components shown in FIGURE 6, may include other components that are not explicitly shown in FIGURE 6, or may utilize an architecture completely different than that shown in FIGURE 6.
  • FIGURE 7 depicts an illustrative distributed computing environment 600 capable of executing the software components of platform 100 described herein for machine learning in message distribution.
  • the distributed computing environment 600 illustrated in FIGURE 7 can be utilized to execute any aspects of the software components presented herein.
  • the distributed computing environment 600 can be utilized to execute aspects of the web browser 510, the platform 100 and/or any units thereof and/or other software components described herein.
  • the distributed computing environment 600 includes a computing environment 602 operating on, in communication with, or as part of the network 604.
  • the network 604 may be or may include the network 756, described above with reference to FIGURE 6.
  • the network 604 also can include various access networks.
  • One or more client devices 606A-606N (hereinafter referred to collectively and/or generically as “clients 606” ) can communicate with the computing environment 602 via the network 604 and/or other connections (not illustrated in FIGURE 7) .
  • the client devices 606 include a computing device 606A such as a laptop computer, a desktop computer, or other computing device; a slate or tablet computing device ( “tablet computing device” ) 606B; a mobile computing device 606C such as a mobile telephone, a smart phone, or other mobile computing device; a server computer 606D; and/or other devices 606N. It should be understood that any number of clients 606 can communicate with the computing environment 602. Two example computing architectures for the client devices 606 are illustrated and described herein with reference to FIGURES 6 and 8. It should be understood that the illustrated clients 606 and computing architectures illustrated and described herein are illustrative, and should not be construed as being limited in any way.
  • the computing environment 602 includes application servers 608, data storage 610, and one or more network interfaces 612.
  • the functionality of the application servers 608 can be provided by one or more server computers that are executing as part of, or in communication with, the network 604.
  • the application servers 608 can host various services, virtual machines, portals, and/or other resources.
  • the application servers 608 host one or more virtual machines 614 for hosting applications or other functionality.
  • the virtual machines 614 host one or more applications and/or software modules for providing intelligent configuration of data visualizations. It should be understood that this configuration is illustrative, and should not be construed as being limiting in any way.
  • the application servers 608 also host or provide access to one or more portals, link pages, Web sites, and/or other information ( “Web portals” ) 616.
  • the application servers 608 also include one or more mailbox services 618 and one or more messaging services 620.
  • the mailbox services 618 can include electronic mail ( “email” ) services.
  • the mailbox services 618 also can include various personal information management ( “PIM” ) services including, but not limited to, calendar services, contact management services, collaboration services, and/or other services.
  • PIM personal information management
  • the messaging services 620 can include, but are not limited to, instant messaging services, chat services, forum services, and/or other communication services.
  • the application servers 608 also may include one or more social networking services 622.
  • the social networking services 622 can include various social networking services including, but not limited to, services for sharing or posting status updates, instant messages, links, photos, videos, and/or other information; services for commenting or displaying interest in articles, products, blogs, or other resources; and/or other services.
  • the social networking services 622 also can include commenting, blogging, and/or micro blogging services.
  • a social networking application, mail client, messaging client or a browser running on a phone or any other client 606 may communicate with a networking service 622 and facilitate the functionality, even in part, described above with respect to FIGURES 2, 3 and 4.
  • the application servers 608 also can host other services, applications, portals, and/or other resources ( “other resources” ) 624.
  • the other resources 624 can include, but are not limited to, document sharing, rendering or any other functionality. It thus can be appreciated that the computing environment 602 can provide integration of the concepts and technologies disclosed herein provided herein with various mailbox, messaging, social networking, and/or other services or resources.
  • the computing environment 602 can include the data storage 610.
  • the functionality of the data storage 610 is provided by one or more databases operating on, or in communication with, the network 604.
  • the functionality of the data storage 610 also can be provided by one or more server computers configured to host data for the computing environment 602.
  • the data storage 610 can include, host, or provide one or more real or virtual datastores 626A-626N (hereinafter referred to collectively and/or generically as “datastores 626” ) .
  • the datastores 626 are configured to host data used or created by the application servers 608 and/or other data.
  • the datastores 626 also can host or store web page documents, word documents, presentation documents, data structures, algorithms for execution by a recommendation engine, and/or other data utilized by any application program or another module, such as the content manager 105. Aspects of the datastores 626 may be associated with a service for storing files.
  • the computing environment 602 can communicate with, or be accessed by, the network interfaces 612.
  • the network interfaces 612 can include various types of network hardware and software for supporting communications between two or more computing devices including, but not limited to, the clients 606 and the application servers 608. It should be appreciated that the network interfaces 612 also may be utilized to connect to other types of networks and/or computer systems.
  • the distributed computing environment 600 described herein can provide any aspects of the software elements described herein with any number of virtual computing resources and/or other distributed computing functionality that can be configured to execute any aspects of the software components disclosed herein.
  • the distributed computing environment 600 provides the software functionality described herein as a service to the clients 606.
  • the clients 606 can include real or virtual machines including, but not limited to, server computers, web servers, personal computers, mobile computing devices, smart phones, and/or other devices.
  • various configurations of the concepts and technologies disclosed herein enable any device configured to access the distributed computing environment 600 to utilize the functionality described herein for providing intelligent configuration of data visualizations, among other aspects.
  • techniques described herein may be implemented, at least in part, by the web browser application 510 of FIGURE 6, which works in conjunction with the application servers 608 of FIGURE 7.
  • FIGURE 8 an illustrative computing device architecture 700 for a computing device that is capable of executing various software components described herein for providing platform 100.
  • the computing device architecture 700 is applicable to computing devices that facilitate mobile computing due, in part, to form factor, wireless connectivity, and/or battery-powered operation.
  • the computing devices include, but are not limited to, mobile telephones, tablet devices, slate devices, portable video game devices, and the like.
  • the computing device architecture 700 is applicable to any of the client devices 606 shown in FIGURE 7.
  • aspects of the computing device architecture 700 may be applicable to traditional desktop computers, portable computers (e.g., laptops, notebooks, ultra-portables, and netbooks) , server computers, and other computer systems, such as described herein with reference to FIGURE 6.
  • the single touch and multi-touch aspects disclosed herein below may be applied to desktop computers that utilize a touchscreen or some other touch-enabled device, such as a touch-enabled track pad or touch-enabled mouse.
  • the computing device architecture 700 illustrated in FIGURE 8 includes a processor 702, memory components 704, network connectivity components 706, sensor components 708, input/output components 710, and power components 712.
  • the processor 702 is in communication with the memory components 704, the network connectivity components 706, the sensor components 708, the input/output ( “I/O” ) components 710, and the power components 712.
  • the components can interact to carry out device functions.
  • the components are arranged so as to communicate via one or more busses (not shown) .
  • the processor 702 includes a central processing unit ( “CPU” ) configured to process data, execute computer-executable instructions of one or more application programs, and communicate with other components of the computing device architecture 700 in order to perform various functionality described herein.
  • the processor 702 may be utilized to execute aspects of the software components presented herein and, particularly, those that utilize, at least in part, a touch-enabled input.
  • the processor 702 includes a graphics processing unit ( “GPU” ) configured to accelerate operations performed by the CPU, including, but not limited to, operations performed by executing general-purpose scientific and/or engineering computing applications, as well as graphics-intensive computing applications such as high resolution video (e.g., 720P, 1080P, and higher resolution) , video games, three-dimensional ( “3D” ) modeling applications, and the like.
  • the processor 702 is configured to communicate with a discrete GPU (not shown) .
  • the CPU and GPU may be configured in accordance with a co-processing CPU/GPU computing model, wherein the sequential part of an application executes on the CPU and the computationally-intensive part is accelerated by the GPU.
  • the processor 702 is, or is included in, a system-on-chip ( “SoC” ) along with one or more of the other components described herein below.
  • SoC system-on-chip
  • the SoC may include the processor 702, a GPU, one or more of the network connectivity components 706, and one or more of the sensor components 708.
  • the processor 702 is fabricated, in part, utilizing a package-on-package ( “PoP” ) integrated circuit packaging technique.
  • the processor 702 may be a single core or multi-core processor.
  • the processor 702 may be created in accordance with an ARM architecture, available for license from ARM HOLDINGS of Cambridge, United Kingdom. Alternatively, the processor 702 may be created in accordance with an x86 architecture, such as is available from INTEL CORPORATION of Mountain View, California and others.
  • the memory components 704 include a random access memory ( “RAM” ) 714, a read-only memory ( “ROM” ) 716, an integrated storage memory ( “integrated storage” ) 718, and a removable storage memory ( “removable storage” ) 720.
  • RAM random access memory
  • ROM read-only memory
  • integrated storage integrated storage
  • removable storage “removable storage”
  • the RAM 714 or a portion thereof, the ROM 716 or a portion thereof, and/or some combination the RAM 714 and the ROM 716 is integrated in the processor 702.
  • the ROM 716 is configured to store a firmware, an operating system or a portion thereof (e.g., operating system kernel) , and/or a bootloader to load an operating system kernel from the integrated storage 718 and/or the removable storage 720.
  • the integrated storage 718 can include a solid-state memory, a hard disk, or a combination of solid-state memory and a hard disk.
  • the integrated storage 718 may be soldered or otherwise connected to a logic board upon which the processor 702 and other components described herein also may be connected. As such, the integrated storage 718 is integrated in the computing device.
  • the integrated storage 718 is configured to store an operating system or portions thereof, application programs, data, and other software components described herein.
  • the removable storage 720 can include a solid-state memory, a hard disk, or a combination of solid-state memory and a hard disk. In some configurations, the removable storage 720 is provided in lieu of the integrated storage 718. In other configurations, the removable storage 720 is provided as additional optional storage. In some configurations, the removable storage 720 is logically combined with the integrated storage 718 such that the total available storage is made available as a total combined storage capacity. In some configurations, the total combined capacity of the integrated storage 718 and the removable storage 720 is shown to a user instead of separate storage capacities for the integrated storage 718 and the removable storage 720.
  • the removable storage 720 is configured to be inserted into a removable storage memory slot (not shown) or other mechanism by which the removable storage 720 is inserted and secured to facilitate a connection over which the removable storage 720 can communicate with other components of the computing device, such as the processor 702.
  • the removable storage 720 may be embodied in various memory card formats including, but not limited to, PC card, CompactFlash card, memory stick, secure digital ( “SD” ) , miniSD, microSD, universal integrated circuit card ( “UICC” ) (e.g., a subscriber identity module ( “SIM” ) or universal SIM ( “USIM” ) ) , a proprietary format, or the like.
  • the memory components 704 can store an operating system.
  • the operating system includes, but is not limited to WINDOWS MOBILE OS from Microsoft Corporation of Redmond, Washington, WINDOWS PHONE OS from Microsoft Corporation, WINDOWS from Microsoft Corporation, PALM WEBOS from Hewlett-Packard Company of Palo Alto, California, BLACKBERRY OS from Research In Motion Limited of Waterloo, Ontario, Canada, IOS from Apple Inc. of Cupertino, California, and ANDROID OS from Google Inc. of Mountain View, California. Other operating systems are contemplated.
  • the network connectivity components 706 include a wireless wide area network component ( “WWAN component” ) 722, a wireless local area network component ( “WLAN component” ) 724, and a wireless personal area network component ( “WPAN component” ) 726.
  • the network connectivity components 706 facilitate communications to and from the network 756 or another network, which may be a WWAN, a WLAN, or a WPAN. Although only the network 756 is illustrated, the network connectivity components 706 may facilitate simultaneous communication with multiple networks, including the network 604 of FIGURE 7. For example, the network connectivity components 706 may facilitate simultaneous communications with multiple networks via one or more of a WWAN, a WLAN, or a WPAN.
  • the network 756 may be or may include a WWAN, such as a mobile telecommunications network utilizing one or more mobile telecommunications technologies to provide voice and/or data services to a computing device utilizing the computing device architecture 700 via the WWAN component 722.
  • the mobile telecommunications technologies can include, but are not limited to, Global System for Mobile communications ( “GSM” ) , Code Division Multiple Access ( “CDMA” ) ONE, CDMA7000, Universal Mobile Telecommunications System ( “UMTS” ) , Long Term Evolution ( “LTE” ) , and Worldwide Interoperability for Microwave Access ( “WiMAX” ) .
  • the network 756 may utilize various channel access methods (which may or may not be used by the aforementioned standards) including, but not limited to, Time Division Multiple Access ( “TDMA” ) , Frequency Division Multiple Access ( “FDMA” ) , CDMA, wideband CDMA ( “W-CDMA” ) , Orthogonal Frequency Division Multiplexing ( “OFDM” ) , Space Division Multiple Access ( “SDMA” ) , and the like.
  • TDMA Time Division Multiple Access
  • FDMA Frequency Division Multiple Access
  • CDMA Code Division Multiple Access
  • W-CDMA wideband CDMA
  • OFDM Orthogonal Frequency Division Multiplexing
  • SDMA Space Division Multiple Access
  • Data communications may be provided using General Packet Radio Service ( “GPRS” ) , Enhanced Data rates for Global Evolution ( “EDGE” ) , the High-Speed Packet Access ( “HSPA” ) protocol family including High-Speed Downlink Packet Access ( “HSDPA” ) , Enhanced Uplink ( “EUL” ) or otherwise termed High-Speed Uplink Packet Access ( “HSUPA” ) , Evolved HSPA ( “HSPA+” ) , LTE, and various other current and future wireless data access standards.
  • the network 756 may be configured to provide voice and/or data communications with any combination of the above technologies.
  • the network 756 may be configured to or adapted to provide voice and/or data communications in accordance with future generation technologies.
  • the WWAN component 722 is configured to provide dual-multi-mode connectivity to the network 756.
  • the WWAN component 722 may be configured to provide connectivity to the network 756, wherein the network 756 provides service via GSM and UMTS technologies, or via some other combination of technologies.
  • multiple WWAN components 722 may be utilized to perform such functionality, and/or provide additional functionality to support other non-compatible technologies (i.e., incapable of being supported by a single WWAN component) .
  • the WWAN component 722 may facilitate similar connectivity to multiple networks (e.g., a UMTS network and an LTE network) .
  • the network 756 may be a WLAN operating in accordance with one or more Institute of Electrical and Electronic Engineers ( “IEEE” ) 802.11 standards, such as IEEE 802.11a, 802.11b, 802.11g, 802.11n, and/or future 802.11 standard (referred to herein collectively as WI-FI) . Draft 802.11 standards are also contemplated.
  • the WLAN is implemented utilizing one or more wireless WI-FI access points.
  • one or more of the wireless WI-FI access points are another computing device with connectivity to a WWAN that are functioning as a WI-FI hotspot.
  • the WLAN component 724 is configured to connect to the network 756 via the WI-FI access points. Such connections may be secured via various encryption technologies including, but not limited, WI-FI Protected Access ( “WPA” ) , WPA2, Wired Equivalent Privacy ( “WEP” ) , and the like.
  • WPA WI-FI Protected Access
  • WEP Wired Equivalent Privacy
  • the network 756 may be a WPAN operating in accordance with Infrared Data Association ( “IrDA” ) , BLUETOOTH, wireless Universal Serial Bus ( “USB” ) , Z-Wave, ZIGBEE, or some other short-range wireless technology.
  • the WPAN component 726 is configured to facilitate communications with other devices, such as peripherals, computers, or other computing devices via the WPAN.
  • the sensor components 708 include a magnetometer 728, an ambient light sensor 730, a proximity sensor 732, an accelerometer 734, a gyroscope 736, and a Global Positioning System sensor ( “GPS sensor” ) 738. It is contemplated that other sensors, such as, but not limited to, compasses, temperature sensors or shock detection sensors, also may be incorporated in the computing device architecture 700.
  • the magnetometer 728 is configured to measure the strength and direction of a magnetic field.
  • the magnetometer 728 provides measurements to a compass application program stored within one of the memory components 704 in order to provide a user with accurate directions in a frame of reference including the cardinal directions, north, south, east, and west. Similar measurements may be provided to a navigation application program that includes a compass component. Other uses of measurements obtained by the magnetometer 728 are contemplated.
  • the ambient light sensor 730 is configured to measure ambient light.
  • the ambient light sensor 730 provides measurements to an application program stored within one the memory components 704 in order to automatically adjust the brightness of a display (described below) to compensate for low-light and high-light environments. Other uses of measurements obtained by the ambient light sensor 730 are contemplated.
  • the proximity sensor 732 is configured to detect the presence of an object or thing in proximity to the computing device without direct contact.
  • the proximity sensor 732 detects the presence of a user’s body (e.g., the user’s face) and provides this information to an application program stored within one of the memory components 704 that utilizes the proximity information to enable or disable some functionality of the computing device.
  • a telephone application program may automatically disable a touchscreen (described below) in response to receiving the proximity information so that the user’s face does not inadvertently end a call or enable/disable other functionality within the telephone application program during the call.
  • Other uses of proximity as detected by the proximity sensor 732 are contemplated.
  • the accelerometer 734 is configured to measure proper acceleration.
  • output from the accelerometer 734 is used by an application program as an input mechanism to control some functionality of the application program.
  • the application program may be a video game in which a character, a portion thereof, or an object is moved or otherwise manipulated in response to input received via the accelerometer 734.
  • output from the accelerometer 734 is provided to an application program for use in switching between landscape and portrait modes, calculating coordinate acceleration, or detecting a fall. Other uses of the accelerometer 734 are contemplated.
  • the gyroscope 736 is configured to measure and maintain orientation.
  • output from the gyroscope 736 is used by an application program as an input mechanism to control some functionality of the application program.
  • the gyroscope 736 can be used for accurate recognition of movement within a 3D environment of a video game application or some other application.
  • an application program utilizes output from the gyroscope 736 and the accelerometer 734 to enhance control of some functionality of the application program. Other uses of the gyroscope 736 are contemplated.
  • the GPS sensor 738 is configured to receive signals from GPS satellites for use in calculating a location.
  • the location calculated by the GPS sensor 738 may be used by any application program that requires or benefits from location information.
  • the location calculated by the GPS sensor 738 may be used with a navigation application program to provide directions from the location to a destination or directions from the destination to the location.
  • the GPS sensor 738 may be used to provide location information to an external location-based service, such as E911 service.
  • the GPS sensor 738 may obtain location information generated via WI-FI, WIMAX, and/or cellular triangulation techniques utilizing one or more of the network connectivity components 706 to aid the GPS sensor 738 in obtaining a location fix.
  • the GPS sensor 738 may also be used in Assisted GPS ( “A-GPS” ) systems.
  • A-GPS Assisted GPS
  • one or more of the sensors may be used in detecting contextual information of a user as described in FIGURES 2 and 3.
  • the I/O components 710 include a display 740, a touchscreen 742, a data I/O interface component ( “data I/O” ) 744, an audio I/O interface component ( “audio I/O” ) 746, a video I/O interface component ( “video I/O” ) 748, and a camera 750.
  • the display 740 and the touchscreen 742 are combined.
  • two or more of the data I/O component 744, the audio I/O component 746, and the video I/O component 748 are combined.
  • the I/O components 710 may include discrete processors configured to support the various interface described below, or may include processing functionality built-in to the processor 702.
  • the display 740 is an output device configured to present information in a visual form.
  • the display 740 may present graphical user interface ( “GUI” ) elements, text, images, video, notifications, virtual buttons, virtual keyboards, messaging data, Internet content, device status, time, date, calendar data, preferences, map information, location information, and any other information that is capable of being presented in a visual form.
  • GUI graphical user interface
  • the display 740 is a liquid crystal display ( “LCD” ) utilizing any active or passive matrix technology and any backlighting technology (if used) .
  • the display 740 is an organic light emitting diode ( “OLED” ) display. Other display types are contemplated.
  • the touchscreen 742 also referred to herein as a “touch-enabled screen, ” is an input device configured to detect the presence and location of a touch.
  • the touchscreen 742 may be a resistive touchscreen, a capacitive touchscreen, a surface acoustic wave touchscreen, an infrared touchscreen, an optical imaging touchscreen, a dispersive signal touchscreen, an acoustic pulse recognition touchscreen, or may utilize any other touchscreen technology.
  • the touchscreen 742 is incorporated on top of the display 740 as a transparent layer to enable a user to use one or more touches to interact with objects or other information presented on the display 740.
  • the touchscreen 742 is a touch pad incorporated on a surface of the computing device that does not include the display 740.
  • the computing device may have a touchscreen incorporated on top of the display 740 and a touch pad on a surface opposite the display 740.
  • the touchscreen 742 is a single-touch touchscreen. In other configurations, the touchscreen 742 is a multi-touch touchscreen. In some configurations, the touchscreen 742 is configured to detect discrete touches, single touch gestures, and/or multi-touch gestures. These are collectively referred to herein as gestures for convenience. Several gestures will now be described. It should be understood that these gestures are illustrative and are not intended to limit the scope of the appended claims. Moreover, the described gestures, additional gestures, and/or alternative gestures may be implemented in software for use with the touchscreen 742. As such, a developer may create gestures that are specific to a particular application program.
  • the touchscreen 742 supports a tap gesture in which a user taps the touchscreen 742 once on an item presented on the display 740.
  • the tap gesture may be used for various reasons including, but not limited to, opening or launching whatever the user taps.
  • the touchscreen 742 supports a double tap gesture in which a user taps the touchscreen 742 twice on an item presented on the display 740.
  • the double tap gesture may be used for various reasons including, but not limited to, zooming in or zooming out in stages.
  • the touchscreen 742 supports a tap and hold gesture in which a user taps the touchscreen 742 and maintains contact for at least a pre-defined time.
  • the tap and hold gesture may be used for various reasons including, but not limited to, opening a context-specific menu.
  • the touchscreen 742 supports a pan gesture in which a user places a finger on the touchscreen 742 and maintains contact with the touchscreen 742 while moving the finger on the touchscreen 742.
  • the pan gesture may be used for various reasons including, but not limited to, moving through screens, images, or menus at a controlled rate. Multiple finger pan gestures are also contemplated.
  • the touchscreen 742 supports a flick gesture in which a user swipes a finger in the direction the user wants the screen to move.
  • the flick gesture may be used for various reasons including, but not limited to, scrolling horizontally or vertically through menus or pages.
  • the touchscreen 742 supports a pinch and stretch gesture in which a user makes a pinching motion with two fingers (e.g., thumb and forefinger) on the touchscreen 742 or moves the two fingers apart.
  • the pinch and stretch gesture may be used for various reasons including, but not limited to, zooming gradually in or out of a website, map, or picture.
  • the data I/O interface component 744 is configured to facilitate input of data to the computing device and output of data from the computing device.
  • the data I/O interface component 744 includes a connector configured to provide wired connectivity between the computing device and a computer system, for example, for synchronization operation purposes.
  • the connector may be a proprietary connector or a standardized connector such as USB, micro-USB, mini-USB, or the like.
  • the connector is a dock connector for docking the computing device with another device such as a docking station, audio device (e.g., a digital music player) , or video device.
  • the audio I/O interface component 746 is configured to provide audio input and/or output capabilities to the computing device.
  • the audio I/O interface component 746 includes a microphone configured to collect audio signals.
  • the audio I/O interface component 746 includes a headphone jack configured to provide connectivity for headphones or other external speakers.
  • the audio I/O interface component 746 includes a speaker for the output of audio signals.
  • the audio I/O interface component 746 includes an optical audio cable out.
  • the video I/O interface component 748 is configured to provide video input and/or output capabilities to the computing device.
  • the video I/O interface component 748 includes a video connector configured to receive video as input from another device (e.g., a video media player such as a DVD or BLURAY player) or send video as output to another device (e.g., a monitor, a television, or some other external display) .
  • the video I/O interface component 748 includes a High-Definition Multimedia Interface ( “HDMI” ) , mini-HDMI, micro-HDMI, DisplayPort, or proprietary connector to input/output video content.
  • the video I/O interface component 748 or portions thereof is combined with the audio I/O interface component 746 or portions thereof.
  • the camera 750 can be configured to capture still images and/or video.
  • the camera 750 may utilize a charge coupled device ( “CCD” ) or a complementary metal oxide semiconductor ( “CMOS” ) image sensor to capture images.
  • CCD charge coupled device
  • CMOS complementary metal oxide semiconductor
  • the camera 750 includes a flash to aid in taking pictures in low-light environments.
  • Settings for the camera 750 may be implemented as hardware or software buttons.
  • one or more hardware buttons may also be included in the computing device architecture 700.
  • the hardware buttons may be used for controlling some operational aspect of the computing device.
  • the hardware buttons may be dedicated buttons or multi-use buttons.
  • the hardware buttons may be mechanical or sensor-based.
  • the illustrated power components 712 include one or more batteries 752, which can be connected to a battery gauge 754.
  • the batteries 752 may be rechargeable or disposable.
  • Rechargeable battery types include, but are not limited to, lithium polymer, lithium ion, nickel cadmium, and nickel metal hydride.
  • Each of the batteries 752 may be made of one or more cells.
  • the battery gauge 754 can be configured to measure battery parameters such as current, voltage, and temperature. In some configurations, the battery gauge 754 is configured to measure the effect of a battery’s discharge rate, temperature, age and other factors to predict remaining life within a certain percentage of error. In some configurations, the battery gauge 754 provides measurements to an application program that is configured to utilize the measurements to present useful power management data to a user. Power management data may include one or more of a percentage of battery used, a percentage of battery remaining, a battery condition, a remaining time, a remaining capacity (e.g., in watt hours) , a current draw, and a voltage.
  • Power management data may include one or more of a percentage of battery used, a percentage of battery remaining, a battery condition, a remaining time, a remaining capacity (e.g., in watt hours) , a current draw, and a voltage.
  • the power components 712 may also include a power connector, which may be combined with one or more of the aforementioned I/O components 710.
  • the power components 712 may interface with an external power system or charging equipment via an I/O component.
  • a computer-implemented system for distributing a message through an application comprising: one or more processors; and computer readable storage medium communicatively coupled with the one or more processors, the computer readable medium having computer executable instructions stored therein, which when executed, causes the computer-implemented system to: receive a delivery schedule of delivering the message to users of a first user group through the application, the first user group being determined under a grouping criterion; monitor an actual delivery of the message through the application; adjust the grouping criterion based on the monitored actual delivery of the message to obtain a second user group; and cause the message be delivered to users of the second user group through the application.
  • Clause 2 The computer-implemented system of clause 1, wherein the delivery schedule includes a display slot of delivering the message through the application.
  • Clause 3 The computer-implemented system of clause 2, wherein the display slot includes at least one of a display position, a size of the content, or a displaying type.
  • Clause 4 The computer-implemented system of clause 1, further comprising partitioning a display space of the application into multiply display slots, each display slot having an impression ranking score.
  • Clause 5 The computer-implemented system of clause 1, wherein the grouping criterion includes a relevancy level of a user to a content of the message.
  • Clause 6 The computer-implemented system of clause 5, wherein the relevancy level of the user is determined based on at least one of historical information and contextual information of the user.
  • Clause 7 The computer-implemented system of clause 1, wherein the monitoring includes detecting at least one of a measure of a delivery amount of the message or a measure of user reactions to the message delivered through the application.
  • Clause 8 The computer-implemented system of clause 1, wherein the adjust the grouping criterion includes calculating a weighted relevancy of a user to a content of the message based at least in part on the monitored actual delivery of the message through the application.
  • Clause 9 The computer-implemented system of clause 1, wherein the delivery schedule includes an expected delivery budget and the monitored actual delivery of the message is compared to the expected delivery budget as a basis for the adjusting.
  • a computer-implemented method comprising: relating a user to multiple advertisement items of on-line advertisement, the multiple advertisement items each being assigned a relevancy score according to their relevancy to the user; monitoring an actual delivery of one or more of the multiple advertisement items through an advertisement delivering application; analyzing the monitored actual delivery of the one or more of the multiple advertisement items to determine an availability of the one or more of the multiple advertisement items to be delivered to the user; and causing an available advertisement item of the one or more of the multiple advertisement items to be delivered to the user based on a relevancy score of the available advertisement item.
  • Clause 11 The computer-implemented method of clause 10, wherein the analyzing of the monitored actual delivery of the one or more of the multiple advertisement items includes comparing a progress of the actual delivery of the one or more of the multiple advertisement items to an expected progress of delivery of the one or more of the multiple advertisement items.
  • Clause 12 The computer-implemented method of clause 10, wherein the determining of the availability of the one or more of the multiple advertisement items to be delivered to the user includes comparing a relevancy score of an advertisement item to a threshold to determine whether the advertisement item is available to be delivered to the user.
  • Clause 13 The computer-implemented method of clause 10, wherein the analyzing further includes adjusting the relevancy score of the one or more of the multiple advertisement items based on the monitored actual delivery of the one or more of the multiple advertisement items.
  • Clause 14 The computer-implemented method of clause 10, wherein the analyzing includes calculating a weighted relevancy score of the one or more of the multiple advertisement items based on the monitored actual delivery of the one or more of the multiple advertisement items.
  • Clause 15 The computer-implemented method of clause 14, wherein the availability of the one or more of the multiple advertisement items to be delivered to the user is determined based on the weighted relevancy score of the one or more of the multiple advertisement items.
  • Clause 16 The computer-implemented method of clause 10, wherein the relevancy score of an advertisement item is determined based on at least one of on-line shopping history information and contextual information of the user.
  • Clause 17 The computer-implemented method of clause 16, wherein the contextual information includes at least one of a contextual activity, a geo-targeting information, or a physical condition of the user.
  • Clause 18 The computer-implemented method of clause 16, wherein the contextual information is determined at least partially by tracking an activity of user.
  • Clause 19 The computer-implemented method of clause 10, further comprising: receiving an expected distribution of a desired amount of delivery of the one or more of the multiple advertisement items within a period of time; and comparing the monitored actual delivery of the one or more of the multiple advertisement items with the expected distribution.
  • Clause 20 The computer-implemented method of clause 10, further comprising determining a manner of delivering the available advertisement item to the user based on the relevancy score of the available advertisement item.
  • a computer readable storage medium having computer-executable instructions stored thereupon which, when executed by a computer, cause the computer to: receiving a distribution schedule of a message, the distributing schedule providing a delivery manner of delivering the message to a target group of users determined using a grouping criterion; causing the message be delivered to users of the target group of users according to the distribution schedule; monitoring delivery of the message to users of the target group to detect at least one of an impression score or a user performance score of the message in a period of time; adjusting the grouping criterion based on the detected at least one of the impression score or the user performance score to obtain an adjusted target group of users; and causing the advertisement item be exposed to users of the adjusted group of users.
  • Clause 22 The computer readable storage medium of clause 21, further comprising adjusting the delivery manner of delivering the message to users of the target group of users based on the detected at least one of the impression score or the user performance score.
  • a computer-implemented system for distributing a message through an application comprising: one or more processors; and computer readable storage medium communicatively coupled with the one or more processors, the computer readable medium having computer executable instructions stored therein, which when executed, causes the computer-implemented system to: receive a delivery schedule of delivering the message to users of a first user group through the application, the first user group being determined under a grouping criterion; monitor an actual delivery of the message through the application; adjust the grouping criterion based on the monitored actual delivery of the message to obtain a second user group; and cause the message be delivered to users of the second user group through the application; wherein the grouping criterion is based at least in part on a user’s relevancy score to a content of the message.
  • Clause 24 The computer-implemented system of clause 23, wherein the adjusting includes adjusting a user’s relevancy score to the content of the message based on a comparison between the actual delivery of the message and the delivery schedule.

Landscapes

  • Business, Economics & Management (AREA)
  • Strategic Management (AREA)
  • Engineering & Computer Science (AREA)
  • Accounting & Taxation (AREA)
  • Development Economics (AREA)
  • Finance (AREA)
  • General Physics & Mathematics (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • Theoretical Computer Science (AREA)
  • Game Theory and Decision Science (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

La présente invention concerne des techniques relatives à un procédé et à un système destinés à l'apprentissage-machine d'une plateforme de distribution de message en ligne. Des données historiques et des données contextuelles sont utilisées pour déterminer un score de pertinence entre un utilisateur et un message. Un message est délivré à des utilisateurs comportant des scores de pertinence supérieurs à un seuil pour le message. La livraison réelle des messages sera surveillée, ce qui permet à la plateforme d'ajuster les seuils de score de pertinence.
PCT/CN2016/109009 2016-12-08 2016-12-08 Apprentissage-machine dans la distribution de messages WO2018103039A1 (fr)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201680091701.8A CN110447047A (zh) 2016-12-08 2016-12-08 消息分发中的机器学习
PCT/CN2016/109009 WO2018103039A1 (fr) 2016-12-08 2016-12-08 Apprentissage-machine dans la distribution de messages

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2016/109009 WO2018103039A1 (fr) 2016-12-08 2016-12-08 Apprentissage-machine dans la distribution de messages

Publications (1)

Publication Number Publication Date
WO2018103039A1 true WO2018103039A1 (fr) 2018-06-14

Family

ID=62491760

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2016/109009 WO2018103039A1 (fr) 2016-12-08 2016-12-08 Apprentissage-machine dans la distribution de messages

Country Status (2)

Country Link
CN (1) CN110447047A (fr)
WO (1) WO2018103039A1 (fr)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
USD890639S1 (en) 2018-12-17 2020-07-21 Bayerische Motoren Werke Aktiengesellschaft Radiator grille for a vehicle

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101071496A (zh) * 2006-05-10 2007-11-14 北京中青凯诚网络电视传媒有限公司 智能广告播放方法
CN101702653A (zh) * 2009-10-27 2010-05-05 中国科学院声学研究所 一种基于用户行为定向的消息通告系统及方法
CN102799623A (zh) * 2012-06-21 2012-11-28 杜小勇 信息推送方法
CN102999849A (zh) * 2011-09-08 2013-03-27 阿里巴巴集团控股有限公司 群组管理方法及系统

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7730010B2 (en) * 2004-09-20 2010-06-01 Microsoft Corporation Method, system, and apparatus for maintaining user privacy in a knowledge interchange system
CN101079824A (zh) * 2006-06-15 2007-11-28 腾讯科技(深圳)有限公司 一种用户兴趣偏好向量生成系统和方法
CN101071424B (zh) * 2006-06-23 2010-08-25 腾讯科技(深圳)有限公司 一种个性化信息推送系统和方法
CN101136873A (zh) * 2006-08-31 2008-03-05 腾讯科技(深圳)有限公司 一种即时通信平台上向用户发送广告的方法和系统
CN101256589A (zh) * 2008-03-31 2008-09-03 腾讯科技(深圳)有限公司 一种服务信息的推送方法及推送系统
US20090327076A1 (en) * 2008-06-27 2009-12-31 Microsoft Corporation Ad targeting based on user behavior
CN101431484A (zh) * 2008-11-24 2009-05-13 阿里巴巴集团控股有限公司 一种传送消息的方法和装置
CN103606094A (zh) * 2013-11-06 2014-02-26 北京掌阔移动传媒科技有限公司 一种移动互联网广告监测方法和系统
US20180189398A1 (en) * 2014-02-23 2018-07-05 Iot Holdings, Inc. Cognitive and affective human machine interface

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101071496A (zh) * 2006-05-10 2007-11-14 北京中青凯诚网络电视传媒有限公司 智能广告播放方法
CN101702653A (zh) * 2009-10-27 2010-05-05 中国科学院声学研究所 一种基于用户行为定向的消息通告系统及方法
CN102999849A (zh) * 2011-09-08 2013-03-27 阿里巴巴集团控股有限公司 群组管理方法及系统
CN102799623A (zh) * 2012-06-21 2012-11-28 杜小勇 信息推送方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
USD890639S1 (en) 2018-12-17 2020-07-21 Bayerische Motoren Werke Aktiengesellschaft Radiator grille for a vehicle

Also Published As

Publication number Publication date
CN110447047A (zh) 2019-11-12

Similar Documents

Publication Publication Date Title
US10896284B2 (en) Transforming data to create layouts
US10768772B2 (en) Context-aware recommendations of relevant presentation content displayed in mixed environments
US9928232B2 (en) Topically aware word suggestions
US9881396B2 (en) Displaying temporal information in a spreadsheet application
US10664484B2 (en) Computerized system and method for optimizing the display of electronic content card information when providing users digital content
US20170316386A1 (en) Contextually-aware scheduling exceptions
CN108141702B (zh) 上下文知晓的位置共享服务
US20130145244A1 (en) Quick analysis tool for spreadsheet application programs
EP3449391A1 (fr) Aperçus contextuels pour des événements du calendrier
US10111620B2 (en) Enhanced motion tracking using transportable inertial sensors to determine that a frame of reference is established
US20140074811A1 (en) Query ranking models
US11209805B2 (en) Machine learning system for adjusting operational characteristics of a computing system based upon HID activity
US9934331B2 (en) Query suggestions
US11525696B2 (en) Using major route decision points to select traffic cameras for display
EP3449383A1 (fr) Sélection de fournisseurs de services basée sur des ressources et achèvement automatique
TW201606529A (zh) 彙總資料自動塡充
WO2018128954A1 (fr) Identification de documents en fonction d'un emplacement, de motifs d'utilisation et d'un contenu
CN111936987A (zh) 文件的智能版本控制
WO2018103039A1 (fr) Apprentissage-machine dans la distribution de messages
US10444018B2 (en) Computer-implemented method to test the sensitivity of a sensor for detecting movement of a tracking device within an established frame of reference of a moving platform
US20160379226A1 (en) Intelligent identification of multidimensional insights from process data
US20240104611A1 (en) Intelligent content recommendations based on selections of curated review responses
US10997408B2 (en) Estimating document reading time based on apparent user reading activity

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 16923285

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 16923285

Country of ref document: EP

Kind code of ref document: A1