Bidding Strategies

Buzz supports the ability to bid on impressions using flexible "bidding strategies" that are implemented into the Line Items. Each Line Item has a single bidding field, in which the bidding strategy, and all required parameters for that strategy, are defined. A list of existing strategies is here: List of Bidding Strategy Modules and Keys.

The format for the bidding field is as follows:

{
	"bidding_strategy": "<bidding_strategy_name>",
	"values": {
		"<bidding_key1>": <bidding_value1>,
		"<bidding_key2>": <bidding_value2>
	},
	"custom": false
}

For example, if you want to set a static CPM bid of $1.21, use the "CPM" bidding strategy as follows:

{
	"bidding_strategy": "CPM",
	"values": {
		"cpm_bid": 1.21
	},
	"pacing": "lifetime",
 	"pacing_behavior": "even",
 	 "multiplier": "1.000",
 	 "catchup_behavior": "even",
	"custom": false
}

If you want to use the pacing behavior, multiplier and catchup behavior, please set all three keys. If you wish to set only one (e.g., multiplier), you should still include the other two keys, setting them to their default values.

CPA Example

If you want to set a CPA bidding strategy, use the "CPA" bidding strategy as follows:

{  
	"bidding":{  
        "strategy":"CPA",  
		"values": {  
            "max_bid": 1,  
    	    "cpa_event": 126,  
    	    "cpa_target": 0.5  
		},  
	    "pacing": "lifetime",  
    		"pacing_behavior": "even",  
    		"multiplier": "1.02",  
    		"catchup_behavior": "ahead",  
	    "custom": false,  
        "bid_shading_control":null  
    }  
}

Please specify the event ID that has enough number of attributed conversions for model training; otherwise, an error message will appear.

API Usage

Like Targeting or Creative Attributes, you can use the API to either validate bidding strategies with a POST, or get a list of fields for a bidding strategy, with a GET. The API end point for bidding strategies including the /bidding/ path is as follows:

curl -X POST -b cookies.txt [host]/rest/bidding/cpm -d '{"bidding_strategy":"CPM","values":{"cpm_bid":1.21},"pacing":"none"}'

JSON Structure

The Creative Attributes JSON has the following fields:

KeyExample valueDescription
keycpm_bidKeys are defined in the modules. For a list of modules and keys, see List of Bidding Strategy Modules and Keys.
values1.12A value for the key. This can be an int, string, number, or array, depending on the key
Unlike Targeting or Creative Attributes, the value is not required to be in an array.
customfalseUsed to indicate whether the bidding logic is on a Beeswax server or a custom algorithm. This field will generally be set automatically by the system and can be safely omitted.
pacinglifetimeIf a bidding strategy can be paced, the pacing value can be set to daily, flight, or lifetime. If it cannot be paced, then it should be set to none. The flight type may only be used if the Line Item has Line Item Flights enabled and every flight includes a budget.
pacing_behavior evenThis setting attempts to spend slightly faster than Even. The pacing_behavior value can be set to even or ahead.
multiplier1.000Sets a number between 1.000 - 2.000 to multiply against the budget to artificially inflate it, causing the pacing algorithm to pace towards the “larger” budget. The multiplier value must be a string within the specified range (1.000 - 2.000).
catchup_behaviorevenDefines which catch-up methodology should be applied in scenarios when pacing needs to catch-up to the desired rate. The catchup_behavior value can be set to immediate, even or ahead