Returns a JSON object with the newly created campaign.
You can optionally:
- Update (override) specific campaign field values.
- Indicate which campaign sections should be duplicated (default = all).
- Specify a target account for the new campaign (default = current account).
Update specific fields
You can optionally pass an object in the request body, indicating fields to update.
Example - Update specific fields
POST /backstage/api/1.0/demo-advertiser/campaigns/123/duplicate
{
"name": "Demo Campaign - New name",
"branding_text": "New branding text",
"spending_limit": 10000,
"spending_limit_model": "ENTIRE",
"comment": "Please apply suitable targeting."
}
{
"id": "123",
"advertiser_id": "demo-advertiser",
"name": "Demo Campaign",
"branding_text": "Branding text",
"tracking_code": "utm_source=taboola&utm_medium=referral",
"pricing_model": "CPC",
"cpc": 1.0,
"daily_cap": 30.0,
"daily_ad_delivery_model": "STRICT",
"spending_limit": 100.0,
"spending_limit_model": "MONTHLY",
"cpa_goal": 0.0,
"country_targeting": {
"type": "ALL",
"value": [],
"href": null
},
"sub_country_targeting": {
"type": "ALL",
"value": [],
"href": null
},
"postal_code_targeting": {
"type": "ALL",
"value": null,
"href": "https://backstage.taboola.com/backstage/api/1.0/demo-advertiser/campaigns/123/targeting/postal_code"
},
"contextual_targeting": {
"type": "ALL",
"value": [],
"href": null
},
"platform_targeting": {
"type": "INCLUDE",
"value": ["PHON", "TBLT"],
"href": null
},
"publisher_targeting": {
"type": "EXCLUDE",
"value": ["site-1", "site-2", "site-3"],
"href": null
},
"os_targeting": {
"type": "ALL",
"value": [],
"href": null
},
"connection_type_targeting": {
"type": "ALL",
"value": [],
"href": null
},
"publisher_bid_modifier": {
"values": []
},
"publisher_bid_strategy_modifiers": {
"values": []
},
"campaign_profile": null,
"comments": "",
"spent": 0,
"bid_type": "OPTIMIZED_CONVERSIONS",
"traffic_allocation_mode": "OPTIMIZED",
"external_brand_safety": {
"type": "NONE",
"values": []
},
"start_date": "2019-12-03",
"end_date": "9999-12-31",
"approval_state": "APPROVED",
"is_active": false,
"status": "FROZEN",
"audience_segments_multi_targeting": {
"state": "EXISTS",
"value": null,
"href": "https://backstage.taboola.com/backstage/api/1.0/demo-advertiser/campaigns/123/targeting/audience_segments"
},
"custom_audience_targeting": {
"state": "EXISTS",
"value": null,
"href": "https://backstage.taboola.com/backstage/api/1.0/demo-advertiser/campaigns/123/targeting/custom_audience"
},
"marking_label_multi_targeting": {
"state": "EXISTS",
"value": null,
"href": "https://backstage.taboola.com/backstage/api/1.0/demo-advertiser/campaigns/123/targeting/marking_labels"
},
"lookalike_audience_targeting": {
"state": "ALL",
"value": null,
"href": "https://backstage.taboola.com/backstage/api/1.0/demo-advertiser/campaigns/123/targeting/lookalike_audience"
},
"marketing_objective": "LEADS_GENERATION",
"activity_schedule": {
"mode": "ALWAYS",
"rules": [],
"time_zone": "US/Eastern"
},
"policy_review": {
"reject_reason": null
}
}
{
"id": "124",
"advertiser_id": "demo-advertiser",
"name": "Demo Campaign - New name",
"branding_text": "New branding text",
"tracking_code": "utm_source=taboola&utm_medium=referral",
"pricing_model": "CPC",
"cpc": 1.0,
"daily_cap": 30.0,
"daily_ad_delivery_model": "STRICT",
"spending_limit": 10000.0,
"spending_limit_model": "ENTIRE",
"cpa_goal": 0.0,
"country_targeting": {
"type": "ALL",
"value": [],
"href": null
},
"sub_country_targeting": {
"type": "ALL",
"value": [],
"href": null
},
"postal_code_targeting": {
"type": "ALL",
"value": null,
"href": "https://backstage.taboola.com/backstage/api/1.0/demo-advertiser/campaigns/124/targeting/postal_code"
},
"contextual_targeting": {
"type": "ALL",
"value": [],
"href": null
},
"platform_targeting": {
"type": "INCLUDE",
"value": ["PHON", "TBLT"],
"href": null
},
"publisher_targeting": {
"type": "EXCLUDE",
"value": ["site-1", "site-2", "site-3"],
"href": null
},
"os_targeting": {
"type": "ALL",
"value": [],
"href": null
},
"connection_type_targeting": {
"type": "ALL",
"value": [],
"href": null
},
"publisher_bid_modifier": {
"values": []
},
"publisher_bid_strategy_modifiers": {
"values": []
},
"campaign_profile": null,
"comments": "Please apply suitable targeting.",
"spent": 0.0,
"bid_type": "OPTIMIZED_CONVERSIONS",
"traffic_allocation_mode": "OPTIMIZED",
"external_brand_safety": {
"type": "NONE",
"values": []
},
"start_date": "2020-01-20",
"end_date": "9999-12-31",
"approval_state": "APPROVED",
"is_active": false,
"status": "FROZEN",
"audience_segments_multi_targeting": {
"state": "EXISTS",
"value": null,
"href": "https://backstage.taboola.com/backstage/api/1.0/demo-advertiser/campaigns/124/targeting/audience_segments"
},
"custom_audience_targeting": {
"state": "EXISTS",
"value": null,
"href": "https://backstage.taboola.com/backstage/api/1.0/demo-advertiser/campaigns/124/targeting/custom_audience"
},
"marking_label_multi_targeting": {
"state": "EXISTS",
"value": null,
"href": "https://backstage.taboola.com/backstage/api/1.0/demo-advertiser/campaigns/124/targeting/marking_labels"
},
"lookalike_audience_targeting": {
"state": "ALL",
"value": null,
"href": "https://backstage.taboola.com/backstage/api/1.0/demo-advertiser/campaigns/124/targeting/lookalike_audience"
},
"marketing_objective": "LEADS_GENERATION",
"activity_schedule": {
"mode": "ALWAYS",
"rules": [],
"time_zone": "US/Eastern"
},
"policy_review": {
"reject_reason": null
}
}
Tip: If the original campaign reached its
end_date
, make sure to submit a newend_date
when you duplicate it.
Specify which sections should be duplicated
By default, the duplicate
endpoint duplicates the entire campaign, and all its items. You can use the (optional) duplicate_settings
param to control which campaign sections are included in the duplication.
duplicate_settings
{
...
"duplicate_settings": {
"include_items": false,
"include_publisher_bid_modifiers": false,
"include_blocked_publishers": true,
"include_third_party_tracking": true
}
}
{
...
"duplicate_settings": {
"include_items": false,
"include_publisher_bid_modifiers": false
}
}
If a setting is not present, the default value is
true
.
Therefor, the above 2 examples are equivalent.
Setting | Type | Pass 'true' (or leave out) to duplicate: |
---|---|---|
include_items | Boolean (default = true ) | - All campaign items. - The approval_state of the original campaign and each of its items. |
include_publisher_bid_modifiers | Boolean (default = true ) | - publisher_bid_modifier - publisher_bid_strategy_modifiers |
include_blocked_publishers | Boolean (default = true ) | - publisher_targeting |
include_third_party_tracking | Boolean (default = true ) | - tracking_code - verification_pixel - viewability_tag |
Example - Exclude the campaign items and publisher bid modifiers from the duplication
POST /backstage/api/1.0/demo-advertiser-1/campaigns/123/duplicate
{
"name": "Demo Campaign - New name",
"branding_text": "New branding text",
"spending_limit": 10000,
"spending_limit_model": "ENTIRE",
"comments": "Please apply suitable targeting.",
"duplicate_settings": {
"include_items": false,
"include_publisher_bid_modifiers": false,
"include_blocked_publishers": true,
"include_third_party_tracking": true
}
}
{
"id": "123",
"advertiser_id": "demo-advertiser",
"name": "Demo Campaign",
"branding_text": "Branding text",
"tracking_code": "utm_source=taboola&utm_medium=referral",
"pricing_model": "CPC",
"cpc": 1,
"daily_cap": 30,
"daily_ad_delivery_model": "STRICT",
"spending_limit": 100,
"spending_limit_model": "MONTHLY",
"cpa_goal": 0,
"country_targeting": {
"type": "ALL",
"value": [],
"href": null
},
"sub_country_targeting": {
"type": "ALL",
"value": [],
"href": null
},
"postal_code_targeting": {
"type": "ALL",
"value": null,
"href": "https://backstage.taboola.com/backstage/api/1.0/demo-advertiser/campaigns/123/targeting/postal_code"
},
"contextual_targeting": {
"type": "ALL",
"value": [],
"href": null
},
"platform_targeting": {
"type": "INCLUDE",
"value": [
"PHON",
"TBLT"
],
"href": null
},
"publisher_targeting": {
"type": "EXCLUDE",
"value": [
"sample-publisher-1",
"sample-publisher-2",
"sample-publisher-3"
],
"href": null
},
"os_targeting": {
"type": "ALL",
"value": [],
"href": null
},
"connection_type_targeting": {
"type": "ALL",
"value": [],
"href": null
},
"publisher_bid_modifier": {
"values": [{
"target": "sample-publisher-4",
"cpc_modification": 0.5
},
{
"target": "sample-publisher-5",
"cpc_modification": 1.5
}
]
},
"publisher_bid_strategy_modifiers": {
"values": [{
"publisher": "sample-publisher-6",
"bid_strategy": "FIXED"
}]
},
"campaign_profile": null,
"comments": "",
"spent": 0,
"bid_type": "OPTIMIZED_CONVERSIONS",
"traffic_allocation_mode": "OPTIMIZED",
"external_brand_safety": {
"type": "NONE",
"values": []
},
"start_date": "2019-12-03",
"end_date": "9999-12-31",
"approval_state": "APPROVED",
"is_active": false,
"status": "FROZEN",
"audience_segments_multi_targeting": {
"state": "EXISTS",
"value": null,
"href": "https://backstage.taboola.com/backstage/api/1.0/demo-advertiser/campaigns/123/targeting/audience_segments"
},
"custom_audience_targeting": {
"state": "EXISTS",
"value": null,
"href": "https://backstage.taboola.com/backstage/api/1.0/demo-advertiser/campaigns/123/targeting/custom_audience"
},
"marking_label_multi_targeting": {
"state": "EXISTS",
"value": null,
"href": "https://backstage.taboola.com/backstage/api/1.0/demo-advertiser/campaigns/123/targeting/marking_labels"
},
"lookalike_audience_targeting": {
"state": "ALL",
"value": null,
"href": "https://backstage.taboola.com/backstage/api/1.0/demo-advertiser/campaigns/123/targeting/lookalike_audience"
},
"marketing_objective": "LEADS_GENERATION",
"verification_pixel": {
"verification_pixel_items": [{
"url": "https://www.example.com/",
"verification_pixel_type": "CLICK"
},
{
"url": "https://www.example.com/",
"verification_pixel_type": "VIEWABLE_IMPRESSION"
},
{
"url": "https://www.example.com/",
"verification_pixel_type": "IMPRESSION"
}
]
},
"viewability_tag": {
"values": [{
"tag": "<noscript class=...></noscript><script src=...></script>",
"type": "MOAT"
},
{
"tag": "<noscript class=...></noscript><script src=...></script>",
"type": "IAS"
}
]
},
"activity_schedule": {
"mode": "ALWAYS",
"rules": [],
"time_zone": "US/Eastern"
},
"policy_review": {
"reject_reason": null
},
"browser_targeting": {
"type": "INCLUDE",
"value": [
"Safari",
"Android App",
"Firefox",
"Opera"
],
"href": null
}
}
{
"id": "124",
"advertiser_id": "demo-advertiser",
"name": "Demo Campaign",
"branding_text": "New branding text",
"tracking_code": "utm_source=taboola&utm_medium=referral",
"pricing_model": "CPC",
"cpc": 1,
"daily_cap": 30,
"daily_ad_delivery_model": "STRICT",
"spending_limit": 10000,
"spending_limit_model": "ENTIRE",
"cpa_goal": 0,
"country_targeting": {
"type": "ALL",
"value": [],
"href": null
},
"sub_country_targeting": {
"type": "ALL",
"value": [],
"href": null
},
"postal_code_targeting": {
"type": "ALL",
"value": null,
"href": "https://backstage.taboola.com/backstage/api/1.0/demo-advertiser/campaigns/123/targeting/postal_code"
},
"contextual_targeting": {
"type": "ALL",
"value": [],
"href": null
},
"platform_targeting": {
"type": "INCLUDE",
"value": [
"PHON",
"TBLT"
],
"href": null
},
"publisher_targeting": {
"type": "EXCLUDE",
"value": [
"sample-publisher-1",
"sample-publisher-2",
"sample-publisher-3"
],
"href": null
},
"os_targeting": {
"type": "ALL",
"value": [],
"href": null
},
"connection_type_targeting": {
"type": "ALL",
"value": [],
"href": null
},
"publisher_bid_modifier": {
"values": []
},
"publisher_bid_strategy_modifiers": {
"values": []
},
"campaign_profile": null,
"comments": "Please apply suitable targeting.",
"spent": 0,
"bid_type": "OPTIMIZED_CONVERSIONS",
"traffic_allocation_mode": "OPTIMIZED",
"external_brand_safety": {
"type": "NONE",
"values": []
},
"start_date": "2019-12-03",
"end_date": "9999-12-31",
"approval_state": "PENDING",
"is_active": false,
"status": "FROZEN",
"audience_segments_multi_targeting": {
"state": "EXISTS",
"value": null,
"href": "https://backstage.taboola.com/backstage/api/1.0/demo-advertiser/campaigns/123/targeting/audience_segments"
},
"custom_audience_targeting": {
"state": "EXISTS",
"value": null,
"href": "https://backstage.taboola.com/backstage/api/1.0/demo-advertiser/campaigns/123/targeting/custom_audience"
},
"marking_label_multi_targeting": {
"state": "EXISTS",
"value": null,
"href": "https://backstage.taboola.com/backstage/api/1.0/demo-advertiser/campaigns/123/targeting/marking_labels"
},
"lookalike_audience_targeting": {
"state": "ALL",
"value": null,
"href": "https://backstage.taboola.com/backstage/api/1.0/demo-advertiser/campaigns/123/targeting/lookalike_audience"
},
"marketing_objective": "LEADS_GENERATION",
"verification_pixel": {
"verification_pixel_items": [{
"url": "https://www.example.com/",
"verification_pixel_type": "CLICK"
},
{
"url": "https://www.example.com/",
"verification_pixel_type": "VIEWABLE_IMPRESSION"
},
{
"url": "https://www.example.com/",
"verification_pixel_type": "IMPRESSION"
}
]
},
"viewability_tag": {
"values": [{
"tag": "<noscript class=...></noscript><script src=...></script>",
"type": "MOAT"
},
{
"tag": "<noscript class=...></noscript><script src=...></script>",
"type": "IAS"
}
]
},
"activity_schedule": {
"mode": "ALWAYS",
"rules": [],
"time_zone": "US/Eastern"
},
"policy_review": {
"reject_reason": null
},
"browser_targeting": {
"type": "INCLUDE",
"value": [
"Safari",
"Android App",
"Firefox",
"Opera"
],
"href": null
}
}
Duplication results
- Because
include_items
was set tofalse
, the new campaign is created with an approval state of "PENDING", and without any items.- Because
include_publisher_bid_modifiers
was set tofalse
, the bid modifier fields have empty collections.- Blocked publishers and third party tracking fields are duplicated as normal.
Example - Implicit inclusion
In the previous example, we specified the sections to exclude, as well as the sections to include.
If you leave out a setting, that section will be included by default.
The following request objects are equivalent:
{
"name": "Demo Campaign - New name",
"branding_text": "New branding text",
"spending_limit": 10000,
"spending_limit_model": "ENTIRE",
"comment": "Please apply suitable targeting.",
"duplicate_settings": {
"include_items": false,
"include_publisher_bid_modifiers": false,
"include_blocked_publishers": true,
"include_third_party_tracking": true
}
}
{
"name": "Demo Campaign - New name",
"branding_text": "New branding text",
"spending_limit": 10000,
"spending_limit_model": "ENTIRE",
"comment": "Please apply suitable targeting.",
"duplicate_settings": {
"include_items": false,
"include_publisher_bid_modifiers": false
}
}
Guidelines
Campaign duplication settings include a number of business rules. These are summarized below.
Guidelines
- To exclude a campaign section, set the relevant property under
duplicate_settings
tofalse
.- To duplicate a campaign section, set the relevant property under
duplicate_settings
to true - or leave it out.- To duplicate all campaign sections, leave out the
duplicate_settings
param altogether (or pass true for all its properties).- Campaign fields that were not included in the duplication will be assigned default values (just like any new campaign) - unless you explicitly assign them a value (see next point).
- You can update 1 of more campaign fields directly within the request body. The specified campaign fields will be updated, regardless of whether they were part of the duplication process.
Duplicate a campaign for a different account
You can assign the new campaign to a different account in your network. To do so, use the destination_account
query param.
Example - Duplicate for a different account
POST /backstage/api/1.0/demo-advertiser-1/campaigns/123/duplicate?destination_account=demo-advertiser-2
{
"name": "Demo Campaign - New name",
"branding_text": "New branding text",
"spending_limit": 10000,
"spending_limit_model": "ENTIRE",
"comment": "Please apply suitable targeting."
}
{
"id": "123",
"advertiser_id": "demo-advertiser-1",
"name": "Demo Campaign",
"branding_text": "Branding text",
"tracking_code": "utm_source=taboola&utm_medium=referral",
"pricing_model": "CPC",
"cpc": 1,
"daily_cap": 30,
"daily_ad_delivery_model": "STRICT",
"spending_limit": 100,
"spending_limit_model": "MONTHLY",
"cpa_goal": 0,
"country_targeting": {
"type": "ALL",
"value": [],
"href": null
},
"sub_country_targeting": {
"type": "ALL",
"value": [],
"href": null
},
"postal_code_targeting": {
"type": "ALL",
"value": null,
"href": "https://backstage.taboola.com/backstage/api/1.0/demo-advertiser/campaigns/123/targeting/postal_code"
},
"contextual_targeting": {
"type": "ALL",
"value": [],
"href": null
},
"platform_targeting": {
"type": "INCLUDE",
"value": ["PHON", "TBLT"],
"href": null
},
"publisher_targeting": {
"type": "EXCLUDE",
"value": ["publisher-1", "publisher-2", "publisher-3"],
"href": null
},
"os_targeting": {
"type": "ALL",
"value": [],
"href": null
},
"connection_type_targeting": {
"type": "ALL",
"value": [],
"href": null
},
"publisher_bid_modifier": {
"values": []
},
"publisher_bid_strategy_modifiers": {
"values": []
},
"campaign_profile": null,
"comments": "",
"spent": 0,
"bid_type": "OPTIMIZED_CONVERSIONS",
"traffic_allocation_mode": "OPTIMIZED",
"external_brand_safety": {
"type": "NONE",
"values": []
},
"start_date": "2019-12-03",
"end_date": "9999-12-31",
"approval_state": "APPROVED",
"is_active": false,
"status": "FROZEN",
"audience_segments_multi_targeting": {
"state": "EXISTS",
"value": null,
"href": "https://backstage.taboola.com/backstage/api/1.0/demo-advertiser/campaigns/123/targeting/audience_segments"
},
"custom_audience_targeting": {
"state": "EXISTS",
"value": null,
"href": "https://backstage.taboola.com/backstage/api/1.0/demo-advertiser/campaigns/123/targeting/custom_audience"
},
"marking_label_multi_targeting": {
"state": "EXISTS",
"value": null,
"href": "https://backstage.taboola.com/backstage/api/1.0/demo-advertiser/campaigns/123/targeting/marking_labels"
},
"lookalike_audience_targeting": {
"state": "ALL",
"value": null,
"href": "https://backstage.taboola.com/backstage/api/1.0/demo-advertiser/campaigns/123/targeting/lookalike_audience"
},
"marketing_objective": "LEADS_GENERATION",
"activity_schedule": {
"mode": "ALWAYS",
"rules": [],
"time_zone": "US/Eastern"
},
"policy_review": {
"reject_reason": null
}
}
{
"id": "124",
"advertiser_id": "demo-advertiser-2",
"name": "Demo Campaign - New name",
"branding_text": "New branding text",
"tracking_code": "utm_source=taboola&utm_medium=referral",
"pricing_model": "CPC",
"cpc": 1.0,
"daily_cap": 30.0,
"daily_ad_delivery_model": "STRICT",
"spending_limit": 10000.0,
"spending_limit_model": "ENTIRE",
"cpa_goal": 0.0,
"country_targeting": {
"type": "ALL",
"value": [],
"href": null
},
"sub_country_targeting": {
"type": "ALL",
"value": [],
"href": null
},
"postal_code_targeting": {
"type": "ALL",
"value": null,
"href": "https://backstage.taboola.com/backstage/api/1.0/demo-advertiser/campaigns/124/targeting/postal_code"
},
"contextual_targeting": {
"type": "ALL",
"value": [],
"href": null
},
"platform_targeting": {
"type": "INCLUDE",
"value": [
"PHON",
"TBLT"
],
"href": null
},
"publisher_targeting": {
"type": "EXCLUDE",
"value": [
"housediver",
"notifyai-marketplace",
"pushnami-globalfinancial"
],
"href": null
},
"os_targeting": {
"type": "ALL",
"value": [],
"href": null
},
"connection_type_targeting": {
"type": "ALL",
"value": [],
"href": null
},
"publisher_bid_modifier": {
"values": []
},
"publisher_bid_strategy_modifiers": {
"values": []
},
"campaign_profile": null,
"comments": "Please apply suitable targeting.",
...
}
The user making the request must have permissions for both accounts (
demo-advertiser-1
anddemo-advertiser-2
).
Params:
- Pass the campaign owner as the
account_id
path param (not your network account).- Pass the target account as the
destination_account
query param.