Enhancing user identification with privacy protection across multiple web servers - Patents.com

JP2024515476A5Active Publication Date: 2025-04-15FANPLAYR INC
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
JP2023559120
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Priority Date
2022-03-14
Filing Date
2022-04-06
Publication Date
2025-04-15
Estimated Expiration
2042-04-06

AI Technical Summary

Technical Problem

Existing technologies face challenges in effectively identifying users across multiple websites without compromising user privacy, as third-party cookies are being phased out by browser vendors, limiting the ability of ad networks and third-party scripts to track users.

Method used

Implementing a privacy ID system that uses server-side, HTTP, and same-site cookies to generate unique user IDs for each third-party API key, allowing third-party services to identify users within the browser while respecting user privacy by masking identities across websites.

Benefits of technology

Enables accurate user identification across multiple visits to a website, reduces the footprint of third-party apps, and maintains user privacy by controlling which services have access to user IDs, complying with regulations like GDPR and CCPA.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 00000000_0000_ABST
    Figure 00000000_0000_ABST
Patent Text Reader

Abstract

The technique limits the sharing of visitor identity information across multiple websites and teaches that a visitor's browser receives a page from a visited website server having a privacy script running within the browser that interfaces with a Privacy ID server and a third-party app that requests visitor identification. The privacy script running on the browser retrieves a first-party cookie containing the visitor ID, forwards the cookie to a Privacy ID server, receives from the Privacy ID server a site-by-app unique ID for one of the visited sites and apps, and provides the site-by-app unique ID for each server to each third-party app, but the visitor ID is not provided to those apps, thereby allowing tracking of the visitor on return visits to the visited site, but not facilitating identification of the visitor across multiple sites. The site-by-app unique ID for a visitor is distinct and uncorrelated between different pairs of websites and third-party apps.
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] <Priority claim> This application claims priority to U.S. Provisional Patent Application No. 62 / 172,036 (Attorney Docket No. FANP 1001-1), filed April 7, 2021, entitled “Enhanced User Identification with Privacy Protection Across Multiple Web Servers,” which claims the benefit of U.S. Provisional Patent Application No. 17 / 694,587 (Attorney Docket No. FANP 1001-2), filed March 14, 2022, entitled “Enhanced User Identification with Privacy Protection Across Multiple Web Servers.” <Related incidents>

[0002] This application is related to U.S. patent application Ser. No. 17 / 195,475, filed March 8, 2021, and entitled "Method and System for Segmentation as a Service" (Attorney Docket No. FANP 1000-9).

[0003] This application is also related to U.S. patent application Ser. No. 17 / 195,475, filed June 27, 2018, entitled "METHOD AND SYSTEM FOR SEGMENTATION AS A SERVICE" (now U.S. Patent No. 10,958,743, issued March 23, 2021).

[0004] The relevant case is incorporated herein by reference for all purposes. [Background technology]

[0005] Browser vendors have started to make privacy a key focus. To ensure privacy and limit tracking of users across the Internet, users have introduced restrictions on cookie lifespan, third-party cookie expiration, URL decoration, and even completely blocking tracking scripts that are considered harmful to users' privacy. Next year (2021), support for third-party cookies will be removed, meaning most tracking services will face an uphill battle to track users in a meaningful way.

[0006] There are many competing proposals, with large ad networks / solution providers proposing various identification mechanisms. Most of the proposals are aimed at tracking users across multiple sites, and attempt to maintain the status quo for ad networks. This approach relies on many networks and publishers to sign up for it to be useful. The larger "standard" is to expect end users to create a single account on the third-party site and then log in using that account on all publisher sites. This is the equivalent of "Sign in with Google" or "Sign in with Facebook".

[0007] One of the biggest challenges facing ad networks and third-party scripts on sites is the loss of the ability to track users using cookies, which means that they can no longer effectively identify users across visits.

[0008] An opportunity arises to help sites continue to leverage third-party services while maintaining user privacy in a manner that complies with the intent of changes made by browser vendors, including masking user identities across multiple web servers. Summary of the Invention

[0009] The disclosed technique relates to limiting the sharing of visitor identity information across multiple websites following the elimination of third-party cookies. This includes a privacy script running within the visitor's browser and interfacing directly or indirectly with a Privacy ID server, and receiving a web page from the visitor's browser containing one or more third-party apps requesting visitor identification from the server of the visited website. The disclosed method also includes a privacy script running within the browser that retrieves a first-party cookie containing the visitor ID, the privacy script forwarding directly or indirectly at least a portion of the first-party cookie to the Privacy ID server, and the privacy script receiving from the Privacy ID server a site-by-app unique ID for the visitor that is distinct and uncorrelated for different pairs of websites and third-party apps. Further included is providing each third-party app with a site-by-app unique ID of the respective server without providing the third-party app with the visitor ID, thereby allowing the visitor to be tracked during repeat visits to the visited website, but not facilitating identification of the visitor across multiple websites. Also included is the ability to provide site visitors with services such as "do not track" or "forget me" that are valid for that site and any and all third party apps on that site. The disclosed system further includes an arbiter of user identification for any website in addition to helping map services to ensure data exchange.

[0010] A system and method for masking user identities across multiple web servers includes a crypto-ID script executing in a browser and interfacing directly or indirectly with a crypto-ID server, and further includes receiving a web page from the server that includes one or more apps. Also disclosed is a crypto-ID script executing in the browser that retrieves a cookie that includes a user ID, a crypto-ID script that directly or indirectly forwards at least a portion of the cookie to the crypto-ID server, and a crypto-ID script that receives from the crypto-ID server a distinct and uncorrelated server-by-app unique ID for distinct triplets of user, web server, and app. Also disclosed is providing each server-by-app unique ID to each app without providing a user ID to the app.

