Skip to main content

Endpoints

Method

Endpoint

Description

POST

/accounts/{accountId}/campaigns

Create a new campaign for the specified account.

GET

/accounts/{accountId}/campaigns

Retrieve all campaigns associated with the specified account.

GET

/campaigns/{campaignId}

Retrieve details of a specific campaign by its ID.

PUT

/campaigns/{campaignId}

Update details of a specific campaign by its ID.

Create Operations:
  • When using the POST method to create a resource, all Required fields must be included. Any Optional fields that are omitted will be set to their default values.
Update Operations:
  • When using the PUT method to update a resource, all Write fields can be specified. Omitting any of these fields is treated as setting them to null, where applicable.

Campaign Attributes

Attribute

Data Type

Description

id

string

Campaign ID, generated internally by Criteo

Accepted values: int64

Writeable? N / Nullable? N

accountId*

string

AccountID associated with the campaign, generated internally by Criteo

Accepted values: int64

Writeable? N / Nullable? N

name*

string

Campaign name; must be unique within anAccount

Accepted values: up to 255-chars string

Writeable? Y / Nullable? N

type

enum

Campaign type

If the attribute is passed in the call, a value must be specified

Accepted values:auction,preferred

Default:auction

Writeable? Y / Nullable? N

budget

decimal

Campaign lifetime spend cap; uncapped if omitted or set tonull.

Note that preferred campaign types cannot have budgets as these campaign types must be uncapped

Accepted values: equals/greater than zero

Default:null

Writeable? Y / Nullable? Y

budgetSpent

decimal

Amount the campaign has already spent

Accepted values: equals/greater than zero

Default:0.0

Writeable? N / Nullable? N

budgetRemaining

decimal

Amount the campaign has remaining until cap is hit;nullif budget is uncapped

Accepted values: between zero andbudget

Default:null

Writeable? N / Nullable? Y

promotedBrandIds

list<string>

List of brand IDs from promoted products in the campaign, originated from the retailer’sCatalog

  • see also
Brands

Accepted values: list of strings

Default: empty list

Writeable? N / Nullable? N

clickAttributionWindow*

enum

Post-click attribution window

Accepted values:7D,14D,30D

Default:30D

Writeable? Y / Nullable? N

viewAttributionWindow*

enum

Post-view attribution window

Accepted values:None,1D,7D,14D,30D

Default:None

Writeable? Y / Nullable? N

clickAttributionScope

enum

Post-click attribution scope

Accepted values:sameSku,sameSkuCategory,sameSkuCategoryBrand

Default:sameSkuCategory

Writeable? Y / Nullable? N

viewAttributionScope

enum

Post-view attribution scope

Accepted values:sameSku,sameSkuCategory,sameSkuCategoryBrand

Default:sameSku

Writeable? Y / Nullable? N

drawableBalanceIds

list<string>

List ofBalancesthe campaign is able to draw from; at least one balance is required for a campaign to start

Accepted values: list ofbalanceId

Default: empty list

Writeable? N / Nullable? N

status

enum

Campaign status, derived from the status ofLine Itemsit holds;activeif at least one line item is active. To understand the conditions that will cause a status to change, check outCampaign & Line Item Status

Accepted values:active,inactive

Default:inactive

Writeable? N / Nullable? N

monthlyPacing

decimal

The maximum monthly spend allowed for the campaign in the currency of the account. The spend is constrained by remaining account balance and total budget of the campaign. Monthly budget spend reset monthly at the start of the month based on the account timezone

Accepted values:nullor greater than zero

Default:null

Writeable? Y / Nullable? Y

dailyPacing

decimal

The maximum daily spend allowed for the campaign in the currency of the account, as long as not set tonullandisAutoDailyPacing = false; otherwise no daily spend limit will be enforced

Accepted values:nullor greater than zero

Default:null

Writeable? Y / Nullable? Y

isAutoDailyPacing

boolean

