Bid Multipliers
The Criteo engine maximizes advertising performance while optimizing the shopper experience. It can automatically and intelligently control how much a line item delivers on each page type. In addition, bid multipliers provide campaign managers more control over managing bids at the line item level while also optimizing campaign performance goals at a page-type level.
Bid multipliers are available at the Onsite Sponsored Products line items level. In addition, campaign managers can modify bids only on enabled page types.
Bids can be increased up to 500% or decreased up to 50% on each page targeted at the line item level.
For example: If a line item bid is $1, with a bid multiplier, you can increase the Search page bid by 20% and decrease the homepage bid by 10%. The Criteo engine will optimize more delivery and performance on the search page while also allowing the control of which page types budget is mostly allocated towards.
Endpoints
Verb | Endpoint | Description |
---|---|---|
GET | /line-items/{lineItemId}/bid-multipliers | Returns all bid multipliers for valid page types of the specified line item. |
PUT | /line-items/{lineItemId}/bid-multipliers | Replaces all existing bid multipliers with the provided bid multipliers or the default value (1.0). |
Bid Multiplier Attributes
Attribute | Data Type | Description |
---|---|---|
id | string | Line item ID, generated internally by Criteo Accepted values: string of int64 Writeable? N / Nullable? N |
home | decimal | Bid multiplier to the home page typeNote: bids can be increased up to 500% (6.0) or decreased up to 50% (0.50) Accepted values: 0.50 ≤ home ≤ 6.0 Default: 1.0 Writeable? Y / Nullable? N |
search | decimal | Bid multiplier to the search page typeNote: bids can be increased up to 500% (6.0) or decreased up to 50% (0.50) Accepted values: 0.50 ≤ search ≤ 6.0 Default: 1.0 Writeable? Y / Nullable? N |
category | decimal | Bid multiplier to the category page typeNote: bids can be increased up to 500% (6.0) or decreased up to 50% (0.50) Accepted values: 0.50 ≤ category ≤ 6.0 Default: 1.0 Writeable? Y / Nullable? N |
productDetail | decimal | Bid multiplier to the productDetail page typeNote: bids can be increased up to 500% (6.0) or decreased up to 50% (0.50) Accepted values: 0.50 ≤ productDetail ≤ 6.0 Default: 1.0 Writeable? Y / Nullable? N |
merchandising | decimal | Bid multiplier to the merchandising page typeNote: bids can be increased up to 500% (6.0) or decreased up to 50% (0.50) Accepted values: 0.50 ≤ merchandising ≤ 6.0 Default: 1.0 Writeable? Y / Nullable? N |
deals | decimal | Bid multiplier to the deals page typeNote: bids can be increased up to 500% (6.0) or decreased up to 50% (0.50) Accepted values: 0.50 ≤ deals ≤ 6.0 Default: 1.0 Writeable? Y / Nullable? N |
favorites | decimal | Bid multiplier to the favorites page typeNote: bids can be increased up to 500% (6.0) or decreased up to 50% (0.50) Accepted values: 0.50 ≤ favorites ≤ 6.0 Default: 1.0 Writeable? Y / Nullable? N |
searchBar | decimal | Bid multiplier to the searchBar page typeNote: bids can be increased up to 500% (6.0) or decreased up to 50% (0.50) Accepted values: 0.50 ≤ searchBar ≤ 6.0 Default: 1.0 Writeable? Y / Nullable? N |
categoryMenu | decimal | Bid multiplier to the categoryMenu page typeNote: bids can be increased up to 500% (6.0) or decreased up to 50% (0.50) Accepted values: 0.50 ≤ categoryMenu ≤ 6.0 Default: 1.0 Writeable? Y / Nullable? N |
checkout | decimal | Bid multiplier to the checkout page typeNote: bids can be increased up to 500% (6.0) or decreased up to 50% (0.50) Accepted values: 0.50 ≤ checkout ≤ 6.0 Default: 1.0 Writeable? Y / Nullable? N |
confirmation | decimal | Bid multiplier to the confirmation page typeNote: bids can be increased up to 500% (6.0) or decreased up to 50% (0.50) Accepted values: 0.50 ≤ confirmation ≤ 6.0 Default: 1.0 Writeable? Y / Nullable? N |
Get Bid Multipliers
Returns all bid multipliers for valid page types of the specified line item.