[0011] As used in this context, website refers to browsers on desktop machines, mobile devices, and IoT devices, as well as mobile apps on iOS and Android platforms.

[0012] Particular aspects of the disclosed technology are set forth in the claims, the specification, and the drawings. [Brief description of the drawings]

[0013] The accompanying drawings are for illustrative purposes and serve only to provide examples of possible structure and processing operations for one or more embodiments of the present invention. These drawings are in no way intended to limit any variations in form and detail that may be made by one skilled in the art without departing from the spirit and scope of the present disclosure. A more complete understanding of the present invention can be obtained by reference to the detailed description and claims when considered in conjunction with the following drawings, in which like reference numerals refer to like elements throughout the drawings.

[0014] [Figure 1]1 illustrates a block diagram of an exemplary embodiment for limiting visitor identity information sharing and history sharing across multiple websites following the elimination of third-party cookies, in accordance with one implementation of the disclosed technology.

[0015] [Diagram 2] A message diagram of the process for limiting visitor identity and history sharing across multiple websites, followed by the elimination of third-party cookies.

[0016] [Diagram 3] Following the elimination of third-party cookies, a message diagram of an alternative process for limiting the sharing of visitor identity information and history across multiple websites is shown.

[0017] [Figure 4] A message diagram of another method of masking user identity across multiple websites using CryptoID scripts.

[0018] [Diagram 5] FIG. 1 illustrates a block diagram of an exemplary system suitable for implementing restrictions on sharing of visitor identity information and history sharing across multiple websites following the rejection of third-party cookies, in accordance with one embodiment of the disclosed technology. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0019] The following detailed description is provided with reference to the drawings. Exemplary embodiments are described to illustrate the disclosed technology, not to limit its scope, which is defined by the claims. Those skilled in the art will recognize various equivalent variations to the following description.

[0020] Ad networks and third-party scripts on sites will no longer be able to track users using third-party cookies, given the current restrictions placed on them by browsers. This means that they will no longer be able to effectively identify users across visits. With many browser restrictions in place and planned, most third-party services will have a hard time identifying users.

[0021] The disclosed technology for Enhanced User Identification (EUI) utilizes a Privacy ID to provide a unique user ID to third-party services, helping them better identify users and use first-party data in-browser and in real-time. EUI is implemented using server-side, HTTP, secure, and same-site cookies, effectively identifying users across visits. By generating and maintaining a Privacy ID-mapped unique ID for each third-party API key, the disclosed technology eliminates the need for third-party scripts to track visit history individually. The disclosed technology can result in a reduction in the size of a website footprint for third-party apps, which could expand dramatically in a world without third-party cookies.

[0022] The disclosed Privacy ID technology is an arbiter of user identification for any website and a system that assists in the mapping of services to ensure data exchange between services. Using this system, third-party services on the site can continue to identify repeat users as necessary to maintain their services without generating a single ID to track users across multiple sites, thus providing privacy to users and ensuring that the data remains first-party. Using the disclosed system, websites can focus on and improve the quality of their first-party data using a single integration that allows them to identify users, new and repeat, across multiple services integrated into the website while protecting the privacy of visitors.

[0023] The disclosed technology for Privacy ID identifies a user on a particular website and browser and maintains a unique, service-specific version of the User ID to be shared with each service. This allows websites to control which services have access to the User ID and respects user privacy because it prevents Fanplayr from identifying users across multiple websites. An exemplary system for limiting the sharing of visitor identity information across multiple websites and masking user identities across multiple web servers is then described. <Architecture>

[0024] FIG. 1 illustrates a system 100 for limiting information sharing and controlling history sharing across multiple websites, followed by removal of third-party cookies. The disclosed system utilizes a single service to monitor and track users and data, identify users in a first-party context while respecting browser constraints, and ensure compliance with General Data Protection Regulations (GDPR), California Consumer Privacy Act (CCPA), "forget me" requests, etc. Because FIG. 1 is an architecture diagram, certain details have been intentionally omitted for clarity of explanation. The discussion of FIG. 1 is structured as follows: first, the elements of the diagram are described, followed by their interconnections. Next, the use of the elements of the system is described in more detail.

[0025] The system 100 includes a Privacy ID server 106 with a User ID generator 116 for generating a unique User ID for a service and site combination. The Privacy ID server 106 also includes an Analytics server 126 for retrieving the same unique User ID generated on the first visit, and a cache memory 136 for storing visitor data and account settings. The Analytics server 126 can accumulate data across distributed computers for many visitors visiting many websites. The Analytics server 126 assigns a tag to the visitor's session and transmits the ID via a callback address registered with the web page. The Analytics server 126 accumulates data about the visitor's activities during the website session and analyzes metrics that track the progress of the session.

[0026] The system 100 also includes a PrivacyID data store 144 for storing user data and analysis results, and a PrivacyID interface script 146 for use by the customer's web server. Customers enable browser and privacy-compliant user identification for on-site services by uploading templates, provided in a common programming language, to the customer's web server 156 via the PrivacyID server 106 to integrate the service. In another embodiment, customers can use the templates as a blueprint for writing their own integration scripts to complete the integration of third-party apps by using JavaScript injection into the website. The process flow is described below in conjunction with FIG. 2.