Auto daily pacing flag for the campaign budget. The daily pacing value is automatically calculated with respect to the days left in the month for the account. The campaign’s remaining account balance, total budget, and monthly pacing value are constrained by account’s timezone and the campaign status. If auto daily pacing is enabled,dailyPacingvalue should be left empty (null).

Note the value may be affected by budget override. Daily budget spend is reset daily at the start of the day based on the account timezone. To activate, either campaign’sendDateandbudgetormonthlyPacingmust be specified, overwritingdailyPacingwith the new respective pace (if not set previously)

Accepted values:true,false

Writeable? Y / Nullable? N

startDate*

timestamp

Campaign start date. The campaign starts inactive if invalid start date is not today or end date is in previous day.

Accepted values:yyyy-mm-ddThh:mm:ss±hh:mm(inISO-8601)

Default: creation timestamp

Writeable? Y / Nullable? Y

⚠️Note: if time/timezone designators are not provided, the default value to be considered will be00:00:00+00:00(i.e., midnight in UTC - account timezone not taken in consideration here)

endDate*

timestamp

Campaign end date. The campaign starts inactive if invalid start date is not today or end date is in previous day

Accepted values:yyyy-mm-ddThh:mm:ss±hh:mm(inISO-8601)

Default:null

Writeable? Y / Nullable? Y

⚠️Note: if time/timezone designators are not provided, the default value to be considered will be00:00:00+00:00(i.e., midnight in UTC - account timezone not taken in consideration here)

createdAt

timestamp

Timestamp of campaign creation, in UTC

Accepted values:yyyy-mm-ddThh:mm:ss±hh:mm(inISO-8601)

Writeable? N / Nullable? N

updatedAt

timestamp

Timestamp of last campaign update, in UTC

Accepted values:yyyy-mm-ddThh:mm:ss±hh:mm(inISO-8601)

Writeable? N / Nullable? N

companyName

string

This optional field, exclusively accessible to marketplaces within the European Union (in compliance with the Digital Service Act - DSA), will display the name of the company associated with the advertisement.

Accepted values: up to 255-chars string

Writeable? Y / Nullable? Y

onBehalfCompanyName

string

This optional field, exclusively accessible to marketplaces within the European Union (in compliance with the Digital Service Act - DSA), will display the name of the company (on behalf ofcompanyName) associated with the advertisement

Accepted values: up to 255-chars string

Writeable? Y / Nullable? Y

(*) Required for create operations

Digital Service Act (DSA)

In compliance with the Digital Services Act (DSA), marketplaces within the European Union will receive information about the company name associated with each advertisement.

Create a Campaign

This endpoint creates a new campaign in the specified account. Sample Request
curl -L -X POST 'https://api.criteo.com/{version}/retail-media/accounts/5/campaigns' \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Bearer <MY_ACCESS_TOKEN>' \
-d '{
    "data": {
        "type": "<string>",
        "attributes": {
            "name": "Valentine Day Sale",
            "isAutoDailyPacing": false,
            "startDate": "2024-02-12",
            "endDate": "2024-02-15",
            "type": "auction",
            "drawableBalanceIds": [
                "142000305654435840"
            ],
            "clickAttributionWindow": "30D",
            "viewAttributionWindow": "None",
            "budget": 100,
            "monthlyPacing": 50,
            "dailyPacing": 10,
            "clickAttributionScope": "sameSkuCategory",
            "viewAttributionScope": "sameSkuCategory",
            "companyName": "Test Company A",
            "onBehalfCompanyName": "Test Company B"
        }
    }
}'
Sample Response
{
    "data": {
        "id": "544937665113018368",
        "type": "RetailMediaCampaignV202301",
        "attributes": {
            "accountId": "5",
            "promotedBrandIds": [],
            "budgetSpent": 0.00000000,
            "budgetRemaining": 100.00000000,
            "status": "inactive",
            "createdAt": "2024-02-12T17:47:43+00:00",
            "updatedAt": "2024-02-12T17:47:43+00:00",
            "type": "auction",
            "drawableBalanceIds": [
                "142000305654435840"
            ],
            "clickAttributionWindow": "30D",
            "viewAttributionWindow": "1D",
            "name": "Valentine Day Sale",
            "budget": 100.00000000,
            "monthlyPacing": 50.00000000,
            "dailyPacing": 10.00000000,
            "isAutoDailyPacing": false,
            "startDate": "2024-02-12T00:00:00+00:00",
            "endDate": "2024-02-15T00:00:00+00:00",
            "clickAttributionScope": "sameSkuCategory",
            "viewAttributionScope": "sameSkuCategory",
            "companyName": "Test Company A",
            "onBehalfCompanyName": "Test Company B"
        }
    }
}

