Minimum Bid

📝

A Few Things to Know

  1. Line items have bid settings, start & end dates, and optional budgeting & pacing controls.
  2. Target & maximum bid settings must respect minimum bid (minBid), that can be set at product SKU level, to start delivering ads
  3. Products SKU IDs are available through Catalog endpoints
📘

The endpoints and functionalities covered in this page refers to features available exclusively in Preview for now, which doesn't mean that they are the only ones available for this domain/scope.

For more complete information about our API capabilities, check the Stable version in Welcome to Criteo Retail Media API


Endpoints

VerbEndpointDescription
POST/retailers/{retailerId}/compute-display-min-bidRetrieve Minimum Bid by creatives and product IDs

Min Bid Search Request Attributes

Attribute

Data Type

Description

retailerId*

string

Retailer ID where the line item will serve ads on

Accepted values: int64
Writeable? N / Nullable? N

creativeIds*

list<string>

Creative IDs, generated internally by Criteo, used as filter to return the appropriate Minimum Bid by page types that the creative is eligible for

Accepted values: list of int64
Writeable? N / Nullable? N

productIds

list<string>

List of product IDs (optional), from Retailer's Catalog, that are intended to be attached to the creatives (usually, the SKUs promoted by the line item), to properly identify the Minimum Bid for the respective scenario of ads impressions

Accepted values: list of strings, empty list [] or null
Writeable? N / Nullable? Y

* Required

Min Bid Search Response Attributes

Attribute

Data Type

Description

creativeId

string

Creative ID, generated internally by Criteo, which, together with the page type (and any possible SKU attached), contains the respective Minimum Bid

Accepted values: int64
Writeable? N / Nullable? N

pageType

list<string>

Page type available in the current integration of the associated Retailer which, together with the Creative (and any possible SKU attached), contains the respective Minimum Bid

Accepted values: case-insensitive values of

  • Home
  • Search
  • Category
  • ProductDetail
  • Merchandising
  • Deals
  • Favorites
  • SearchBar
  • CategoryMenu
  • Checkout
  • Confirmation


Writeable? N / Nullable? N

minBid

decimal

Minimum Bid resulted from the combination of the respective Creative (considering any possible SKU attached) and page type from Retailer's environment

Acceptable values: minBid0.01
Writeable? N / Nullable? N


Retrieve Minimum Bid from SKU IDs

https://api.criteo.com/preview/retailers/{retailerId}/compute-display-min-bid

Sample Request

curl -L -X POST "https://api.criteo.com/preview/retail-media/retailers/12345/compute-display-min-bid" \
    -H "Authorization: Bearer <MY_ACCESS_TOKEN>" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -d '{
            "data": {
                "type": "<string>",
                "attributes": {
                    "creativeIds": [
                        "758332652442912345",
                        "735093382380667890"
                    ],
                    "productIds": [
                        "1234567",
                        "7654321"
                    ]
                }
        }'
import requests
import json

url = "https://api.criteo.com/preview/retail-media/retailers/12345/compute-display-min-bid"

payload = json.dumps({
    "data": {
        "type": "<string>",
        "attributes": {
            "creativeIds": [
                "758332652442912345",
                "735093382380667890"
            ],
            "productIds": [
                "1234567",
                "7654321"
            ]
        }
    }
})
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer <MY_ACCESS_TOKEN>'
}

response = requests.post(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\":{\"type\":\"<string>\",\"attributes\":{\"creativeIds\":[\"758332652442912345\",\"735093382380667890\"],\"productIds\":[\"1234567\",\"7654321\"]}}}");

Request request = new Request.Builder()
  .url("https://api.criteo.com/preview/retail-media/retailers/12345/compute-display-min-bid")
  .method("POST", body)
  .addHeader("Content-Type", "application/json")
  .addHeader("Accept", "application/json")
  .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/preview/retail-media/retailers/12345/compute-display-min-bid');
$request->setMethod(HTTP_Request2::METHOD_POST);
$request->setConfig(array(
  'follow_redirects' => TRUE
));
$request->setHeader(array(
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer <MY_ACCESS_TOKEN>'
));
$request->setBody('{"data":{"type":"<string>","attributes":{"creativeIds":["758332652442912345","735093382380667890"],"productIds":["1234567","7654321"]}}}');
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": "DisplayAuctionMinBidResult",
            "attributes": {
                "minBid": 10.00,
                "pageType": "Home",
                "creativeId": "758332652442912345"
            }
        },
        {
            "type": "DisplayAuctionMinBidResult",
            "attributes": {
                "minBid": 2.50,
                "pageType": "Search",
                "creativeId": "758332652442912345"
            }
        },
        {
            "type": "DisplayAuctionMinBidResult",
            "attributes": {
                "minBid": 2.50,
                "pageType": "ProductDetail",
                "creativeId": "758332652442912345"
            }
        },
      
        // ...

        {
            "type": "DisplayAuctionMinBidResult",
            "attributes": {
                "minBid": 2.50,
                "pageType": "Confirmation",
                "creativeId": "758332652442912345"
            }
        },
        {
            "type": "DisplayAuctionMinBidResult",
            "attributes": {
                "minBid": 10.00,
                "pageType": "Home",
                "creativeId": "735093382380667890"
            }
        },
        {
            "type": "DisplayAuctionMinBidResult",
            "attributes": {
                "minBid": 2.50,
                "pageType": "Search",
                "creativeId": "735093382380667890"
            }
        },
        {
            "type": "DisplayAuctionMinBidResult",
            "attributes": {
                "minBid": 2.50,
                "pageType": "ProductDetail",
                "creativeId": "735093382380667890"
            }
        },
      
        // ...

        {
            "type": "DisplayAuctionMinBidResult",
            "attributes": {
                "minBid": 2.50,
                "pageType": "Confirmation",
                "creativeId": "735093382380667890"
            }
        }
    ],
    "warnings": [],
    "errors": []
}

Responses

Response

Description

🟢 200

Call executed with success

🔴 400

json-serialization-error Required attribute missing or with unexpected format in request's body

🔴 404

Not Found Retailer ID informed in request's path was not found