IP Library Granted Patent US 10,679,137
Granted Patent B2
US 10,679,137 · App. 14/986,811 · Granted Jun 9, 2020

Systems and methods for determining real-time visitor segments

Inventors: Natalee Villa (Salt Lake City, UT); Scott Pead (Mapleton, UT); James Nyland (Highland, UT); Craig Mathis (American Fork, UT)
Assignee: Adobe Inc.
G06N7/005G06F16/2228G06F16/2477
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 10,679,137
App. No.
14/986,811
Granted
Jun 9, 2020
Kind
B2
Abstract

Systems and methods disclosed herein compactly store representations of segment-specific interaction data from a real time data stream of data interactions by multiple entities to facilitate segment-specific analytics for particular time periods. Segment rules defining characteristics of entities within a segment are received. A first probabilistic data structure is created representing unique entity IDs included in instances of interaction data in the real time data stream during a first time period. A second probabilistic data structure representing unique entity IDs included in instances of interaction data in the real time data stream during a second time period different from the first time period. The first probabilistic data structure represents only entity IDs of entities within the segment and the second probabilistic data structure represents only entity IDs of entities within the segment. The first and second probabilistic data structures are indexed and stored.

Claims (49)

1. In an environment in which a real time data stream of data interactions by multiple entities is tracked, a method for compactly storing representations of segment-specific interaction data to facilitate segment-specific analytics for particular time periods, the method comprising:

receiving segment rules defining characteristics of entities within a segment;

accessing a real time data stream comprising instances of interaction data and associated entity identifiers;

creating a probabilistic data structure for the segment and for a time period by at least:

identifying entity identifiers from instances of interaction data during the time period in the real time data stream that match the segment rules; and

providing the identified entity identifiers to a function to randomize the identified entity identifiers to generate elements of the probabilistic data structure, wherein an estimate of a number of unique entity identifiers can be determined from the probabilistic data structure with an associated probability; and

indexing and storing the probabilistic data structure, wherein the indexing allows the unique entity identifiers in the probabilistic data structure to be counted and compared to facilitate segment-specific analytics for particular time periods.

2. The method of claim 1 , the method further comprising:

creating an additional probabilistic data structure representing additional unique entity identifiers included in instances of interaction data in the real time data stream during an additional time period different from the time period.

3. The method of claim 1 , further comprising:

receiving additional segment rules defining characteristics of entities within an additional segment that is different than the segment;

creating an additional probabilistic data structure representing unique entity identifiers included in instances of interaction data in the real time data stream during the time period, the additional probabilistic data structure representing only entity identifiers of the entities within the additional segment; and

indexing and storing the additional probabilistic data structure with the probabilistic data structure, wherein the indexing allows unique entity identifiers in the additional probabilistic data structure to be counted and compared to facilitate the segment-specific analytics for the particular time periods.

4. The method of claim 1 , wherein the unique entity identifiers are user identifiers.

5. The method of claim 1 , wherein the unique entity identifiers are device identifiers.

6. The method of claim 1 , wherein the probabilistic data structure is created based on a probabilistic algorithm, wherein the probabilistic algorithm is at least one of a HyperLogLog, Bloom filter, or a Count-Min sketch.

7. The method of claim 1 , further comprising creating, indexing and storing multiple probabilistic data structures associated with multiple time periods.

8. The method of claim 1 , further comprising generating a report for display providing a number of entity identifiers of entities within the segment during the time period, wherein the report is generated using an HTTP streaming API.

9. The method of claim 1 , wherein the function comprises a hashing function for generating hashes for the identified entity identifiers.

10. The method of claim 9 , wherein the estimate of the number of unique entity identifiers is determined based on a number of unique hashes.

11. In an environment in which a computer receives a real-time data stream, a method for determining a segment count from the real-time data stream, the method comprising:

receiving segment rules defining characteristics of entities within a segment;

accessing a real time data stream comprising instances of interaction data and associated entity identifiers;

creating a probabilistic data structure for the segment and for a time period by:

identifying entity identifiers from instances of interaction data during the time period in the real time data stream that match the segment rules; and

providing the identified entity identifiers to a function to randomize the identified entity identifiers to generate elements of the probabilistic data structure, wherein an estimate of a number of unique entity identifiers can be determined from the probabilistic data structure with an associated probability;

indexing the probabilistic data structure; and

determining, from the probabilistic data structure, a segment count comprising an estimated size of the segment, wherein the segment count facilitates segment-specific analytics for particular time periods.

12. The method according to claim 11 , further comprising:

creating an additional probabilistic data structure representing entity identifiers for the segment and an additional segment for multiple time periods; and

indexing and storing the additional probabilistic data structure.

13. The method of claim 11 , wherein the unique entity identifiers are user identifiers.

14. The method of claim 11 , wherein the unique entity identifiers are device identifiers.

15. The method of claim 11 , wherein the probabilistic data structure is created using a probabilistic algorithm that is at least one of a HyperLogLog, Bloom filter and a Count-Min.

16. The method of claim 11 , further comprising generating a report for display providing a number of entity identifiers of entities within the segment during the time period, wherein the report is generated using an HTTP streaming API.

17. In an environment in which a real time data stream of data interactions by multiple entities is tracked, a system for compactly storing representations of segment-specific interaction data to facilitate segment-specific analytics for particular time periods, the system comprising:

a processing device;

a memory device communicatively coupled to the processing device, wherein the processing device is configured to execute instructions stored in the memory device and thereby perform operation comprising:

receiving segment rules defining characteristics of entities within a segment;

accessing a real time data stream comprising instances of interaction data and associated entity identifiers;

creating a probabilistic data structure for the segment and for a time period by:

identifying entity identifiers from instances of interaction data during the time period in the real time data stream that match the segment rules, and

providing the identified entity identifiers to a function to randomize the identified entity identifiers to generate elements of the probabilistic data structure, wherein an estimate of a number of unique entity identifiers can be determined from the probabilistic data structure with an associated probability; and

indexing and storing the probabilistic data structure, wherein the indexing allows the unique entity identifiers in the probabilistic data structure to be counted and compared to facilitate segment-specific analytics for particular time periods.

18. The system of claim 17 , wherein the processing device is configured to execute instructions stored in the memory device to perform operations further comprising:

creating a second probabilistic data structure representing unique entity identifiers included in instances of interaction data in the real time data stream during a second time period different from the time period, the second probabilistic data structure representing only entity IDs of entities within the segment; and

determining a first number of unique entity identifiers from the probabilistic data structure and determining a second number of unique entity identifiers from the second probabilistic data structure.

19. The system of claim 17 , wherein the probabilistic data structure is created using a probabilistic algorithm.

20. The system of claim 17 , wherein the processing device is configured to execute instructions stored in the memory device to perform operations further comprising generating a report for display providing a first number of entity identifiers of entities within the segment during the time period, wherein the report is generated using an HTTP streaming API.

Assignments (2)
CHANGE OF NAME Recorded Mar 6, 2019
From: ADOBE SYSTEMS INCORPORATED
To: ADOBE INC.
Reel/Frame 048525/0042 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 4, 2016
From: VILLA, NATALEE; PEAD, SCOTT; NYLAND, JAMES; MATHIS, CRAIG
To: ADOBE SYSTEMS INCORPORATED
Reel/Frame 037398/0982 →
Continuity (1)
Related Publication 20170193382A1 · Jul 6, 2017
Cited By (2)
US 12,430,318 US 12,699,636