Get all Campaigns by Account ID

This endpoint lists all campaigns in the specified account. Results are paginated using pageIndex and pageSize query parameters; if omitted, defaults to 0 and 25, respectively. See API Response. Sample Request
curl -L -X GET 'https://api.criteo.com/{version}/retail-media/accounts/5/campaigns?pageIndex=8&pageSize=2' \
-H 'Accept: application/json' \
-H 'Authorization: Bearer <MY_ACCESS_TOKEN>'
Sample Response
{
    "metadata": {
        "totalItemsAcrossAllPages": 306,
        "currentPageSize": 2,
        "currentPageIndex": 8,
        "totalPages": 153,
        "nextPage": "https://api.criteo.com/{version}/retail-media/accounts/5/campaigns?pageIndex=9&pageSize=2",
        "previousPage": "https://api.criteo.com/{version}/retail-media/accounts/5/campaigns?pageIndex=7&pageSize=2"
    },
    "data": [
        {
            "id": "360028769027026944",
            "type": "RetailMediaCampaignV202301",
            "attributes": {
                "accountId": "5",
                "promotedBrandIds": [],
                "budgetSpent": 0.00000000,
                "budgetRemaining": null,
                "status": "inactive",
                "createdAt": "2022-09-20T11:45:47+00:00",
                "updatedAt": "2023-09-12T13:50:06+00:00",
                "type": "preferred",
                "drawableBalanceIds": [],
                "clickAttributionWindow": "14D",
                "viewAttributionWindow": "14D",
                "name": "Spring Sale 1",
                "budget": null,
                "monthlyPacing": null,
                "dailyPacing": null,
                "isAutoDailyPacing": false,
                "startDate": null,
                "endDate": null,
                "clickAttributionScope": "sameSkuCategory",
                "viewAttributionScope": "sameSkuCategory",
                "companyName": null,
                "onBehalfCompanyName": null
            }
        },
        {
            "id": "360029773808807936",
            "type": "RetailMediaCampaignV202301",
            "attributes": {
                "accountId": "5",
                "promotedBrandIds": [
                    "82539",
                    "105804",
                    "113465",
                    "117905",
                    "120242",
                    "125722",
                    "126509",
                    "135449",
                    "190104",
                    "2000000201",
                    "2000002375",
                    "2000002969"
                ],
                "budgetSpent": 0.00000000,
                "budgetRemaining": 555.00000000,
                "status": "inactive",
                "createdAt": "2022-09-20T11:49:47+00:00",
                "updatedAt": "2023-09-12T13:50:06+00:00",
                "type": "auction",
                "drawableBalanceIds": [],
                "clickAttributionWindow": "30D",
                "viewAttributionWindow": "1D",
                "name": "Spring Sales 2",
                "budget": 555.00000000,
                "monthlyPacing": null,
                "dailyPacing": null,
                "isAutoDailyPacing": false,
                "startDate": "2022-09-20T04:00:00+00:00",
                "endDate": "2022-09-21T03:59:59+00:00",
                "clickAttributionScope": "sameSkuCategory",
                "viewAttributionScope": "sameSku",
                "companyName": null,
                "onBehalfCompanyName": null
            }
        }
    ]
}

Get a specific Campaign

