SYSTEM AND METHOD FOR FILTERING DATA FOR TRANSMSSION TO USER DEVICES

Aspects of the present disclosure relate generally to systems and methods for filtering data transmitted to a user device of a user. In an aspect, a method includes receiving location information and trajectory information of a user. The method also includes representing a physical region of interest proximate to the user by a geometric shape selected by the user. Parameters of the geometric shape are based on one or more of user inputs, location information, and trajectory information. The method additionally includes filtering a database of subscribers, to select for display to the user, one or more pictures and the biography of one or more other subscribers than the user, responsive to the one or more other subscribers being within a trajectory of at least a portion the geometric shape and having one or more services subscribed in common with the user from among friendship, dating, and business.

TECHNICAL FIELD

Aspects of the present disclosure relate generally to systems and methods for filtering and transmitting electronic information based on a location and a trajectory of a user. The electronic information can include, for example, location-based mobile advertising, pictures and biographies for social interaction or commerce, and/or ice breaking phrases for social interaction.

BACKGROUND

People paths may include being proximate to various business. Thus, there is a need for a way to enable people who are near a particular business to receive targeted advertisements relating to the particular business and the user's interests.

SUMMARY

According to an aspect, a method is provided for filtering data transmitted to a user device of a user. The method includes subscribing, by a server having one or more processors, one or more memories, a transmitter and a receiver, users to one or more services relating to friendship, dating, and business, to form a database of subscribers that includes one or more pictures of, and a biography for, each of the subscribers. The method further includes receiving, by the receiver of the server, user inputs selecting a geometric shape and a size of the geometric shape, for each of the one or more services to which the user has subscribed. The method also includes receiving, by the receiver of the server, location information and trajectory information of the user. The method additionally includes representing, by the one or more processors of the server, a physical region of interest proximate to the user by the geometric shape, wherein parameters of the geometric shape are based on one or more of the user inputs, the location information, and the trajectory information. The method furrther includes filtering, by the one or more processors of the server, the database of subscribers, to select for display to the user, the one or more pictures and the biography of one or more other subscribers than the user, responsive to the one or more other subscribers being within at least a portion the geometric shape and having one or more services subscribed in common with the user. The method also includes transmitting, by the transmitter of the server to the user device, the one or more pictures and the biography of the one or more other subscribers.

According to another aspect, a system is provided for filtering data transmitted to a user device of a user. The system includes a receiver configured to receive location information and trajectory information of a user and user inputs selecting a geometric shape and a size of the geometric shape, for each of one or more services relating to friendship, dating, and business subscribed to by the user. The system further includes one or more memories, individually or in combination, having instructions. The system also includes one or more processors each coupled to at least one of the one or more memories and configurable/operable to execute the instructions to: subscribe users to one or more services relating to friendship, dating, and business, to form a database of subscribers that includes one or more pictures of, and a biography for, each of the subscribers; represent a physical region of interest proximate to the user by the geometric shape, wherein parameters of the geometric shape are based on one or more of the user inputs, the location information, and the trajectory information; and filter the database of subscribers, to select for display to the user, the one or more pictures and the biography of one or more other subscribers than the user, responsive to the one or more other subscribers being within at least a portion the geometric shape and having one or more service subscribed in common with the user. The system additionally includes a transmitter configured to transmit the one or more pictures and the biography of the one or more other subscribers to the user device.

According to yet another aspect, a method is provided for filtering data transmitted to a user device of a user. The method includes subscribing, by a server having one or more processors, one or more memories, a transmitter and a receiver, users to (i) one or more roles from a set of roles including a buyer, a seller, and a trader, and (ii) one or more commodities corresponding to the one or more roles, to form a database of subscribers. The method further includes storing, by the one or more memories of the server, a database of advertisements for buying, selling, and trading commodities, each of the advertisements associated with a respective subscriber from the database of subscribers. The method also includes receiving, from a location determining device by the receiver of the server, location information and trajectory information of the user. The method additionally includes representing, by the one or more processors of the server, a physical region of interest proximate to the user by a geometric shape, wherein dynamic parameters of the geometric shape including a location, a size, and a position of the geometric shape relative to a location of the user are based on the location information and the trajectory information. The method further includes filtering, by the one or more processors of the server, the database of advertisements, to select for display to the user, one or more advertisements from the database of advertisements responsive to the one or more advertisements corresponding to one or more other subscribers than the user that are within at least a portion the geometric shape and have at least one role and at least one commodity complimentary to the one or more roles and the one or more commodities subscribed to by the user. The methos also includes transmitting, by the transmitter of the server to the user device, the one or more advertisements.

According to a still further aspect of the present inven tion, a system is provided for filtering data transmitted to a user device of a user. The system includes a receiver configured to receive location information and trajectory information of a user from a location determining device. The system further includes one or more memories, individually or in combination, having instructions; and configured to store a database of advertisements for buying, selling, and trading commodities, each of the advertisements associated with a respective subscriber from a database of subscribers. The system also includes one or more processors each coupled to at least one of the one or more memories and configurable/operable to execute the instructions to: subscribe users to (i) one or more roles from a set of roles including a buyer, a seller, and a trader, and (ii) one or more commodities corresponding to the one or more roles, to form the database of subscribers; represent a physical region of interest proximate to the user by a geometric shape, wherein dynamic parameters of the geometric shape including a location, a size, and a position of the geometric shape relative to a location of the user are based on the location information and the trajectory information; and filter the database of advertisements, to select for display to the user, one or more advertisements from the database of advertisements responsive to the one or more advertisements corresponding to one or more other subscribers than the user that are within at least a portion the geometric shape and have at least one role and at least one commodity complimentary to the one or more roles and the one or more commodities subscribed to by the user. The system additionally includes a transmitter configured to transmit the one or more advertisements to the user device.

According to a further aspect, a method is provided for filtering data transmitted to a user device of a user. The method includes maintaining, by one or more memories of a server also having one or more processors a receiver, and a transmitter, a database of ice breaking phrase templates including a set of ice breaking phrases having certain parts that are configured to be variable. The method further includes subscribing, by the server, users to a conversation starter service by mapping users to user information. The method also includes receiving, from a location determining device by the receiver of the server, location information and trajectory information of the user. The method additionally includes representing, by the one or more processors of the server, a physical region of interest proximate to the user by a geometric shape, wherein parameters of the geometric shape are based on the location information and the trajectory information. The method further includes filtering, by the one or processors of the server, the database of ice breaking templates, to select one or more ice breaking templates for application to one or more other users responsive to the one or more other users being within at least a portion the geometric shape and having one or more of the services commonly subscribed to with the user. The method also includes customizing the one or more ice breaking templates based on information relating to one or more of the user, the one or more other users, an event currently occupied by the user and the one or more other users, or a location currently occupied by the user and the one or more other users, to generate one or more customized ice breaking phrases. The method additionally includes transmitting, by the transmitter of the server to the user device, the one or more customized ice breaking phrases.

According to a yet still further aspect, a system is provided for filtering data transmitted to a user device of a user. The system includes a receiver configured to receive location information and trajectory information of a user. The system further includes one or more memories, individually or in combination, storing instructions and a database of ice breaking phrase templates including a set of ice breaking phrases having certain parts that are configured to be variable. The system also includes one or more processors each coupled to at least one of the one or more memories and configurable/operable to execute the instructions to: subscribe users to a conversation starter service by mapping users to user information; represent a physical region of interest proximate to the user by a geometric shape, wherein parameters of the geometric shape are based on the location information and the trajectory information; filter the database of ice breaking templates, to select one or more ice breaking templates for application to one or more other users responsive to the one or more other users being within at least a portion the geometric shape and having one or more of the services commonly subscribed to with the user; and customize the one or more ice breaking templates based on information relating to one or more of the user, the one or more other users, an event currently occupied by the user and the one or more other users, or a location currently occupied by the user and the one or more other users, to generate one or more customized ice breaking phrases. The system additionally includes a transmitter configured to transmit the one or more customized ice breaking phrases to the user device.

DETAILED DESCRIPTION

Exemplary aspects of the present disclosure relate generally to systems and methods for generating and transmitting electronic information based on location and trajectory of a user, such as location-based mobile advertising.

In a world where personalized experiences are paramount, the proposed location-based mobile advertising service revolutionizes the way businesses connect with their target audience.

Leveraging the power of geolocation technology, the service will seamlessly integrate with in-application clients on mobile devices, presenting users with tailored offer feed based on their physical proximity to established advertising partners, all within an adjustable radius.

Exemplary aspects of the present disclosure may be performed in an actual physical environment and/or a virtual reality environment. The environments may overlap such that something that happens in one environments affects and/or otherwise also occurs in the second environment (e.g., likes, purchases, reviews, etc.).

Referring to FIG. 1, an example computing environment 100 is shown, in accordance with example aspects of this disclosure.

Computing environment 100 includes an example of an environment for the execution of at least some of the computer code 177 involved in performing the inventive methods, such as location-based mobile advertising. In addition to computer code 177, computing environment 100 includes, for example, computer 101, wide area network (WAN) 102, remote server 104, public cloud 105, and private cloud 106. In this embodiment, computer 101 includes processor set 110 (including processing circuitry 120 and cache 121), communication fabric 111, volatile memory 112, persistent storage 113 (including operating system 122 and computer code 177, as identified above), peripheral device set 114 (including user interface (UI), device set 123, storage 124, and Internet of Things (IoT) sensor set 125), and network module 115. Remote server 104 includes remote database 130. Public cloud 105 includes gateway 140, cloud orchestration module 141, host physical machine set 142, virtual machine set 143, and container set 144.

REMOTE SERVER 104 is any computer system that serves at least some data and/or functionality to computer 101. Remote server 104 may be controlled and used by the same entity that operates computer 101. Remote server 104 represents the machine(s) that collect and store helpful and useful data for use by other computers, such as computer 101.

Public cloud may provide a subscription service for people interaction to a plurality of users such as a user of computer 101. The service can have multiple purposes for people interaction. Such purposes for people interaction can include dating, friendship, and business.

In an aspect, public cloud 105 operates in conjunction with remote server 104 to enable profile information of users to be retrieved and provided to a user such as one using computer 101 and/or another user operating a similar device as computer 101.

