Systems and methods for providing a demand side platform
The present invention is directed towards methods and systems for matching, by a demand side service, an advertisement with an impression from a plurality of impressions available across a plurality of impression opportunity providers. A demand side service executing on one or more servers may receive a request to bid for placement of an advertisement on one or more impression opportunities available across a plurality of impression opportunity providers. The demand side service may further determine an impression opportunity from the plurality of impression opportunities to bid on. In addition, the demand side service may communicate, via a network, one or more bids via an interface to an impression opportunity provider of the plurality of impression opportunity providers. The demand side service may complete a transaction to procure the impression opportunity from the impression opportunity provider responsive to a winning bid from the one or more bids.
1 . A method for matching, by a demand side service, an advertisement with an impression of a plurality of impressions available across a plurality of impression opportunity providers, the method comprising:
(a) receiving, by a demand side service executing on one or more servers, a request to bid for placement of an advertisement on one or more impression opportunities from a plurality of impression opportunities available across a plurality of impression opportunity providers;
(b) receiving, by the demand side service, first data describing a first impression opportunity via a first data transmission interface of a first impression opportunity provider using a first communication protocol, and second data describing a second impression opportunity via a second data transmission interface of a second impression opportunity provider using a second communication protocol different from the first communication protocol;
(c) dynamically normalizing, by a single interface of the demand side service, the first data and the second data into a normalized data format by mapping fields from the first and second data transmission interfaces to corresponding fields in the normalized data format and substituting default values for absent fields;
(d) determining, by the demand side service using the normalized data, whether the first impression opportunity and the second impression opportunity correspond to an identical impression opportunity, including computing a de-duplication signature from at least publisher or site identifier, ad slot size, a timestamp within a bounded time window, and at least one of IP address and user agent, and suppressing transmission of redundant bid responses upon a determination that the first and second impression opportunities are identical;
(e) determining, by the demand side service, based on the normalized data and one or more campaign goals or constraints, an impression opportunity from the plurality of impression opportunities to bid on and a corresponding impression opportunity provider to receive a bid, wherein selecting the corresponding impression opportunity provider comprises applying a rule set that includes measured round-trip network latency and historical win rate for the impression opportunity provider;
(f) communicating, by the demand side service via a network, within a bounded response time window, one or more bids via the single interface to the corresponding impression opportunity provider, and
(g) completing, by the demand side service responsive to a winning bid from the one or more bids, a transaction to procure the impression opportunity from the corresponding impression opportunity provider and causing delivery of the advertisement to the procured impression opportunity.
2 . The method of claim 1 , further comprising providing, by the demand side service, to a requestor of the request a single interface for bidding on impression opportunities across different impression opportunity providers.
3 . The method of claim 1 , further comprising providing, by the demand side service, to a requestor of the request a single interface for bidding on impression opportunities across different data interfaces to each of the plurality of impression opportunity providers.
4 . The method of claim 1 , wherein step (a) further comprises receiving, by the demand side service, the request comprising a goal for an ad campaign.
5 . The method of claim 1 , wherein step (a) further comprises receiving, by the demand side service, the request comprising a constraint for placement of the advertisement.
6 . The method of claim 1 , wherein step (e) further comprises determining, by the demand side service, the impression opportunity to bid on based on a goal of an ad campaign specified by the request.
7 . The method of claim 1 , wherein step (e) further comprises determining, by the demand side service, the impression opportunity to bid on based on a constraint specified by the request.
8 . The method of claim 1 , wherein step (c) further comprises determining, by a bidding engine of the demand side service, a price of a bid based on one or more bidding rules.
9 . The method of claim 1 , further comprising automatically delivering, by the demand side service, the advertisement to the procured impression opportunity.
10 . The method of claim 1 , further comprising determining, by the demand side service, an estimate of daily impression opportunities across the plurality of impression opportunity providers.
11 . The method of claim 1 , wherein the normalized data format defines required fields comprising a publisher or site identifier, an ad slot size, and a timestamp within the bounded response time window, and optional fields comprising an Internet Protocol (IP) address and a user agent, and wherein dynamically normalizing comprises producing normalized records that include the required fields and populate any absent optional fields with default values.
12 . The method of claim 1 , wherein substituting default values for absent fields comprises substituting default values specified by the normalized data format for at least one of the IP address or the user agent when the first data or the second data omits the respective field.
13 . The method of claim 1 , wherein mapping fields from the first and second data transmission interfaces to corresponding fields in the normalized data format comprises applying provider-specific field mappings to translate provider-defined field names and encodings into the corresponding fields of the normalized data format.
14 . The method of claim 1 , wherein computing the de-duplication signature comprises deterministically generating a signature value from the publisher or site identifier, the ad slot size, the timestamp within the bounded response time window, and at least one of the IP address and the user agent.
15 . The method of claim 1 , wherein suppressing transmission of redundant bid responses upon a determination that the first and second impression opportunities are identical comprises inhibiting generation of any additional bid response for impression opportunities determined to be identical within the bounded response time window.
16 . The method of claim 1 , wherein measured round-trip network latency for an impression opportunity provider is obtained from latency measurements previously recorded by the demand side service for communications with the impression opportunity provider.
17 . The method of claim 1 , wherein the historical win rate for an impression opportunity provider is determined from prior bidding outcomes recorded by the demand side service for bids transmitted to the impression opportunity provider.
18 . The method of claim 1 , wherein selecting the corresponding impression opportunity provider based on the rule set comprises, when historical win rates for candidate impression opportunity providers are equal, selecting the impression opportunity provider having a lower measured round-trip network latency.
19 . The method of claim 1 , wherein enforcing the bounded response time window comprises discarding a pending bid that cannot be transmitted via the single interface before expiration of the bounded response time window.
20 . A system comprising:
at least one data processor; and
memory storing instructions that, when executed by the at least one data processor, result in operations comprising:
receiving, by a demand side service executing on one or more servers, a request to bid for placement of an advertisement on one or more impression opportunities from a plurality of impression opportunities available across a plurality of impression opportunity providers;
receiving, by the demand side service, first data describing a first impression opportunity via a first data transmission interface of a first impression opportunity provider using a first communication protocol, and second data describing a second impression opportunity via a second data transmission interface of a second impression opportunity provider using a second communication protocol different from the first communication protocol;
dynamically normalizing, by a single interface of the demand side service, the first data and the second data into a normalized data format by mapping fields from the first and second data transmission interfaces to corresponding fields in the normalized data format and substituting default values for absent fields;
determining, by the demand side service using the normalized data, whether the first impression opportunity and the second impression opportunity correspond to an identical impression opportunity, including computing a de-duplication signature from at least publisher or site identifier, ad slot size, a timestamp within a bounded response time window, and at least one of IP address and user agent, and suppressing transmission of redundant bid responses upon a determination that the first and second impression opportunities are identical;
determining, by the demand side service, based on the normalized data and one or more campaign goals or constraints, an impression opportunity from the plurality of impression opportunities to bid on and a corresponding impression opportunity provider to receive a bid, wherein selecting the corresponding impression opportunity provider comprises applying a rule set that includes measured round-trip network latency and historical win rate for the impression opportunity provider;
communicating, by the demand side service via a network, within a bounded response time window, one or more bids via the single interface to the corresponding impression opportunity provider; and
completing, by the demand side service responsive to a winning bid from the one or more bids, a transaction to procure the impression opportunity from the corresponding impression opportunity provider and causing delivery of the advertisement to the procured impression opportunity.