[0027] The system 100 utilizes a web server 156 that delivers a web page 178 for user interaction via a browser 185. The web server 156 receives data from the web page via the network 145 using the identified callback address and instrumentation code for callback registration. The web server 156 has a privacy script 166 to integrate the customer's browser experience over time. The web server 156 also has an Extended User Identification (EUI) / Privacy ID SID data store 168 for storing a unique user ID to a third party service. The EUI is implemented using server-side, HTTP, secure, and same-site cookies, effectively identifying the user across visits. The Privacy ID server 106 receives a set of instrumentation values ​​from the user session with the web page 178 along with a callback API for delivering the results.

[0028] The system 100 further includes a user computing device 165 having a graphical user interface (GUI) implementation 175 that provides a display layer for the user laptop or desktop computer 142 and the mobile device 164. The user computing device 165 utilizes the instrumentation code to generate an administrative interface that an administrator uses to configure and manage the system. The administrator can provide additional information about the third-party scripts and request the creation of a unique API key for each third-party service they wish to enable. One embodiment includes an extensive display toolkit that allows customers to easily create a wide range of message placements in the form of interstitial banners, interactive sliders, flyouts, and overlays. The user computing device 165 includes a web browser 185 for displaying web pages 178 delivered by the web server 156 for the visitor. The browser 185 delivers third-party applications, such as ad network 1 186, ad network 2 188, and analytics providers 196, such as Google Analytics, as third-party services available to the customer along with the web pages 178. Each third-party service has a unique user ID associated with it, and the privacy script 176 obtains measurements from the user's session with the web page 178 and the third-party service. In some implementations, the browser can include Microsoft Edge, Google Chrome, Apple Safari, Mozilla Firefox, and the like. In some implementations, the user computing device 165 can be a personal computer, a laptop computer, a tablet computer, a smartphone, an Internet of Things (IoT) device, a digital image capture device, a personal digital assistant (PDA), and the like. The management functions can also include retiring services, as needed. When retiring, a service that requests a user ID is not given an ID, thereby giving the administrator full control over the site as it configures and manages the system.Depending on the services using the system, the site can enable data exchange. In one example, a company with intent to leave can reply to the system with their email address and the site can decide to share it with the Customer Data Platform (CDP) system. The Privacy ID Interface Script 146 includes a repository of scripts on a website that can be used to provide end users of the website with “privacy settings” options. These settings allow users to turn on / off tracking for individual scripts or overall for all scripts and can be used as support for GDPR and CCPA. “Forget me” requests (GDPR, CCPA) can be handled from one place since the request from the user can be easily broadcast to all services using the system and pass the respective ID to them. The disclosed system can also be integrated into privacy consent frameworks such as the Interactive Advertising Bureau (IAB) Transparency and Consent Framework to provide a single click solution for end users to grant or revoke permission.

[0029] In some embodiments, network 145 may be any one or combination of a local area network (LAN), a wide area network (WAN), WiFi, WiMAX, a telephone network, a wireless network, a point-to-point network, a star network, a token ring network, a hubbed network, a peer-to-peer connection such as Bluetooth, Near Field Communication (NFC), Z-Wave, ZigBee, or any other suitable configuration of data network including the Internet.

[0030] The system 100 further includes a PrivacyID master data store 104 that connects to the PrivacyID server via a network 145. In some implementations, the data store can store information from one or more tenants in tables of a common database image to form an on-demand database service (ODDS), which can be implemented in many ways, such as a multi-tenant database system (MTDS). The database image can include one or more database objects. In other implementations, the database can be a relational database management system (RDBMS), an object-oriented database management system (OODBMS), a distributed file system (DFS), a no-schema database, or any other data storage system or computing device.

[0031] FIG. 2 shows a message diagram of a process for limiting information sharing and history sharing across multiple websites following the rejection of third-party cookies. A user requests a web page and the browser 185 sends a web page request to the web server 156 to load the PrivacyID script, and optionally provides details to help re-identify the repeat user. The web server 156 retrieves (216) a secure HTTP cookie and provides the secure cookie and details to help re-identify the repeat user including the cookie value to request (236) the PrivacyID script from the PrivacyID server 106. The PrivacyID server 106 retrieves (246) the mapped service ID (SID) and details from the cache memory 136 and / or the PrivacyID data store 144. The PrivacyID server 106 returns (256) structured data with the SID map and script to the web server 156. The web server 156 sends (266) the PrivacyID script along with the SID map to the web page 178 at the browser 185.

[0032] Continuing with the description of the message diagram of FIG. 2 for limiting information and history sharing across multiple websites, the web page 178 loads (272) the third-party service script. The third-party services 186, 188, 196 request (276) service IDs (SIDs) from the Privacy ID script 176 running in the browser 185. Each service identifies itself using an assigned API key and provides other details to be shared, if desired. The third-party services 186, 188, 196 register callbacks for asynchronous responses. The Privacy ID script 176 in the browser 185 looks up (286) the SID for the requested service in the SID map received from the web server 156 and calls (296) each service callback with the SID. If no SID exists for the API key, an SID is generated, which is then updated in the next step. The web page is executed and visualized in the browser 185. The disclosed Privacy ID scripts are typically implemented in JavaScript that embeds code for the disclosed functions on a web page. The browser 185 configures a callback function that reflects the selection specified by the website operator. In one embodiment, the callback function can activate a chatbot, an email service, an SMS messenger service, a survey service, or other desired response to a visitor to the website. The website operator exposes one or more callback functions that are visualized and executed at a later time. In one embodiment of the disclosed technology, the website operator embeds code that registers a listener on each of their website pages. They can register multiple listeners depending on how they want to handle the event.

