US 12,189,808 B1
Privacy preserving advertising network
Subhash Sankuratripati, Playa Vista, CA (US); and Sriram Keelveedhi, Marina Del Rey, CA (US)
Assigned to SNAP INC., Santa Monica, CA (US)
Filed by Snap Inc., Santa Monica, CA (US)
Filed on Jun. 26, 2020, as Appl. No. 16/913,221.
Claims priority of provisional application 62/868,728, filed on Jun. 28, 2019.
Int. Cl. G06F 21/62 (2013.01); G06F 9/54 (2006.01); G06F 16/23 (2019.01); G06F 21/60 (2013.01); G06Q 30/0251 (2023.01); G06Q 50/26 (2024.01); H04L 9/00 (2022.01)
CPC G06F 21/6245 (2013.01) [G06F 9/547 (2013.01); G06F 16/2379 (2019.01); G06F 21/602 (2013.01); G06Q 30/0255 (2013.01); G06Q 30/0269 (2013.01); G06Q 50/265 (2013.01); H04L 9/008 (2013.01); G06Q 2220/00 (2013.01)] 18 Claims
OG exemplary drawing
 
1. A method comprising:
storing, by one or more processors of a server, an encrypted profile for a user;
receiving, by the one or more processors of the server, a first set of encrypted information from a first application that is installed on a user device associated with the user and a second set of encrypted information from a second application that is installed on the user device;
in response to the server receiving the first set of encrypted information from the first application and the second set of encrypted information from the second application, updating, by the one or more processors of the server, the encrypted profile based on the first and second sets of encrypted information received respectively from the first and second applications without the server decrypting the profile;
generating a database that stores sets of encrypted profile information associated with one or more advertisements, a first set of encrypted profile information corresponding to a first type and a second type of the one or more advertisements, a second set of the encrypted profile information corresponding to the second type and a third type of the one or more advertisements;
receiving a request for an advertisement from a third application that is installed on the user device and is associated with the user;
in response to receiving the request for the advertisement from the third application:
matching portions of the encrypted profile to the stored sets of the encrypted profile information, the matching comprising:
determining that a first portion of the encrypted profile corresponds to the first set of the encrypted profile information; and
determining that a second portion of the encrypted profile corresponds to the second set of the encrypted profile information;
selecting, as a first advertisement, a given advertisement stored in the database that is associated with the second type of advertisement, wherein the second type of advertisement is associated with both the first and the second portion of the encrypted profile; and
transmitting, by the one or more processors of the server, the first advertisement to the third application that is installed on the user device, the third application selecting a second advertisement by:
decrypting a first portion of the encrypted profile;
obtaining a first set of advertisements associated with the decrypted first portion of the encrypted profile; and
searching the first set of advertisements for the second advertisement based on a second portion of the encrypted profile without decrypting the second portion of the encrypted profile.