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-campaigns endpoints.

Campaign types

Typecampaign_item_type to sendRuns
NativeHAS_NO_ITEMS (or omit the field)Native ads, including carousel
DisplayHAS_NO_ITEMS_DISPLAYDisplay static ads
Performance videoHAS_NO_ITEMS_PERFORMANCE_DISPLAY_VIDEOHosted video display ads

Choosing the type at creation

  • Send campaign_item_type in 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_type can 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:

A single campaign cannot mix native and display creatives.

Common errors

  • Sending an items state such as HAS_DISPLAY_ITEMS at creation returns HTTP 400, Value is not allowed for this field. Send the HAS_NO_ITEMS_* variant instead; the items states are set by the platform, not by the caller.
  • Changing campaign_item_type on 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


Did this page help you?