[0033] In one embodiment, the callback function can initiate a call using a third-party service to display a chat window or show a popup requesting the user to subscribe to a newsletter. In other embodiments, a third-party service that protects the integrity of sensitive secure data such as the user's personal information can be implemented as the callback function. In still other cases, the callback function can initiate a call to a research software tool or a news media distribution service or a credit calculator. Further embodiments can include a call to a set of insurance-related tools to assess risk and calculate rates. The reader may envision additional software tools that may also be instantiated by the callback function.

[0034] Below are examples of how the Fanplayr User ID (FID) and Service User ID (SID) are represented. The FID is unique per user, and the SID is unique per service. Sample FID: 5.bwsmcrcIGkPY4yE8LoO.1574662629 Sample SID: PID.1.aND59wuPDpDZoFRBVZ8.1598301024

[0035] Below is an example of a script embedded in a website page: <script> / *** FanplayrプライバシIDキュー(Google Analyticの「dataLayer」と同様)* ウェブサイトは、これをページ上に可能な限り高く配置する必要がある。* / window._fpidq = window._fpidq|| [];

[0036] ウェブページによって規定されるこの便利な方法では、サードパーティ·サービスによって使用されるプライバシIDの詳細は抽象化されるので、サードパーティ·サービスはプライバシIDがどのように機能するかを知る必要がない。サードパーティ·サービスは、APIキーとコールバックを単に渡すことができる。function getIdentifiedUser(apiKey, callback) {window._fpidq.push({method: 'identify',apiKey: apiKey,callback: callback})}< / script>

[0037] Below is an example of a third-party script calling the PrivacyID API: getIdentifiedUser('DzvOVJQH91TumGL2urPHPQSxUbf67vs0', function(sid) { console.log('Google Analytics received SID : ', sid); });

[0038] Below is an example of FID cookie content: 5.bwsmcrcIGkPY4yE8LoO.1574662629

[0039] Below is an example of a script on a customer web server. In this document, the Fanplayr server is also referred to as the Privacy ID Server 106. The Account Key is a JavaScript string that serves as a customer ID that identifies the customer website from which data was collected and specifies the current attributes associated with the user of the web page. / / Your account key uniquely identifies your website to the Fanplayr service const accountKey = 'd78978e96ac813947382f21ed7324228'; / / The cookie name to be used const userKeyCookieName = 'fanplayr'; / / Get the user-keys cookie from the browser request. const userKey = req.cookies[userKeyCookieName]; / / Look up users and services on a remote Fanplayr server. const result = await lookupUserAndServices( accountKey, userKey ); / / Update the user keys cookie const expires = new Date(); expires.setFullYear(expires.getFullYear() + 1); res.cookie(userKeyCookieName, result.userKey, { expires, path: ' / ', httpOnly: true, secure: true, sameSite: 'strict' }); / / Output the script incorporating the service. / / NOTE: The script content returned by the Fanplayr service contains a sidMap. res .header('content-type', 'application / javascript; charset=utf-8') .header('cache-control', 'must-revalidate') .send(result.scriptContent);

[0040] Below is an example of the FID and script content that is returned: { "fid": "5.bwsmcrcIGkPY4yE8LoO.1574662629", "scriptContent": "(function(){const SERVICE_USERS={\"DzvOVJQH91TumGL2urPHPQSxUbf67vs0\":\"PID.1.aND59wuP DpDZoFRBVZ8.1598301024\"};const queue=window._fpidq=window._fpidq||[];const handlers={identify(event){const userKey=SERVICE_USERS[event.apiKey]||null;if(event.callback){event.callback(userKey) }}};function processEvent(event){const handler=handlers[event.method];if(handler){handler(event)}} queue.push=function(event){processEvent(event)};for(const event of queue){processEvent(event)}}())" }

[0041] Exemplary JavaScript scripts for invoking each service callback with its respective SID are listed below using an easy-to-read version of the "script-content" property returned in the example above. Different scripting languages ​​can also be used to provide the disclosed functionality. (function() { / / This is a sidMap containing one sid per API key. const SERVICE_USERS = { "DzvOVJQH91TumGL2urPHPQSxUbf67vs0": "PID.1.aND59wuPDpDZoFRBVZ8.1598301024" }; const queue = window._fpidq = window._fpidq || []; const handlers = { identify(event) { const userKey = SERVICE_USERS[event.apiKey] || null; if (event.callback) { event.callback(userKey); } } }; function processEvent(event) { const handler = handlers[event.method]; if (handler) { handler(event); } } / / Redefine the native array 'push' method so that it can detect new elements. / / addition. queue.push = function(event) { processEvent(event);}; }; / / Process the first queued event. for (const event of queue) { processEvent(event); } }());

[0042] In one embodiment, two sets of clusters of servers (one on the East Coast and one on the West Coast) provide faster response to browsers so that their data can be redirected to w1.fanplayr.com or e1.fanplayr.com depending on the geographic location of the website visitor, where w1 is West and e1 is East. In one embodiment, the analytics are processed in the cloud.

[0043] FIG. 3 shows a message diagram of an alternative process for masking user identities across multiple web servers and controlling the sharing of information and history across multiple websites following the elimination of third-party cookies. A user requests a web page and the browser 185 loads (305) the Privacy ID script in the web page 178, optionally providing details that help re-identify repeat users. The web page 178 loads (324) the third-party service script. The Privacy ID script 176 fetches (336) the secure FID cookie from the web server 156, which returns (346) either an FID value or nothing. If nothing is returned, the user of the web page 178 must establish a secure connection with the Privacy ID server 106.

