IP Library Granted Patent US 12699636
Granted Patent B2
US 12699636 · App. 18/504,886 · Granted Aug 4, 2026

Systems and methods for evaluating custom audience segments

Inventors: Boris Estulin (Princeton Junction, NJ); Jeremy Elias Goldberg (Nashville, TN); Thomas Barr (Melbourne, FL)
Assignee: NBCUniversal Media, LLC
G06F11/2247
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12699636
App. No.
18/504,886
Granted
Aug 4, 2026
Kind
B2
Abstract

A non-transitory, computer-readable medium includes instructions, that, when executed, cause processing circuitry to receive, from an electronic device, a request regarding a custom segment defined by a first Boolean expression of a plurality of segments having elements corresponding to, or representative of, one or more electronic devices and/or one or more users of the one or more electronic devices. The instructions, when executed, also cause the processing circuitry to generate a different, second Boolean expression based on the first Boolean expression and the plurality of segments. Additionally, the instructions, when executed, cause the processing circuitry to determine a number of distinct elements of the custom segment at least partially utilizing the second Boolean expression and a plurality of data structures corresponding to the plurality of segments. Furthermore, the instructions, when executed, cause the processing circuitry to send an indication of the number of distinct elements to the electronic device.

Claims (79)

1 . A non-transitory, computer-readable medium comprising instructions, that, when executed by processing circuitry, cause the processing circuitry to:

render a custom segment graphical user interface (GUI);

generate a plurality of Hyperloglog data structures, each of the plurality of Hyperloglog data structures corresponding to a segment of a population of electronic devices, users of the electronic devices, or both having a common characteristic associated with that segment, wherein the Hyperloglog data structures comprise uniformly distributed outputs resulting from hashing identifiers associated with the population of electronic devices, the users of the electronic devices, or both, wherein the identifiers associated with the population of electronic devices comprise millions of identifiers;

receive, via the custom segment GUI, a request regarding a custom segment from an electronic device, wherein the custom segment is defined by a first Boolean expression of a plurality of segments, wherein the plurality of segments comprises elements corresponding to, or representative of, one or more electronic devices, one or more users of the one or more electronic devices, or both the one or more electronic devices and the one or more users, wherein: the first Boolean expression comprises:

a first Boolean intersection operation between a first segment of the plurality of segments and a second segment of the plurality of segments; and

a second Boolean operation between a result of the first Boolean intersection operation and a third segment of the plurality of segments; and

satisfy the request on demand, returning a response to the request within sub-minute time, using at least a portion of the plurality of Hyperloglog data structures, by:

identifying that the first Boolean expression comprises an intersection operation unsupported by an existing Hyperloglog algorithm of the processing circuitry;

in response to identifying that the first Boolean expression comprises the intersection operation unsupported by the existing Hyperloglog algorithm, redefine the custom segment by generating a second Boolean expression based on the first Boolean expression and the plurality of segments, wherein the second Boolean expression is different from the first Boolean expression, comprising:

a first portion corresponding to a third Boolean operation of the first segment and the third segment; and

a second portion corresponding to a fourth Boolean operation of the second segment and the third segment;

determining a number of distinct elements of the custom segment at least partially by:

accessing a subset of the plurality of Hyperloglog data structures corresponding to one of the plurality of segments;

evaluating, via a Hyperloglog algorithm, the second Boolean expression utilizing the subset of the plurality of Hyperloglog data structures corresponding to the plurality of segments to obtain an indication of a number of distinct elements of the custom segment; and

sending, to the electronic device, the indication of the number of distinct elements of the custom segment.

2 . The non-transitory, computer-readable medium of claim 1 , wherein:

the first Boolean expression comprises an odd number of segments of the plurality of segments and an even number of Boolean operators; and

the second Boolean expression comprises an even number of segments of the plurality of segments and odd number of Boolean operators.

3 . The non-transitory, computer-readable medium of claim 1 , wherein the first Boolean expression comprises an exclude operation of a first segment of the plurality of segments and a second segment of the plurality of segments.

