Skip to main content

Campaigns

A campaign has a business objective and organizes Ad Squads. You can define a goal and view stats for this campaign to see whether your goal has been reached. The reports and stats combines all the ad squads within this campaign.

Campaign Attributes

AttributeDescriptionRequiredPossible Values
ad_account_idAd Account IDR
daily_budget_microDaily Spend Cap (micro-currency)O
end_timeEnd timeO
nameCampaign nameRmax length: 375 characters
start_timeStart timeR
statusCampaign statusRACTIVE, PAUSED
lifetime_spend_cap_microLifetime spend cap for the campaign (microcurrency)O
measurement_specThe apps to be tracked for this campaignR - Required for tracking installs for campaigns containing these ad types: APP_INSTALL, DEEP_LINK, STORY (which swipes up to APP_INSTALL, DEEP_LINK) LENS_APP_INSTALL, LENS_DEEP_LINK{"ios_app_id":"1234", "android_app_url":"com.snapchat.android"}
objectiveObjective of the CampaignOBRAND_AWARENESS (default), APP_CONVERSION, APP_INSTALL, CATALOG_SALES, ENGAGEMENT, LEAD_GENERATION, VIDEO_VIEW, WEB_CONVERSION, PROMOTE_STORIES, PROMOTE_PLACES
objective_v2_propertiesSee table for Campaign Objective V2 propertiesOSee table for Campaign Objective V2 properties
buy_model**Buy ModelOAUCTION(default), RESERVED
regulations++Required for Campaigns that run Ads for Credit, Housing, Employment (CHE)O{ "restricted_delivery_signals": true }
regulations+-The candidate / ballot field is optional, but may be required in certain statesO{ "candidate_ballot_information":"Voting rights for dogs" }
delivery_statusDelivery statusRead-onlySee Delivery status
deletedIndicates whether the entity has been deleted or not, only shown when using the parameter read_deleted_entitiesRead-onlytrue

** Coming soon. See Reach And Frequency

++ The regulations attribute alongside restricted_delivery_signals is required for Campaigns running Ads promoting Housing, Credit, Employment (HCE), this attribute has to be activated at Ad Account level first or it cannot be used at Campaign level; https://businesshelp.snapchat.com/en-US/a/create-ad-account. Ad Squads created within a Campaign promoting HCE has a limited option of Optimization Goals.

+- The regulations attribute alongside the candidate_ballot_information field is optional, but may be required in certain states The paying_advertiser attribute has to be activated at Ad Account level first or the candidate/ballot field cannot be used at Campaign level; https://businesshelp.snapchat.com/en-US/a/create-ad-account

To enable app install and post-install attribution on ads, the measurement_spec field must be populated with the corresponding iOS and Android app IDs on campaign creation.

lifetime_spend_cap_micro can be increased and removed. Reducing the limit is allowed as long as the new limit is 1.1 times the amount already spent. daily_budget_micro set at the campaign level & the new lifetime_spend_cap_micro are evaluated independently. Delivery stops when either the Ad Account spend cap or the Campaign Lifetime spend cap is reached.

Campaign Objective V2 properties

The following attributes are used by the property objective_v2_properties

AttributeDescriptionRequiredPossible Values
objective_v2_typeThe Objective typeOAWARENESS_AND_ENGAGEMENT, SALES, TRAFFIC, APP_PROMOTION, LEADS
promotion_typeThe Promotion typeOPROMOTE_PLACES, PROMOTE_SHOWS, APP_INSTALL, APP_REENGAGEMENT

Campaign Objective V2

The new Campaign level attribute objective_v2_properties replaces the objective attribute, the objective attribute offered users a choice of 12 different Campaign objectives when setting up a Campaign, with the introduction of objective_v2_properties this has changed to 5 options.

The objective_v2_properties attribute is optional, just as the objective attribute was, and is used only for the business logic surfaced by Snap Ads Manager, determining the Optimization Goal options available to Ad Squads. If your application is currently making use of the objective attribute, you are expected to start using objective_v2_properties before 2025.

Along with the launch of objective_v2_properties we are also launching a new entity named Ad Squad Render UI Data ( ad_squad_ui_render_data ), this entity has a one-to-one relationship with the Ad Squad entity and is part of the business logic decision tree. The Ad Squad Render UI Data tells the business logic whether the Ad Squad contains ads for WEB, APP, or MIXED in the case of a combination of the two,

Timelines Objective V2

TimePhaseDescription
September - December 2024Roll-out of objective_v2_propertiesThe default state for Ads creation in Ads Manager will be the new Advanced creation flow that use objective_v2_properties. We will continue to set both the objective and objective_v2_properties for Campaigns to ensure that Partner applications can still handle these Campaigns - see table Snap Ads Manager - objective to objective_v2 Applications that make use of the objective value are expected to make the transition from objective and fully adopt objective_v2_properties see table Business logic - objective to objective_v2 for guidance on the new Business logic.
21 March 2025Introduction of translator service from objective to objective_v2_propertiesOn the 21 March 2025 any application that still creates Campaigns using only the objective will have an objective_v2_properties value applied automatically via our translator service - see table objective_v2 - API Campaign creation default behaviour .
24 March 2025Backfill of objective_v2_propertiesOn the 21 March 2025 we will automatically populate the objective_v2_properties for campaigns that only contain the objective value.

