IP Library Granted Patent US 11,188,401
Granted Patent B2
US 11,188,401 · App. 17/077,472 · Granted Nov 30, 2021

Real-time data processing pipeline and pacing control systems and methods

Inventors: Charles Brian O'Kelley (New York, NY); Catherine Mary Williams (Seattle, WA); Taylor Edward Burmeister (Brooklyn, NY); Yaron Lissack (Great Neck, NY); Justin Pines (New York, NY); Samuel Seljan (Portland, OR); Jaidev Sridhar (New York, NY)
Assignee: Xandr Inc.
G06F9/546G06F9/466G06F9/4881
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 11,188,401
App. No.
17/077,472
Granted
Nov 30, 2021
Kind
B2
Abstract

A data processing system includes a transaction bus, a console application in communication with the transaction bus, and a view predictor subsystem in communication with the transaction bus. The transaction bus receives, from a user application executing on a client device, a call for visual information to be provided to the user application. The view predictor subsystem determines a likelihood that the visual information will be viewable within a viewport of the user application, and a plurality of respective values for a plurality of sources of the visual information are computed based on the likelihood and a respective priority for each source. The console application provides to the transaction bus the set of potential sources of the visual information, and the transaction bus selects, based on the computed values, one of the potential sources of the visual information to be the result, which is provided to the user application.

Claims (49)

1. A method, comprising:

determining, by a processing system including a processor, a predicted viewability of a proposed impression associated with a call for visual information and associated with a likelihood that the visual information will be viewable within a viewport of a user application, wherein the predicted viewability is assigned a value from a set of discrete viewability values;

computing, by the processing system, a plurality of respective values for a plurality of visual information items based on the predicted viewability of the proposed impression and a respective priority for each item of the plurality of visual information items, wherein the computing of the plurality of respective values is according to each value of the set of discrete viewability values, and wherein the respective priority for each item of the plurality of visual information items represents a priority in terms of the item serving as a result relative to a pacing goal for the item for a defined time interval;

selecting, by the processing system, in accordance with the plurality of respective values, a first item of the plurality of visual information items to be the result, wherein the selecting comprises ignoring visual information items included in the plurality of visual information items that have met their respective pacing goal for the defined time interval;

providing the result, by the processing system, to the user application;

directing, by the processing system, an aggregation of first data from a real-time stream of transactions with second data from one or more other streams received at a publish or subscribe and messaging queueing subsystem to generate aggregated data;

executing, by the processing system, a control loop feedback process using at least a portion of the aggregated data to generate a pacing result; and

applying, by the processing system, the pacing result to one or more of the plurality of respective values.

2. The method of claim 1 , further comprising receiving, by the processing system, the call for the visual information to be provided to the user application.

3. The method of claim 1 , further comprising receiving, by the processing system, the real-time stream of transactions.

4. The method of claim 1 , further comprising directing, by the processing system, an aggregation of the second data from the one or more other streams.

5. The method of claim 4 , further comprising providing, by the processing system, the pacing result and at least a portion of the second data as input to the control loop feedback process a second, later time to generate an updated pacing result.

6. The method of claim 1 , further comprising providing, by the processing system, historical viewability information to a view predictor subsystem, wherein the view predictor subsystem determines the predicted viewability of the proposed impression at the likelihood that the visual information will be viewable within the viewport of the user application based on the historical viewability information.

7. The method of claim 6 , further comprising tracking, by the processing system, the historical viewability information for the plurality of visual information items provided to a plurality of user applications.

8. The method of claim 1 , further comprising providing, by the processing system, software code for execution on a client device and configured to determine when the visual information is viewable within the viewport of the user application.

9. The method of claim 1 , wherein the visual information includes an image, a video, or a combination thereof.

10. A device, comprising

a processing system including a processor; and

a memory that stores executable instructions that, when executed by the processing system, facilitate performance of operations, the operations comprising:

determining a predicted viewability of a proposed impression associated with a call for visual information and with a likelihood that the visual information will be viewable within a viewport of a user application, wherein the predicted viewability is assigned a value from a set of discrete viewability values;

