Campaigns
1. What is a Single-Seller campaign and how is it created?
1. What is a Single-Seller campaign and how is it created?
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.2. What is the template campaign and how do I get one?
2. What is the template campaign and how do I get one?
- optimization goal
- bidding strategy
- audiences
- creatives
- delivery configuration
3. Where do I get the template campaign ID?
3. Where do I get the template campaign ID?
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.4. What is the difference between a campaign, a template campaign, and a seller-campaign?
4. What is the difference between a campaign, a template campaign, and a seller-campaign?
Entity | Who creates it | What it does |
|---|---|---|
Campaign | Criteo | Top-level ad configuration; not managed via MPO API |
Template campaign ( | Criteo | Single-Seller blueprint; defines shared settings for all derived seller-campaigns |
Seller-campaign ( | Created implicitly by Criteo on first budget | Per-seller delivery campaign; managed via budgets and |
5. How do I pause or resume a Single-Seller campaign?
5. How do I pause or resume a Single-Seller campaign?
endDate is in the past, resuming will not restart delivery. Create a new budget with a future period instead.6. Why is my seller-campaign not delivering even though it looks active?
6. Why is my seller-campaign not delivering even though it looks active?
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:Reason | Meaning | Action |
|---|---|---|
| Budget manually suspended | Resume via budget |
| No active budget exists | Create a valid budget |
| Budget fully spent | Create a new budget for a future period |
| All products removed | Restore products in the catalog |
| Newly created, not yet processed | Wait for provisioning |
| Daily spend limit reached | No action needed; resets the next day |
| Internal error | Contact Criteo Product or R&D |
7. What does the `Other` suspension reason mean?
7. What does the `Other` suspension reason mean?
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.8. Can I configure which products a seller-campaign advertises?
8. Can I configure which products a seller-campaign advertises?
productSet feature to attach a whitelist of product IDs (by ExternalItemId) to a seller-campaign:productSetis 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 a4xxerror. productSetis only supported on Single-Seller campaigns. It cannot be used on multi-seller campaigns.- To remove the
productSetand revert to all eligible products, setproductSet.valuetonull.
Budgets
9. What budget types are available in Single-Seller?
9. What budget types are available in Single-Seller?
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.10. How does pacing work?
10. How does pacing work?
11. How do I check the remaining budget?
11. How do I check the remaining budget?
amount and spend are available from:GET /marketplace-performance-outcomes/budgetsGET /marketplace-performance-outcomes/budgets/{budgetId}
12. Can budget periods overlap for the same seller?
12. Can budget periods overlap for the same seller?
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.13. Can I schedule future budgets?
13. Can I schedule future budgets?
startDate values as long as their date ranges do not overlap with any existing active budgets for the same (sellerId, templateCampaignId) pair.14. How do I calculate the minimum budget amount for a request?
14. How do I calculate the minimum budget amount for a request?
4xx error.Statistics
15. Which stats endpoints do I use for Single-Seller?
15. Which stats endpoints do I use for Single-Seller?
Endpoint | Use case |
|---|---|
| Aggregated across all sellers for a template |
| Per-seller aggregation |
| Per seller-campaign (most granular) |
16. Are statistics available in local time zones?
16. Are statistics available in local time zones?
17. What is the data latency for statistics?
17. What is the data latency for statistics?
18. I just created a seller's first budget but I'm seeing no impressions. What's wrong?
18. I just created a seller's first budget but I'm seeing no impressions. What's wrong?
- The template campaign is active (not paused or archived).
- The budget amount meets the minimum per-seller threshold.
- The budget
isSuspendedisfalse. - The seller has eligible products in the catalog (no
RemovedFromCatalogsuspension reason). - If a
productSetis configured, the product IDs are valid and active in the seller’s catalog.