While remote server 104 is shown as a separate entity from private cloud 106 and public cloud 105, in other aspects, the server 104 may be located in private cloud 106 and/or public cloud 105. In an aspect, user profile information is stored in private cloud 106 and advertisements are stored in public cloud 105. In this way, the advertisements can be accessed irrespective of proximity to user location such as, for example, through a search engine over the Internet, while private information relating to a user's profile is securely stored in private cloud 106. However, it is envisioned that aspects of this disclosure will be used by the user is in motion in a location near businesses, such as on a single street with one or more businesses, a shopping mall with tens of businesses, and so forth.

Referring to FIG. 2, an example environment 200 to which aspects of the present disclosure can be applied is shown, in accordance with example aspects of this disclosure. As shown, the environment 200 includes a server 210, a set of user devices (user device 1 through 3) 220, a set of businesses (businesses 1-3) 230, and a set of advertising partners (advertising partners 1-3) 240. According to an exemplary aspect, the server 210 can be configured to store information (e.g., user profiles) for location-based mobile advertising and other types of electronic information and can provide such information to the server 210 for use in disseminating targeted advertisements to users that are proximate to the business to which the advertisements correspond. It should be appreciated that the server 210 can correspond to one or more of remote server 104, public cloud 105 and/or private cloud 106 according to exemplary aspects. Moreover, the set of user devices 220 may include any type of a smart phone, a tablet, a laptop computer, a mobile computer, a desktop computer, a multimedia player, and so forth. In an aspect, server 210 corresponds to remote server 104 and/or public cloud 105 of FIG. 1, and user devices 220 each correspond to an implementation of computer 101 of FIG. 1.

Each device in the set of user devices 220 at least includes, for example, at least one processor 220A for executing computer code and at least one memory 220B (which can correspond to processor set 110 of FIG. 1 in an exemplary aspect) for storing program code, a Global Positioning System (GPS) 220C for determining a position of a user device 220, a communication system 220D for enabling bi-directional communications between the user device 220 and other entities such as the server 210, a display 220E for displaying information such as advertisements, people of interest, user profile data, and so forth, an input device 220F for receiving user inputs, an assisted GPS 220G for using GPS and other information to determine a position of a user device 220, a WI-FI positioning system 220H for determining a position of a user device 220, e.g., using triangulation, an accelerometer 220I for providing motion data for a user device 220, a camera 220J for providing image data of images proximate to a user device 220, and a speaker 220K for reproducing acoustic data, operatively coupled to the at least one processor 220A. Each memory 220B includes program code for a method for a location-based mobile advertising service. The method may include steps from method 300 of FIG. 3-7. The at least one processor 220A may be a single or multicore processor(s), and may include a central processing unit(s) and/or a graphics processing unit(s).

The GPS system 220C typically has a location services setting that allows for authorized applications to track the location and trajectory (including direction and speed) of the user. In an aspect, a geofence 250, which can be considered a “proximity radius”, is implemented with respect to a user's location such that only businesses 230 within the geofence 250 can be considered for recommendation to the user device 220 depending on a user's profile as described more fully hereinbelow. In an aspect, only a physical portion of a business (e.g., the door(s)) is needed to be in the geofence 250 for that business to be considered when deciding which businesses to target for the user 1001 via advertising tailored for, or at the least, selected from other advertisements based on user proximity and user profile information. As used herein, the term “geofence” corresponds to a location defined boundary (e.g., a proximity radius) that may take the form of a straight line is some aspects or simple (e.g., triangle, circle, square, rectangular) or complex (e.g., typically having 5 or more sides such as, e.g., a hexagon, a decagon, etc.) shapes in other aspects. In another aspect, trapezoids may also be considered as complex shapes in lacking two pairs of parallel sides (instead having only one). In this way, businesses may be “caught” within the geofence as the user traverses, thus resulting in the user receiving targeted advertisements for those businesses.