https://api.criteo.com/{version}/retail-media/line-items/{lineItemId}/bid-multipliers
Sample Request
curl -L -X GET 'https://api.criteo.com/{version}/retail-media/line-items/347413132777078784/bid-multipliers' \
-H 'Accept: text/plain' \
-H 'Authorization: Bearer MY_ACCESS_TOKEN'
import requests
url = "https://api.criteo.com/{version}/retail-media/line-items/347413132777078784/bid-multipliers"
payload={}
headers = {
'Accept': 'text/plain',
'Authorization': 'Bearer MY_ACCESS_TOKEN'
}
response = requests.request("GET", url, headers=headers, data=payload)
print(response.text)
OkHttpClient client = new OkHttpClient().newBuilder()
.build();
MediaType mediaType = MediaType.parse("text/plain");
RequestBody body = RequestBody.create(mediaType, "");
Request request = new Request.Builder()
.url("https://api.criteo.com/{version}/retail-media/line-items/347413132777078784/bid-multipliers")
.method("GET", body)
.addHeader("Accept", "text/plain")
.addHeader("Authorization", "Bearer MY_ACCESS_TOKEN")
.build();
Response response = client.newCall(request).execute();
<?php
require_once 'HTTP/Request2.php';
$request = new HTTP_Request2();
$request->setUrl('https://api.criteo.com/{version}/retail-media/line-items/347413132777078784/bid-multipliers');
$request->setMethod(HTTP_Request2::METHOD_GET);
$request->setConfig(array(
'follow_redirects' => TRUE
));
$request->setHeader(array(
'Accept' => 'text/plain',
'Authorization' => 'Bearer MY_ACCESS_TOKEN'
));
try {
$response = $request->send();
if ($response->getStatus() == 200) {
echo $response->getBody();
}
else {
echo 'Unexpected HTTP status: ' . $response->getStatus() . ' ' .
$response->getReasonPhrase();
}
}
catch(HTTP_Request2_Exception $e) {
echo 'Error: ' . $e->getMessage();
}
Sample Response
{
"data": {
"type": "LineItemBidMultipliersV2",
"attributes": {
"id": "347413132777078784",
"home": 1.90,
"search": 1.10,
"category": 1.50,
"productDetail": 1.60,
"merchandising": 1.70,
"deals": 2.00,
"favorites": 2.30,
"searchBar": 1.00,
"categoryMenu": 1.10,
"checkout": 2.50,
"confirmation": 1.30
}
},
"warnings": [],
"errors": []
}
Update Bid Multipliers
Replaces all existing bid multipliers with the provided bid multipliers or the default value (1.0).
Note: A PUT operation with an empty attributes object will reset all values to their default.