This endpoint retrieves the specified campaign. Sample Request
curl -L -X GET 'https://api.criteo.com/{version}/retail-media/campaigns/1240' \
-H 'Accept: application/json' \
-H 'Authorization: Bearer <MY_ACCESS_TOKEN>'
Sample Response
{
    "data": {
        "id": "544937665113018368",
        "type": "RetailMediaCampaignV202301",
        "attributes": {
            "accountId": "5",
            "promotedBrandIds": [],
            "budgetSpent": 0.00000000,
            "budgetRemaining": null,
            "status": "inactive",
            "createdAt": "2024-02-12T17:47:43+00:00",
            "updatedAt": "2024-02-12T17:56:04+00:00",
            "type": "auction",
            "drawableBalanceIds": [
                "142000305654435840"
            ],
            "clickAttributionWindow": "30D",
            "viewAttributionWindow": "1D",
            "name": "Valentine Day Sale",
            "budget": null,
            "monthlyPacing": 50.00000000,
            "dailyPacing": null,
            "isAutoDailyPacing": false,
            "startDate": "2024-02-12T00:00:00+00:00",
            "endDate": "2024-02-15T00:00:00+00:00",
            "clickAttributionScope": "sameSku",
            "viewAttributionScope": "sameSku",
            "companyName": "ABC Test Company",
            "onBehalfCompanyName": "ABC Test Company"
        }
    }
}

Update a specific Campaign

This endpoint allows you to update a specified campaign. The following example demonstrates how to switch to an uncapped campaign budget and modify the post-view attribution window. Sample Request
curl -L -X PUT 'https://api.criteo.com/{version}/retail-media/campaigns/544937665113018368' \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Bearer &lt;TOKEN&gt;' \
-d '{
	"data": {
    "id": "544937665113018368",
    "type": "UpdateCampaign",
        "attributes": {
            "name": "Valentine Day Sale",
            "isAutoDailyPacing": false,
            "startDate": "2024-02-12",
            "endDate": "2024-02-15",
            "type": "auction",
            "drawableBalanceIds": [
                "142000305654435840"
            ],
            "clickAttributionWindow": "30D",
            "viewAttributionWindow": "1D",
            "budget": null,
            "monthlyPacing": 50,
            "dailyPacing": 10,
            "clickAttributionScope": "sameSku",
            "viewAttributionScope": "sameSku",
            "companyName": "ABC Test Company",
            "onBehalfCompanyName": "ABC Test Company"
        }
	}
}'
Sample Response
{
    "data": {
        "id": "544937665113018368",
        "type": "RetailMediaCampaignV202301",
        "attributes": {
            "accountId": "5",
            "promotedBrandIds": [],
            "budgetSpent": 0.00000000,
            "budgetRemaining": null,
            "status": "inactive",
            "createdAt": "2024-02-12T17:47:43+00:00",
            "updatedAt": "2024-02-12T17:56:04+00:00",
            "type": "auction",
            "drawableBalanceIds": [
                "142000305654435840"
            ],
            "clickAttributionWindow": "30D",
            "viewAttributionWindow": "1D",
            "name": "Valentine Day Sale",
            "budget": null,
            "monthlyPacing": 50.00000000,
            "dailyPacing": null,
            "isAutoDailyPacing": false,
            "startDate": "2024-02-12T00:00:00+00:00",
            "endDate": "2024-02-15T00:00:00+00:00",
            "clickAttributionScope": "sameSku",
            "viewAttributionScope": "sameSku",
            "companyName": "ABC Test Company",
            "onBehalfCompanyName": "ABC Test Company"
        }
    }
}

Responses

Response

Description

🟢200

Call completed with success

🟢201

Campaign was created successfully

🔴400

Validation Error - one or more required field was not found. Confirm if all required fields are present in the API call

  • Invalid isautodailypacing* - Cannot turn on IsAutoDailyPacing and add a DailyPacing value

IsAutoDailyPacing and Daily Pacing can not be active at the same time. Passing this in the call will return a 400 error

  • Invalid budget* - Budget is not allowed for the Preferred campaign.