Business logic - objective to objective_v2

This table compares the business logic of the objective attribute to the new objective_v2_properties attribute, this allows 3rd party applicationss to fully or partly follow the same Business Logic that Snap Ads Manager offers.

The left side of the table presents Optimization Goals based on the old objective attribute, the right side of the table presents the Optimization Goals based on objective_v2_properties. The conversion_location column refers to the new entity ad_squad_ui_render_data and defines goals offered based on the intended location of conversion, Web, App or Lead form.

Note that validation given SKAd enablement, Dynamic Ads and HCE (Housing Credit Employment) still is applicable to the Optimization Goals available. Read about HCE and Optimization Goals

Previous logic - objective onlyNew logic - Campaign objective_v2_type - promotion_type - Ad Squad UI Render Data
objectiveoptimization goalsobjective_v2_typepromotion_typeconversion_locationoptimization goals
BRAND_AWARENESSIMPRESSIONS, SWIPES, STORY_OPENS, USESAWARENESS_AND_ENGAGEMENT--IMPRESSIONS, SWIPES, STORY_OPENS, USES, VIDEO_VIEWS, VIDEO_VIEWS_15_SEC
PROMOTE_STORIESIMPRESSIONSAWARENESS_AND_ENGAGEMENTPROMOTE_STORIES*-IMPRESSIONS
PROMOTE_PLACESSWIPESAWARENESS_AND_ENGAGEMENTPROMOTE_PLACES*-SWIPES
APP_CONVERSIONSWIPES, APP_INSTALLS, APP_PURCHASE, APP_SIGNUP, APP_ADD_TO_CART, APP_LEVEL_COMPLETE, APP_ACHIEVEMENT_UNLOCKED, APP_AD_VIEW, APP_REENGAGE_PURCHASE, APP_REENGAGE_OPEN, LANDING_PAGE_VIEWAPP_PROMOTIONAPP_INSTALLAPPIMPRESSIONS, SWIPES, APP_INSTALLS, APP_PURCHASE, APP_SIGNUP, APP_ADD_TO_CART, APP_LEVEL_COMPLETE, APP_ACHIEVEMENT_UNLOCKED, APP_AD_VIEW
APP_CONVERSION with Dynamic AdsSWIPES, APP_INSTALLS, APP_PURCHASE, APP_SIGNUP, APP_ADD_TO_CART, APP_REENGAGE_PURCHASE, APP_REENGAGE_OPENAPP_PROMOTIONAPP_INSTALL with Dynamic AdsAPPIMPRESSIONS, SWIPES, APP_INSTALLS, APP_PURCHASE, APP_SIGNUP, APP_ADD_TO_CART, APP_LEVEL_COMPLETE, APP_ACHIEVEMENT_UNLOCKED, APP_AD_VIEW
APP_CONVERSION with SKAdNetwork enabledSWIPES, APP_INSTALLS, APP_PURCHASE, APP_SIGNUP, APP_ADD_TO_CARTAPP_PROMOTIONAPP_INSTALL with SKAdNetwork enabledAPPIMPRESSIONS, SWIPES, APP_INSTALLS, APP_PURCHASE, APP_SIGNUP, APP_ADD_TO_CART
APP_CONVERSION with Dynamic Ads and SKAdNetwork enabledSWIPES, APP_INSTALLS, APP_PURCHASE, APP_SIGNUPAPP_PROMOTIONAPP_INSTALL with Dynamic Ads and SKAdNetwork enabledAPPIMPRESSIONS, SWIPES, APP_INSTALLS, APP_PURCHASE, APP_SIGNUP, APP_ADD_TO_CART
WEB_CONVERSIONSWIPES, STORY_OPENS, PIXEL_PAGE_VIEW, PIXEL_SIGNUP, PIXEL_ADD_TO_CART, PIXEL_PURCHASE, PIXEL_PURCHASE_VO, LANDING_PAGE_VIEWSALES-WEBSWIPES, STORY_OPENS, PIXEL_PURCHASE, PIXEL_SIGNUP, PIXEL_ADD_TO_CART, PIXEL_PAGE_VIEW, LANDING_PAGE_VIEW
LEAD_GENERATIONLEAD_FORM_SUBMISSIONS, SWIPES, STORY_OPENS, PIXEL_SIGN_UPLEADS-WEBSWIPES, STORY_OPENS, PIXEL_SIGN_UP, LANDING_PAGE_VIEW
LEAD_GENERATIONLEAD_FORM_SUBMISSIONS, SWIPES, STORY_OPENS, PIXEL_SIGN_UPLEADS-LEAD_FORMSWIPES, LEAD_FORM_SUBMISSIONS
--LEADS-CALL, TEXTIMPRESSIONS, SWIPES
APP_INSTALLSWIPES, IMPRESSIONS, APP_INSTALLS, APP_PURCHASE, APP_SIGNUP, APP_ADD_TO_CART, APP_LEVEL_COMPLETE, APP_AD_VIEWAPP_PROMOTIONAPP_INSTALL-SWIPES, IMPRESSIONS, APP_INSTALLS, APP_PURCHASE, APP_SIGNUP, APP_ADD_TO_CART, APP_LEVEL_COMPLETE, APP_ACHIEVEMENT_UNLOCKED, APP_AD_VIEW
APP_INSTALL with Dynamic AdsSWIPES, IMPRESSIONS, APP_INSTALLS, APP_PURCHASE, APP_SIGNUP, APP_ADD_TO_CARTAPP_PROMOTIONAPP_INSTALL with Dynamic Ads-SWIPES, IMPRESSIONS, APP_INSTALLS, APP_PURCHASE, APP_SIGNUP, APP_ADD_TO_CART, APP_LEVEL_COMPLETE, APP_ACHIEVEMENT_UNLOCKED, APP_AD_VIEW
APP_INSTALL with SKAdNetwork enabledSWIPES, IMPRESSIONS, APP_INSTALLS, APP_PURCHASE, APP_SIGNUP, APP_ADD_TO_CARTAPP_PROMOTIONAPP_INSTALL with SKAdNetwork enable-SWIPES, IMPRESSIONS, APP_INSTALLS, APP_PURCHASE, APP_SIGNUP, APP_ADD_TO_CART
APP_INSTALL with Dynamic Ads and SKAdNetwork enabledSWIPES, IMPRESSIONS, APP_INSTALLS, APP_PURCHASE, APP_SIGNUP, APP_ADD_TO_CARTAPP_PROMOTIONAPP_INSTALL with Dynamic Ads and SKAdNetwork enabled-SWIPES, IMPRESSIONS, APP_INSTALLS, APP_PURCHASE, APP_SIGNUP, APP_ADD_TO_CART
APP_CONVERSIONSWIPES, APP_INSTALLS, APP_PURCHASE, APP_SIGNUP, APP_ADD_TO_CART, APP_LEVEL_COMPLETE, APP_ACHIEVEMENT_UNLOCKED, APP_AD_VIEW, APP_REENGAGE_PURCHASE, APP_REENGAGE_OPEN LANDING_PAGE_VIEWAPP_PROMOTIONAPP_REENGAGEMENT-SWIPES, APP_REENGAGE_PURCHASE, APP_REENGAGE_OPEN, LANDING_PAGE_VIEW
APP_CONVERSION with Dynamic AdsSWIPES, APP_INSTALLS, APP_PURCHASE, APP_SIGNUP, APP_ADD_TO_CARTAPP_PROMOTIONAPP_REENGAGEMENT with Dynamic Ads-SWIPES, APP_REENGAGE_PURCHASE, APP_REENGAGE_OPEN, LANDING_PAGE_VIEW
APP_CONVERSION with SKAdNetwork enabledSWIPES, APP_INSTALLS, APP_PURCHASE, APP_SIGNUP, APP_ADD_TO_CARTAPP_PROMOTIONAPP_REENGAGEMENT with SKAdNetwork enabled-SWIPES, LANDING_PAGE_VIEW
APP_CONVERSION with Dynamic Ads and SKAdNetwork enabledSWIPES, APP_INSTALLS, APP_PURCHASE, APP_SIGNUP, APP_ADD_TO_CART-This combination is not available when using objective_v2_type
CATALOG_SALESSWIPES, STORY_OPENS, PIXEL_PURCHASE, PIXEL_ADD_TO_CART, PIXEL_SIGNUP, PIXEL_PAGE_VIEW, PIXEL_PURCHASE_VO, LANDING_PAGE_VIEWSALES-WEBSWIPES, STORY_OPENS, PIXEL_PURCHASE, PIXEL_SIGNUP, PIXEL_ADD_TO_CART, PIXEL_PAGE_VIEW, LANDING_PAGE_VIEW
CATALOG_SALESIMPRESSIONS, APP_INSTALLS, APP_PURCHASE, APP_ADD_TO_CART, APP_SIGNUP, APP_REENGAGE_PURCHASE, APP_REENGAGE_OPENSALES-APPIMPRESSIONS, SWIPES, APP_REENGAGE_PURCHASE APP_REENGAGE_OPEN,
CATALOG_SALES with SKAdNetwork enabledIMPRESSIONS, APP_INSTALLS, APP_PURCHASE, APP_ADD_TO_CART, APP_SIGNUP, APP_REENGAGE_PURCHASE, APP_REENGAGE_OPENSALES-APPSKAd Network opted-in IMPRESSIONS, SWIPES, STORY_OPENS
CATALOG_SALESSWIPES, STORY_OPENS, PIXEL_PURCHASE, PIXEL_ADD_TO_CART, PIXEL_SIGNUP, PIXEL_PAGE_VIEW, PIXEL_PURCHASE_VO, LANDING_PAGE_VIEWSALES-WEBSWIPES, STORY_OPENS, PIXEL_PURCHASE, PIXEL_SIGNUP, PIXEL_ADD_TO_CART, PIXEL_PAGE_VIEW, LANDING_PAGE_VIEW
VIDEO_VIEWIMPRESSIONS, VIDEO_VIEWS, VIDEO_VIEWS_15_SECAWARENESS_AND_ENGAGEMENT--IMPRESSIONS, SWIPES, STORY_OPENS, USES, VIDEO_VIEWS, VIDEO_VIEWS_15_SEC
ENGAGEMENTSWIPES, USES, STORY_OPENS, PIXEL_PURCHASEAWARENESS_AND_ENGAGEMENT--IMPRESSIONS, SWIPES, STORY_OPENS, USES, VIDEO_VIEWS, VIDEO_VIEWS_15_SEC
WEB_VIEWSWIPES, PIXEL_PAGE_VIEW, LANDING_PAGE_VIEWTRAFFIC-WEBSWIPES, PIXEL_PAGE_VIEW, LANDING_PAGE_VIEW
APP_REENGAGEMENTSWIPES, APP_REENGAGE_PURCHASE, APP_REENGAGE_OPEN, LANDING_PAGE_VIEWTRAFFIC-APPSWIPES, APP_REENGAGE_PURCHASE, APP_REENGAGE_OPEN, LANDING_PAGE_VIEW
WEB_VIEWIMPRESSIONS, SWIPESTRAFFIC-PUBLIC_PROFILE, CALL, TEXTIMPRESSIONS, SWIPES