[0044] Continuing with the description of the alternative process for masking user identity across multiple web servers, as shown in FIG. 3 , after the FID is returned from the web server 156, the third party services 186, 188, 196 request (354) a service ID (SID) from the Privacy ID script 176 running in the browser 185. Each service identifies itself using an assigned API key and, optionally, provides other details to share. The third party services 186, 188, 196 register a callback for an asynchronous response. The Privacy ID script 176 passes (358) information to the Privacy ID server 106. This may or may not include the FID, web push notification information, customer ID, email, SMS, etc. The Privacy ID server 106 returns (368) the FID and the API key for the SID to the Privacy ID script 176. The PrivacyID Server 106 in the Browser 185 updates (376) the secure FID cookie in the Web Server 156 and invokes (384) each service callback with the respective SID. If a SID for the API Key did not exist, one is generated and the SID is updated in the next step. The PrivacyID Script 176 running in the Browser 185 stores (398) any newly generated SIDs for the API Key in the PrivacyID Server 176.

[0045] We then describe an example use case of the system utilizing the disclosed controls over information and history sharing across multiple web servers, followed by the elimination of third-party cookies to mask user identities across multiple web servers. <Example of use case>

[0046] Analytics Services: Data and analytics have become a very important aspect of running websites and online businesses. Building analytics for websites is expensive, and therefore websites choose to use third-party services to help them understand the traffic to their websites. Most analytics services, such as Google Analytics, Mixpanel™, etc., require simple integration into websites using JavaScript injections. These scripts capture the data they deem necessary and pass the captured data to the server. To be effective and provide a good service to website operators, it is essential that analytics services can accurately identify visitor traffic. Privacy policies, browser constraints, and other technical limitations make it difficult for such services to do so.

[0047] Using Fanplayr's Privacy ID, third-party analytics services can more accurately identify users, making the data services they provide more meaningful to websites and businesses.

[0048] The following list provides examples of how the disclosed Fanplayr Privacy ID may be used to identify users for Google Analytics, assuming the Fanplayr Privacy ID script is enabled on the web page: / / This line inserts the Google Analytics script into your site. <script async src="https: / / www.googletagmanager.com / gtag / js?id=G- KMQ6G8H6N7">< / script> / / This block is required by Google Analytics to initialize the service. <script>window.dataLayer = window.dataLayer || [];function gtag(){dataLayer.push(arguments);}}gtag('js', new Date());gtag('config', 'G-XXXXXXXXXX');< / script> / / This is the additional code needed for GA to use the Fanplayr privacy ID <script>getIdentifiedUser('<PRIVACY-ID-API-KEY-FOR-GA>', function(sid) {window.dataLayer.push({'userId' : sid});});});});< / script>

[0049] Website Chat Services: In today's world, it has become a major feature to provide users with the ability to find answers to any questions they may have via chat. Sites integrate with AI services to provide chatbots that help answer questions. Although very useful, it is a very impersonal service and users do not feel connected to the site even when they receive an answer to their question.

[0050] By using Fanplayr's Privacy ID, third-party chatbot services can more precisely identify users, making the services offered by them more meaningful and personal to the website's users. For example, when identifying a repeat visitor, the chatbot can start with a simple but personal message like "Hey, welcome back!" To extend this use case, with a precisely identified user, it is also possible for the chatbot to access the user's history with the website, making the interaction more contextual and relevant to the user.

[0051] The following list provides examples of how the disclosed Fanplayr Privacy ID may be used to identify users of chatbot services, assuming the Fanplayr Privacy ID script is enabled on the web page: / / This line injects the chatbot service into your site <script async src="https: / / www.chatbotservices... ">< / script> / / This is the additional code required for the service to use the Privacy ID. <script>getIdentifiedUser('<PRIVACY-ID-API-KEY-FOR-CHATBOT>', function(sid) {window.dataLayer.push({'userId' : sid});});});});< / script>

[0052] Linked Service List Requests: Performing the role of User ID arbiter, Privacy ID is uniquely positioned to be able to provide website users with information about the scripts on the site that have requested service IDs and the specific user's service IDs provided for each of the scripts / services. This can help websites provide transparency to their users. In combination with Fanplayr's targeting solution, a widget can be displayed to the user that lists the services and allows the user to enable / disable specific service IDs.

[0053] Linked Service Data Requests: The GDPR, CCPA, and other regional privacy laws provide a set of rules that websites must follow. One common requirement of such regulations is that website users can request the website to provide them with information collected by them or by third-party services acting on their behalf. Most websites offer mechanisms that are detailed in their privacy policies. In most cases, such data requests must be sent by email or postal mail. The website can then provide the user with the information it has collected, but the drawback is that the third-party service has no way to identify the user and retrieve the data. In the absence of a unified identification mechanism between the website and the various services used, the data request will not be fulfilled by the third-party service. Acting as an arbiter of IDs, the disclosed privacy ID allows such data requests to be made on-site by the user and can generate a single report that includes all user-specific service IDs. Such a report can then be used by the website to obtain the data from all services and provide it to the user.

[0054] Linked Service "Forget Me" Requests: Similar to the Linked Service Data Requests discussed above, Privacy Act requires websites to provide a mechanism by which website users can request that all data stored about them be deleted and forgotten. Again, without a uniform identification mechanism, third-party services cannot recognize users and delete collected data. By acting as an arbiter of IDs, Privacy ID allows such "forget me" requests to be made on-site by users and can generate a single report containing all user-specific service IDs. Such a report can then be used by websites to make such requests to individual third-party services.

