Matching user information between datasets while maintaining data privacy
A privacy-centric 'clean room' system matches user data from services and computing devices by processing timestamps and user identification, addressing the challenge of data access while effectively evaluating targeted content's impact on user behavior.
Patent Information
- Application Number
- JP2025517993
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2022-09-27
- Filing Date
- 2023-09-26
- Publication Date
- 2025-10-07
AI Technical Summary
Existing systems face challenges in matching data from services with computing devices while maintaining user privacy, as both entities want to keep their respective data sets inaccessible to each other.
A method and system that allows for matching user information between data sets by using a 'clean room' approach where a server receives and processes data from both parties without allowing them access to each other's data, calculating conversion rates and impact of targeted content based on timestamps and user identification without sharing raw data.
Enables privacy-preserving data analysis by allowing computations on combined data sets without exposing sensitive information, thereby enhancing privacy and enabling effective evaluation of targeted content's influence on user behavior.
Smart Images

Figure 2025533596000001_ABST
Abstract
Description
[Technical Field]
[0001] Priority This application is a PCT international patent application filed on September 26, 2023, which claims priority to U.S. patent application Ser. No. 17 / 935,828, entitled "MATCHING USER INFORMATION BETWEEN DATA SETS, WHILE PRESERVING DATA PRIVACY," filed on September 27, 2022, the entirety of which is incorporated herein by reference. [Background technology]
[0002] A service may store data corresponding to a particular user and provide targeted content to the particular user for a desired purpose (e.g., to influence the user to go to a relevant location, such as a venue). A computing device may track location data of a particular user and use the location data to determine when the particular user goes to a relevant location (e.g., corresponding to content provided to the particular user by those services). However, to protect the privacy of a particular user, the service and the computing device may want to keep user information inaccessible to each other. Thus, it may be difficult to match data from a service (e.g., content data) with data from a computing device (e.g., location data) without giving the service and the computing device access to each other's respective data sets.
[0003] It is with respect to these and other general considerations that the embodiments are described. Also, while relatively specific problems are discussed, it should be understood that the embodiments should not be limited to solving the specific problems identified in the background. Summary of the Invention [Means for solving the problem]
[0004] Aspects of the present disclosure relate to methods and systems for matching user information between data sets while maintaining data privacy. Some aspects relate to matching a subset of users from a first device against a subset of users from a second device based on a first set of instructions and a second set of instructions, respectively, to calculate how long it takes for the users to go to a relevant location after being provided with targeted content. A conversion rate can be determined based on how many instances the users go to the relevant location within a conversion window after being provided with the targeted content. The conversion rate can be compared to a baseline conversion rate to determine a change in the conversion rate. The change in the conversion rate can correspond to the impact of the targeted content in causing the users to go to the relevant location. User data is not shared from the first device to the second device, or vice versa.
[0005] This Summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This Summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to limit the scope of the claimed subject matter. Additional aspects, features, and / or advantages of examples will be set forth in part in the description that follows, and in part will be obvious from the description, or may be learned by practice of the disclosure.
[0006] Non-limiting and non-exhaustive examples are described with reference to the following figures. [Brief explanation of the drawings]
[0007] [Figure 1] FIG. 1 illustrates an overview of an exemplary system according to certain aspects described herein. [Figure 2] 2 is a detailed diagram of the computing device of FIG. 1 in accordance with certain aspects described herein. [Figure 3] 2 is a detailed diagram of a service device of FIG. 1 in accordance with certain aspects described herein. [Figure 4] 2 is a detailed diagram of the server of FIG. 1 in accordance with certain aspects described herein. [Figure 5] FIG. 1 illustrates an example use case for matching user information across datasets while maintaining data privacy, according to certain aspects described herein. [Figure 6] FIG. 1 illustrates an exemplary methodology according to certain aspects described herein. [Figure 7] FIG. 1 illustrates an exemplary methodology according to certain aspects described herein. [Figure 8] FIG. 1 is a block diagram illustrating exemplary physical components of a computing device with which aspects of the present disclosure may be implemented. DETAILED DESCRIPTION OF THE INVENTION
[0008] In the following detailed description, references are made to the accompanying drawings, which form a part of this specification and in which specific embodiments or examples are shown by way of illustration. These aspects may be combined, other aspects may be utilized, and structural changes may be made without departing from the disclosure. The embodiments may be embodied as methods, systems, or devices. Thus, the embodiments may take the form of a hardware implementation, an entirely software implementation, or an implementation combining software and hardware aspects. Therefore, the following detailed description is not to be taken in a limiting sense, and the scope of the disclosure is defined by the appended claims and their equivalents.
[0009] As described above, a service may store data corresponding to a particular user and provide content to the particular user for a desired purpose (e.g., to influence the user to go to an associated location, such as a venue). A computing device may track the location data of a particular user, which may be used to determine when the particular user goes to an associated location (e.g., corresponding to content provided to the particular user by those services). However, to protect the privacy of a particular user, the service and the computing device may wish to keep user information inaccessible to each other. Thus, it may be difficult to match data from a service (e.g., content data) against data from a computing device (e.g., location data) without giving the service and the computing device access to each other's respective data sets.
[0010] For example, a service (e.g., a gaming service, a medical service, a commercial service, etc.) may provide a user with targeted content that influences the user to go to an associated location (e.g., a park, a stadium, a clinic, a store, a website, etc.). The service may have a predetermined conversion window that specifies a duration (e.g., five days, ten days, two weeks, etc.) within which the service wants to measure whether the user goes to the associated location. The user's computing device may receive corresponding location data when the user goes to the associated location. However, the service may not want to share that information with applications on the computing device, and the applications on the computing device may not want to share their information with the service. Thus, calculations cannot be performed based on information stored in the service's dataset and the application's dataset on the computing device.
[0011] Accordingly, some aspects of the present disclosure relate to methods, systems, and media for matching user information between data sets while maintaining data privacy. Generally, a first device may provide location data corresponding to a first set of users at a relevant location, a first timestamp corresponding to the location data, and a first set of instructions (e.g., labels) each corresponding to a respective user from the first set of users. A second device may provide a second set of instructions corresponding to a second set of users and a second timestamp corresponding to when each user from the second set of users was provided with targeted content (e.g., content designed to influence the user to perform an action such as going to a venue). Based on the first instructions and the second set of instructions, a matched subset of users in both the first and second sets of users may be determined. The matched subset may be determined independently of the first and second devices, such that information provided by the first device is inaccessible to the second device, and vice versa.
[0012] Additionally or alternatively, some aspects of the present disclosure relate to methods, systems, and mediums for determining the impact of targeted content in influencing a user to perform a given action (e.g., go to a physical location, go to a virtual location, go to a particular website, purchase a product, etc.). After the matched subset is determined, based on the mechanisms described above and further herein, an actual conversion rate may be determined based on the first timestamp (described above) and the second timestamp (described above). The change between the actual conversion rate and the baseline conversion rate may be determined, thereby determining the impact of the targeted content.
[0013] Advantages of the mechanisms disclosed herein may include increased privacy for user data, where devices providing unrelated sets of data may not have access to each other's sets of data, although computations may still be performed based on the sets of data. In this regard, the mechanisms implemented herein may be described as a "clean room" where data sets are combined in order to perform computations in a privacy-centric setup, where neither party inputting data into the clean room has access to the other party's data.
[0014] 1 illustrates an example of a system 100 according to some aspects of the disclosed subject matter. The system 100 may be a system for matching user information between datasets while maintaining data privacy. Additionally or alternatively, the system 100 may be a system for determining the impact of targeted content in influencing a user to perform a given action. The system 100 includes one or more computing devices 102, one or more servers 104, one or more service devices 106, one or more user data sources 108, one or more service data sources 110, and one or more communication networks or networks 112.
[0015] The computing device 102 can receive user data 114 from a user data source 108, which may include, for example, a database, a microphone, a camera, a global positioning system (GPS), or some other sensor that transmits user data, a computer-executable program that generates the user data, and / or a memory in which data corresponding to the user data is stored. The user data 114 may include personal identification information of the user, demographic information of the user, information corresponding to the operating system of the user's device, location data, and / or other types of user data that may be recognized by those skilled in the art.
[0016] Additionally or alternatively, network 112 can receive user data 114 from user data sources 108, which may include, for example, a database, a microphone, a camera, a global positioning system (GPS), or some other sensor that transmits user data, a computer-executable program that generates the user data, and / or a memory in which data corresponding to the user data is stored. User data 114 may include personal identification information of the user, demographic information of the user, information corresponding to the operating system of the user's device, location data, and / or other types of user data that may be recognized by those skilled in the art.
[0017] The service device 106 can receive service data 116 from a service data source 110, which may include, for example, a computer-executable program that generates the service data and / or a memory in which data corresponding to the service data is stored. The service data 116 may include personal identification information of users, targeted content to be sent to one or more users, a preconfigured conversion window during which a user is desired to perform an action after receiving the targeted content, and / or other types of service data that may be recognized by those skilled in the art. In some examples, the service data 116 may include information corresponding to a marketing campaign, a video game, or an educational campaign.
[0018] Additionally or alternatively, network 112 can receive service data 116 from service data source 110, which may include, for example, a computer-executable program that generates the service data and / or a memory in which data corresponding to the service data is stored. Service data 116 may include personal identification information of users, targeted content to be sent to one or more users, a preconfigured conversion window during which a user is desired to perform an action after receiving the targeted content, and / or other types of service data that may be recognized by those skilled in the art. In some examples, service data 116 may include information corresponding to a marketing campaign, a video game, or an educational campaign.
[0019] The server 104 receives user data 114 from user data sources 108 and / or computing devices 102, and service data 116 from service data sources 110 and / or service devices 106. The server 104 may receive the user data 114 and service data 116 via the network 112. Generally, the server may include one or more engines, components, or applications that act as a clean room for data from multiple sources to be received without each of the multiple data sources having access to each other's respective sets of data.
[0020] In some examples, the computing device 102 may be multiple computing devices 102, such as in instances where user data 114 (e.g., location data, personally identifiable information, etc.) is desired to be received from multiple users. Additionally or alternatively, in some examples, the service device 106 may be multiple service devices 106, such as in instances where service data 116 (e.g., personally identifiable information, targeted content, pre-configured conversion windows, etc.) is desired to be received from multiple services (e.g., commercial entities, hospitals, video games, etc.).
[0021] In some examples, computing device 102, server 104, and / or service device 106 may be any suitable computing device or combination of devices, such as a desktop computer, a vehicle computer, a mobile computing device (e.g., a laptop computer, a smartphone, a tablet computer, a wearable computer, etc.), a server computer, a virtual machine executed by a physical computing device, a web server, etc. In instances where there are multiple computing devices 102 and / or multiple servers 104, those skilled in the art will recognize that user data 110 may be received at one or more of the multiple computing devices 102 and / or one or more of the multiple servers 104. Additionally or alternatively, in instances where there are multiple service devices 106 and / or multiple servers 104, those skilled in the art will recognize that service data 110 may be received at one or more of the multiple service devices 106 and / or one or more of the multiple servers 104.
[0022] In some examples, computing device 102 may be a smartphone or tablet computing device that may execute one or more aspects disclosed herein. Furthermore, aspects and functions described herein may operate on a distributed system (e.g., a cloud-based computing system), where application functions, memory, data storage and retrieval, and various processing functions may operate remotely from one another over a distributed computing network such as the Internet or an intranet. Various types of user interfaces and information may be displayed via on-board computing device displays or via remote display units associated with one or more computing devices. For example, various types of user interfaces and information may be displayed and interacted with on a wall surface onto which various types of user interfaces and information are projected. Interactions with numerous computing systems with which aspects of the present disclosure may be implemented include keystroke input, touchscreen input, voice or other audio input, gesture input if the associated computing device is equipped with detection (e.g., camera) capabilities for capturing and interpreting user gestures to control functions of the computing device, and the like.
[0023] In some examples, the user data source 108 may be any suitable source of user data. In a more specific example, the user data source 108 may include memory that stores user data (e.g., local memory of the computing device 102, local memory of the server 104, cloud storage, portable memory connected to the computing device 102, portable memory connected to the server 104, etc.). In another more specific example, the user data source 108 may include an application configured to generate the user data 114. In some examples, the user data source 108 may be local to the computing device 102. Additionally or alternatively, the user data source 108 may be remote from the computing device 102 and may communicate the user data 114 to the computing device 102 (and / or the server 104) via a communications network (e.g., communications network 112).
[0024] In some examples, service data source 110 may be any suitable source of service data. In a more specific example, service data source 110 may include memory that stores service data (e.g., local memory of service device 106, local memory of server 104, cloud storage, portable memory connected to service device 106, portable memory connected to server 104, etc.). In another more specific example, service data source 110 may include an application configured to generate service data 116. In some examples, service data source 110 may be local to service device 106. Additionally or alternatively, service data source 110 may be remote from service device 106 and may communicate service data 116 to service device 106 (and / or server 104) via a communications network (e.g., communications network 112).
[0025] In some examples, communication network 112 may be any suitable communication network or combination of communication networks. For example, communication network 112 may include a Wi-Fi network (which may include one or more wireless routers, one or more switches, etc.), a peer-to-peer network (e.g., a Bluetooth network), a cellular network (e.g., a 3G network, a 4G network, a 5G network, etc. conforming to any suitable standards), a wired network, etc. In some examples, communication network 112 may be a local area network (LAN), a wide area network (WAN), a public network (e.g., the Internet), a private or semi-private network (e.g., a corporate or university intranet), any other suitable type of network, or any suitable combination of networks. The communication links (arrows) shown in FIG. 1 may each be any suitable communication link or combination of communication links, such as a wired link, an optical fiber link, a Wi-Fi link, a Bluetooth link, a cellular link, etc.
[0026] 2 shows a detailed diagram of a computing device 102 in accordance with certain aspects described herein. The computing device 102 includes a communication system 204, a location generation engine or component 208, a timestamp generation engine or component 212, and a user identification engine or component 216. Additional and / or alternative components of the computing device 102 may be recognized by those skilled in the art.
[0027] The location generation component 208 may generate or store (e.g., in a memory location corresponding to the location generation component 208) an indication corresponding to the user's location. The location may be a physical geographic location generated based on, for example, a global positioning system, or a cellular system, or a visual location processing system, or a satellite system, or another type of location system that may be recognized by one skilled in the art. The location may be a geographic area of a physical location, or a street address, or any other indication. Additionally or alternatively, the location may be a virtual location, such as a website or a virtual reality environment.
[0028] The timestamp generation component 212 may generate or store (e.g., in a memory location corresponding to the timestamp generation component 212) an indication corresponding to a time when a user arrives at or is otherwise located at a location (e.g., indicated by the location generation component 208). For example, the timestamp generation component 212 may generate a time when a user arrives at a store, or arrives at a park, or navigates to a web page, or arrives at a location within a virtual reality environment, or arrives at a hospital, or arrives at any other venue or related location.
[0029] The user identification component 216 may generate or store (e.g., in a memory location corresponding to the user identification component 216) an indication corresponding to the user's identification information. For example, the user identification component 216 may store a label corresponding to one or more users, or an IP address corresponding to one or more users, or a name corresponding to one or more users, or another type of identification information that may be recognized by one of ordinary skill in the art.
[0030] Generally, computing device 102 includes multiple components that generate, with user permission, a dataset of location data for users corresponding to relevant locations, timestamps corresponding to the location data, and instructions each corresponding to a respective user of the set of users, such that the time of arrival of a particular user at a particular location is monitored and stored.
[0031] 3 shows a detailed diagram of a service device 106 according to some aspects described herein. The service device 106 includes a communication system 304, a targeted content generation engine or component 308, a timestamp generation engine or component 312, and a user identification engine or component 316. Additional and / or alternative components of the service device 106 may be recognized by those skilled in the art.
[0032] The targeted content generation engine 308 may generate or store (e.g., in a memory location corresponding to the targeted content generation engine 308) content directed to one or more users. The targeted content may be appropriate to influence users to go to relevant physical or virtual locations. For example, in a gaming context, the targeted content may instruct a user to go to a physical park or a location within a virtual reality environment to collect points for a game. Additionally, or alternatively, in a commerce context, the targeted content may influence a user to go to a store or website to purchase an item. Additional and / or alternative examples of targeted content may be recognized by those skilled in the art.
[0033] The timestamp generation component 312 may generate or store (e.g., in a memory location corresponding to the timestamp generation component 312) an indication corresponding to the time when the user will be provided with targeted content (e.g., generated or stored by the targeted content generation engine 308). For example, the timestamp generation component 312 may generate, on a computing device (e.g., a computer, a smartphone, a wearable device, etc.) associated with the user, the time when the targeted content will be provided to the user.
[0034] The user identification component 316 may generate or store (e.g., in a memory location corresponding to the user identification component 316) an indication corresponding to the user's identification information. For example, the user identification component 216 may store a label corresponding to one or more users, or an IP address corresponding to one or more users, or an account number corresponding to one or more users, or a name corresponding to one or more users, or preferences of one or more users (e.g., gaming preferences, shopping preferences, etc.), or another type of identification information that can be recognized by one skilled in the art to identify each of one or more users.
[0035] Generally, the service device 106 includes multiple components that, with the user's permission, generate a data set of targeted content to be received by a user, a timestamp corresponding to when the targeted content will be provided to the user, and instructions each corresponding to a respective user of the set of users, such that the time at which a particular user is provided with the targeted content is monitored and stored.
[0036] 4 shows a detailed diagram of server 104 according to some aspects described herein. Server 104 includes a communication system 404, a data matching engine or component 408, a conversion rate calculation engine or component 412, a baseline calculation engine or component 416, and a lift calculation engine or component 420. Additional and / or alternative components of server 104 may be recognized by those skilled in the art.
[0037] The data matching component 408 may match a first set of users (e.g., from data stored on the computing device 102) against a second set of users (e.g., from data stored on the service device 106). In some examples, such as in examples where there are multiple computing devices 102 and / or multiple service devices 106, additional sets of users may be matched against the first and second user sets.
[0038] The data matching component 408 may match sets of users based on the user identification component 316. For example, the same user may have similar identification information across devices from which the identification information is received. In some examples, the data matching component 408 may include a model trained to match sets of data corresponding to the same user. The model may be a machine learning model trained based on sets of user data and prior matching of users between sets of user data. The matching performed by the model may have an associated confidence level corresponding to the accuracy with which the sets of data were determined to be matched together.
[0039] The conversion rate calculation component 412 calculates the rate (e.g., number of instances) at which users go to a relevant location after receiving relevant targeted content. In some examples, the conversion rate calculation component 412 may determine which of multiple targeted content pieces successfully influence a user to go to a relevant location based on merging of data sets while maintaining data privacy, as described herein. The conversion rate calculation component may compare a timestamp from a first data set (e.g., based on the timestamp generation component 212) with a timestamp from a second data set (e.g., based on the timestamp generation component 312) to calculate how long it takes for a user to go to a relevant location corresponding to the received targeted content after receiving the targeted content. The duration of time that a user goes to a relevant location after receiving the targeted content may be compared to a predetermined conversion window, for example, to increase the rate at which instances of the user going to a relevant location are calculated if the time is within the predetermined conversion window.
[0040] The baseline calculation component 416 calculates and / or stores (e.g., in a memory location corresponding to the baseline calculation component 416) the rate (e.g., number of instances) of a user going to a relevant location, independent of receiving targeted content. For example, a user may go to the park every Friday without receiving targeted content that influences the user to go to the park. Thus, if the user then goes to the park on Friday after receiving targeted content the previous Wednesday, the user's going to the park likely was not a result of the targeted content. However, if the user goes to the park on Thursday, after receiving targeted content, the user's going to the park likely could have been a result of the targeted content.
[0041] The baseline calculation component 416 may include a model trained to calculate a baseline conversion rate for a user based on one or more characteristics of the user. For example, the one or more characteristics on which the baseline conversion rate is based may include demographic attributes such as the user's age, gender, income, ethnicity, relationship status, and / or number of children. Additionally or alternatively, the one or more characteristics may include the geographic area in which the user is located. Additionally or alternatively, the one or more characteristics may include the type of operating system of the computing device used by the user. For example, a user using a first operating system compared to a second operating system may exhibit different behavior, which may be determined in part based on knowledge of which operating system is used by the user. In some examples, the one or more characteristics of the user may be used to train a model for predetermined time segments. For example, a user's visits to a relevant location may be recorded within three-hour segments, half-day segments, full-day segments, week-long segments, or any other time segment that may be desirable for measuring user activity to train a model using the mechanisms disclosed herein. These segments may be grouped over a predetermined duration, for example, groups of 3-hour segments may be grouped consecutively over the past 30 days, or 60 days, or 100 days, or any range defined between the aforementioned durations.
[0042] The lift calculation component 420 calculates and / or stores (e.g., in a memory location corresponding to the lift calculation component 420) a measurement of how much the targeted content (e.g., generated by the targeted content generation component 308) influences a user to go to the relevant location compared to how likely the user would have gone to the relevant location without receiving the targeted content. The lift calculation is a change in conversion rate. Thus, the lift calculation can be the difference between an actual conversion rate (e.g., from the conversion rate calculation engine 412) and a baseline conversion rate (e.g., from the baseline calculation engine 416). The lift calculation component can be used to determine the impact of the targeted content on a user. For example, if the actual conversion rate is higher than the baseline conversion rate, the targeted content may have a positive impact on the user being driven to the relevant location based on the targeted content. Alternatively, if the actual conversion rate is the same as the baseline conversion rate, the targeted content may have no effect on driving the user to the relevant location. Alternatively, if the actual conversion rate is lower than the baseline conversion rate, the targeted content may have a negative impact on users being driven to relevant locations based on the targeted content.
[0043] Generally, the server 104 may receive multiple data sets, based on which multiple calculations may be performed. However, the multiple data sets may each be inaccessible by devices in communication with the server 104 and from which the respective data sets were not received. In this regard, a data set may be private to devices other than the device from which the data set is stored. The server 104 may be a clean room at which a set of data is received. However, only relevant calculations (e.g., conversion rates, lift calculations, etc.) are received from the server 104, not raw data that is accessible by multiple devices. The calculations performed by the server 104 may be based on a single service device and a single user device. Alternatively, the calculations performed by the server 104 may be based on multiple service devices and / or multiple user devices.
[0044] 5 illustrates an example use case 500 for matching user information between datasets while maintaining data privacy, according to certain aspects described herein. The use case 500 includes one or more users 502. The one or more users 502 may receive targeted content 504 from a service 506. The service 506 may be similar to one or more services associated with the service device 106 described earlier herein with respect to FIG. 1. The service 506 may be accessed, executed, presented, or otherwise provided via a first computing device 508.
[0045] After receiving the targeted content 504, the user 502 may be influenced to go to a venue or related location 510 based on the targeted content. The time between when the user 502 receives the targeted content 504 (e.g., watches the targeted content, listens to the targeted content, accesses the targeted content, etc.) and when the user 502 arrives at the related location 510 may fall within a conversion window 512 (e.g., a predefined duration). For example, the time when the user 502 arrives at the related location 510 may be subtracted from the time when the user 502 receives the targeted content, and the difference between these times may be compared to the conversion window 512. If the difference between these times is less than the value of the predefined conversion window 512, it may be determined that the user 502 arrived at the related location 510 within the predefined conversion window 512. The conversion rate is the number of instances in which a user 502 arrives at the relevant location 510 within a predefined conversion window 512. In some examples, the conversion window 512 during which a user 502 arrives at the relevant location 510 after receiving the targeted content 504 may be measured in minutes, hours, days, weeks, years, or any other duration that may be recognized by one of ordinary skill in the art.
[0046] The time that the user 502 arrives at the relevant location 510 may be based on location data received from a second computing device 514 associated with the user. For example, the computing device 514 may be a mobile computing device, such as a smartphone device, that includes a location sensor, such as a global positioning system (GPS). Additionally or alternatively, the computing device 514 may include a camera that receives image data and determines the relevant location based on the received image data. Additionally or alternatively, the location data for the computing device 514 may be received from a cellular tower, a WiFi network, short-range wireless frequencies, or any other technological interface through which location data may be received.
[0047] The location of interest 510 may be a park, or a restaurant, or a mall, or a convention center, or a store, or a residence, or a location within a virtual reality environment, or a website, or any other location that can be recognized by one skilled in the art. The physical location of interest 510 may have associated geographic coordinates. Thus, when the user 502 travels to the physical location of interest, the computing device 514 may generate a coordinate point or other location-based data to provide an indication of the user's 502 location (i.e., being at the location of interest 510). The virtual location of interest 510 may have an associated URL, or an IP address, or any other virtual positioning within a virtual environment that can be recognized by one skilled in the art. Thus, when the user 502 travels to or navigates to the virtual location of interest, the computing device 514 may generate an indication corresponding to the user's 502 location (i.e., being at the location of interest).
[0048] Generally, mechanisms disclosed herein may desire to match data corresponding to user 502 from service 506 against data corresponding to user 502 from computing device 514. However, an administrator of service 506 and an administrator of one or more applications on computing device 514 may not wish to share their information with each other in order to maintain secure privacy practices. Thus, a server (e.g., server 104 of system 100) may receive data corresponding to user 502 from both service 506 and computing device 514 without providing access to each other's respective data sets. In this regard, data corresponding to user 502 may be matched by mechanisms disclosed herein such that computations or other further processing may be performed using merged data from multiple affiliated sources (e.g., service 506 and applications running on computing device 514).
[0049] 6 illustrates an example method 600 according to some aspects described herein. The example method 600 may be a method of matching user information between data sets while maintaining data privacy. Additionally or alternatively, the example method 600 may be a method of determining the impact of targeted content between devices while maintaining data privacy. In an example, aspects of the method 600 are performed by devices such as the computing device 102, the server 104, and / or the service device 106 described above with respect to FIG. 1.
[0050] Method 600 begins at operation 602, in which location data corresponding to a first set of users at a location of interest, a first timestamp corresponding to the location data, and a first set of instructions each corresponding to a respective user from the first set of users are received, for example, from a first device. The first device may be a user's computing device, such as computing device 102 described earlier herein with respect to FIG. 1. In some examples, the first device may be a plurality of first devices, such as a plurality of computing devices each corresponding to a respective one of a plurality of users.
[0051] In some examples, a predefined conversion time may also be received. The predefined conversion time may be a time period specified by the service within which it is desired that the user visit an associated location. For example, a commercial entity may want a user to visit one of its stores within one week after receiving targeted content designed to influence the user to visit one of its stores so that the user may, for example, purchase a product. Alternatively, a gaming service may want a user to visit a park or a location within a virtual environment within a few hours after receiving targeted content so that the user may, for example, receive points or another type of reward.
[0052] The associated locations may be similar to the associated locations described with respect to location generation component 208. The first timestamp may be similar to the timestamp described with respect to timestamp generation component 212. Additionally, the first set of instructions may be similar to the user identification described with respect to user identification component 216. For example, the first set of instructions may be an identifier corresponding to the first set of users (e.g., a label unique to one or more users, an IP address, an identification number, etc.).
[0053] At operation 604, a second set of instructions corresponding to a second set of users and a second timestamp corresponding to when each user from the second set of users was provided with the targeted content are received, for example, from a second device. The second device may be a service device, such as the service device 106 described earlier herein with respect to FIG. 3. In some examples, the second device may be multiple second devices, each corresponding to a respective one of multiple services (e.g., a gaming service, a shopping service, a food delivery service, etc.).
[0054] The second timestamp may be similar to the timestamp described with respect to the timestamp generation component 312. Additionally, the second set of instructions may be similar to the user identification described with respect to the user identification component 316. For example, the second set of instructions may be an identifier (e.g., a label, an IP address, an account number, etc.) corresponding to the second set of users.
[0055] According to the mechanism disclosed herein, the first device cannot access the second set of instructions, and the second device cannot access the first set of instructions. Thus, the mechanism herein ensures that privacy is established for the data of the first device and the data of the second device. Such a technical effect is beneficial for generating reports and performing calculations based on multiple data sets that may belong to different entities, while still ensuring that user information is protected.
[0056] At operation 606, it is determined whether there are users in both the first user set (i.e., of operation 602) and the second user set (i.e., of operation 604). For example, an application on a computing device may store (e.g., in memory) location data information corresponding to users at a given time. Meanwhile, a service running on the computing device or on a separate device may store information about targeted content to be provided to users. It may be beneficial for the application and service to receive reports or calculations based on both of their data sets. Thus, a model may be trained to determine whether there are common users in both the first user set and the second user set. Such a model may be located in or determined based on a data matching component of a server, such as data matching component 408 of server 104.
[0057] If it is determined that there are no users in both the first user set and the second user set, the flow branches “NO” to operation 608, where a default action is performed. For example, none of the first user set may have received content data and therefore may be irrelevant to the second user set. In other examples, method 600 may include determining whether the first user set or the second user set has an associated default action, such that in some cases, no action may be performed as a result of the first user set and the second user set being received. Method 600 may end at operation 608. Alternatively, method 600 may return to operation 602 to provide an iterative loop that receives data corresponding to the first user set and data corresponding to the second user set and determines whether there are users in both the first user set and the second user set.
[0058] However, if it is determined that there are users who are in both the first user set and the second user set, the flow instead branches "YES" to operation 610, where a matched subset of users who are in both the first user set and the second user set is determined based on the first instruction and the second instruction.
[0059] At operation 612, an actual conversion rate is calculated from the matched subset of users based on the first timestamp and the second timestamp. For example, if the second timestamp corresponding to the first user is three days after the first timestamp corresponding to the first user, the conversion rate for the first user may be three days. Alternatively, the actual conversion rate may be the number of times a user goes to a related location within a preconfigured duration (e.g., a conversion window). For example, if the preconfigured duration is five days, the actual conversion rate may be the number of times a user goes to a related location within five days.
[0060] In some examples, a baseline conversion rate may be further calculated. The baseline conversion rate may be calculated by a baseline calculation component of a server, such as the baseline calculation component 416 of the server 104. The baseline conversion rate may be based on one or more characteristics of the first set of users. The one or more characteristics may include demographic attributes, such as age, gender, income, ethnicity, relationship status, and / or number of children. The one or more characteristics may further include an operating system of the first device (e.g., of the computing device 102). Additional and / or alternative characteristics may be recognized by those skilled in the art in light of the teachings previously described herein with respect to at least the baseline calculation component 416.
[0061] In operation 614, the change in conversion rate between the baseline conversion rate and the actual conversion rate is determined, thereby determining the impact of the targeted content. For example, if the actual conversion rate corresponds to users going to the relevant location within five days and the baseline conversion rate indicated that users were expected to go to the relevant location within five days, there may be no change in the conversion rate. However, if the actual conversion rate corresponds to users going to the relevant location within two days and the baseline conversion rate indicated that users were expected to go to the relevant location within five days, there may be a favorable change in the conversion rate. Unfavorable changes in the conversion rate may also be calculated so that they can be recognized.
[0062] Alternatively, if the actual conversion rate corresponds to the number of times a user goes to a relevant location within a preconfigured duration after receiving the content data, that number can be compared to an expected number corresponding to a baseline conversion rate. If the number from the actual conversion rate is greater than the number from the baseline conversion rate, the targeted content had a favorable effect on the conversion rate. The degree of effect the targeted content had on the conversion rate can be determined by the ratio between the actual conversion rate and the base conversion rate.
[0063] At operation 616, an output is provided. The output may be based on the change in conversion rate between the baseline conversion rate and the actual conversion rate. For example, the output may be a report that includes the extent to which the targeted content affected the actual conversion rate compared to the baseline conversion rate. Additionally, or alternatively, the output may include multiple reports that include the extent to which different types of targeted content affected the actual conversion rate.
[0064] Method 600 may end at operation 616. Alternatively, method 600 may return to operation 602 (or any other operation from method 600) to provide an iterative loop, such as receiving sets of data from the first and second devices, matching subsets of user data between both of those sets of data, and determining the impact of targeted content based on changes in conversion rates.
[0065] 7 illustrates an example method 700 according to some aspects described herein. The example method 700 may be a method of matching user information between data sets while maintaining data privacy. Additionally or alternatively, the example method 700 may be a method of determining the impact of targeted content between devices while maintaining data privacy. In an example, aspects of the method 700 are performed by devices such as the computing device 102, the server 104, and / or the service device 106 described above with respect to FIG. 1.
[0066] Method 700 begins at operation 702, in which location data corresponding to a first set of users at a location of interest, a first timestamp corresponding to the location data, and a first set of instructions each corresponding to a respective user from the first set of users are received from a first device. The first device may be a user's computing device, such as computing device 102 described earlier herein with respect to FIG. 1. In some examples, the first device may be a plurality of first devices, such as a plurality of computing devices each corresponding to a respective one of a plurality of users.
[0067] The associated locations may be similar to the associated locations described with respect to location generation component 208. The first timestamp may be similar to the timestamp described with respect to timestamp generation component 212. Additionally, the first set of instructions may be similar to the user identification described with respect to user identification component 216. For example, the first set of instructions may be an identifier corresponding to the first set of users (e.g., a label unique to one or more users, an IP address, an identification number, etc.).
[0068] At operation 704, a predefined conversion time, a second set of instructions corresponding to a second set of users, and a second timestamp corresponding to when each user from the second set of users was provided with the targeted content are received from a second device. The second device may be a service device, such as the service device 106 described earlier herein with respect to FIG. 3. In some examples, the second device may be a plurality of second devices, each corresponding to a respective one of a plurality of services (e.g., a gaming service, a shopping service, a food delivery service, etc.).
[0069] The predefined conversion time may be a time period specified by the service within which it is desired that the user visit an associated location. For example, a commercial entity may want a user to visit one of its stores within a week after receiving targeted content designed to influence the user to visit one of its stores so that the user can purchase a product. Alternatively, a gaming service may want a user to visit a park or location in a virtual environment within a few hours after receiving targeted content so that the user can receive points or another type of reward.
[0070] The second timestamp may be similar to the timestamp described with respect to the timestamp generation component 312. Additionally, the second set of instructions may be similar to the user identification described with respect to the user identification component 316. For example, the second set of instructions may be an identifier (e.g., a label, an IP address, an account number, etc.) corresponding to the second set of users.
[0071] According to the mechanism disclosed herein, the first device cannot access the second set of instructions, and the second device cannot access the first set of instructions. Thus, the mechanism herein ensures that privacy is established for the data of the first device and the data of the second device. Such a technical effect is beneficial for generating reports and performing calculations based on multiple data sets that may belong to different entities, while still ensuring that user information is protected.
[0072] At operation 706, it is determined whether there are users in both the first user set (i.e., of operation 702) and the second user set (i.e., of operation 704). For example, an application on a computing device may store (e.g., in memory) location data information corresponding to users at a given time. Meanwhile, a service running on the computing device or on a separate device may store information about targeted content to be provided to users. It may be beneficial for the application and service to receive reports or calculations based on both of their data sets. Thus, a model may be trained to determine whether there are common users in both the first user set and the second user set. Such a model may be located in or determined based on a data matching component of a server, such as data matching component 408 of server 104.
[0073] If it is determined that there are no users in both the first user set and the second user set, the flow branches “NO” to operation 708, where a default action is performed. For example, none of the first user set may have received content data and therefore may be irrelevant to the second user set. In other examples, method 700 may include determining whether the first user set or the second user set has an associated default action, such that in some cases, no action may be performed as a result of the first user set and the second user set being received. Method 700 may end at operation 708. Alternatively, method 700 may return to operation 702 to provide an iterative loop that receives data corresponding to the first user set and data corresponding to the second user set and determines whether there are users in both the first user set and the second user set.
[0074] However, if it is determined that there are users who are in both the first user set and the second user set, the flow instead branches "YES" to operation 710, where a matched subset of users who are in both the first user set and the second user set is determined based on the first instruction and the second instruction.
[0075] At operation 712, the difference between the first timestamp and the second timestamp is compared to a predefined conversion time to determine the number of users from the matched subset of users who were at the relevant location within the predefined conversion time after receiving the targeted content. For example, if the difference between a given user's timestamps is three days and the predefined conversion time is four days, the number of users who were at the relevant location within the predefined conversion time after receiving the targeted content is increased by one user's count. If the difference between a second user's timestamps is two days, the number of users who were at the relevant location within the predefined conversion time after receiving the targeted content has a total count of two users. This process can be repeated for each user in the matched subset of users.
[0076] At operation 716, the number of users is returned, as determined from the comparison of operation 712. Note that the number of users may be calculated without the first device receiving any data from the second device, and without the second device receiving any data from the first device.
[0077] Method 700 may end at operation 716. Alternatively, method 700 may return to operation 702 (or any other operation from method 700) to provide an iterative loop, such as receiving sets of data from the first and second devices, matching subsets of user data between both of those sets of data, and determining the number of users who were at the relevant location within a predefined conversion time after receiving the targeted content.
[0078] 8 shows a simplified block diagram of a device with which aspects of the present disclosure may be implemented. The device may be, for example, a mobile computing device. One or more of the present embodiments may be implemented within operating environment 800. This is only one example of a suitable operating environment and is not intended to suggest any limitation as to the scope of use or functionality. Other well-known computing systems, environments, and / or configurations that may be suitable for use include, but are not limited to, personal computers, server computers, handheld or laptop devices, multiprocessor systems, microprocessor-based systems, programmable consumer electronics such as smartphones, network PCs, minicomputers, mainframe computers, distributed computing environments that include any of the above systems or devices, and the like.
[0079] In its most basic configuration, operating environment 800 typically includes at least one processing unit 802 and memory 804. Depending on the exact configuration and type of computing device, memory 804 (e.g., instructions for one or more aspects disclosed herein, such as one or more aspects of methods / processes 600 and 700 described with respect to FIGS. 6 and 7, respectively) may be volatile (e.g., RAM), non-volatile (e.g., ROM, flash memory), or some combination of the two. This most basic configuration is illustrated in FIG. 8 by dashed line 806. Additionally, operating environment 800 may also include storage devices (removable 808 and / or non-removable 810), including, but not limited to, magnetic or optical disks or tape. Similarly, operating environment 800 may also have input devices 814, such as a remote control, keyboard, mouse, pen, voice input, on-board sensors, etc., and / or output devices 812, such as a display, speakers, printer, motors, etc. Also included within the environment may be one or more communications connections 816, such as a LAN, WAN, near-field communications network, cellular broadband network, point-to-point, and the like.
[0080] The operating environment 800 typically includes at least some form of computer-readable media. Computer-readable media may be any available media that can be accessed by at least one processing unit 802 or other devices that comprise the operating environment. By way of example, and not limitation, computer-readable media may comprise computer storage media and communication media. Computer storage media includes volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information such as computer-readable instructions, data structures, program modules, or other data. Computer storage media includes RAM, ROM, EEPROM, flash memory, or other memory technology, CD-ROM, digital versatile disks (DVDs), or other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage, or other magnetic storage devices, or any other tangible, non-transitory medium that can be used to store the desired information. Computer storage media does not include communication media. Computer storage media does not include carrier waves or other propagated or modulated data signals.
[0081] Communication media embodies computer-readable instructions, data structures, program modules, or other data in a modulated data signal such as a carrier wave or other transport mechanism and includes any information delivery media. The term "modulated data signal" means a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal. By way of example, and not limitation, communication media includes wired media such as a wired network or direct-wired connection, and wireless media such as acoustic, RF, infrared and other wireless media.
[0082] Operating environment 800 may be a single computer operating in a networked environment using logical connections to one or more remote computers. The remote computers may be personal computers, servers, routers, network PCs, peer devices, or other common network nodes, and typically include many or all of the elements described above, as well as others not so mentioned. The logical connections may include any method supported by available communications media. Such networking environments are commonplace in offices, enterprise-wide computer networks, intranets, and the Internet.
[0083] Aspects of the present disclosure are described above with reference to, for example, block diagrams and / or operational illustrations of methods, systems, and computer program products according to aspects of the present disclosure. The functions / acts noted in the blocks may occur out of the order shown in any flowchart. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending on the functions / acts involved.
[0084] The description and examples of one or more aspects provided in this application are not intended to limit or restrict the scope of the claimed disclosure in any way. The aspects, examples, and details provided in this application are deemed sufficient to convey proprietary rights and to enable others to make and use the claimed aspects of the disclosure. The claimed disclosure should not be construed as limited to any aspects, examples, or details provided in this application. Various features (both structural and methodological), whether shown and described in combination or separately, are intended to be selectively included or omitted to create embodiments with particular feature sets. Those skilled in the art, given the description and examples in this application, may envision variations, modifications, and alternative embodiments that fall within the spirit of the broader aspects of the general inventive concepts embodied in this application without departing from the broader scope of the claimed disclosure. [Explanation of symbols]
[0085] 100 systems 102 Computing Devices 104 Server 106 Service Devices 108 User Data Source 110 Service Data Source 112 communication network or network, network, communication network 114 User Data 116 Service Data 204, 304, 404 Communication Systems 208 Location Generation Engine or Component, Location Generation Component 212, 312 timestamp generation engine or component, timestamp generation component 216, 316 User identification engine or component, user identification component 308 Targeted content generation engine or component, Targeted content generation engine, Targeted content generation component 408 Data Matching Engine or Component, Data Matching Component 412 Conversion Rate Calculation Engine or Component, Conversion Rate Calculation Component, Conversion Rate Calculation Engine 416 Baseline Calculation Engine or Component, Baseline Calculation Component, Baseline Calculation Engine 420 lift calculation engine or component, lift calculation component 500 use cases 502 users 504 Targeted Content 506 Service 508 first computing device 510 Related Locations 512 Conversion Window 514 second computing device, computing device 800 Operating environment 802 Processing Unit 804 memory 806 dashed line 808 Removable 810 Non-removable 812 output devices 814 Input Devices 816 Communication Connections
Claims
1. receiving, from a first device, location data corresponding to a first set of users at a location of interest, a first timestamp corresponding to the location data, and a first set of instructions each corresponding to a respective user from the first set of users; receiving, from a second device, a second set of instructions corresponding to a second set of users and a second timestamp corresponding to when each of the users from the second set of users was provided with the targeted content; determining a matched subset of users in both the first user set and the second user set based on the first set of instructions and the second set of instructions; calculating an actual conversion rate for the matched subset of users based on the first timestamp and the second timestamp; determining a change in conversion rate between a baseline conversion rate and the actual conversion rate, thereby determining an impact of the targeted content; providing an output based on a change in the conversion rate between the baseline conversion rate and the actual conversion rate; A method for providing
2. The method of claim 1 , wherein the baseline conversion rate is calculated based on one or more characteristics of the first set of users, the one or more characteristics comprising demographic attributes.
3. The method of claim 1 , wherein the targeted content is content suitable for influencing a user to physically go to the relevant location.
4. 10. The method of claim 1, wherein the first device does not have access to the second set of instructions and the second device does not have access to the first set of instructions, thereby establishing privacy for the first device and the second device.
5. The method of claim 1 , wherein the first device is a plurality of first devices.
6. The method of claim 1 , wherein the second device is a plurality of second devices.
7. The method of claim 1 , wherein the first set of instructions and the second set of instructions are identifiers corresponding to the first set of users and the second set of users, respectively.
8. at least one processor; a memory for storing instructions, The instructions, when executed by the at least one processor, cause the system to perform a set of operations, the set of operations comprising: receiving, from a first device, location data corresponding to a first set of users at a location of interest, a first timestamp corresponding to the location data, and a first set of instructions each corresponding to a respective user from the first set of users; receiving from a second device a predefined conversion time, a second set of instructions corresponding to a second set of users, and a second timestamp corresponding to when each of the users from the second set of users was provided with the targeted content; determining a matched subset of users that are in both the first user set and the second user set; comparing the difference between the first timestamp and the second timestamp with the predefined conversion time to determine the number of users from the matched subset of users who were at the relevant location after receiving the targeted content within the predefined conversion time; returning the number of users who were at the relevant location within the predefined conversion time after receiving the targeted content; and A system comprising:
9. 9. The system of claim 8, wherein the matched subset of users is based on the first set of instructions corresponding to the first set of users and the second set of instructions corresponding to the second set of users.
10. The system of claim 8 , wherein the targeted content is adapted to influence a user to physically go to the relevant location.
11. 9. The system of claim 8, wherein the first device does not have access to the second set of instructions and the second device does not have access to the first set of instructions.
12. The system of claim 8 , wherein the first device is a plurality of first devices.
13. The system of claim 8 , wherein the second device is a plurality of second devices.
14. The system of claim 8 , wherein the first set of instructions and the second set of instructions are identifiers corresponding to the first set of users and the second set of users, respectively.
15. receiving location data corresponding to a first set of users at a location of interest, a first timestamp corresponding to the location data, and a first set of instructions each corresponding to a respective user from the first set of users; receiving a predefined conversion time, a second set of instructions corresponding to a second set of users, and a second timestamp corresponding to when each of the users from the second set of users was provided with the targeted content; determining a matched subset of users that are in both the first user set and the second user set; calculating a baseline conversion rate based on one or more characteristics of the first set of users, wherein the one or more characteristics comprise demographic attributes; calculating an actual conversion rate for the matched subset of users based on the first timestamp and the second timestamp; determining a change in conversion rate based on the baseline conversion rate and the actual conversion rate, thereby determining an impact of the targeted content; providing an output based on the change in the conversion rate; A method for providing
16. the location data corresponding to the first set of users at an associated location, the first timestamp corresponding to the location data, and the first set of instructions each corresponding to a respective user from the first set of users, all received from a first device; 16. The method of claim 15, wherein the predefined conversion time, the second set of instructions corresponding to the second set of users, and the second timestamp corresponding to when each of the users from the second set of users was provided with targeted content are all received from a second device.
17. The method of claim 16 , wherein the one or more characteristics further comprise an operating system of the first device.
18. The method of claim 15 , wherein the demographic attributes comprise one or more of age, gender, income, ethnicity, relationship status, and number of children.
19. 16. The method of claim 15, wherein the targeted content is adapted to influence a user to physically go to the relevant location.
20. 16. The method of claim 15, wherein the matched subset of users is based on the first set of instructions corresponding to the first set of users and the second set of instructions corresponding to the second set of users.