Video campaigns base endpoint


πŸ“

Video campaigns (aka brand video) require a special Taboola account.

Overview

The base endpoint provides a convenience method for fetching all video campaigns across your network (or for a given account). It returns basic video campaign details only. (See the code samples below.)

GET /backstage/api/1.0/{account_id}/video-campaigns/base
{
  "results": [
    {
      "id": 66934035,
      "advertiser_id": 1234567,
      "advertiser_name": "demo-beverage-corp",
      "advertiser_description": "Demo Beverage Corporation - Video",
      "name": "demo_summer_campaign_2024_video_engagement_cpm",
      "branding_text": "",
      "policy_state": null,
      "status": "EXPIRED",
      "create_time": 1624398677000,
      "total_spent": 1168307.2140000002,
      "type": "PAID",
      "marketing_objective": null,
      "campaign_groups": null,
      "bid_strategy": null,
      "is_creative_library_campaign": null,
      "business_model": "CPCV"
    },
    {
      "id": 66978255,
      "advertiser_id": 1234567,
      "advertiser_name": "demo-beverage-corp",
      "advertiser_description": "Demo Beverage Corporation - Video",
      "name": "demo_winter_campaign_2024_video_engagement_cpm",
      "branding_text": "",
      "policy_state": null,
      "status": "EXPIRED",
      "create_time": 1630027632000,
      "total_spent": 762297.2462,
      "type": "PAID",
      "marketing_objective": null,
      "campaign_groups": null,
      "bid_strategy": null,
      "is_creative_library_campaign": null,
      "business_model": "CPCV"
    }
  ],
  "metadata": {
    "total": 14,
    "count": 14,
    "static_fields": [],
    "static_total_fields": [],
    "dynamic_fields": null,
    "start_date": null,
    "end_date": null
  }
}
🚧

Guidelines

  1. To fetch all video campaigns across your network, pass your network account:

    GET /backstage/api/1.0/{network-account-id}/video-campaigns/base

  2. The endpoint returns basic video campaign details only.

  3. You can pass optional query params, including paging.

πŸ“˜

Which endpoint and account?

  1. To fetch basic details for all video campaigns across the network, invoke video-campaigns/base with the network account:

    GET /backstage/api/1.0/{network-account-id}/video-campaigns/base

  2. To fetch full details for video campaigns owned by a sub-account, invoke video-campaigns with that account:

    GET /backstage/api/1.0/{account-id}/video-campaigns

Examples with filters

Status

Fetch all video campaigns across the network that are awaiting approval by Taboola:

GET /backstage/api/1.0/demo-advertiser-network/video-campaigns/base?status=PENDING_APPROVAL

Fetch all video campaigns across the network that are running:

GET /backstage/api/1.0/demo-advertiser-network/video-campaigns/base?status=RUNNING

Fetch all video campaigns that are running or "paused":

GET /backstage/api/1.0/demo-advertiser-network/video-campaigns/base?status=RUNNING,PAUSED
πŸ“˜

Guidelines

  1. To filter on multiple statuses, pass a comma-delimited list (see example above).
  2. If you do not pass a status filter, the base endpoint will return all video campaigns - regardless of status.

For a list of possible values for status, see the video campaign status values section.

Text Search

Return all video campaigns with an ID (or Name) that contains '66934035':

GET /backstage/api/1.0/demo-advertiser-network/video-campaigns/base?search_text=66934035
{
  "results": [
    {
      "id": 66934035,
      "advertiser_id": 1234567,
      "advertiser_name": "demo-beverage-corp",
      "advertiser_description": "Demo Beverage Corporation - Video",
      "name": "demo_summer_campaign_2024_video_engagement_cpm",
      "branding_text": "",
      "policy_state": null,
      "status": "EXPIRED",
      "create_time": 1624398677000,
      "total_spent": 1168307.2140000002,
      "type": "PAID",
      "marketing_objective": null,
      "campaign_groups": null,
      "bid_strategy": null,
      "is_creative_library_campaign": null,
      "business_model": "CPCV"
    }
  ],
  "metadata": {
    "total": 1,
    "count": 1
  }
}

Return all video campaigns that contain 'Demo' in their name:

GET /backstage/api/1.0/demo-advertiser-network/video-campaigns/base?search_text=Demo
πŸ“˜

The search_text filter looks for matches on Video Campaign ID or Name.

Filtering on a specific Video Campaign ID will typically return that campaign only.

Combining filters

Return all video campaigns that are running and contain 'Demo' in their name:

GET /backstage/api/1.0/demo-advertiser-network/video-campaigns/base?status=RUNNING&search_text=Demo
🚧

Combining filters

  • You can combine different filters - e.g. status=RUNNING&search_text=Demo.
  • You cannot repeat the same filter twice. For example, there is no way to request campaigns with a status of RUNNING or PAUSED.

No matching campaigns

If there are no video campaigns that match the requested filter, a 404 status is returned:

{
  "http_status": 404,
  "message": "No matching campaigns found",
  "message_code": "api.action.resource_not_found"
}

Paging

Use a page size of 100 - and fetch page 1:

GET /backstage/api/1.0/demo-advertiser-network/video-campaigns/base?page_size=100&page=1
{
  "results": [
    {
      "id": 66934035,
      "advertiser_id": 1234567,
      "advertiser_name": "demo-beverage-corp",
      "advertiser_description": "Demo Beverage Corporation - Video",
      "name": "demo_summer_campaign_2024_video_engagement_cpm",
      "branding_text": "",
      "policy_state": null,
      "status": "EXPIRED",
      "create_time": 1624398677000,
      "total_spent": 1168307.2140000002,
      "type": "PAID",
      "marketing_objective": null,
      "campaign_groups": null,
      "bid_strategy": null,
      "is_creative_library_campaign": null,
      "business_model": "CPCV"
    }
  ],
  "metadata": {
    "total": 14,
    "count": 100
  }
}
🚧

The page_size and page query params are always passed together.

Related docs