https://api.criteo.com/{version}/retail-media/line-items/{lineItemId}/bid-multipliers
Sample Request
--Request
curl -L -X PUT 'https://api.criteo.com/{version}/retail-media/line-items/347112182987198464/bid-multipliers' \
-H 'Content-Type: application/json' \
-H 'Accept: text/plain' \
-H 'Authorization: Bearer MY_ACCESS_TOKEN' \
--data-raw '{
"data": {
"id": "347112182987198464",
"type": "RetailMediaBidMultiplier"
"attributes": {
"home": "1.90",
"search": "1.10",
"category": "1.50",
"productDetail": "1.60",
"merchandising": "1.70",
"deals": "2.00",
"favorites": "2.30",
"searchBar": "1.00",
"categoryMenu": "1.10",
"checkout": "2.50",
"confirmation": "1.30"
}
}
}'
import requests
import json
url = "https://api.criteo.com/{version}/retail-media/line-items/347112182987198464/bid-multipliers"
payload = json.dumps({
"data": {
"id": "347112182987198464",
"type": "RetailMediaBidMultiplier",
"attributes": {
"home": "1.90",
"search": "1.10",
"category": "1.50",
"productDetail": "0.49",
"merchandising": "1.70",
"deals": "2.00",
"favorites": "2.30",
"searchBar": "1.00",
"categoryMenu": "1.10",
"checkout": "2.50",
"confirmation": "1.30",
}
}
})
headers = {
'Content-Type': 'application/json',
'Accept': 'text/plain',
'Authorization': 'Bearer MY_ACCESS_TOKEN'
}
response = requests.request("PUT", url, headers=headers, data=payload)
print(response.text)
OkHttpClient client = new OkHttpClient().newBuilder()
.build();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\"data\":{\"id\":\"347112182987198464\",\"type\":\"RetailMediaBidMultiplier\",\"attributes\":{\"home\":\"1.90\",\"search\":\"1.10\",\"category\":\"1.50\",\"productDetail\":\"1.60\",\"merchandising\":\"1.70\",\"deals\":\"2.00\",\"favorites\":\"2.30\",\"searchBar\":\"1.00\",\"categoryMenu\":\"1.10\",\"checkout\":\"2.50\",\"confirmation\":\"1.30\"}}}");
Request request = new Request.Builder()
.url("https://api.criteo.com/{version}/retail-media/line-items/347112182987198464/bid-multipliers")
.method("PUT", body)
.addHeader("Content-Type", "application/json")
.addHeader("Accept", "text/plain")
.addHeader("Authorization", "Bearer MY_ACCESS_TOKEN")
.build();
Response response = client.newCall(request).execute();
<?php
require_once "HTTP/Request2.php";
$request = new HTTP_Request2();
$request->setUrl(
"https://api.criteo.com/{version}/retail-media/line-items/347112182987198464/bid-multipliers"
);
$request->setMethod(HTTP_Request2::METHOD_PUT);
$request->setConfig([
"follow_redirects" => true,
]);
$request->setHeader([
"Content-Type" => "application/json",
"Accept" => "text/plain",
"Authorization" => "Bearer MY_ACCESS_TOKEN",
]);
$request->setBody('{"data":{"id":"347112182987198464","type":"RetailMediaBidMultiplier","attributes":{"home":"1.90","search":"1.10","category":"1.50","productDetail":"1.60","merchandising":"1.70","deals":"2.00","favorites":"2.30","searchBar":"1.00","categoryMenu":"1.10","checkout":"2.50","confirmation":"1.30"}}}');
try {
$response = $request->send();
if ($response->getStatus() == 200) {
echo $response->getBody();
} else {
echo "Unexpected HTTP status: " .
$response->getStatus() .
" " .
$response->getReasonPhrase();
}
} catch (HTTP_Request2_Exception $e) {
echo "Error: " . $e->getMessage();
}
Sample Response
{
"data": {
"id": 347112182987198464,
"type": "LineItemBidMultipliersV2",
"attributes": {
"home": 1.90,
"search": 1.10,
"category": 1.50,
"productDetail": 0.50,
"merchandising": 1.70,
"deals": 2.00,
"favorites": 2.30,
"searchBar": 1.00,
"categoryMenu": 1.10,
"checkout": 2.50,
"confirmation": 1.30
}
},
"warnings": [],
"errors": []
}
Responses
Response | Description |
---|---|
🔵 200 | Call executed with success |
🔴 400 | BidMultiplierOutOfRange A bid multiplier provided is out of range of the expected range and could not be accepted IllegalValueProvided An invalid page type or poorly formatted bid multiplier was provided |
🔴 401 | Unauthorized User doesnt have permission to edit a specified line item |
🔴 404 | LineItemDoesntExist Attempted to fetch or manipulate a line item that does not exist |
Updated 21 days ago