Skip to main content

Introduction

  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

Verb

Endpoint

Description

POST

/retailers/{retailerId}/compute-display-min-bid

Retrieve 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

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

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[]ornull

Writeable? N / Nullable? Y

* Required
Field Definitions
  • Writeable (Y/N): Indicates if the field can be modified in requests.
  • Nullable (Y/N): Indicates if the field can accept null/empty values.
  • Primary Key: A unique, immutable identifier of the entity, generated internally by Criteo. Primary keys are typically ID fields (e.g., retailerId, campaignId, lineItemId) and are usually required in the URL path.

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

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

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