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
To fetch all video campaigns across your network, pass your network account:
GET /backstage/api/1.0/{network-account-id}/video-campaigns/base
The endpoint returns basic video campaign details only.
You can pass optional query params, including paging.
Which endpoint and account?
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
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
- To filter on multiple statuses, pass a comma-delimited list (see example above).
- If you do not pass a
status
filter, thebase
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
andpage
query params are always passed together.
Related docs
- Video campaigns - manage video campaigns