[0055] 4 illustrates another method of masking user identity across multiple web servers using a crypto-ID script. In this process, a browser 185 receives a web page 178 from a web server 156, the web page 178 including a crypto-ID script 404 running within the browser 185 and interfacing directly or indirectly with a crypto-ID server 408, and further including one or more third-party services 186, 188, 196, also referred to as third-party apps. The web page 178 loads (415) the crypto-ID script, which loads (424) the third-party service script. The crypto-ID script 404 running on the browser 185 fetches (446) a secure user identity cookie. The crypto-ID script 404 passes (458) the information directly or indirectly and forwards at least a portion of the cookie to the crypto-ID server 408. The cryptographic ID script 404 receives (468) distinct and uncorrelated server-by-app unique IDs for distinct triplets of user, web server, and app from the cryptographic ID server 408. The cryptographic ID script 404 provides (484) each app with its respective server-by-app unique ID without providing the app with a user ID.

[0056] In some embodiments, the cryptographic ID script 404 executing on the browser 185 forwards at least a portion of the cookie to the web server 156 for forwarding to the cryptographic ID server 408 and receives from the server 408 a server-by-app unique ID generated by the cryptographic ID server. In other embodiments, the cryptographic ID script 404 executing on the browser 185 forwards at least a portion of the cookie to the cryptographic ID server 408 and receives from the cryptographic ID server 408 a server-by-app unique ID.

[0057] Next, a computer system is described for gaining control over information and history sharing across multiple websites, followed by the elimination of third-party cookies. <Computer Systems>

[0058] Figure 5 illustrates a block diagram of an exemplary system 500 suitable for implementing the system 100 of Figure 1 for limiting information sharing and history sharing across multiple websites following the elimination of third-party cookies. In general, the system 500 illustrated in Figure 5 includes a server 504 that dynamically supports virtual applications 516 and 518 based on data 522 from a common database 532 shared among multiple tenants, also referred to herein as a "multi-tenant database." Data and services generated by the virtual applications 516 and 518, including GUI clients, are provided over a network 545 to any number of client devices 548 or 558, as desired.

[0059] As used herein, a "tenant" or "organization" refers to a group of one or more users who share access to a common subset of data in the multi-tenant database 532. In this regard, each tenant includes one or more users associated with, assigned to, or otherwise belonging to that respective tenant. Stated another way, each user in the system 500 is associated with, assigned to, or otherwise belonging to a particular tenant among the multiple tenants supported by the system 500. A tenant may represent a user, a user department, a business or legal organization, and / or any other entity that maintains data for a particular set of users in the system 500. Although multiple tenants may share access to the server 504 and the database 532, the particular data and services provided to each tenant from the server 504 may be securely isolated from those provided to other tenants. Thus, the multi-tenant architecture allows different sets of users to share functionality and hardware resources without necessarily sharing any of the data 522 that belongs to or is otherwise related to the other tenants.

[0060] The multi-tenant database 532 is any type of repository or other data storage system capable of storing and managing data 522 associated with any number of tenants. The database 532 may be implemented using any type of conventional database server hardware. In various embodiments, the database 532 shares processing hardware with the server 504. In other embodiments, the database 532 is implemented using separate physical and / or virtual database server hardware that communicates with the server 504 to perform the various functions described herein. The multi-tenant database 532 may alternatively be referred to herein as an on-demand database service in that the multi-tenant database 532 provides (or is available to provide) data at run time to on-demand virtual applications 516 or 518 generated by the application platform 517 while securely isolating the tenant 1 metadata 512 and the tenant 2 metadata 514.

[0061] In practice, data 522 may be organized and formatted in any manner to support application platform 522. In various embodiments, traditional data relationships are established using any number of lookup tables 513 that establish indexing, uniqueness, relationships between entities, and / or other aspects of traditional database organization, as desired.

[0062] The server 504 is implemented using one or more real and / or virtual computing systems that collectively provide a dynamic application platform 517 for generating virtual applications. For example, the server 504 may be implemented using a cluster of real and / or virtual servers operating in conjunction with one another, typically in conjunction with conventional network communications, cluster management, load balancing, and other features as needed. The server 504 operates with any type of conventional processing hardware, such as a processor 536, memory 538, and input / output devices 534. The input / output devices 534 generally represent interfaces to a network (e.g., network 545, or any other local area, wide area, or other network), mass storage devices, display devices, data entry devices, and / or the like. The user interface input devices 534 may include keyboards, pointing devices such as a mouse, trackball, touchpad, or graphics tablet, scanners, touch screens integrated into displays, audio input devices such as voice recognition systems and microphones, and other types of input devices. In general, use of the term “input device” is intended to include possible types of devices and methods for inputting information into application platform 517.

[0063] The user interface output devices may include a display subsystem, a printer, a fax machine, or a non-visual display such as an audio output device. The display subsystem may include a light emitting diode (LED) screen, a flat panel device such as a liquid crystal display (LCD), a cathode ray tube (CRT), a projection device, or some other mechanism for generating a visible image. The display subsystem may also provide non-visual displays such as an audio output device. In general, use of the term "output device" is intended to include all possible types of devices and methods for outputting information from the processor 536 to a user or to another machine or computer system.