*The objectives PROMOTE_STORIES and PROMOTE_PLACES are generally not available to create via the API.

objective_v2 - API Campaign creation default behaviour

Snap will introduce a translator service which will be used for applications that set only the objective attribute on creation of new Campaign entities. This table outlines the default value that will be set by our translator service for applications that have not yet adopted the use of objective_v2_properties by the 21 March 2025.

objectiveobjective_v2_type
PROMOTED_PLACESAWARENESS_AND_ENGAGEMENT
PROMOTE_STORIESAWARENESS_AND_ENGAGEMENT
BRAND_AWARENESSAWARENESS_AND_ENGAGEMENT
APP_REENGAGEMENTTRAFFIC
WEB_VIEWTRAFFIC
CATALOG_SALESSALES
APP_INSTALLAPP_PROMOTION
APP_CONVERSIONAPP_PROMOTION
WEB_CONVERSIONSALES
LEAD_GENERATIONLEADS
ENGAGEMENTAWARENESS_AND_ENGAGEMENT
VIDEO_VIEWTRAFFIC

Smart Budgets

The Smart Budgets product allows advertisers to move budget control from the Ad Squad level to the Campaign level, allowing budgets to be moved between Ad Squads dynamically based on where performance will be strongest.

Smart Budget - Campaign level settings