The distance implemented by the geofence 250 is preferably one that coincides with a typical range that a person scans carefully when walking/traveling. The geofence 250 can be predefined and/or dynamically adjusted as described below. For example, while a person is walking in a direction, they may or may not notice businesses 230 within a given radius (e.g., a proximity radius), but are more likely to notice businesses 230 that are on a trajectory that may possibly invade their personal space or that may overlap with or get close to their personal space. Thus, a short distance for a proximity radius of 150 meters may be used in some embodiments. It should be appreciated that the proximity radius of 150 meters is predefined distance, which is exemplary, and which can be dynamically adjusted as described herein. In some aspects, the proximity radius used by the present disclosure may be user adjustable. In some aspects, the proximity radius may be adjusted based on the various criteria including store density (e.g., shrinking the proximity radius when there are many stores within a predefined area versus increasing the proximity radius when there are few stores within a predefined area, closing times (stores about to close have their advertisements issued before stores that will remain open for a while longer) and user profile information (e.g., gender, age, interests, available funds for spending in one or more accounts or available on one or more types of cards such as credit and/or debit cards), and so forth.

In the aspect of FIG. 2, the server 210 at least includes, for example, at least one processor 210A and at least one memory 210B, a communication system 210C (including, e.g., a transmitter and a receiver or a transceiver), a display 210D, and an input device 210E, operatively coupled to the at least one processor 210A. Each memory 210B includes code for a method for a location-based mobile advertising service, including generating and/or dynamically adjusting the geofence 250 (e.g., the proximity radius) based on the user's location and trajectory information as described herein. The method may include steps from method 300 of FIG. 3-7. The at least one processor 210A may be a single or multicore processor(s), and may include a central processing unit(s) and/or a graphics processing unit(s).

The set of user devices 220 communicate with each other and the remote server 210 with one or more networks (collectively denoted “network”) 230.

Referring to FIG. 3, an example method 300 for location-based mobile advertising is shown, in accordance with example aspects of this disclosure. See FIG. 10 for an example of how the targeted advertisements may be displayed to a user, in accordance with example aspects of this disclosure. See FIG. 11 for an example of a geofence implemented by a geometric shape, in accordance with example aspects of this disclosure.

At block 305, the method 300 includes receiving from a set of location determining devices (e.g., GPS 220C, assisted GPS 220G, WI-FI positioning system 220H, accelerometer 220I), by a receiver 210C of a server 210 further having one or more processors 210A and a transmitter 210C, location information of a user 1001. This information can used to calculate the user's current location, trajectory, and pace or speed of movement using convention location determining and GPS tracking techniques as would be understood to those skilled in the art. For example, tracking the user's current physical location over a predefined amount of time will enable the system to calculate both the heading direction and pace or speed of travel for the user, which can be considered the user's trajectory.

At block 310, the method 300 includes selecting, by the server 210, a subset of targeted advertisements 1020 from a set of advertisements for display to the user 1001 responsive to (i) a present user context and (ii) the location information indicating a user trajectory will intersect a geometric shape 250 representing a region of interest around a location specified in the location information. The subset of targeted advertisements 1020 correspond to businesses 230 within at least a portion the geometric shape 250.

At block 315, the method 300 includes transmitting, by a transmitter 210C of the server 210, to a user device 220, the subset of targeted advertisements 1020 in an order of likely user proximity to the businesses 230 within the geometric shape 250.

Referring to FIGS. 4-6, further steps of the method 300 of FIG. 3 are shown, in accordance with example aspects of this disclosure. It is noted that the steps of the methods shown therein can be performed in sequence or in parallel and that one or some steps may be omitted in certain instances.

At block 405, the method 300 includes conforming, by the server 210, the geometric shape 250 to at least a portion of any spacings between the businesses 230.

At block 410, the method 300 includes forming the geometric shape 250 as a polygon with each of the businesses 230 serving as a vertex of the polygon.

At block 415, the method 300 includes forming the geometric shape 250 as a polygon by identifying overlapping regions of sub-interest. The regions of sub-interest overlap to form the polygon. It should be appreciated that the polygon is an exemplary shape and other shapes can be used, such as circles, squares or the like.

At block 420, the method 300 includes configuring the server 210 to interact with existing applications stored in the one or more memories 210B on the user device 220, including a browser application and a map application.

At block 425, the method 300 includes metering an advertisement-intrusion-level by providing the subset of targeted advertisements 1020 to the user 1001 in a manner that maintains a user ability to continue a previous action on the user device 220, by providing the user an ability to expand or collapse a currently presented advertisement from the subset of targeted advertisements 1020.

At block 430, the method 300 includes deriving the present user context from a most recent search conducted by the user using a search engine on the user device 220 responsive to search engine history data received by the server 210 from the user device 220.

At block 435, the method 300 includes deriving the present user context from a user profile of the user stored on the server 210. The user profile includes a user gender, a user age, and user shopping interests including past and intended purchases. For example, the private cloud 106 can be configured to store user profile data that is either automatically collected (such as through history of the search engine) and/or entered by the user. More specifically, the user can be presented a user interface that enables the user to enter certain preferences and life style choices that would enable the system and method to provide a more customized experience for the user, which again is tied to the geolocation and trajectory as will be described herein in detail.

At block 440, the method 300 includes generating, by the server 210, trajectory information comprising the current location of the user and a prediction path of X steps likely to be taken next by the user, where X is an integer. As described below with respect to FIG. 13, the trajectory can be determined based on whether the user is walking or driving or some other type of transportation such as bicycling, for example.

At block 445, the method 300 incudes receiving image-captured ambient scenery in an adjustable proximity to the geometric shape as a basis for making a determination of a prediction path of X steps. In an aspect, the ambient scenery may include, e.g., existing pathways and doorways versus open fields and walls.

At block 450, the method 300 includes receiving human-face direction-of-view information from an accelerometer 220I of the user device 220 under a presumption that the user is facing forwards in line with a direction of travel. The subset of targeted advertisements are selected further responsive to the human-face direction-of-view information.

At block 455, the method 300 includes transmitting instructions for presenting a highlighted path in a map application, the highlighted path including a current user location and a store entrance corresponding to a currently presented advertisement from the subset of targeted advertisements. The instructions will be received by the user's device and configure an application, such as an application for displaying maps and directions, to illustrate the designated path.

At block 460, the method 300 includes managing, by the server, advertising partner information comprising advertisement demographics, creative assists, advertisement frequencies, offer frequencies, and client application programming interface (API) integration data.

At block 465, the method 300 includes generating, by the server, messages configured to be reproduced for the user that include indicia identifying the subset of targeted advertisements and an order of likely user proximity to the businesses within the geometric shape. The messages are transmitted from the server to the user device through a message broker. Block 465 is directed to a scenario where a message broker pre-stores advertisements for dissemination to users 1001. In an aspect, message broker is another server similar to server 210. In an aspect, message broker is a server implemented in private cloud 106 and/or public cloud 105.

At block 470, the method 300 includes generating, by the server 210, messages configured to be reproduced for the user that include the subset of targeted advertisements in the order of likely user proximity to the businesses within the geometric shape. Block 470 is directed to a scenario where messages are sent directly from the server 210 to user devices 220. In this aspect, the server 210 may be configured to calculate the user's trajectory, as described above, and then based on stored business data (which may include each businesses address) determine the order of businesses the user may encounter in the current determined trajectory and that are within the dynamically generated proximity basis. Moreover, it should be appreciated that the selected businesses will be filtered based on the present user context and user profile data as described herein.

At block 475, the method 300 includes generating, by the server 210, message data that includes the subset of targeted advertisements in the order of likely user proximity to the businesses within the geometric shape, and transmitting the message data to a message broker. Block 475 is directed to a scenario where messages are sent to a message broker that disseminates the messages to users 1001. The selected messages can be then transmitted and displayed on the user's device accordingly. It should be appreciated that they messages can be displayed within a mapping interface that displays the proximity radius and may, for example, display the travel time for the user to each business.

At block 480, the method 300 includes generating, by an advertising partners backend system configured to communicate with the server, an advertising partners interface configured to manipulate advertisement data corresponding to the set of advertisements using various advertisement manipulation actions including advertisement deletion, advertisement addition, and advertisement adjustment.

Referring to FIGS. 7-8, further steps of the method 300 of FIG. 3 directed to different monetization models are shown, in accordance with example aspects of this disclosure.

At block 705, the method 300 includes maintaining an advertisement cost for an advertising partner 240 responsive to each user click selecting a particular advertisement by users within a campaign period.

At block 710, the method 300 includes maintaining an advertisement cost for an advertising partner 240 for a particular advertisement responsive to an adjustable number of views of the particular advertisement by users within a campaign period.

At block 715, the method 300 includes maintaining an advertisement cost for an advertising partner 240 for a particular advertisement responsive to actions performed by users within a campaign period, the actions including one or more of downloading, signing up, purchasing, and so forth.

At block 720, the method 300 includes maintaining an advertisement cost for an advertising partner 240 for a particular advertisement responsive to a subscription membership model wherein advertisers pay a recurring fee to access various degrees of advertising features, advertising analytics and enhanced user targeting options.

At block 725, the method 300 includes maintaining an advertisement cost for an advertising partner 240 for a particular advertisement responsive to a percentage-based revenue share model wherein an advertising platform takes a percentage of revenue generated though the subset of target advertisements.

At block 730, the method 300 includes maintaining an advertisement cost for an advertising partner 240 for a particular advertisement responsive to a percentage-based revenue share model wherein advertiser partners 240 pay a fixed fee or percentage of revenue generated or an advertisement cost, whichever is greater, irrespective of a total amount of views within a campaign period.

At block 735, the method 300 includes maintaining an advertisement cost for an advertising partner 240 for a particular advertisement responsive to a performance-based revenue sharing model wherein revenue increases with increasing advertising campaign success measured in advertisement profit.

Referring to FIG. 9, an initial screen 900 for a user subscription sign up is shown, in accordance with example aspects of the present disclosure.

The initial screen 900 is followed by screens (now shown) prompting the user for their personal data including, for example, but not limited to, a telephone number, an email address, a name, an age or date of birth, a place of residence, an occupation, a preferred gender preference, and interests.

In an aspect, two-factor authentication is used once the telephone number and email address are provided to ensure the identity of the user, preferably before the application continues processing user input data.

In an aspect, the user is asked to turn on location services on their device so that their location can be tracked by the location-based mobile advertising service.

Referring to FIG. 10, a user 1001 and a user display with an open map application 1010 that uses a geofence 250 are shown, in accordance with example aspects of the present disclosure.

The user 1001 is holding their mobile device 220, with a map application 1010 opened and running.

In an aspect, the map application 1010 shows the user 1001 on the map with respect to various highlighted paths 1031, 1032, and 1033 that lead to various businesses 230A, 230B, and 230C, respectively, that are within a shape implementing a geofence 250 that corresponds to an area of interest surrounding the user 1001. Moreover, in any aspect, a subset of targeted advertisements for the businesses 230 that are within the geofence 250 are provided to the user 1001. In this way, the user 1001 may be directed to specific businesses based on targeted advertisements to the user 1001 that are provided to the user due to the user's proximity to the specific businesses and the user's profile indicating an interest in something relating to the specific businesses such as items for sale, past likes, past positive reviews, and so forth.

In the example of FIG. 10, entrances of businesses 230A, 230B, and 230C intersect trajectories of predicted paths 1031, 1032, and 1033, respectively. Thus, the user 1001 is shown advertisements AD1, AD2, and AD3 corresponding to businesses 230A, 230B, and 230C, respectively. Thus, AD1, AD2, and AD3 make up the subset of targeted advertisements that are selected from a larger group presumably corresponding to advertisements for businesses not proximate to a current user location (although they may be in the future).

Regarding path prediction, in an aspect, a user's trajectory may be predicted from a map of the surroundings including existing pathways and so forth, the user's past history (e.g., visiting a store, buying from a store, viewing items in a store but not purchasing, liking, reviewing, and so forth) when traversing the same area in the past, repeated passings by particular businesses, and user interests as specified in the user profile. Thus, for example, a man walking along a path in a mall is not likely to be shown advertisements for women's clothes and vice versa, in order to specifically target the advertisements based on user characteristics and interests specified in the user profile. Of course, the preceding may differ based the user's profile, but in any event aspects of the present disclosure specifically provide targeted advertisements to a user based on a user's profile and a user's proximity to businesses having corresponding targeted advertisements available to show the user.

In an aspect, in addition to the use of the Global Positioning System (GPS) 220C, the assisted GPS 220G, and the WI-FI positioning system 220H, on-board cameras 220J of the user device 220 may match surroundings to predetermined maps stored on the server 210 in order to know where the user is relative to businesses and what advertisements to potentially show the user, with further culling of the advertisements based on the user profile. In other words, the on-board cameras 220J may be able to capture external surroundings and determine businesses and the like that are in a proximate location to the user. In any event, using this data, from a larger set of advertisements, a first subset of advertisements may be determined based on user proximity and possibly also user trajectory, and a second subset of advertisements from the first subset of advertisements may be determined based on user's profile. In this way, multiple layers of culling of a large set of advertisements may be efficiently performed to arrive at an appropriate subset of target advertisements to send to the user 1001.

In an aspect, a user 1001 is located on the map and their representation on the map will cause beeping or other sounds from a speaker 220K of the user device 220 to become louder as they approach a business for which they have asked for directions, or in another aspect, their representation on the map may become brighter or change in some user visually perceptible way (e.g., flash, etc.). In this way, a user can be directed to a business of interest from clicking on links in the advertisements for directions and other features such as dynamically created paths on the map from a current user location to a corresponding business entrance corresponding to an advertisement the user has expressed further interest in via a slider or other mechanism related to path generation on the map 1010.

Referring to FIG. 11, a user and a geofence are shown, in accordance with example aspects of the present disclosure.

In FIG. 11, entrances of businesses 230A and 230B intersect geofence 250, implemented here as the geometric shape of a circle, noting that other geometric shapes can be used. Such shapes can be tailored to the layout of the business such as to place vertexes of polygons at entrances of the business to demark them more easily versus a circle for example. To further elaborate, not every vertex position need correspond to a business or business entrance, but using vertexes easily demarks businesses than simply points on a circle. Of course, other shapes including a circle as shown may be used.

Thus, in the preceding example of FIG. 11, businesses 230A and 230B will have their advertisements shown to the user since those business are within the geofence or location boundary(ies) surrounding the user. The range of targeting a user with respect to the location of a business may be adjusted by a system administrator or tailored by each user to their own tastes and moods (e.g., in or not in a shopping mood). As will be discussed in more detail below with respect to FIG. 13, the system may be configured to dynamically and/or automatically adjust the radius (e.g., a best radius) to optimize system efficient based on different features, such as real-time foot traffic, user engagement, and outside factors, such as weather and commercial events.

In any event, it is noted that a map application is not needed in an exemplary aspect, and the user 1001 is simply presented the subset of advertisements on the user's device. In any aspect, the advertisement are provided in a manner that does not fully intrude with the screen space such as a small icon indicating a relevant advertisement(s) can be viewed should the user want to view the advertisement such that clicking on the icon makes the full advertisement appear.

In an aspect, as the user 1001 gets closer to the relevant business 230 to the advertisement they are currently viewing, their phone may produce a louder sound or stronger vibration to indicate increased proximity to the relevant business 230.

Referring to FIG. 12, a targeted advertisement 1200 from a subset of targeted advertisements is shown, in accordance with example aspects of the present disclosure.

The targeted advertisement 1200 includes ad content 1210, a distance to a business 230 corresponding to the targeted advertisement 1200, a slider 1220 to initiate the generation of a path to the business 230 corresponding to the targeted advertisement 1200, a slider 1230 to initiate sound directions to the business corresponding to the targeted advertisement 1200, a slider 1240 to request other current advertisements from the same business. These additional advertisements can be selected by a sider 1250 to be able to be based simply on proximity while removing the user profile component, and so forth. In this way, a user 1001 in a particular business 230 looking for items of interest to them may be shown other items that may be of interest to them for the purpose of gifting other people. Hence, some aspects of the present disclosure may have a timing aspect to them such that more diverse items (e.g., items not necessarily of interest based on user profile) are shown to the user at holidays such as around Christmas to broaden the targeted advertisement scope.

In an aspect, the selection of the subset of targeted advertisements that are provided to the user is made using artificial intelligence. For example, one or more specially programmed neural networks may be used to predict a subset of advertisements the user would be interested in based on the user's profile, user's past history (purchasing history, browsing history, advertisement history and corresponding success), and the user's proximity to businesses to which the subset of advertisements correspond. The one or more neural networks take in a user profile, user's past history, and a user's location relative to a business, to reduce an error in showing the user an advertisement that will lead to a purchase. No purchase results in increasing the error of a shown advertisement, while a purchase will decrease the error of a shown advertisement. In this way, the model formed from one or more neural networks may be trained. Again, reinforcement or other types of artificial intelligence and neural networks such as convolutional neural networks employing weights may be used for the advertisement subset selection to show a user at a given moment in time. Weights in a convolutional neural network can be adjusted/set based on prior purchase history, advertisement success with other users, and so forth. The system will dynamically adjust the advertisement selection shown to the user 1001 based on dynamic changes in a user's location, noting that less dynamic changes may also be implemented according to schedule such that the user's profile is reviewed every day, hour, and so forth, for changes that may affect advertisement selection. In the event of equal distance to businesses, ties may be broken based on user profile data and/or prior purchase history at the business. These and other ways may be used to break distance ties as far as ad order of advertisements being provided to the user 1001.

In an aspect, an interest meter 1260 may be shown that indicates a predicted user interest in the subject matter (ad content 1210) of an advertisement. The interest meter 1260 may be driven by an artificial intelligence network 1270 that uses one or more neural networks to predict user interests based on their prior purchases, where the artificial intelligence network learns user habits and thus appropriate predictions based on positive and/or negative reinforcement based on prior buying history with respect to targeted location-based mobile advertising. For example, advertisements resulting in all purchases will be repeated compared to advertisements for items that never result in a purchase. Moreover, advertisements resulting in all purchases will result in a higher interest level than an almost zero interest level for advertisements never resulting in purchases. Other approaches to configuring one or more neural networks to accomplish the features of the present disclosure may be used in place of reinforcement learning. However, it is envisioned that an aspect of the present disclosure implementing path prediction uses neural networks, takes a current business and advertisement and compares it to prior advertisement for that business and, in an aspect, other similar advertisements of similar or the same business, to make a prediction and reduce an ongoing prediction error until convergence, or a number of iterations have been reached, or a threshold level of error has been reached, and so forth.

FIG. 13 illustrates a method 1300 that is provided for adjusting the geofence or proximity radius according to an exemplary aspect. As described above, the distance implemented by the geofence 250 generally is configured to coincide with a typical range (e.g., a predetermined range) and in a direction (i.e., a trajectory) that may possibly cross their personal space or that may overlap with or get close to their personal space. Moreover, the proximity radius may be user adjustable, for example, by using the application on user device 220 to set a desired distance.

However, in an alternative aspect, the proximity radius may be automatically and/or dynamically adjusted to optimize the business's reach to a target customer. In this aspect, the system initially determines a trajectory of a user (e.g., the user's mobile device) at block 1305, which as described above can be determined by generating, by the server 210, trajectory information comprising the current location of the user and a prediction path of X steps likely to be taken next by the user, where X is an integer. It should be appreciated that the trajectory can include both direction and speed, which will both factor in to determining the size and shape of the proximity radius.