[0064] The processor 536 may be implemented using any suitable processing system, such as one or more processors, controllers, microprocessors, microcontrollers, processing cores, and / or other computing resources spread across any number of distributed or integrated systems, including any number of “cloud-based” or other virtual systems. The memory 538 represents any non-transitory short-term or long-term storage or other computer-readable medium capable of storing program instructions for execution on the processor 536, including any type of random access memory (RAM), read-only memory (ROM), flash memory, magnetic or optical mass storage, and the like. The computer-executable program instructions, when read and executed by the server 504 and / or the processor 536, cause the server 504 and / or the processor 536 to create, generate, or otherwise facilitate the application platform 517 and / or the virtual applications 516 and 518, and to perform one or more additional tasks, operations, functions, and / or processes described herein. It should be noted that the memory 538 represents one preferred embodiment of such a computer-readable medium, and alternatively or additionally, the server 504 may accept and cooperate with external computer-readable medium embodied as a portable or mobile component or application platform, e.g., a portable hard drive, a USB flash drive, an optical disk, etc.

[0065] The application platform 517 is any type of software application or other data processing engine that generates virtual applications 516 and 518 that provide data and / or services to the client devices 548 and 558. In an exemplary embodiment, the application platform 517 may use any type of conventional or proprietary operating system 528 to access processing resources, communication interfaces, and other features of the processing hardware. The virtual applications 516 and 518 are typically generated at run time in response to input received from the client devices 548 and 558.

[0066] 5, the data and services provided by server 504 may be retrieved using any type of personal computer, mobile phone, tablet, or other network-enabled client device 548, 558 on network 545, and IoT device 544. In an exemplary embodiment, client device 548, 558 includes a display device, such as a monitor, screen, or another conventional electronic display, capable of graphically presenting data and / or information retrieved from multi-tenant database 532.

[0067] In some embodiments, network 545 may be any one or combination of a local area network (LAN), a wide area network (WAN), WiMAX, Wi-Fi, a telephone network, a wireless network, a point-to-point network, a star network, a token ring network, a hub network, a mesh network, a peer-to-peer connection such as Bluetooth, Near Field Communication (NFC), Z-Wave, ZigBee, or any other suitable configuration of data network including the Internet.

[0068] The foregoing description is merely exemplary in nature and is not intended to limit the embodiments of the inventive subject matter or the application and uses of such embodiments. Furthermore, there is no intention to be bound by any expressed or implied theory presented in the technical field, background, or detailed description. As used herein, the word "exemplary" means "serving as an example, illustration, or illustration." Any embodiment described herein as exemplary should not necessarily be construed as preferred or advantageous over other embodiments, and the exemplary embodiments described herein are not intended to limit the scope or applicability of the inventive subject matter in any way.

[0069] The disclosed technology may be implemented in the context of a database system, multi-tenant environment, or any computer implemented system including a relational database implementation, such as an Oracle™-compatible database implementation, an IBM DB2 Enterprise Server™-compatible relational database implementation, a MySQL™- or PostgreSQL™-compatible relational database implementation, or a Microsoft SQL Server™-compatible relational database implementation, or a Vampire™-compatible non-relational database implementation, an Apache Cassandra™-compatible non-relational database implementation, a BigTable™-compatible non-relational database implementation, or a NoSQL non-relational database implementation, such as an HBase™- or DynamoDB™-compatible non-relational database implementation.

[0070] Additionally, the disclosed techniques can be implemented using two or more separate and distinct computer-implemented systems that cooperate and communicate with each other. The disclosed techniques can be implemented in numerous ways, including as a process, a method, an apparatus, a system, a device, a computer readable medium such as a computer readable storage medium that stores computer readable instructions or computer program code, or a computer program product that comprises a computer usable medium having computer readable program code embodied therein. <Specific Implementation>

[0071] Following the elimination of third-party cookies, we will discuss various implementations that limit the sharing of visitor identity information across multiple websites.

[0072] One embodiment of the disclosed method for limiting sharing of visitor identity information across multiple websites includes receiving, at a visitor's browser from a visited website server, a web page including one or more third-party apps that seek to identify the visitor, the web page including a privacy script executing within the visitor's browser and interfacing directly or indirectly with a Privacy ID server. The method also includes the privacy script executing within the browser retrieving a first-party cookie including the visitor ID, the privacy script forwarding, directly or indirectly, at least a portion of the first-party cookie to the Privacy ID server, and the privacy script receiving, from the Privacy ID server, a site-by-app unique ID for the visited website and one of the third-party apps, the site-by-app unique ID for the visitor being distinct and uncorrelated between different pairs of websites and third-party apps. The disclosed method further includes the privacy script providing each site-by-app unique ID to each third-party app without providing a visitor ID to the third-party app, thereby enabling tracking of the visitor across revisits to visited websites, but not facilitating identification of the visitor across multiple websites.

[0073] This and other embodiments of the disclosed technology may include one or more of the following features and / or features described in connection with the additional disclosed methods: For brevity, combinations of features disclosed herein are not individually recited or repeated for each basis set of features.

[0074] One disclosed method further includes a privacy script executing in the browser forwarding at least a portion of the cookie to a server for forwarding to a Privacy ID server and receiving from the server a site-by-app unique ID generated by the Privacy ID server.

[0075] Some embodiments of the disclosed method further include a privacy script executing in the browser forwarding at least a portion of the cookie to a Privacy ID server and receiving a server-by-app unique ID from the Privacy ID server.

[0076] In many embodiments of the disclosed techniques, sharing of visitor identity information across multiple websites occurs following the removal of third-party cookies.

[0077] One embodiment of the disclosed method for masking user identities across multiple web servers includes a crypto-ID script executing in a browser and interfacing directly or indirectly with a crypto-ID server, and further includes receiving a web page from the server that includes one or more apps. The method also includes the crypto-ID script executing in the browser retrieving a cookie that includes a user ID, the crypto-ID script forwarding directly or indirectly at least a portion of the cookie to the crypto-ID server, and the crypto-ID script receiving from the crypto-ID server a server-by-app unique ID for the visited website and one of the apps, the server-by-app unique ID being distinct and uncorrelated for different triplets of user, web server, and app. The disclosed method further includes the crypto-ID server providing the server-by-app unique ID to each app without providing the user ID to the apps.

