EP-4460751-B1 - ON-DEVICE IDENTITY RESOLUTION SOFTWARE DEVELOPMENT KIT
Inventors
- VIKTOROVIC , Milos
- BAARSMA, Niels
- MEYERS, Ian
- DUNCAN, JOSEPH SHANNON
Dates
- Publication Date
- 20260506
- Application Date
- 20230131
Claims (15)
- A method for providing on-device identity resolution, the method comprising the steps of: at a resolution provider, receiving a plurality of audience member records; resolving each of the plurality of audience member records to an audience member link to create a plurality of audience member links; mapping each of the audience member links to a corresponding hashed personal identifier to create a data structure; pseudonymizing the data structure to produce a plurality of pseudonymized hashed personal identifiers; at an at least one Bloom filter comprising a bit vector comprising a plurality of bits, for each of the pseudonymized hashed personal identifiers, setting each bit in the bit vector at the index to the pseudonymized hashed personal identifier to a value of 1; transmitting the at least one Bloom filter to a software development kit,SDK, on a user device, wherein the SDK comprises an app; at the app, receiving from a publisher an item of personal information,PI,; creating a token from the item of PI; querying the token against the at least one Bloom filter to determine a match result or no-match result; sending the result from the query to an ad exchange; if the result is a match, flagging a pre-defined deal identifier corresponding to a particular message audience; and receiving from the publisher a conversion event.
- The method of claim 1 , wherein the item of PI is an email address or a telephone number and wherein the conversion event comprises no PI.
- The method of claim 2, further comprising the step of allocating through the app an amount of storage on the user device for the at least one Bloom filter.
- The method of claim 3, wherein the step of allocating through the app an amount of storage on the user device is performed through a remote management platform, further comprising the step of sending a Deal ID and an expiration date for the at least one Bloom filter to the app.
- The method of claim 4, further comprising the step fetching an online configuration for the SDK from the remote management platform using an application programming interface,API, key,the method further comprising the steps of creating the at least one Bloom filter as a JavaScript Object Notation, JSON, object, and then converting the JSON object to a binary form using Bloom filter metadata.
- The method of claim 5, wherein the at least one Bloom filter is selected from among a plurality of Bloom filters through the remote management platformthe method further comprising the step of receiving from the publisher a user identifier, wherein the user identifier is either a deal ID or an identity envelope.
- The method of claim 6 , further comprising the step of synchronizing the at least one Bloom filter by deleting all deal IDs for the at least one Bloom filter if the at least one Bloom filter has been deleted or updated.
- The method of claim 7, wherein the step of synchronizing the at least one Bloom filter further comprises the step of receiving a Bloom filter identifier and updating a last-accessed register with the Bloom filter identifier.
- The method of claim 8, wherein the Bloom filter identifier is a variable type integer, a hashed string, a last-accessed field, or a type field comprising a telephone number, email address, or customer ID.
- The method of claim 7, further comprising the step of performing an SDK refresh on initialization and one each event where the app is sent from background to foreground on the user device.
- The method of claim 10, wherein the step of performing an SDK fresh further comprises deleting the at least one Bloom filter if the at least one Bloom filter is expired.
- The method of claim 1 , wherein the match result comprises a probabilistic result.
- The method of claim 12, further comprising the step of limiting the rate of calls to the at least one Bloom filter.
- A system for providing on-device identity resolution, comprising: a Software Development Kit (SDK) on a user device, wherein the SDK comprises a Bloom filter, and further wherein the Bloom filter comprises a bit vector comprising a plurality of bits; wherein the SDK further comprises an app configured receive an item of personal information, PI, from a publisher, use the item of PI to determine if a match occurs within the Bloom filter to create a result, and sending the result to an ad exchange; and a remote development platform configured to allocate an amount of storage on the user device for the Bloom filter and to return an online configuration for the SDK in response to a call with an application programming interface, API, key.
- The system of claim 14, wherein the app further comprises a rate limit meter configured to limit calls to the Bloom filter.
Description
CROSS-REFERENCE TO RELATED APPLICATIONS This application claims the benefit of U.S. provisional patent application no. 63/306,326, filed on February 3, 2022. BACKGROUND The field of the invention is software development kits (SDKs) for applications that use mapping on a client device to enable targeted messaging without sending any personal information concerning a user of the device off of the device. Traditional targeted messaging requires that personal information (PI) from a user be sent from the user's electronic device (computer, smartphone, tablet, etc.) to a server in remote communication with this client device. This remote device may be operated by a party that wishes to send a targeted message, or may be a supply-side platform (SSP), demand-side platform (DSP), or other network, that provides services to the party who wishes to send the targeted message. Often, the means by which information is sent from the user's electronic device is an SDK, which may consist of a library that is bundled into the software application or "app" that is installed on the device. The SDK may be specific to a particular hardware and operating system combination. Ultimately, the party who publishes and maintains the operating system for the electronic device controls the ability of any app to send PI from the user's electronic device to any remote device. For example, Apple Computer publishes the iOS operating system used on the company's iPhone smartphones and iPad tablet devices, and Microsoft Corporation publishes the Windows operating system used on many personal computers. Should these companies or other operating system providers modify their operating systems or operating system policies in ways that restrict the ability of apps to send PI from the client device on which the operating system is installed to a remote device, then apps that depend upon this ability will cease to function properly, and will no longer work to provide targeted messages to the electronic device that are viewable by the user. In one example, Apple's App Tracking Transparency (ATT) framework provides a notification to a user when an app is downloaded or opened, asking the user if the user wishes to be tracked across third-party apps and websites. SDK developers within the Apple framework must comply with the user's requests as recorded by the ATT framework. A great many of the services available through the World Wide Web and a great many apps that interact through the Internet are provided free of charge to the user. The business model for these services and apps thus depends upon the ability to deliver targeted messages to the user of the electronic device, because the funding to provide these services and apps is derived from the parties who wish to send these targeted messages. Without the ability to send targeted messages, many of these services and apps upon which users depend will no longer be economically feasible due to the loss of revenue, and will thus disappear. The users of these electronic devices will thus suffer the disadvantage of losing services and apps that they currently enjoy. Likewise, although messages will likely still appear, the messages will not be targeted, and thus will be of less interest to the user than targeted messages directed to the client device. For this same reason these messages will be of less value to the party who purchased the right to deliver the message, and therefore the quality and quantity of such apps will diminish. The inventors hereof have recognized that if an operating system restricts the sending of PI from a user electronic device to a remote device, then it would be desirable to develop a system and method for providing targeted messages that does not require PI to be sent from the user electronic device to any remote device. But without sending PI from the client device, there must be some means by which targeting of the message can take place in order to avoid the problems just discussed, and it would be desirable to develop an SDK to facilitate this functionality. References mentioned in this background section are not admitted to be prior art with respect to the present invention. SUMMARY The present invention is directed to an SDK for a system and method for providing targeted messages from a remote electronic device to a user electronic device (i.e., client device) through an app installed on the client device, but which operates without sending any PI from the client device to any remote device. In certain implementations of the invention, a set of Bloom filters are created from data about those who wish to send targeted messages. These may, in certain implementations, be mapped to specific app bundle identifiers for efficient, targeted download to groups of user devices. Bloom filters are a highly space-efficient data structure, such that reasonable bandwidth and storage limits for sending data to apps on the client device may be met. User logins / matched identifiers ma