Next, at block 1310, the system accesses user profile information, which can include gender, age, interests (which may be customized by the user), available funds for spending in one or more accounts or available on one or more types of cards such as credit and/or debit cards and the like. As described above, the user profile information can be stored in private cloud 106 and can be customized by the user. For the example, a database can be provided in which the user can define preferences (e.g., types of cuisine, hobbies, music preferences) and the like.

As noted above, the initial proximity radius may be a predefined distance (e.g., 150 meters). At block 1315, the system may be configured to dynamically adjust the proximity radius based on the trajectory, including both speed and direction, of the user. For example, if the user's average speed is over a predefined speed threshold (e.g., 15 MPH) over a predefined time period (e.g., five minutes), the method can determine that the user is traveling in a car and therefore can be configured to dynamically adjust and increase the proximately radius (e.g., 3 miles or 5 miles) based on the average speed, for example, at block 1320. In other words, the system can be configured to dynamically predict how far the user may travel over the next 15 minutes and adjust the proximity radius encompass possible business locations that the user would intersect within that time period.

Moreover, at block 1325, the method can be configured to dynamically adjust the shape of the geofence based on the determined trajectory of the user. Block 1325 is shown in dashes to illustrate it is an optional step. In this case, if the system determines that the user is in a car driving as described above, the system may adjust the geofence such that the shape encompasses business that are only of outward projecting businesses. For example, as shown in FIG. 2, user device 1 is shown to be in the middle of geofence 250. This shape may be acceptable for a user that is walking in a city where the user can easily change directions and even go backwards. However, a user driving in a car (especially on the highway) will be unlikely and/or unwilling to go backwards. Therefore, the system at block 1325 may adjust the shape of the geofence to account for the trajectory. For example, if user device 3 in FIG. 2 is considered to be heading north (e.g., in the upwards direction of the page), the geofence 250 is configured as a shape that only encompasses potential business that may intersect the expected path of the user.

Yet further, at block 1330, the method may further be configured to automatically adjust the radius based on additional external business generating data, such as real-time foot traffic, user engagement, time, weather and commercial events. That is, server 210 may be configured to collect this data from third-party sources, such weather and data services, or the specific business themselves that are providing information on food traffic. Based on this data, the system may be configured to dynamically adjust the proximity radius to account for these external business driving data.

At block 1335, a customized advertisement may be generated based on the external business generating data and for any business that falls within the adjusted proximity zone as determined at blocks 1320, 1325 and/or 1330. For example, if the system determines based on the user profile that the user is a “coffee drinker” and it is early in the morning (e.g., 7 am), the system may identify a coffee shop, such as Starbucks®, that is within the adjusted proximity radius and also that may have light foot traffic (or other waiting time) at the current time. The advertisement may be transmitted to the user to prompt the user to stop at the coffee shop and indicate that the waiting time is less than a predetermined threshold, such as five minutes. In yet a refinement of this aspect, the system may also enable the user to invoke an automatic purchase by offering customized advertisements of the type of coffee known that the user likes, so that the user can preorder the coffee with a simple click.

Another example may be if the user is walking through a town (e.g., on holiday) and the weather indicates that it will begin raining soon. The proximity radius may be adjusted to account for all restaurants or taverns that the user can walk to (based on the determined trajectory) before it starts raining. Using this smart proximity boosting technique by dynamically and automatically adjusting the proximity radius, the system can enable businesses and users to optimize their reach without wasting budget or inefficiencies of unwanted advertisements.

In yet a refinement of the exemplary method shown in FIG. 13, block 1335 can also be modified to prioritize different types of advertising based on the distance and trajectory of the user. As described above, the generated trajectory of the user can be used to determine the direction and distance the user will be from the current point at a given time. In an exemplary aspect, the system (e.g., server 210) can be configured determine a threshold (e.g., based on time) for businesses the user will encounter in view of his or her trajectory. For example, if the user will encounter businesses within the predetermined time threshold (e.g., 30 minutes), the system may be configured to generate a first type of advertising (e.g., flash sales) whereas if the user will encounter businesses outside of the predetermined time threshold (e.g., 30 minutes), the system may be configured to generate a second type of advertising (e.g., long-rang advertising for general branding). This layered advertising based on proximity enables the system and method described herein to provide a more

In accordance with various aspects of this disclosure, one or more of the following features may be provided.

Precision Targeting: The system and method enables pinpoint accuracy allows for delivery of hyper-localized and targeted advertisements, ensuring that users receive offers relevant to their immediate surroundings.

Real-Time Engagement: Users receive timely and contextually relevant promotions, enhancing the likelihood of conversion by presenting offers when they matter most.

User-Friendly Experience: With a focus on seamless integration, the proposed location-based mobile advertising service enhances the overall user experience, providing valuable content without intrusion.

Advertising Partner Network: A diverse range of advertising partners strategically positioned within a geofence implementing, for example, a 150-meter or other sized radius or shape, can create creating a dynamic ecosystem for targeted promotions.

Data Privacy: In an aspect, the proposed location-based mobile advertising service offers a one-way data set to safeguard user data, ensuring APN analytics can be provided for user interactions without unveiling intact user profile data.

In accordance with various aspects of this disclosure, one or more of the following benefits may be obtained:

Increased Foot Traffic: The proposed location-based mobile advertising service drives users to the physical locations of advertising partners, boosting foot traffic and encouraging real-world engagement.

Higher Conversion Rates: The contextual relevance of offers delivered in proximity to users increases the likelihood of conversions, maximizing the impact of advertising campaigns.

Enhanced Brand Visibility: The proposed location-based mobile advertising service establishes a stronger presence in the local market by reaching users when they are most likely to interact with your brand.

Data-Driven Insights: Leverage comprehensive analytics to gain valuable insights into user behavior, campaign performance, and overall ROI.

In accordance with various aspects of this disclosure, one or more of the following geolocation systems may be used:

GPS (Global Positioning System): The proposed location-based mobile advertising service may utilize the GPS hardware embedded in smartphones to obtain accurate location data.

Assisted GPS (A-GPS): The proposed location-based mobile advertising service uses assisted GPS to improve location accuracy, especially in urban areas or areas with weak GPS signals, by combining satellite data with other sources.

WI-FI Positioning System: The proposed location-based mobile advertising service uses WI-FI signals to triangulate the user's position, which is particularly effective in indoor environments.

In accordance with various aspects of this disclosure, server-side development may involve one or more of the following:

Backend Framework that includes a scalable database configured to store: (i) user profiles, (ii) location history, (iii) Advertising partner information (including Ad Demographics, Creative assists, Ad frequency, Offer frequency, Client API integration or CTA's for offer purchases and the like), and (iv) geospatial Database Extensions: Relating to or denoting data that is associated with a particular location. For efficient storage and retrieval of geospatial data. In other words, the businesses are generally in a fixed geolocation while the user's location and trajectory can be determined according to the methods described herein. This information can then be used to determine the relevant and targeted business within the defined and dynamically adjustable geofence.

As further described herein, the system and method described herein provides for an advertising partner integration, which essentially can be considered an APN (Advertising Partner Network) Access Dashboard in which an advertising partners interface or backend system enables businesses to view and/or create targeted offers and retrieve relevant user impression data based on the various parameters described herein.

It should be appreciated that various monetization models can be implemented using the methods and systems described herein. For example, a Cost-Per-Click (CPC) system can be implemented where the advertisers (e.g., the business) pay a fee each time a user clicks on their advertisement. This enables the advertisers to only pay for actual engagement with their content, and it is a measurable metric. In another example, the system and method is suitable for campaigns aiming to drive traffic to the advertiser's website or app, such as Cost-Per-Meter (CPM), where the advertisers (e.g., the business) pay a fee for every 1,000 impressions (views), for example, of their ad, regardless of clicks. In another example, a Cost-Per-Action (CPA) is implemented where advertisers (e.g., the business) pay when a specific action(s) is(are) completed, such as, for example, but not limited to, a download, sign-up, or(and) a purchase.

Yet further, the system and method described herein can provide for revenue sharing arrangements, such as a percentage based revenue share where the advertising platform takes a percentage of the revenue generated through advertisements served on the platform. This arrangement would align the platform's success with the success of its advertising partners, of which the approach is suitable for platforms that provide a comprehensive suite of services. In another example, a fixed-fee revenue share percentage of ad spend typically 10%-15%, in which advertising partners pay a fixed fee or percentage on the revenue generated or ad spend whichever is greater, regardless of the total amount of views within a campaign period.

Referring now to FIGS. 14-24, various embodiments are described directed to filtering data (e.g., a database) to reduce the amount of data to pertinent data before transmitting the data to a user device. In an aspect, a filter is installed at a server that is remote from a user device and performs filtering based on a location of the user device with customizable filtering specific to each end user as determined, e.g., from user profile data in a user database.

In an aspect, FIGS. 14-18 pertain to the use of proximity bubbles having a geometric shape and a size selected by the user for social interaction such as friendship, dating, and business. By filtering a database of subscriber information, only information pertaining to other subscribers within a common proximity bubble and having a common purpose of social interaction (friendship, dating and/or business) will be transmitted to the user device.

In an aspect, FIGS. 19-20 pertain to proximity based peer-to-peer (P2P) transactions such as buying, selling, and/or trading a commodity such as a good and/or a service. By filtering a databases of subscriber information for subscribers including individuals and businesses, only subscriber information for subscribers within a common geofence or proximity boundary and having a complimentary role involving complimentary commodities will be transmitted to the user device. As used herein, complimentary refers to having a role in a financial transaction that compliments another role, such as buyer and seller or trader and trader, and involving a commodity of interest to both parties (subscribers) of the transaction.

In an aspect, FIGS. 21-22 pertain to the generation of ice breaking phrases for subscribers to use in various scenarios. The ice breaking phrases may be generated from ice breaking templates that are filtered to a smaller set of applicable ice breaking templates for only subscribers with a common geofence or proximity boundary. The remaining ice breaking templates are customized into ice breaking phrases that are then transmitted to the user device.

Referring to FIG. 14, an environment 1400 using location-based social interaction based on overlapping proximity bubbles as dynamic proximity zones or dynamic geofences is shown, in accordance with an example aspect.

In an aspect, computing environment 200 enables environment 1400 in which users can create and adjust multiple overlapping proximity bubbles 1401, 1402, 1403 with different settings. For example, a user may set one proximity bubble 1041 for friends for use in starting new friendships, another proximity bubble 1402 for dating for meeting potential dates, and yet another proximity bubble 1403 for business for developing business relationships. Individual selections are shown on the left side in region 1411, and the resultant 3 selections of overlapping proximity bubbles 1401, 1402, 1403 is shown on the right side in region 1419.

In an aspect, the user can select a particular geometric shape and optionally a size of that shape for each of the different proximity bubbles corresponding to different categories (e.g., friendship, dating, business). The outlines of each of the overlapping bubbles 1401, 1402, 1403 can be considered to define a dynamic proximity zone or dynamic geofence in that the size and/or shape can be dynamically adjusted in response to user input. In an aspect, at least two bubbles have a different shape and/or a different size.

In an aspect, the term “proximity bubble” or “bubble” in short refers to any geometric shape having a fully enclosed area corresponding to an area being evaluated for a specified purpose from among one or more of friendship, dating, and/or business. Thus, in an aspect, a bubble 1401, 1402, 1403 can be any geometric shape and is not confined to simply circles. The bubbles are evaluated to determine if a user 1499 and another user 1491 are co-occupying at least a portion of the bubble. If so, then a reaction is initiated such as transmitting pictures and biography information of other users within the proximity bubble defined by the user while not transmitting pictures and biography information of other users not within the proximity bubble defined by the user to minimize consumed bandwidth and focus the user to people who are not only in the proximity bubble with the user but also have a common purpose from among friendship, dating, and business. That is, in an aspect, the purpose also has to match between different users so that both users are interested in friendship, dating and/or business and can receive information specifically tailored for that purpose from the server 210.

In an aspect, the proximity radius of a geometric shape that is non-circular refers to a distance from the center of the geometric shape to a random point of the geometric shape from the center of the geometric shape. In another aspect, the proximity radius of a geometric shape that is non-circular refers to a distance from the center of the geometric shape to a furthest point of the geometric shape from the center of the geometric shape (e.g., for a pointed star having equal length points, the distance from the center of the star to any tip or end of the point of the star). In yet another aspect, the proximity radius of a geometric shape that is non-circular refers to a distance from the center of the geometric shape to a closest point of the geometric shape from the center of the geometric shape (e.g., for the star, the distance from the center of the star to any location on the geometric shape periphery that is not part of a projection of the star, i.e., not part of a point). In a still further aspect, the proximity radius of a geometric shape that is non-circular refers to a distance from the center of the geometric shape to an average between a furthest point of the geometric shape from the center of the geometric shape and a closest point of the geometric shape from the center of the geometric shape. It is to be appreciated that for many geometric shapes, there may be multiple furthest points equally far from the center of the geometric shape, as well as multiple closest points equally close to the center of the geometric shape.

In an aspect, the use of different geometric shapes is achieved through image processing applied to image data including pixel color data (e.g. red, green, blue (RGB) for each pixel having an X or horizontal position and a Y or vertical position) and depth data. The image data is used to determined where items are located in a scene. For example, pixel locations of pixels comprising a person may be determined with respect to an X or horizontal position and a Y or vertical position. A depth or Z position can be determined from the depth data. Next, a geometric shaped mask, corresponding to a geometric shape selected by the user, is applied to the scene to provide geometric shape based filtering. In an aspect, the center of the geometric shape is placed over the location of the user. It is to be appreciated that the location of the geometric shape can be biased in a direction such as, for example, in a forward direction corresponding to a forward moving trajectory, thus placing the center forward of the user. The geometric shape based filtering limits the number of people capable of being seen by the user, with respect to a proximate area to the user, to those people within the area encapsulated by a selected geometric shape. In an aspect, what this means is that, unlike with respect to a circle, rotating in place may put different people within view. For example, consider the case of a star having equal length tips being used in a social setting such as a bar or nightclub. As the user rotates, the area within the star moves to capture different people within a same overall radius corresponding to a distance from the center of the star to any tip of the star. This can be fun to a user to see who comes into play as they simply rotate within the same place. Shapes such as stars and such may limit the amount of people shown to the user compared to the same sized circle to prevent overwhelming the user with too much people and corresponding data. While image data is mentioned above, other positional information can be used including GPS information, WIFI information, and so forth.

In an aspect, a user selects the geometric shape and may also select a size of that geometric shape for use in environment 1400. In an aspect, a default geometric shape having a default initial proximity radius such as a circle with a radius of 150 meters is used. In an aspect, one or more default geometric shapes and corresponding sizes are suggested to the user (e.g., based on the user's current trajectory), and the user 1499 selects a desired geometric shape from the one or more default geometric shapes and a desired size from one or more default sizes. In an aspect, environmental input is used to evaluate, e.g., the people near the user to select a geometric shape and corresponding size of that given shape that encompasses a given number (e.g., a maximum number) of people as the default shape. In an aspect, camera 220J of user device 220 provides image data of images proximate to user device 220. The images can be evaluated by user device 220 to provide various suggested geometric shapes of various different sizes to a user to select from, where the various suggested geometric shapes and sizes cover different numbers of people in a predefined area. In an aspect, the given number of people may be based on a user input and may optionally have a limit to prevent overloading the user with information (e.g., too many potential people suggested) at later steps.

Thus, in an aspect, a user can customize who can see them (with respect to categories friendship, dating and business) and at what distance using the dynamically adjustable proximity bubbles.

Referring to FIG. 15, a method 1500 filtering and transmitting data to a user device is shown, in accordance with an example aspect. In an aspect, the filtering is based on user set proximity bubbles 1401, 1402, 1403.

At block 1505, the method 1500 includes subscribing, by a server 210 having one or more processors 210A, one or more memories 210B, a transmitter and a receiver 210C, users to one or more services relating to friendship, dating, and business, to form a database of subscribers that includes one or more pictures of, and a biography for, each of the subscribers. In an aspect, “subscribing” means mapping a user to user information including, but not limited to: one or more user devices 220 (e.g., media access control (MAC) numbers); one or more user pictures (e.g., one or more for each of the difference services), biography information, and one or more services selected from among friendship, dating, and business.

In an aspect, the biography information may include, depending on the service, user name, user address, user employer, employment title, gender, interests, and one or more services/purpose selected from friendship, dating, and business. In an aspect, the user will provide biography information as described herein that may be used to find matches for friendships, dating, and business, including matches in service/purpose and optionally other factors such as, but not limited to, age, interests, and so forth.

The service/purpose is to enable people to meet other people who have a similar interest namely, to meet others interested in one or more of friendship, dating, and business. In an aspect, further interests are considered beyond the user's selection of service(s)/purpose(s). In an aspect, users are provided with a graphical user interface with which to make selection for a service(s)/purpose(s) from among friendship, dating, and business. The user may select one, two or all three services/purposes.

The user information may at a minimum include biography information to enable the others to ascertain interest in a presented individual/user. In an aspect, the biography information for friendship may include name, age, gender, interests, approximate home location (hometown), and so forth. In an aspect, the biography information for dating may include name, self-gender, gender to date, interests, approximate home location, and so forth. In an aspect, the biography information for business may include name, company name, company location, business interests and so forth. Of course, other types of biography information can be used for any of the categories of friendship, dating, and business than that listed herein. In an aspect, there is a blank biography field that the user can fill in anything that the user would like someone reviewing the user's biography information to see.

At block 1510, the method 1500 includes receiving user inputs selecting a geometric shape and a size of the geometric shape, for each of the services to which the user has subscribed. For example, a user may select a data pair comprising a geometric shape and a size of the geometric shape for friendship, another data pair comprising a geometric shape and a size of the geometric shape for dating, and yet another data pair comprising a geometric shape and a size of the geometric shape for business (e.g., business relationships).

In an aspect, geometric shapes selected by the user for different ones of the services subscribed to by the user at least partially overlap (include one or more overlapping areas). In an aspect, the geometric shapes selected by the user for different ones of the services subscribed to by the user include non-overlapping areas.

In an aspect, a size of a geometric shape that is non-circular is based on a distance from a center of the geometric shape to at least one of (i) a random point on a periphery of the geometric shape, (ii) a furthest point of the periphery of the geometric shape to the center of the geometric shape, and (iii) a closest point of the periphery of the geometric shape to the center of the geometric shape. In an aspect, the size of a geometric shape that is non-circular can be based on the average of (ii) and (iii) or (i), (ii), and (iii). In an aspect, the user is prompted with a selection cursor to select a point (e.g., farthest from the center, closest to the center, etc.) on the periphery of the geometric shape with a slider to expand the size or shrink the size of the geometric shape and/or a portion of the geometric shape.

At block 1515, the method 1500 includes receiving from a location determining device, by the receiver 210C of the server 210, location information and trajectory information of the user. It should be appreciated that the trajectory information can include both direction and speed.

At block 1520, the method 1500 includes representing, by the one or more processors 210A of the server 210, a physical region of interest proximate to the user by the geometric shape, wherein dynamic parameters of the geometric shape including a type, a location, a size, and a position of the geometric shape relative to a position of the user are based on one or more of the user inputs, the location information, and the trajectory information. In an aspect, block 1520 involves the one or more processors of the server using the location information and trajectory information of the user to keep the proximity radius formed by a in a relative fixed position with respect to the user. For example, for a circle, the center of the circle may be positioned at the location of the user.

In further detail, block 1520 may involve representing the user in two or three dimensional space using a given coordinate system (e.g., Cartesian). The user may be represented by one or more points in the space. A geometric shape, represented by multiple points in the user space, is overlayed on and/or otherwise associated with the one or more points representing the user. Both the points representing the user and the geometric shape are made to move in essentially lock-step unison to form a proximity boundary or geofence around the user that is relatively fixed around a position of the user. Other users whose position will intersect a trajectory of the geometric shape surrounding the user will be identified in the next block 1525 as part of filtering the database of subscribers formed at block 1505.

In some aspects, the position of the geometric shape with respect to the location of the user can be controlled to be biased in accordance with system or user inputs. For example, a user may want a wider area to be involved in front of and away from the user as shown by the triangle implicated by proximity bubble 1403.

At block 1525, the method 1500 includes filtering, by the one or more processors 210A of the server 210, the database of subscribers, to select for display to the user, the one or more pictures and the biography of one or more other subscribers than the user, responsive to the one or more other subscribers being within a trajectory of at least a portion the geometric shape and having one or more services subscribed in common with the user. In an aspect, block 1525 may include accessing user profile information, which can include gender, age, interests (which may be customized by the user and which may correspond to one or more of friendship, dating, and business). As described above, the user profile information can be stored in private cloud 106 and can be customized by the user.

At block 1530, the method 1500 includes transmitting, by the transmitter 210C of the server 210 to the user device 220, the one or more pictures and the biography of the one or more other subscribers. In an aspect, the one or more pictures and the biographies of the one or more other subscribers are transmitted by the transmitter of the server to the user device of the user in an order of likely user proximity to the one or more other subscribers within the geometric shape.

Referring to FIG. 16, further blocks of block 1505 of method 1500 are shown, in accordance with an example aspect.

In an aspect, block 1505 may include one or more of block 1505A and 1505B.

At block 1505A, the method 1500 includes configuring, for a given subscriber, the database of subscribers to store one or more different pictures for different services from among the one or more services subscribed to by the given subscriber.

At block 1505B, the method 1500 includes configuring, for a given subscriber, the database of subscribers to store different biographies for different services from among the one or more services subscribed to by the given subscriber.

Referring to FIG. 17, further blocks of 1510 of method 1500 of FIG. 15 are shown, in accordance with an example aspect.

In an aspect, block 1510 may include one or more of blocks 1510A and 1520B.

At block 1510A, the method 1500 includes prompting the user with various default geometric shapes and various default sizes of the various default geometric shapes to select from for one or more of the services.

At block 1510B, the method 1500 includes: selecting at least one of a replacement geometric shape and a replacement geometric shape size, responsive to a change in one or more of the location information and the trajectory information; and adjusting at least one of the geometric shape and the size of the geometric shape, responsive to at least one of the replacement geometric shape and the replacement geometric shape size.

Referring to FIG. 18, further blocks of 1520 of method 1500 of FIG. 15 are shown, in accordance with an example aspect.

In an aspect, block 1520 may include one or more of blocks 1520A through 1520B.

At block 1520A, the method 1500 includes automatically selecting, by the server 210, the geometric shape and/or size of the geometric shape in response to the user inputs comprising a maximum number of subscribers the user is willing to receive information for.

At block 1520B, the method 1500 includes forward biasing a position of the geometric shape relative to a position of the user such that the geometric shape has more area in front of the user as compared to behind the user when the user is traveling in a forward direction.

Referring to FIG. 19, a method 1900 for filtering and transmitting data to a user device is shown, in accordance with an example aspect. In accordance with an aspect, the filtering is based on proximity-based peer-to-peer (P2P) transactions.

Using method 1900 implemented with respect to example environment 200, users can buy, sell, or trade commodities (goods and/or services) securely with nearby people.

In an aspect, method 1900 may include location-based escrow services and/or transaction ratings.

At block 1905, the method 1900 includes subscribing, by a server 210 having one or more processors 210A, one or more memories 210B, a transmitter and a receiver 210C, users to (i) one or more roles from a set of roles including a buyer, a seller, and a trader, and (ii) one or more commodities corresponding to the one or more roles, to form a database of subscribers. In the preceding, the user acts in one or more roles as one or more of a buyer, a seller, or a trader of commodities from among goods and/or services. Thus, the commodities are what the user is one or more of buying, selling, or trading. In an aspect, the commodities are selected from a set of commodities including goods and services. In an aspect, a user can be an actual person or a business. In this way, both users in the form of people and/or businesses can subscribe to buy, sell, or trade a commodity such as a good and/or service.

At block 1910, the method 1900 includes storing, by the one or more memories 210B of the server 210, a database of advertisements for buying, selling, and trading commodities, each of the advertisements associated with a respective subscriber from the database of subscribers. In an aspect, each of the advertisements include one or more of: a picture of the relevant party; a description of the intended role(s) of the relevant party (buyer, seller, and/or trader), and a description of the involved commodity (good(s) and/or service(s)).

At block 1915, the method 1900 includes receiving from a location determining device, by the receiver of the server, location information and trajectory information of the user;

At block 1920, the method 1900 includes generate, based on the location information and the trajectory information, a geometric shape representing a physical region of interest proximate to the user. In an aspect, a default shape such as a circle and a default radius such as 150 meters can be used. In other aspects, other shapes and distances (involving different shape sizes) may be used. In an aspect, block 1920 is performed responsive to use inputs selecting the geometric shape and the size of the geometric shape.

At block 1925, the method 1900 includes filtering, by the one or more processors 210A of the server 210, the database of advertisements, to select for display to the user, one or more advertisements from the database of advertisements responsive to the one or more advertisements corresponding to one or more other subscribers than the user that are within a trajectory of at least a portion the geometric shape and have at least one role and at least one commodity complimentary to the one or more roles and the one or more commodities subscribed to by the user.

In an aspect, the phrase “the subset of other subscribers that have at least one role and at least one commodity complimentary to the one or more roles and the one or more commodities subscribed to by the user refers to, as an example, a user subscribing as a seller of a certain commodity being the compliment to another subscriber being a buyer of that certain commodity, or a user subscribing as a buyer of a certain commodity being the compliment to another subscriber being a seller of that certain commodity, or both the user and the other subscriber complement each other in both subscribing as traders of the same commodity.

At block 1930, the method 1900 includes transmitting, by the transmitter 210C of the server 210 to the user device of the user, the one or more advertisements. As noted, in any aspect, the advertisement may show the other relevant party, their role, and their offered (for buying, selling, or trading) commodity.

Referring to FIG. 20, further blocks of method 1900 are shown, in accordance with an example aspect.

In an aspect, method 1900 further includes blocks 1935 through 1940.

At block 1935, the method 1900 includes storing an advertisement of the one or more advertisements to include one or more pictures of a subscriber associated with the advertisement, a description of the one or more roles of the subscriber, and a description of the one or more commodities corresponding to the one or more roles of the subscriber.

In an aspect, block 1935 further includes block 1935A.

At block 1935A the method 1900 includes storing the advertisement to further include user ratings for past transactions with the subscriber.

At block 1940, the method 1900 includes receiving a user rating from the user for a transaction between the user and another subscriber from the one or more other subscribers; and adding the user rating to an advertisement associated with the other subscriber.

Referring to FIG. 21, a method 2100 for filtering and transmitting data to a user device is shown, in accordance with an example aspect. The filtering is applied to ice breaking templates to create ice breaking phrases suited to a particular recipient and/or situation.

In an aspect, method 2100 suggests conversation starters for use for other users with a shared proximity bubble with the user (e.g., at events such as concerts, networking meetups, and so forth and/or locations set as restaurants, stores, and so forth).

At block 2105, the method 2100 includes storing a database of “ice breaker phrase” templates comprising a set of phrases having certain parts that configured to be variable and filled in dynamically. In an aspect, the certain parts that are configured to the variable are filled in dynamically after being customized to the particular involved users such as, e.g., being customized based on their common interests.

As an example, one phrase that can be suggested later is “I heard the weather is going to be {TBD} later,” where {TBD} can be dynamically determined from data from the internet over a wireless connection of the user device and can be filled in later as needed, varying from examples such as “pretty bad,” “a lot better,” and a myriad of other possibilities.

Other possibilities can relate the phrase to the event and/or location such as “This is the {TBD} time this band has played a concert in this venue,” where {TBD} can be determined over the Internet dynamically or stored in the database as historical data pertaining to a venue frequented by subscribers.

In a preferred aspect, the phrase relates to and/or otherwise factors in common interests of both the user and the other person that is within the proximity bubble with the user. For example, a comment regarding their common attendance history to many concerts can be brought up as an ice breaking phrase from the user to the other user.

At block 2110, the method 2100 includes subscribing, by a server 210 having one or more processors 210A, one or more memories 210B, a transmitter and a receiver 210C, users to a service (e.g., a social networking service, which can pertain to one or more of friendship, dating, and business). In an aspect, subscribing means mapping users to user information including, but not limited to, user devices (e.g., media access control (MAC) numbers), user name, user address, user employer, employment title, gender, interests, and a schedule of events and locations that the user could potentially use assistance at with respect to receiving an “ice breaking” phrase when needed. The list of attended events can be input, for example, initially during subscription or anytime thereafter including dynamically at the event (concert, meeting, etc.) or location (restaurant, department of motor vehicles (DMV), store, etc.) itself.

At block 2115, the method 2100 includes receiving from a location determining device, by the receiver 210C of the server 210, location information and trajectory information of the user.

At block 2120, the method 2100 includes representing, by the one or more processors of the server, a physical region of interest proximate to the user by a geometric shape, wherein parameters of the geometric shape are based on the location information and the trajectory information.

At block 2125, the method 2100 includes filtering, by the one or processors 210A of the server 210, the database of ice breaking templates, to select one or more ice breaking templates for application to one or more other users responsive to the one or more other users being within a trajectory of at least a portion the geometric shape and being commonly subscribed with the user to the service.

At block 2130, the method 2100 includes customizing, by the one or more processors 210A of the server 210, the one or more ice breaking templates filtered/selected in block 2125 with information based on one or more of the user, the one or more other users, the event, or the location to generate one or more customized ice breaking phrases. In an aspect, block 2130 may include accessing user profile information from the one or more memories of the server. The user profile information can include gender, age, food, exercise, hobby, work, and non-work time interests (which may be customized by the user and may include events to be attended concurrently or in the future by the user as well as locations the user is currently at or expects to be at in the future). As described above, the user profile information can be stored in private cloud 106 and can be customized by the user.

At block 2135, the method 2100 includes transmitting, by a transmitter 210C of the server 210, the customized ice breaking phrases to the user device 220 of the user.

For example, in an aspect relating to the ice breaking phrase being based only on the user profile data, a simple approach may be deemed most appropriate such as uttering an ice breaking phrase such as, but not limited to, “Hi, my name is Michael? And you are?” In an aspect, the user may be prompted to also extend his hand concurrent with uttering the phrase.” In an aspect, the user, Michael, may already know the name of the other user due to the name of the other user being provided to the user along with the picture of the other user and other biography information such as common interests.

In another aspect relating to the ice breaking phrase being based on only the event or the location, a simple approach may be deemed most appropriate such as, for example, but not limited to, “This is only the second time the band has ever played in this city.”

In yet another aspect relating to the ice breaking phrase being based on both the user profile data and the event and/or location, a compound information ice breaking phrase that relates to the user profile data as well as one or more of the event and the location may be used

Referring to FIG. 22, further blocks of method 2100 are shown, in accordance with an example aspect.

In an aspect block 2145 may include block 2145A.

At block 2145A, the method 2100 includes transmitting, by the transmitter 210C of the server 210 to the user device 220, a picture of an intended recipient of the customized ice breaking phrase from among the one or more other users, and a biography of the intended recipient.

A description will now be given regarding various clauses in accordance with various aspects of the present disclosure.

Clause 1. A method for filtering data transmitted to a user device of a user, comprising: subscribing, by a server having one or more processors, one or more memories, a transmitter and a receiver, users to one or more services relating to friendship, dating, and business, to form a database of subscribers that includes one or more pictures of, and a biography for, each of the subscribers; receiving, by the receiver of the server, user inputs selecting a geometric shape and a size of the geometric shape, for each of the one or more services to which the user has subscribed; receiving, by the receiver of the server, location information and trajectory information of the user; representing, by the one or more processors of the server, a physical region of interest proximate to the user by the geometric shape, wherein parameters of the geometric shape are based on one or more of the user inputs, the location information, and the trajectory information; filtering, by the one or more processors of the server, the database of subscribers, to select for display to the user, the one or more pictures and the biography of one or more other subscribers than the user, responsive to the one or more other subscribers being within a trajectory of at least a portion the geometric shape and having one or more services subscribed in common with the user; and transmitting, by the transmitter of the server to the user device, the one or more pictures and the biography of the one or more other subscribers.

Clause 2. The method in accordance with clause 1, wherein, for a given subscriber, the database of subscribers is configured to store one or more different pictures for different services from among the one or more services subscribed to by the given subscriber.

Clause 3. The method in accordance with any preceding clauses, wherein, for a given subscriber, the database of subscribers is configured to store different biographies for different services from among the one or more services subscribed to by the given subscriber.

Clause 4. The method in accordance with any preceding clauses, further comprising: selecting at least one of a replacement geometric shape and a replacement geometric shape size, responsive to a change in one or more of the location information and the trajectory information; and adjusting at least one of the geometric shape and the size of the geometric shape, responsive to at least one of the replacement geometric shape and the replacement geometric shape size.

Clause 5. The method in accordance with any preceding clauses, wherein the geometric shape is sized by the server in response to the user inputs comprising a maximum number of subscribers the user is willing to receive information for.

Clause 6. The method in accordance with any preceding clauses, wherein geometric shapes selected by the user for different ones of the one or more services subscribed to by the user include one or more overlapping areas.

Clause 7. The method in accordance with any preceding clauses, wherein the geometric shapes selected by the user for different ones of the one or more services subscribed to by the user include one or more non-overlapping areas.

Clause 8. The method in accordance with any preceding clauses, wherein the one or more pictures and the biography of the one or more other subscribers are transmitted by the transmitter of the server to the user device in an order of likely user proximity to the one or more other subscribers within the geometric shape.

Clause 9. The method in accordance with any preceding clauses, further comprising prompting the user with various default geometric shapes and various default geometric sizes to select from for one or more of the one or more services.

Clause 10. The method in accordance with any preceding clauses, further comprising forward biasing a position of the geometric shape relative to a position of the user such that the geometric shape has more area in front of the user as compared to behind the user when the user is traveling in a forward direction.

Clause 11. The method in accordance with any preceding clauses, wherein the parameters of the geometric shape include a type of the geometric shape, a location of the geometric shape, a size of the geometric shape, and a position of the geometric shape relative to a position of the user.

Clause 12. A system for filtering data transmitted to a user device of a user, comprising: a receiver configured to receive location information and trajectory information of a user and user inputs selecting a geometric shape and a size of the geometric shape, for each of one or more services relating to friendship, dating, and business subscribed to by the user; one or more memories, individually or in combination, having instructions; one or more processors each coupled to at least one of the one or more memories and configurable/operable to execute the instructions to: subscribe users to the one or more services to form a database of subscribers that includes one or more pictures of, and a biography for, each of the subscribers; represent a physical region of interest proximate to the user by the geometric shape, wherein parameters of the geometric shape are based on one or more of the user inputs, the location information, and the trajectory information; and filter the database of subscribers, to select for display to the user, the one or more pictures and the biography of one or more other subscribers than the user, responsive to the one or more other subscribers being within a trajectory of at least a portion the geometric shape and having one or more service subscribed in common with the user; and a transmitter configured to transmit the one or more pictures and the biography of the one or more other subscribers to the user device.

Clause 13. A method for filtering data transmitted to a user device of a user, comprising: subscribing, by a server having one or more processors, one or more memories, a transmitter and a receiver, users to (i) one or more roles from a set of roles including a buyer, a seller, and a trader, and (ii) one or more commodities corresponding to the one or more roles, to form a database of subscribers; storing, by the one or more memories of the server, a database of advertisements for buying, selling, and trading commodities, each of the advertisements associated with a respective subscriber from the database of subscribers; receiving, from a location determining device by the receiver of the server, location information and trajectory information of the user; representing, by the one or more processors of the server, a physical region of interest proximate to the user by a geometric shape, wherein dynamic parameters of the geometric shape including a location, a size, and a position of the geometric shape relative to a location of the user are based on the location information and the trajectory information; filtering, by the one or more processors of the server, the database of advertisements, to select for display to the user, one or more advertisements from the database of advertisements responsive to the one or more advertisements corresponding to one or more other subscribers than the user that are within a trajectory of at least a portion the geometric shape and have at least one role and at least one commodity complimentary to the one or more roles and the one or more commodities subscribed to by the user; and transmitting, by the transmitter of the server to the user device, the one or more advertisements.

Clause 14. The method in accordance with clause 13, wherein the one or more commodities are selected from a set of commodities including goods and services.

Clause 15. The method in accordance with any preceding clauses, further comprising storing an advertisement of the one or more advertisements to include one or more pictures of a subscriber associated with the advertisement, a description of the one or more roles of the subscriber, and a description of the one or more commodities corresponding to the one or more roles of the subscriber.

Clause 16. The method in accordance with any preceding clauses, further comprising storing the advertisement to further include user ratings for past transactions with the subscriber.

Clause 17. The method in accordance with any preceding clauses, further comprising: receiving a user rating from the user for a transaction between the user and an other subscriber from the subscribers; and adding the user rating to an advertisement associated with the other subscriber.

Clause 18. A system for filtering data transmitted to a user device of a user, comprising: a receiver configured to receive location information and trajectory information of a user from a location determining device; one or more memories, individually or in combination, having instructions; and configured to store a database of advertisements for buying, selling, and trading commodities, each of the advertisements associated with a respective subscriber from a database of subscribers; one or more processors each coupled to at least one of the one or more memories and configurable/operable to execute the instructions to: subscribe users to (i) one or more roles from a set of roles including a buyer, a seller, and a trader, and (ii) one or more commodities corresponding to the one or more roles, to form the database of subscribers; represent a physical region of interest proximate to the user by a geometric shape, wherein dynamic parameters of the geometric shape including a location, a size, and a position of the geometric shape relative to a location of the user are based on the location information and the trajectory information; and filter the database of advertisements, to select for display to the user, one or more advertisements from the database of advertisements responsive to the one or more advertisements corresponding to one or more other subscribers than the user that are within a trajectory of at least a portion the geometric shape and have at least one role and at least one commodity complimentary to the one or more roles and the one or more commodities subscribed to by the user; and a transmitter configured to transmit the one or more advertisements to the user device.

Clause 19. A method for filtering data transmitted to a user device of a user, comprising: maintaining, by one or more memories of a server also having one or more processors, a receiver, and a transmitter, a database of ice breaking phrase templates including a set of ice breaking phrases having certain parts that are configured to be variable; subscribing, by the server, users to a service by mapping users to user information; receiving, from a location determining device by the receiver of the server, location information and trajectory information of the user; representing, by one or more processors of the server, a physical region of interest proximate to the user by a geometric shape, wherein parameters of the geometric shape are based on the location information and the trajectory information; filtering, by the one or more processors of the server, the database of ice breaking templates, to select one or more ice breaking templates for application to one or more other users responsive to the one or more other users being within a trajectory of at least a portion the geometric shape and being commonly subscribed with the user to the service; customizing the one or more ice breaking templates based on information relating to one or more of the user, the one or more other users, an event currently occupied by the user and the one or more other users, or a location currently occupied by the user and the one or more other users, to generate one or more customized ice breaking phrases; and transmitting, by the transmitter of the server to the user device, the one or more customized ice breaking phrases.

Clause 20. The method in accordance with clause 19, further comprising transmitting, by the transmitter of the server to the user device, one or more pictures and a biography of the one or more other users.

Clause 21. The method in accordance with any preceding clauses, wherein the service is a social networking service.

Clause 22. A system for filtering data transmitted to a user device of a user, comprising: a receiver configured to receive location information and trajectory information of a user; one or more memories, individually or in combination, storing instructions and a database of ice breaking phrase templates including a set of ice breaking phrases having certain parts that are configured to be variable; one or more processors each coupled to at least one of the one or more memories and configurable/operable to execute the instructions to: subscribe users to a service by mapping users to user information; represent a physical region of interest proximate to the user by a geometric shape, wherein parameters of the geometric shape are based on the location information and the trajectory information; filter the database of ice breaking templates, to select one or more ice breaking templates for application to one or more other users responsive to the one or more other users being within a trajectory of at least a portion the geometric shape and being commonly subscribed with the user to the service; and customize the one or more ice breaking templates based on information relating to one or more of the user, the one or more other users, an event currently occupied by the user and the one or more other users, or a location currently occupied by the user and the one or more other users, to generate one or more customized ice breaking phrases; and a transmitter configured to transmit the one or more customized ice breaking phrases to the user device.

Various aspects of the disclosure may take the form of an entirely or partially hardware aspect, an entirely or partially software aspect, or a combination of software and hardware. Furthermore, as described herein, various aspects of the disclosure (e.g., systems and methods) may take the form of a computer program product comprising a computer-readable non-transitory storage medium having computer-accessible instructions (e.g., computer-readable and/or computer-executable instructions) such as computer software, encoded or otherwise embodied in such storage medium. Those instructions can be read or otherwise accessed and executed by one or more processors to perform or permit the performance of the operations described herein. The instructions can be provided in any suitable form, such as source code, compiled code, interpreted code, executable code, static code, dynamic code, assembler code, combinations of the foregoing, and the like. Any suitable computer-readable non-transitory storage medium may be utilized to form the computer program product. For instance, the computer-readable medium may include any tangible non-transitory medium for storing information in a form readable or otherwise accessible by one or more computers or processor(s) functionally coupled thereto. Non-transitory storage media can include read-only memory (ROM); random access memory (RAM); magnetic disk storage media; optical storage media; flash memory, and so forth.

Aspects of this disclosure are described herein with reference to block diagrams and flowchart illustrations of methods, systems, apparatuses, and computer program products. It can be understood that each block of the block diagrams and flowchart illustrations, and combinations of blocks in the block diagrams and flowchart illustrations, respectively, can be implemented by computer-accessible instructions. In certain implementations, the computer-accessible instructions may be loaded or otherwise incorporated into a general-purpose computer, a special-purpose computer, or another programmable information processing apparatus to produce a particular machine, such that the operations or functions specified in the flowchart block or blocks can be implemented in response to execution at the computer or processing apparatus.

Unless otherwise expressly stated, it is in no way intended that any protocol, procedure, process, or method set forth herein be construed as requiring that its acts or steps be performed in a specific order. Accordingly, where a process or method claim does not actually recite an order to be followed by its acts or steps, or it is not otherwise specifically recited in the claims or descriptions of the subject disclosure that the steps are to be limited to a specific order, it is in no way intended that an order be inferred, in any respect. This holds for any possible non-express basis for interpretation, including: matters of logic with respect to the arrangement of steps or operational flow; plain meaning derived from grammatical organization or punctuation; the number or type of aspects described in the specification or annexed drawings; or the like.

As used in this disclosure, including the annexed drawings, the terms “component,” “module,” “system,” and the like are intended to refer to a computer-related entity or an entity related to an apparatus with one or more specific functionalities. The entity can be either hardware, a combination of hardware and software, software, or software in execution. One or more of such entities are also referred to as “functional elements.” As an example, a component can be a process running on a processor, a processor, an object, an executable, a thread of execution, a program, and/or a computer. For example, both an application running on a server or network controller, and the server or network controller can be a component. One or more components can reside within a process and/or thread of execution and a component can be localized on one computer and/or distributed between two or more computers. Also, these components can execute from various computer readable media having various data structures stored thereon. The components can communicate via local and/or remote processes such as in accordance with a signal having one or more data packets (e.g., data from one component interacting with another component in a local system, distributed system, and/or across a network such as the Internet with other systems via the signal). As another example, a component can be an apparatus with specific functionality provided by mechanical parts operated by electric or electronic circuitry, which parts can be controlled or otherwise operated by program code executed by a processor. As yet another example, a component can be an apparatus that provides specific functionality through electronic components without mechanical parts, the electronic components can include a processor to execute program code that provides, at least partially, the functionality of the electronic components. As still another example, interface(s) can include I/O components or Application Programming Interface (API) components. While the foregoing examples are directed to aspects of a component, the exemplified aspects or features also apply to a system, module, and similar.

In addition, the terms “example” and “such as” are utilized herein to mean serving as an instance or illustration. Any aspect or design described herein as an “example” or referred to in connection with a “such as” clause is not necessarily to be construed as preferred or advantageous over other aspects or designs described herein. Rather, use of the terms “example” or “such as” is intended to present concepts in a concrete fashion. The terms “first,” “second,” “third,” and so forth, as used in the claims and description, unless otherwise clear by context, is for clarity only and does not necessarily indicate or imply any order in time or space.

The term “processor,” as utilized in this disclosure, can refer to any computing processing unit or device comprising processing circuitry that can operate on data and/or signaling. A computing processing unit or device can include, for example, single-core processors; single-processors with software multithread execution capability; multi-core processors; multi-core processors with software multithread execution capability; multi-core processors with hardware multithread technology; parallel platforms; and parallel platforms with distributed shared memory. Additionally, a processor can include an integrated circuit, an application specific integrated circuit (ASIC), a digital signal processor (DSP), a field programmable gate array (FPGA), a programmable logic controller (PLC), a complex programmable logic device (CPLD), a discrete gate or transistor logic, discrete hardware components, or any combination thereof designed to perform the functions described herein. In some cases, processors can exploit nano-scale architectures, such as molecular and quantum-dot based transistors, switches and gates, in order to optimize space usage or enhance performance of user equipment. A processor may also be implemented as a combination of computing processing units.

In addition, terms such as “store,” “data store,” data storage,” “database,” and substantially any other information storage component relevant to operation and functionality of a component, refer to “memory components,” or entities embodied in a “memory” or components comprising the memory. It will be appreciated that the memory components described herein can be either volatile memory or nonvolatile memory, or can include both volatile and nonvolatile memory. Moreover, a memory component can be removable or affixed to a functional element (e.g., device, server).

Various aspects described herein can be implemented as a method, apparatus, or article of manufacture using standard programming and/or engineering techniques. In addition, various of the aspects disclosed herein also can be implemented by means of program modules or other types of computer program instructions stored in a memory device and executed by a processor, or other combination of hardware and software, or hardware and firmware. Such program modules or computer program instructions can be loaded onto a general-purpose computer, a special-purpose computer, or another type of programmable data processing apparatus to produce a machine, such that the instructions which execute on the computer or other programmable data processing apparatus create a means for implementing the functionality of disclosed herein.

The term “article of manufacture” as used herein is intended to encompass a computer program accessible from any computer-readable device, carrier, or media. For example, computer readable media can include but are not limited to magnetic storage devices (e.g., hard drive disk, floppy disk, magnetic strips, or similar), optical discs (e.g., compact disc (CD), digital versatile disc (DVD), blu-ray disc (BD), or similar), smart cards, and flash memory devices (e.g., card, stick, key drive, or similar).

The detailed description set forth herein in connection with the annexed figures is intended as a description of various configurations or implementations and is not intended to represent the only configurations or implementations in which the concepts described herein may be practiced. The detailed description includes specific details for the purpose of providing a thorough understanding of various concepts. However, it will be apparent to those skilled in the art that these concepts may be practiced without these specific details or with variations of these specific details. In some instances, well-known components are shown in block diagram form, while some blocks may be representative of one or more well-known components.