[0078] In one embodiment of the disclosed method, a crypto ID script executing within the browser transfers at least a portion of the cookie to the server for transmission to the crypto ID server and receives from the server a server-by-app unique ID generated by the crypto ID server.

[0079] In some implementations of the disclosed methods, a cryptographic ID script executing within the browser forwards at least a portion of the cookie to a cryptographic ID server and receives a server-by-app unique ID from the cryptographic ID server.

[0080] As used in this context, a website refers to browsers on desktop machines and mobile devices, as well as mobile apps on the iOS and Android platforms. Those skilled in the art will understand that code can be reused between browser pages and web apps by following the html and javascript developer guidelines for the particular platform.

[0081] The disclosed technology can be practiced as a system, a method, or a product. One or more features of the embodiments can be combined with the base embodiment. Non-mutually exclusive embodiments are taught as combinable. One or more features of the embodiments can be combined with other embodiments. The present disclosure periodically reminds the user of these options. The omission from some embodiments of a description repeating these options should not be construed as limiting the combinations taught in the previous section. These descriptions are incorporated by reference into each of the following embodiments.

[0082] One disclosed embodiment may include a tangible, non-volatile computer readable storage medium loaded with program instructions that, when executed on a server, cause a computer to perform any of the methods described above.

[0083] Another disclosed embodiment may include a server system including one or more processors and a memory coupled to the processors, the memory being loaded with instructions that, when executed on the processors, cause the server system to perform any of the aforementioned methods.

[0084] This system embodiment, and other systems disclosed, may also optionally include features described in connection with the disclosed methods. For the sake of brevity, alternative combinations of system features are not individually recited. Features applicable to systems, methods, and products are not repeated for each statutory class set of basic features. The reader will understand how the features identified in this section can be readily combined with basic features of other statutory classes.

[0085] The disclosed technology is disclosed by referring to the above detailed preferred embodiments and examples, but it should be understood that these examples are intended in an illustrative, not limiting sense. Modifications and combinations can be easily conceived by those skilled in the art, and these modifications and combinations are considered to be within the spirit of the present invention and the scope of the following claims.

Claims

1. 1. A method for limiting sharing of visitor identity information across multiple web sites, comprising: receiving, from a visited website server at a visitor's browser, a web page including one or more third party apps that include a privacy script executing within the visitor's browser and that interfaces directly or indirectly with a Privacy ID server and that requests identification of the visitor; the privacy script executing in the browser retrieves a first-party cookie containing a visitor ID; the privacy script directly or indirectly forwarding at least a portion of the first-party cookie to the PrivacyID server; the privacy script receiving from the privacy ID server a distinct and uncorrelated site-by-app unique ID for the visitor for different pairs of the website and the third party app, the site-by-app unique ID for one of the visited website and the third party app; and the privacy script providing a respective site-by-app unique ID to each third-party app without providing the visitor ID to the third-party app, thereby enabling tracking of the visitor on repeat visits to the visited website, but not facilitating identification of the visitor across multiple websites; A method comprising:

2. 2. The method of claim 1, wherein the privacy script executing in the browser forwards the at least a portion of the cookie to the visited website server for forwarding to the Privacy ID server and receives the site-by-app unique ID generated by the Privacy ID server from the visited website server.

3. 2. The method of claim 1, wherein the privacy script executing in the browser forwards the at least a portion of the cookie to the Privacy ID server and receives the site-by-app unique ID from the Privacy ID server.

4. 10. The method of claim 1, wherein the sharing of visitor identity information across multiple websites occurs following removal of third-party cookies.

5. A server system comprising one or more processors and a memory coupled to said processors, said memory being loaded with computer program instructions which, when executed on said processors, cause said server system to carry out a method according to any one of claims 1 to 4.

6. A tangible, non-volatile computer-readable storage medium loaded with computer program instructions that, when executed on a server, cause one or more processors constituting the server to execute the method of any one of claims 1 to 4.

7. 1. A method for masking a user identity across multiple web servers, comprising: receiving a web page from a web server, the web page including a crypto ID script executing within the browser and interfacing directly or indirectly with a crypto ID server, the web page further including one or more apps; said cryptographic ID script executing within said browser retrieving a cookie containing a user ID; said crypto ID script directly or indirectly forwarding at least a portion of said cookie to said crypto ID server; the crypto ID script receiving from the crypto ID server distinct and uncorrelated server-by-app unique IDs for distinct triplets of user, web server, and app, the server-by-app unique ID for a visited website and one of the apps; and the cryptographic ID script providing each app with a respective server-by-app unique ID without providing the user ID to the app. A method comprising:

8. 8. The method of claim 7, wherein the crypto ID script executing in the browser forwards the at least a portion of the cookie to the web server for forwarding to the crypto ID server and receives from the web server the server-by-app unique ID generated by the crypto ID server.

9. 8. The method of claim 7, wherein the crypto ID script executing in the browser forwards the at least a portion of the cookie to the crypto ID server and receives the server-by-app unique ID from the crypto ID server.

10. A server system comprising one or more processors and a memory coupled to said processors, said memory being loaded with computer program instructions which, when executed on said processors, cause said server system to carry out a method according to any one of claims 7 to 9.

11. A tangible, non-volatile computer-readable storage medium loaded with computer program instructions that, when executed on a server, cause one or more processors constituting the server to execute the method according to any one of claims 7 to 9.