When the pacing is set at Campaign level (“pacing_level”:”CAMPAIGN”) the attribute shared_properties is required on the Campaign and the exact values defined within it need to be mirrored in all Ad Squads that are added to the Campaign.

The Daily budget (daily_budget_micro) is the only allowed way to budget a Smart Budget Campaign, lifetime budget (lifetime_budget_micro) will be rejected. Smart Budgets cannot be used with Dynamic Ads.

AttributeDescriptionRequiredPossible Values
pacing_levelDefines the entity that sets the pacingRCAMPAIGN
shared_propertiesR
buy_modelRAUCTION
daily_budget_microR

shared_properties

AttributeDescriptionRequiredPossible Values
shared_conversion_locationOAPP, WEB, CALL, TEXT, LEAD_FORM
shared_conversion_windowWhen used, all Ad Squads under the Campaign need to match their conversion_window to this valueODependent on the bid_strategy selection - see validations below
shared_optimization_goalWhen used, all Ad Squads under the Campaign need to match their optimization_goal to this value.RDependent on the bid_strategy selection - see validations below
shared_ad_squad_bid_strategyWhen used all Ad Squads under the Campaign needs to match their bid_strategy to this valueRAUTOBID, , LOWEST_COST_WITH_MAX_BID
target_cost_in_microO
shared_pixel_idWhen used, all Ad Squads under the Campaign need to use this Pixel ID.Required if shared_optimization_goal is PIXEL_PURCHASEPixel ID that is accessible to the Ad Account

Validations

These are the allowed combinations for the Ad Squads that form part of a Smart Budgets set up, these need to be present both in the Campaign shared_properties and in the Ad Squads.

shared_ad_squad_bid_strategyshared_optimization_goaltarget_cost_in_microshared_conversion_window
AUTOBIDIMPRESSIONS--
AUTOBIDPIXEL_PURCHASE-As per mapping optimization_goal - conversion_window
LOWEST_COST_WITH_MAX_BIDIMPRESSIONS--
LOWEST_COST_WITH_MAX_BIDPIXEL_PURCHASE-As per mapping optimization_goal - conversion_window

Smart Budgets - Ad Squad level Attributes

All Ad Squads under the Campaign need to mirror the settings found in the Campaign shared_properties.

AttributeDescriptionRequiredPossible Values
optimization_goalThe optimization_goal needs to match the value found in shared_optimization_goal under the Campaign shared_propertiesRPIXEL_PURCHASE, IMPRESSIONS
conversion_windowNeeds to match the value found in shared_properties on the Campaign levelRSWIPE_28DAY_VIEW_1DAY, SWIPE_7DAY
bid_strategyThe bid_strategy needs to match the value found in shared_ad_squad_bid_strategy under the Campaign shared_propertiesRAUTO_BID, LOWEST_COST_WITH_MAX_BID
placement_v2R
pacing_typeCannot be ACCELERATEDOSTANDARD
typeRSNAP_ADS