4 . The non-transitory, computer-readable medium of claim 3 , wherein the second Boolean expression comprises an intersection operation of the first segment of the plurality of segments and the second segment of the plurality of segments that is absent from the first Boolean expression.

5 . The non-transitory, computer-readable medium of claim 1 , wherein the instructions, when executed, cause the processing circuitry to cause supplemental content to be included with digital content provided to at least a portion of the one or more electronic devices of the one or more users included in the custom segment.

6 . The non-transitory, computer-readable medium of claim 5 , wherein the supplemental content comprises one or more advertisements.

7 . A system, comprising:

processing circuitry; and

a non-transitory, computer-readable medium comprising instructions, that, when executed by the processing circuitry, cause the processing circuitry to:

render a custom segment graphical user interface (GUI);

generate a plurality of Hyperloglog data structures, each of the plurality of Hyperloglog data structures corresponding to a segment of a population of electronic devices, users of the electronic devices, or both having a common characteristic associated with that segment, wherein the Hyperloglog data structures comprise outputs resulting from hashing identifiers associated with the population of electronic devices, the users of the electronic devices, or both, wherein the identifiers associated with the population of electronic devices comprise millions of identifiers;

receive, via the custom segment GUI, a request regarding a custom segment from an electronic device, wherein the custom segment is defined by a first Boolean expression of a plurality of segments, wherein the plurality of segments comprises elements corresponding to, or representative of, one or more electronic devices, one or more users of the one or more electronic devices, or both the one or more electronic devices and the one or more users, wherein: the first Boolean expression comprises:

a first Boolean intersection operation between a first segment of the plurality of segments and a second segment of the plurality of segments; and

a second Boolean operation between a result of the first Boolean intersection operation and a third segment of the plurality of segments; and

satisfy the request on demand, returning a response to the request within sub-minute time, using at least a portion of the plurality of Hyperloglog data structures, by:

identifying that the first Boolean expression comprises an intersection operation unsupported by an existing Hyperloglog algorithm of the processing circuitry;

in response to identifying that the first Boolean expression comprises the intersection operation unsupported by the existing Hyperloglog algorithm of the processing circuitry, redefine the custom segment by generating a second Boolean expression based on the first Boolean expression and the plurality of segments, wherein the second Boolean expression is different from the first Boolean expression, comprising:

a first portion corresponding to a third Boolean operation of the first segment and the third segment; and

a second portion corresponding to a fourth Boolean operation of the second segment and the third segment;

determining a number of distinct elements of the custom segment at least partially by:

accessing a subset of the plurality of Hyperloglog data structures corresponding to one of the plurality of segments;

evaluating, via a Hyperloglog algorithm, the second Boolean expression utilizing the subset of the plurality of Hyperloglog data structures corresponding to the plurality of segments; and

sending, to the electronic device, an indication of the number of distinct elements of the custom segment in a visualization of the custom segment GUI.

8 . The system of claim 7 , wherein:

the first Boolean expression comprises an exclude operation between the first segment and the second segment.

9 . The system of claim 7 , wherein each segment of the plurality of segments is defined by a plurality of identifiers indicative of the one or more electronic devices, the one or more users of the one or more electronic devices, or both the one or more electronic devices and the one or more users.

10 . The system of claim 9 , wherein the instructions, when executed, cause the processing circuitry to:

receive, from a first entity, first segment data comprising or indicative of a first portion of the plurality of segments and a first portion of the plurality of identifiers;

receive, from a second entity different than the first entity, second segment data comprising or indicative of a second portion of the plurality of segments and a second portion of the plurality of identifiers;

anonymize the plurality of identifiers;

generate metadata indicative of a characteristic of the one or more electronic devices, the one or more users of the one or more electronic devices, or both the one or more electronic devices, wherein the characteristic is shared between the first segment data and the second segment data; and

generate, for display on an electronic display and based on the metadata, a user interface comprising a visual representation of a first segment of the plurality of segments, wherein the visual representation comprises a visual indicator indicative of the characteristic shared between the first segment data and the second segment data.

