Skip to main content
For common questions between Single-seller and Multi-seller documentation, refer to the shared documentation.

Campaigns

A Single-Seller campaign (identified by sellerCampaignId) is a per-seller campaign derived from a template campaign configured by Criteo. You do not create it directly via the API. Instead, Criteo automatically creates the campaign when the first valid budget is submitted for a (sellerId, templateCampaignId).After the first budget is accepted, allow for a short asynchronous provisioning delay before impressions begin.
A template campaign is a non-delivering campaign configuration managed by Criteo. It acts as the blueprint used to generate Single-Seller campaigns.The template defines settings such as:
  • optimization goal
  • bidding strategy
  • audiences
  • creatives
  • delivery configuration
Template campaigns cannot be created via the API.
The templateCampaignId is provided to you directly by Criteo when your Single-Seller template is configured. It is not retrievable via a self-serve API endpoint.
You do not pause seller-campaigns directly. Instead, suspend or resume the associated budget.Pause:
HTTP
Resume:
HTTP
If the budget’s endDate is in the past, resuming will not restart delivery. Create a new budget with a future period instead.
Check the suspendedSince and suspensionReasons fields on the seller-campaign. If suspendedSince is null and suspensionReasons is null, the campaign appears active to the API but may still not be delivering. Check that the template campaign is active and the budget meets the minimum per-seller threshold.If suspensionReasons contains a value, refer to the table below:
Other indicates that an internal issue is preventing the campaign from delivering, for example, a click spike prevention mechanism. This is not a client-side configuration error and cannot be resolved through API calls alone. Surface this to your operations team and notify your Criteo Product or R&D contact for investigation.
Yes. Use the productSet feature to attach a whitelist of product IDs (by ExternalItemId) to a seller-campaign:
Notes:
  • productSet is optional; without one, all eligible products from the seller’s catalog are used.
  • A minimum number of product IDs is required per productSet (default: 20). Providing fewer will return a 4xx error.
  • productSet is only supported on Single-Seller campaigns. It cannot be used on multi-seller campaigns.
  • To remove the productSet and revert to all eligible products, set productSet.value to null.
This is usually a permissions issue, not a server bug. Creating a seller’s first budget triggers an automatic sync of the parent template ad set’s audience, creative, and productSet configuration to the newly created child (seller-specific) ad set. If your app’s OAuth token is missing Manage rights on Audiences, Creatives, Catalog, or Product Recommendation, this sync fails.Check that your app has been granted:
  • Campaigns: Manage
  • Audiences: Manage
  • Creatives: Manage
  • Catalog: Manage
  • Product Recommendation: Manage
  • Analytics: Read
If a seller’s child ad set already exists, calls can succeed even with missing permissions, since no new sync is needed. This is why the error can appear intermittent across an organization with multiple apps/AppIds that have different permission grants.

Budgets

Only capped total budgets over a fixed date range are supported. Daily and uncapped budget types are not available in Single-Seller mode.If your use case requires always-on or short-duration delivery, the following patterns are supported as workarounds:Always-on delivery
Schedule a sequence of consecutive, non-overlapping capped budgets — for example, monthly budgets submitted in advance. Each budget covers a fixed period and the next begins where the previous ends.
Short-duration budgets
Submit individual capped budgets for the desired interval (daily, weekly, or monthly). Each must be a separate non-overlapping request for the same (sellerId, templateCampaignId) pair.
Daily pacing is automatic. The system distributes the total budget evenly across the budget period, computing a daily target. Under-delivery or over-delivery on a given day is compensated across the remaining days, as long as the budget period is active.
There is no dedicated endpoint for remaining budget. Calculate it using:
Both amount and spend are available from:
  • GET /marketplace-performance-outcomes/budgets
  • GET /marketplace-performance-outcomes/budgets/{budgetId}
No. For a given (sellerId, templateCampaignId) pair, budget periods must not overlap. Suspended budgets are treated as logically canceled and do not block new budgets for the same dates.
Yes. You can create budgets with future startDate values as long as their date ranges do not overlap with any existing active budgets for the same (sellerId, templateCampaignId) pair.
The minimum budget amount for a given period is:
If the amount is below this threshold, the API will return a 4xx error.
Check that your app has Manage rights for Audiences, Creatives, and Catalog (covers Product Set), not just Campaigns. The first budget for a seller syncs the parent template’s audience/creative/productSet config to the new child ad set, so missing rights can cause a 500 even on a valid request.

Statistics

Single-Seller performance uses the same stats APIs as multi-seller. Choose the endpoint based on the granularity you need:
Statistics data defaults to UTC. However, a timezone parameter is available in the Stats API request to retrieve data in a specific time zone.
Statistics are typically available with a latency of a few hours. Refer to the Getting Statistics page for current SLA guidance.
This is expected immediately after the first budget creation. Criteo creates the underlying seller-campaign synchronously when the first budget is accepted, but there is a short asynchronous provisioning delay before delivery begins.If impressions do not appear after a reasonable wait, check:
  • The template campaign is active (not paused or archived).
  • The budget amount meets the minimum per-seller threshold.
  • The budget isSuspended is false.
  • The seller has eligible products in the catalog (no RemovedFromCatalog suspension reason).
  • If a productSet is configured, the product IDs are valid and active in the seller’s catalog.