Snap Ads Manager - Business logic

The following logic is used in Snap Ads Manager to present the user with the combinations that are available when setting up a Campaign, Ad Squad and Ads, this is useful if you wish to mimic the same user journey in your own application.

Campaign - objective_v2_typeoptimization_goalbid_strategyconversion_windowpixel_idconversion_location
AWARENESS_AND_ENGAGEMENTIMPRESSIONSAUTO_BID--WEB
AWARENESS_AND_ENGAGEMENTIMPRESSIONSLOWEST_COST_WITH_MAX_BID--WEB
APP_PROMOTIONIMPRESSIONSAUTO_BID--APP
APP_PROMOTIONIMPRESSIONSLOWEST_COST_WITH_MAX_BID--APP
SALESPIXEL_PURCHASEAUTO_BID*SWIPE_28DAY_VIEW_1DAY, SWIPE_7DAYPixel ID attached to Ad SquadsWEB
SALESPIXEL_PURCHASELOWEST_COST_WITH_MAX_BID*SWIPE_28DAY_VIEW_1DAY, SWIPE_7DAYPixel ID attached to Ad SquadsWEB

*Use the Pixel eligibility endpoint along with Snap Pixel ID to check valid conversion_window options.

Example 1 - Smart Budget Campaign using IMPRESSIONS

The pacing_level is set at the Campaign level, the shared_properties are set to enforce the values at the Ad Squad level.

 "campaign": {
"id": "535d4b97-5aad-4fcd-aefc-29866a697ae5",
"updated_at": "2025-11-07T11:00:35.599Z",
"created_at": "2025-11-07T11:00:35.577Z",
"name": "App promotion",
"ad_account_id": "adfc23e9-627d-46a5-a53c-98bde82bae21",
"daily_budget_micro": 50000000,
"status": "ACTIVE",
"objective": "APP_PROMOTION",
"measurement_spec": {
"ios_app_id": "6502670261",
"android_app_url": "com.snap.spectacles.app"
},
"start_time": "2025-11-07T10:53:56.017Z",
"buy_model": "AUCTION",
"objective_v2_properties": {
"objective_v2_type": "APP_PROMOTION",
"promotion_type": "APP_INSTALL"
},
"pacing_level": "CAMPAIGN",
"shared_properties": {
"shared_optimization_goal": "IMPRESSIONS",
"shared_ad_squad_bid_strategy": "LOWEST_COST_WITH_MAX_BID",
}
}

Example 1 - Smart Budget Ad Squad using IMPRESSIONS

The Ad Squad mirrors the values for optimization_ goal and bid_strategy found in the Campaign shared_properties.

"adsquad": {
"id": "4cd00032-9ddd-49bb-808e-850c35b7406e",
"updated_at": "2025-11-07T11:00:36.953Z",
"created_at": "2025-11-07T11:00:36.896Z",
"name": "United Kingdom, All genders and All ages",
"status": "ACTIVE",
"campaign_id": "535d4b97-5aad-4fcd-aefc-29866a697ae5",
"type": "SNAP_ADS",
"targeting": {
"regulated_content": false,
"geos": [
{
"country_code": "uk",
"operation": "INCLUDE"
}
],
"enable_targeting_expansion": true,
"auto_expansion_options": {
"interest_expansion_option": {
"enabled": true
},
"custom_audience_expansion_option": {
"enabled": true
}
}
},
"targeting_reach_status": "VALID",
"placement_v2": {
"config": "AUTOMATIC"
},
"bid_micro": 2000000,
"bid_strategy": "LOWEST_COST_WITH_MAX_BID",
"daily_budget_micro": 50000000,
"start_time": "2025-11-07T10:53:56.017Z",
"optimization_goal": "IMPRESSIONS",
"delivery_constraint": "DAILY_BUDGET",
"pacing_type": "STANDARD",
"brand_safety_config": {
"inventory_option": "FULL_INVENTORY"
}
}

Example 2 - Smart Budget Campaign using PIXEL_PURCHASE

The pacing_level is set at the Campaign level, the shared_properties are set to enforce the values at the Ad Squad level. Since the optimization goal is set to PIXEL_PURCHASE the shared_properties includes shared_pixel_id and shared_conversion_window, the conversion window options are determined by the Pixel eligibility endpoint.