11 . The system of claim 7 , wherein the instructions, when executed, cause the processing circuitry to generate, for display on an electronic display, a user interface, wherein the user interface comprises:

a segment section indicative of the plurality of segments and a second plurality of segments that comprises segments other than those of the plurality of segments;

a custom segment section indicative of the plurality of segments and one or more Boolean operations of the first Boolean expression; and

a custom segment information section that visually indicates the first Boolean expression, the number of distinct elements of the custom segment, or both the first Boolean expression and the number of distinct elements of the custom segment.

12 . The system of claim 11 , wherein:

the custom segment information section visually indicates the number of distinct elements of the custom segment; and

the instructions, when executed, cause the processing circuitry to:

receive a request to add a segment of the second plurality of segments to the custom segment;

determine a second number of the custom segment accounting for the segment of the second plurality of segments being added to the custom segment; and

send, to the electronic device, an indication of the second number of distinct elements of the custom segment to be used to modify the user interface such that the custom segment information section switches from visually indicating the number of distinct elements of the custom segment to visually indicating the second number of distinct elements of the custom segment.

13 . A computer-implemented method, comprising:

rendering a custom segment graphical user interface (GUI);

generating a plurality of Hyperloglog data structures, each of the plurality of Hyperloglog data structures corresponding to a segment of a population of electronic devices, users of the electronic devices, or both having a common characteristic associated with that segment, wherein the Hyperloglog data structures comprise outputs resulting from hashing identifiers associated with the population of electronic devices, the users of the electronic devices, or both, wherein the identifiers associated with the population of electronic devices comprise millions of identifiers;

receiving, via processing circuitry, from the custom segment GUI, a request regarding a custom segment from an electronic device, wherein the custom segment is defined by a first Boolean expression of a plurality of segments, wherein the plurality of segments comprises elements corresponding to, or representative of, one or more electronic devices, one or more users of the one or more electronic devices, or both the one or more electronic devices and the one or more users, wherein: the first Boolean expression comprises:

a first Boolean intersection operation between a first segment of the plurality of segments and a second segment of the plurality of segments; and

a second Boolean operation between a result of the first Boolean intersection operation and a third segment of the plurality of segments;

satisfying the request on demand, returning a response to the request within sub-minute time, using at least a portion of the plurality of Hyperloglog data structures, by:

identifying that the first Boolean expression comprises an intersection operation unsupported by an existing Hyperloglog algorithm of the processing circuitry;

in response to identifying that the first Boolean expression comprises the intersection operation unsupported by the existing Hyperloglog algorithm of the processing circuitry, redefine the custom segment by generating a second Boolean expression based on the first Boolean expression and the plurality of segments, wherein the second Boolean expression is different from the first Boolean expression and comprises:

a first portion corresponding to a third Boolean operation of the first segment and the third segment; and

a second portion corresponding to a fourth Boolean operation of the second segment and the third segment;

determining, via the processing circuitry, a number of distinct elements of the custom segment at least partially by:

accessing a subset of the plurality of Hyperloglog data structures corresponding to one of the plurality of segments; and

evaluating, via the Hyperloglog algorithm, the second Boolean expression utilizing the subset of the plurality of Hyperloglog data structures corresponding to the plurality of segments to obtain an indication of a number of distinct elements of the custom segment; and

sending, via the processing circuitry and to the electronic device, an indication of the number of distinct elements of the custom segment in a visualization of the custom segment GUI.

14 . The computer-implemented method of claim 13 , wherein:

the first Boolean expression comprises the intersection operation; and

the second Boolean expression comprises a union operation that is absent from the first Boolean expression.

15 . The computer-implemented method of claim 13 , comprising causing, via the processing circuitry, one or more advertisements to be included with digital content provided to at least a portion of the one or more electronic devices of the one or more users included in the custom segment.

16 . The non-transitory, computer-readable medium of claim 1 , wherein:

generating the second Boolean expression comprises transforming the first Boolean expression into a conjunctive normal form (CNF) such that the intersection operation is eliminated from the second Boolean expression and replaced by union operations between the third segment and each of the first segment and the second segment.