Creating native, display, and performance video campaigns
Every campaign runs one creative surface: native, display, or performance video. You choose the surface when you create the campaign, through the campaign_item_type field on Create a campaign. The surface determines which creatives the campaign can run.
Performance video here means video display creatives on the standard campaign endpoint. It is not the separate brand Video Campaigns product, which uses its own
/video-campaignsendpoints.
Campaign types
| Type | campaign_item_type to send | Runs |
|---|---|---|
| Native | HAS_NO_ITEMS (or omit the field) | Native ads, including carousel |
| Display | HAS_NO_ITEMS_DISPLAY | Display static ads |
| Performance video | HAS_NO_ITEMS_PERFORMANCE_DISPLAY_VIDEO | Hosted video display ads |
Choosing the type at creation
- Send
campaign_item_typein the create-campaign request body with the value for the surface you want. - Native is the default. Omit the field, or send
HAS_NO_ITEMS. - Always send the
HAS_NO_ITEMS_*value at creation. Once you add items, the platform updates the field to the corresponding items state (for example,HAS_DISPLAY_ITEMS), so a later read can return a different value than you sent.
Constraints
campaign_item_typecan only be set while the campaign is empty (at creation, or before any items are added).- Display and performance video must be enabled for your account by Taboola. If creation is rejected for those types, contact your Taboola account manager.
Examples
The bidding fields below (cpc, bid_strategy, marketing_objective, spending limit) follow the same rules as any campaign. See Create a campaign and Bidding strategy for the minimal set per strategy. Only campaign_item_type changes between the surfaces.
Native campaign
{
"name": "Native Campaign",
"cpc": 0.25,
"bid_strategy": "FIXED",
"marketing_objective": "DRIVE_WEBSITE_TRAFFIC",
"campaign_item_type": "HAS_NO_ITEMS"
}Omitting campaign_item_type produces the same native campaign.
Display campaign
{
"name": "Display Campaign",
"cpc": 0.25,
"bid_strategy": "FIXED",
"marketing_objective": "DRIVE_WEBSITE_TRAFFIC",
"campaign_item_type": "HAS_NO_ITEMS_DISPLAY"
}Performance video campaign
{
"name": "Performance Video Campaign",
"cpc": 0.25,
"bid_strategy": "FIXED",
"marketing_objective": "DRIVE_WEBSITE_TRAFFIC",
"campaign_item_type": "HAS_NO_ITEMS_PERFORMANCE_DISPLAY_VIDEO"
}Adding creatives after creation
Each type accepts only its matching creatives:
- Native campaigns accept native creatives. See Creating a campaign item.
- Display campaigns accept static display creatives (uploaded image files). See Display ad URL-based upload.
- Performance video campaigns accept hosted video display creatives only.
A single campaign cannot mix native and display creatives.
Common errors
- Sending an items state such as
HAS_DISPLAY_ITEMSat creation returns HTTP 400,Value is not allowed for this field. Send theHAS_NO_ITEMS_*variant instead; the items states are set by the platform, not by the caller. - Changing
campaign_item_typeon a campaign that already has items returns HTTP 400,Only empty campaigns are allowed to change this field. - Requesting display or performance video on an account that is not enabled for them is rejected.
Related references
- Create a campaign
- Campaigns overview
- Display ad URL-based upload
- Video Campaigns (separate brand-video product)
Updated about 1 month ago