"campaign": {
"id": "c0f1f2b9-5729-4753-bd67-5945df0fea5c",
"updated_at": "2025-11-07T10:53:27.644Z",
"created_at": "2025-11-07T10:52:54.622Z",
"name": "Sales - Smart Budget",
"ad_account_id": "adfc23e9-627d-46a5-a53c-98bde82bae21",
"daily_budget_micro": 50000000,
"status": "ACTIVE",
"objective": "SALES",
"start_time": "2025-11-07T10:49:09.403Z",
"buy_model": "AUCTION",
"regulations": {
"restricted_delivery_signals": false
},
"creation_state": "PUBLISHED",
"objective_v2_properties": {
"objective_v2_type": "SALES"
},
"pacing_level": "CAMPAIGN",
"shared_properties": {
"shared_conversion_location": "WEB",
"shared_conversion_window": "SWIPE_28DAY_VIEW_1DAY",
"shared_optimization_goal": "PIXEL_PURCHASE",
"shared_ad_squad_bid_strategy": "AUTO_BID",
"shared_pixel_id": "f1b73786-8828-4fc1-803f-4f5af6d9082b"
}
}
}

Example 2 - Smart Budget Ad Squad using PIXEL_PURCHASE

The Ad Squad mirrors the values for optimization_ goal, bid_strategy, conversion_window and pixel_id found in the Campaign shared_properties.

"adsquad": {
"id": "553979ad-a419-4787-a1f1-4dde7f5a1483",
"updated_at": "2025-11-07T10:52:55.844Z",
"created_at": "2025-11-07T10:52:55.812Z",
"name": "United Kingdom, All genders and All ages",
"status": "ACTIVE",
"campaign_id": "c0f1f2b9-5729-4753-bd67-5945df0fea5c",
"type": "SNAP_ADS",
"targeting": {
"regulated_content": false,
"geos": [
{
"country_code": "uk",
"operation": "INCLUDE"
}
],
"enable_targeting_expansion": true,
"auto_expansion_options": {
"interest_expansion_option": {
"enabled": true
},
"custom_audience_expansion_option": {
"enabled": true
}
}
},
"targeting_reach_status": "VALID",
"placement_v2": {
"config": "AUTOMATIC"
},
"bid_strategy": "AUTO_BID",
"daily_budget_micro": 50000000,
"start_time": "2025-11-07T10:49:09.403Z",
"optimization_goal": "PIXEL_PURCHASE",
"conversion_window": "SWIPE_28DAY_VIEW_1DAY",
"pixel_id": "f1b73786-8828-4fc1-803f-4f5af6d9082b",
"delivery_constraint": "DAILY_BUDGET",
"pacing_type": "STANDARD",
"brand_safety_config": {
"inventory_option": "FULL_INVENTORY"
}
}

Create a Campaign

This endpoint will create a campaign within a specified ad account.

HTTP Request

POST https://adsapi.snapchat.com/v1/adaccounts/{ad_account_id}/campaigns

Parameters

ParameterDefaultDescription
ad_account_idAd Account ID

Example - Create a Campaign

curl -X POST \
-H "Authorization: Bearer meowmeowmeow" \
-H "Content-Type: application/json" \
-d '{"campaigns":[{"name":"Badger Tunneling Campaign","ad_account_id":"22225ba6-7559-4000-9663-bace8adff5f2","status":"ACTIVE","start_time":"2025-11-22T21:42:02.392Z","buy_model":"AUCTION","creation_state":"PUBLISHED","objective_v2_properties":{"objective_v2_type":"AWARENESS_AND_ENGAGEMENT"}}]}' \
"https://adsapi.snapchat.com/v1/adaccounts/{ad_acount_id}/campaigns"

The above command returns JSON structured like this:

{
"request_status": "SUCCESS",
"request_id": "80366bda-cf18-4969-bf91-843930b9790c",
"campaigns": [
{
"sub_request_status": "SUCCESS",
"campaign": {
"id": "7c074b60-3ae7-4975-bc1d-5785cc0be2c8",
"updated_at": "2025-10-17T20:14:57.012Z",
"created_at": "2025-10-17T20:14:57.012Z",
"name": "Badger Tunneling Campaign",
"ad_account_id": "22225ba6-7559-4000-9663-bace8adff5f2",
"status": "ACTIVE",
"objective": "BRAND_AWARENESS",
"start_time": "2025-11-22T21:42:02.392Z",
"buy_model": "AUCTION",
"delivery_status": [
"INVALID_START_TIME_AFTER_END_TIME",
"INVALID_START_TIME"
],
"creation_state": "PUBLISHED",
"objective_v2_properties": {
"objective_v2_type": "AWARENESS_AND_ENGAGEMENT"
},
"pacing_properties_version": 0
}
}
]
}

Update a Campaign

This endpoint will update a specified campaign.

Attributes that can be updated

AttributeDescriptionRequiredPossible Values
end_timeEnd timeO
nameCampaign nameR
daily_budget_microDaily Spend Cap (micro-currency)O
lifetime_spend_cap_microLifetime spend cap for the campaign (micro-currency)O
start_timeStart timeO
statusCampaign statusRACTIVE, PAUSED

HTTP Request

PUT https://adsapi.snapchat.com/v1/adaccounts/{ad_account_id}/campaigns

Parameters

ParameterDefaultDescription
ad_account_idAd Account ID

Example - Update a Campaign