computing a plurality of respective values for a plurality of visual information items based on the predicted viewability of the proposed impression and a respective priority for each item of the plurality of visual information items, wherein the computing of the plurality of respective values is according to each value of the set of discrete viewability values;

selecting, in accordance with the plurality of respective values, a first item of the plurality of visual information items to be a result, wherein the selecting comprises ignoring visual information items included in the plurality of visual information items that have met their respective pacing goal for a defined time interval;

providing the result to the user application;

directing an aggregation of first data from a real-time stream of transactions with second data from one or more other streams to generate aggregated data;

executing a control loop feedback process using at least a portion of the aggregated data to generate a pacing result; and

applying the pacing result to one or more of the plurality of respective values.

11. The device of claim 10 , wherein the respective priority for each item of the plurality of visual information items represents a priority in terms of the item serving as the result relative to a pacing goal for the item for the defined time interval.

12. The device of claim 10 , wherein the operations further comprise directing an aggregation of the second data from the one or more other streams.

13. The device of claim 12 , wherein the operations further comprise providing the pacing result and at least a portion of the second data as input to the control loop feedback process at a second, later time to generate an updated pacing result.

14. The device of claim 10 , wherein the operations further comprise providing historical viewability information to a view predictor subsystem, and wherein the view predictor subsystem determines the predicted viewability of the proposed impression at the likelihood that the visual information will be viewable within the viewport of the user application based on the historical viewability information.

15. The device of claim 14 , wherein the operations further comprise tracking the historical viewability information for the plurality of visual information items provided to a plurality of user applications.

16. The device of claim 10 , wherein the operations further comprise providing software code for execution on a client device and configured to determine when the visual information is viewable within the viewport of the user application.

17. The device of claim 10 , wherein the visual information includes an image, a video, or a combination thereof.

18. A non-transitory, machine-readable medium, comprising

executable instructions that, when executed by a processing system including a processor, facilitate performance of operations, the operations comprising:

determining a predicted viewability of a proposed impression associated with a call for visual information and with a likelihood that the visual information will be viewable within a viewport of a user application, wherein the predicted viewability is assigned a value from a set of discrete viewability values;

computing a plurality of respective values for a plurality of visual information items based on the predicted viewability of the proposed impression and a respective priority for each item of the plurality of visual information items, wherein the computing of the plurality of respective values is according to each value of the set of discrete viewability values;

selecting, in accordance with the plurality of respective values, a first item of the plurality of visual information items to be a result, wherein the selecting comprises ignoring visual information items included in the plurality of visual information items that have met their respective pacing goal for a defined time interval;

providing the result to the user application;

executing a control loop feedback process using at least a portion of aggregated data to generate a pacing result, wherein the aggregated data comprises first data from a real-time stream of transactions with second data from one or more other streams; and

applying the pacing result to one or more of the plurality of respective values.

19. The non-transitory, machine-readable medium of claim 18 ,

wherein the operations further comprise:

tracking historical viewability information for the plurality of visual information items provided to a plurality of user applications; and

providing the historical viewability information to a view predictor subsystem, wherein the view predictor subsystem determines the predicted viewability of the proposed impression at the likelihood that the visual information will be viewable within the viewport of the user application based on the historical viewability information.

20. The non-transitory, machine-readable medium of claim 18 ,

wherein the operations further comprise:

directing an aggregation of the second data from the one or more other streams; and

providing the pacing result and at least a portion of the second data as input to the control loop feedback process at a second, later time to generate an updated pacing result.

Assignments (4)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 5, 2023
From: XANDR INC.
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 063264/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 11, 2022
From: O'KELLEY, BRIAN; BURMEISTER, TAYLOR
To: APPNEXUS INC.
Reel/Frame 058992/0074 →
CHANGE OF NAME Recorded Feb 11, 2022
From: APPNEXUS INC.
To: XANDR INC.
Reel/Frame 059083/0679 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 23, 2021
From: WILLIAMS, CATHERINE MARY; LISSACK, YARON; PINES, JUSTIN; SELJAN, SAMUEL; SRIDHAR, JAIDEV
To: XANDR INC.
Reel/Frame 056633/0972 →