curl -X PUT \
-H "Authorization: Bearer meowmeowmeow" \
-H "Content-Type: application/json" \
-d '{"campaigns": [{"id":"7c074b60-3ae7-4975-bc1d-5785cc0be2c8","name":"Badger Tunneling Campaign","ad_account_id":"22225ba6-7559-4000-9663-bace8adff5f2","status":"PAUSED","objective":"BRAND_AWARENESS","start_time":"2025-11-20T21:45:00","end_time":"2025-11-25T21:45:00","buy_model":"AUCTION","objective_v2_properties":{"objective_v2_type":"AWARENESS_AND_ENGAGEMENT"}}]}'
https://adsapi.snapchat.com/v1/adaccounts/22225ba6-7559-4000-9663-bace8adff5f2/campaigns

The above command returns JSON structured like this:

{
"request_status": "SUCCESS",
"request_id": "a848b598-58cf-44a6-b568-c9ef86876499",
"campaigns": [
{
"sub_request_status": "SUCCESS",
"campaign": {
"id": "7c074b60-3ae7-4975-bc1d-5785cc0be2c8",
"updated_at": "2025-10-19T20:25:27.080Z",
"created_at": "2025-10-17T20:14:57.012Z",
"name": "Badger Tunneling Campaign",
"ad_account_id": "22225ba6-7559-4000-9663-bace8adff5f2",
"status": "PAUSED",
"objective": "BRAND_AWARENESS",
"start_time": "2025-11-20T21:45:00.000Z",
"end_time": "2025-11-25T21:45:00.000Z",
"buy_model": "AUCTION",
"delivery_status": [
"INVALID_START_TIME",
"INVALID_NOT_ACTIVE",
"INVALID_NOT_EFFECTIVE_ACTIVE"
],
"creation_state": "PUBLISHED",
"objective_v2_properties": {
"objective_v2_type": "AWARENESS_AND_ENGAGEMENT"
},
"pacing_properties_version": 0
}
}
]
}

Fetch all Campaigns under an Ad Account

This endpoint retrieves all Campaigns within a specified ad account, the returned Campaigns can be sorted either in the order they were created or by when they were last updated.

HTTP Request

GET https://adsapi.snapchat.com/v1/adaccounts/{ad_account_id}/campaigns

Parameters

ParameterPossible valuesDescription
ad_account_idAd Account ID
limit50-1000Parameter for pagination, sets the number of Campaigns returned per page
sortupdated_at-desc, created_at-descoptional parameter, sorts the resulting Campaigns in descending order, either by when they were last updated or by when they were created, this parameter can be combined with limit, but cannot be combined with read_deleted_entities
read_deleted_entitiestrueoptional parameter, this param will return the deleted attribute on deleted Campaign entities

Example - Fetch all Campaigns under an Ad Account

This request fetches Campaigns returned in the order from when they were last updated.

curl "https://adsapi.snapchat.comv1/adaccounts/22225ba6-7559-4000-9663-bace8adff5f2/campaigns?limit=100&sort=updated_at-desc" \
-H "Authorization: Bearer meowmeowmeow"

The above command returns JSON structured like this:

{
"request_status": "SUCCESS",
"request_id": "b1c56bf8-ab79-496d-8084-efc322a94172",
"paging": {
"next_link": "https://adsapi.snapchat.com/v1/adaccounts/22225ba6-7559-4000-9663-bace8adff5f2/campaigns?cursor=Q2FtcGFpZ25zLzE3ODdjNWRjLTYzOGUtNGJlNS05MTVkLTI5MGU1ZjFhZWVkMQ&limit=100&sort=updated_at-desc"
},
"campaigns": [
{
"sub_request_status": "SUCCESS",
"campaign": {
"id": "c6a9e09a-7126-48e1-96e0-4dbf9ab8d3c2",
"updated_at": "2024-11-14T19:31:07.019Z",
"created_at": "2024-11-14T19:31:07.019Z",
"name": "App Conversions - Porcupines",
"ad_account_id": "62225ba6-7559-4000-9663-bace8adff5f2",
"status": "ACTIVE",
"objective": "APP_CONVERSION",
"start_time": "2024-11-14T19:11:29.593Z",
"buy_model": "AUCTION",
"delivery_status": [
"INVALID_UNKNOWN"
],
"creation_state": "PUBLISHED",
"objective_v2_properties": {
"objective_v2_type": "APP_PROMOTION",
"is_auto_generated": true
},
"pacing_properties_version": 0
}
},
{
"sub_request_status": "SUCCESS",
"campaign": {
"id": "11162f29-85c7-4d43-a037-62d540487e29",
"updated_at": "2024-11-11T15:14:34.196Z",
"created_at": "2024-11-11T12:44:10.887Z",
"name": "Hunter Frogs DPA - Sales",
"ad_account_id": "62225ba6-7559-4000-9663-bace8adff5f2",
"status": "ACTIVE",
"objective": "CATALOG_SALES",
"start_time": "2024-11-11T12:41:09.808Z",
"buy_model": "AUCTION",
"product_properties": {
"catalog_id": "85b39b4d-8b29-4309-959c-75a3cbbdcd5b"
},
"delivery_status": [
"INVALID_UNKNOWN"
],
"creation_state": "PUBLISHED",
"objective_v2_properties": {
"objective_v2_type": "SALES"
},
"pacing_properties_version": 0
}
},
{
"sub_request_status": "SUCCESS",
"campaign": {
"id": "cfd35139-35ae-4294-bd58-968ab80d9dc5",
"updated_at": "2024-11-11T12:46:59.477Z",
"created_at": "2024-11-11T12:46:59.477Z",
"name": "New DPA Campaign - Pugs",
"ad_account_id": "62225ba6-7559-4000-9663-bace8adff5f2",
"status": "ACTIVE",
"objective": "CATALOG_SALES",
"start_time": "2024-11-11T12:46:34.305Z",
"buy_model": "AUCTION",
"product_properties": {
"catalog_id": "85b39b4d-8b29-4309-959c-75a3cbbdcd5b"
},
"delivery_status": [
"INVALID_UNKNOWN"
],
"creation_state": "PUBLISHED",
"objective_v2_properties": {
"objective_v2_type": "SALES"
},
"pacing_properties_version": 0
}
},
[[[ snip ]]]
{
"sub_request_status": "SUCCESS",
"campaign": {
"id": "46fb184a-d371-49f0-8384-ea533cef217a",
"updated_at": "2024-11-08T16:53:54.664Z",
"created_at": "2021-01-06T10:07:18.915Z",
"name": "App Install - Badger Campaign",
"ad_account_id": "62225ba6-7559-4000-9663-bace8adff5f2",
"status": "PAUSED",
"objective": "APP_INSTALL",
"measurement_spec": {
"ios_app_id": "324684580",
"android_app_url": "com.spotify.music"
},
"start_time": "2021-01-06T10:07:14.431Z",
"buy_model": "AUCTION",
"delivery_status": [
"INVALID_NOT_ACTIVE",
"INVALID_NOT_EFFECTIVE_ACTIVE"
],
"creation_state": "PUBLISHED",
"objective_v2_properties": {
"objective_v2_type": "APP_PROMOTION",
"is_auto_generated": true
},
"pacing_properties_version": 0
}
},
{
"sub_request_status": "SUCCESS",
"campaign": {
"id": "1787c5dc-638e-4be5-915d-290e5f1aeed1",
"updated_at": "2024-11-08T11:14:21.140Z",
"created_at": "2024-11-08T11:14:21.140Z",
"name": "App installs - SKAd - Honeybear",
"ad_account_id": "62225ba6-7559-4000-9663-bace8adff5f2",
"status": "ACTIVE",
"objective": "APP_INSTALL",
"measurement_spec": {
"ios_app_id": "447188370"
},
"start_time": "2024-11-08T11:13:09.976Z",
"buy_model": "AUCTION",
"delivery_status": [
"INVALID_UNKNOWN"
],
"creation_state": "PUBLISHED",
"objective_v2_properties": {
"objective_v2_type": "APP_PROMOTION",
"is_auto_generated": true
},
"pacing_properties_version": 0
}
}
]
}

Get a specific Campaign

This endpoint retrieves a specific campaign.

HTTP Request

GET https://adsapi.snapchat.com/v1/campaigns/{campaign_id}

URL Parameters

ParameterDefaultDescription
campaign_idCampaign ID
read_deleted_entitiestrueoptional parameter, this param will return the deleted attribute on deleted Campaign entities

Example - Get a specific Campaign

curl "https://adsapi.snapchat.com/v1/campaigns/92e1c28a-a331-45b4-8c26-fd3e0eea8c39" \
-H "Authorization: Bearer meowmeowmeow"

The above command returns JSON structured like this:

{
"request_status": "success",
"request_id": "57b0049c00ff0e8cb21af5199c0001737e616473617069736300016275696c642d35396264653638322d312d31312d3700010107",
"campaigns": [
{
"sub_request_status": "success",
"campaign": {
"id": "92e1c28a-a331-45b4-8c26-fd3e0eea8c39",
"updated_at": "2025-11-14T19:31:07.019Z",
"created_at": "2025-11-14T19:31:07.019Z",
"name": "App Conversions - Porcupines",
"ad_account_id": "62225ba6-7559-4000-9663-bace8adff5f2",
"status": "ACTIVE",
"objective": "APP_CONVERSION",
"start_time": "2025-11-17T19:11:29.593Z",
"buy_model": "AUCTION",
"delivery_status": ["DELIVERING"],
"creation_state": "PUBLISHED",
"objective_v2_properties": {
"objective_v2_type": "APP_PROMOTION",
"is_auto_generated": true
},
"pacing_properties_version": 0
}
}
]
}

Delete a Specific Campaign

curl -X DELETE "https://adsapi.snapchat.com/v1/campaigns/92e1c28a-a331-45b4-8c26-fd3e0eea8c39" \
-H "Authorization: Bearer meowmeowmeow"

The above command returns JSON structured like this:

{
"request_status": "success",
"request_id": "57b004dc00ff0e29c26b5d51840001737e616473617069736300016275696c642d35396264653638322d312d31312d3700010106",
"campaigns": []
}

This endpoint deletes a specific campaign.

HTTP Request

DELETE https://adsapi.snapchat.com/v1/campaigns/<ID>

URL Parameters

ParameterDescription
IDThe ID of the campaign to delete
Was this page helpful?
Yes
No