Commercials
Commercials are non-skippable video Snap Ads that allow you to drive awareness within Snap’s high-quality premium content.
A commercial is not a separate entity in the API, rather Creatives are eligible to be used as commercials given that they match a set of criteria including the length of the top snap video and the Creative type.
When this type of Creative is used in an Ad and targeted at Snap's premium content bundles it will automatically run as a commercial within that content.
Commercials can currently target the following countries: AE, AU, AT, BH, CA, CH, DE, DK, FR, IQ, IE, JO, KW, NL, NZ, NO, OM, QA, SA, SE, UK, US.
Media requirements
The Media entity used as top snap in the Creative needs to be of the type
VIDEO, the length of the video along with the Creative type will then determine if the Creative can be used as a Commercial or not.
Video media with duration_in_seconds
of a minimum of 3 seconds are eligible to be used in a Creative with the intent of running as a Commercial.
Media of the type
IMAGE are not eligible to be used as Commercials.
Media Attribute | Value |
---|---|
type | VIDEO |
duration_in_seconds | 3 second minimum |
Creative requirements
Only Snap Ads can run as Commercials, the only allowed attachments are Webview and AR Lens.
Creative attribute | Value |
---|---|
type | AD_TO_LENS, SNAP_AD, WEB_VIEW |
The attribute forced_view_eligibility
needs to be set on the Creative entity, this indicates whether a Creative is eligible to be used as a Commerical or not, and for how long the Creative will be unskippable.
The forced_view_eligibility
is based on the lengh of the Media entity used as top_snap_media_id
and the intended Creative type.
Creatives classified as FULL_DURATION qualify to run as Commercials and will be unskippable for the full length of the Video, Creatives classified as SIX_SECONDS qualify to run as Commercials and will be unskippable for the first six seconds of the video, the rest of the video will be skippable.
Creatives of any other type than AD_TO_LENS, APP_INSTALL, SNAP_AD, WEB_VIEW are not eligible to run as commercials and should have the forced_view_eligibility
set to NONE.
Top Snap Video length | Creative type | forced_view_eligibility value | Description |
---|---|---|---|
3 - 6 seconds | AD_TO_LENS, APP_INSTALL, SNAP_AD, WEB_VIEW | FULL_DURATION | The full length of the video will be unskippable |
7 seconds or longer | AD_TO_LENS, APP_INSTALL, SNAP_AD, WEB_VIEW | SIX_SECONDS | The first six seconds of the video will be unskippable |
any | APP_INSTALL, DEEP_LINK, PREVIEW, COMPOSITE, LENS, COLLECTION, LENS_WEB_VIEW, LENS_APP_INSTALL, LENS_DEEP_LINK | NONE | Creative type is not eligible to run as a Commercial |
AdSquad Targeting
Commercials can only be used in AdSquads that targets one of the following country codes: ae
, au
, at
, bh
, ca
, ch
, de
, dk
, fr
, iq
, ie
, jo
, kw
, nl
, nz
, no
, om
, qa
, sa
, se
, uk
, us
.
Additionally the AdSquad needs to specify either INSTREAM in snapchat_positions
and the premium_content_bundle_ids
targeted, this specifies the content that the Commercials are shown in.
placement_v2 attribute | Value |
---|---|
config | CUSTOM |
platforms | SNAPCHAT |
snapchat_positions | INSTREAM |
inclusion | premium_content_bundle_ids |
Premium Content Bundles
The premium content bundles represent the content where commercials can be shown, the bundles are meant to be used in a mutually exclusive manner, if you target multiple bundles you will run Commercials on all targeted content.
ID | Description |
---|---|
c7e251af-3606-4f03-91f1-98456161655d | Run of Lifestyle, Sports Shows (no News) Only |
1856c724-7cec-4139-a8a8-b87fc609f13e | Run of Shows (including News) Only |
Fetching a Media entity to inspect type and duration_in_seconds
curl "https://adsapi.snapchat.com/v1/media/5f186aa6-51e4-4c86-95fc-f273e33247e4" \
-H "Authorization: Bearer meowmeowmeow"
If the Media entity type is VIDEO and the duration_in_seconds is 3 seconds or longer it can be used in a Creative intended to run as a Commercial.
In this case the duration_in_seconds is 5.25 seconds meaning this Media can be used to set up a Creative with the forced_view_eligibility
attribute set to FULL_DURATION
.
The above request returns JSON structured like this:
{
"request_status": "SUCCESS",
"request_id": "5db307d500ff0113ad83cc14370001737e616473617069736300016275696c642d63396263633066392d312d3239392d3100010161",
"media": [
{
"sub_request_status": "SUCCESS",
"media": {
"id": "5f186aa6-51e4-4c86-95fc-f273e33247e1",
"updated_at": "2017-10-17T12:32:09.493Z",
"created_at": "2017-10-17T12:31:19.069Z",
"name": "6569282748022784.mp4",
"ad_account_id": "22225ba6-7559-4000-9663-bace8adff5f1",
"type": "VIDEO",
"media_status": "READY",
"file_name": "6569282748022784.mp4",
"download_link": "https://storage.googleapis.com/rsp-ads-prod/22225ba6-7559-4000-9663-bace8adff5f2/6569282748022784.mp4",
"duration_in_seconds": 6.72,
"video_metadata": {
"width_px": 1080,
"height_px": 1920,
"rotation": null,
"integrated_loudness": -18.2,
"true_peak": -8.1
},
"file_size_in_bytes": 6061140,
"is_demo_media": false,
"hash": "3WQFkg=="
}
}
]
}
Create a Creative with the attribute forced_view_eligibility
curl -X POST \
-d '{
"creatives": [
{
"ad_account_id": "22225ba6-7559-4000-9663-bace8adff5f1",
"name" : "Honey Badger - Webview - Commercial - FULL_TIME",
"type": "WEB_VIEW",
"headline": "Honey Badger Motion Picture",
"brand_name": "Honey Badger Movies",
"shareable": false,
"forced_view_eligibility": "FULL_DURATION",
"call_to_action": "WATCH",
"top_snap_media_id": "5f186aa6-51e4-4c86-95fc-f273e33247e1",
"web_view_properties": {
"url": "http://snapchat.com/ads"
}
}
]
}' \
-H "Content-Type: application/json" \
-H "Authorization: Bearer meowmeowmeow" \
https://adsapi.snapchat.com/v1/adaccounts/22225ba6-7559-4000-9663-bace8adff5f2/creatives
Having checked the type and duration_in_seconds
of the Media used in top_snap_media_id
we know we can set the attribute forced_view_eligibility
to the value FULL_DURATION, this will allow the Creative to be used as a Commercial which is unskippable for it's full duration.
The above request returns JSON structured like this:
{
"request_status": "SUCCESS",
"request_id": "5db309da00ff04a2bcf03681950001737e616473617069736300016275696c642d63396263633066392d312d3239392d3100010106",
"creatives": [
{
"sub_request_status": "SUCCESS",
"creative": {
"id": "2edef461-6998-4dd6-9afe-2ee2bf0d5b6c",
"updated_at": "2019-10-25T14:42:35.810Z",
"created_at": "2019-10-25T14:42:35.810Z",
"name": "Honey Badger - Webview - Commercial - FULL_TIME",
"ad_account_id": "22225ba6-7559-4000-9663-bace8adff5f1",
"type": "WEB_VIEW",
"packaging_status": "IN_PROGRESS",
"review_status": "PENDING_REVIEW",
"shareable": false,
"forced_view_eligibility": "FULL_DURATION",
"headline": "Honey Badger Motion Picture",
"brand_name": "Honey Badger Movies",
"call_to_action": "WATCH",
"render_type": "STATIC",
"top_snap_media_id": "5f186aa6-51e4-4c86-95fc-f273e33247e4",
"top_snap_crop_position": "MIDDLE",
"web_view_properties": {
"url": "http://snapchat.com/ads",
"allow_snap_javascript_sdk": false,
"use_immersive_mode": false,
"deep_link_urls": [],
"block_preload": false
},
"ad_product": "SNAP_AD"
}
}
]
}
Creating an AdSquad that targets premium bundles
curl -X POST \
-d '{
"adsquads":[
{
"campaign_id":"44f535d7-fde6-4b72-b76d-2d8ccf03f591",
"name":"Ad Squad - Commercial test",
"type":"SNAP_ADS",
"placement":"SNAP_ADS",
"optimization_goal":"IMPRESSIONS",
"daily_budget_micro":1000000000,
"billing_event":"IMPRESSION",
"auto_bid":true,
"target_bid":false,
"targeting":{
"regulated_content":false,
"geos":[
{
"country_code":"uk"
}
]
},
"placement_v2":{
"config":"CUSTOM",
"platforms":[
"SNAPCHAT"
],
"snapchat_positions":[
"INSTREAM"
],
"inclusion":{
"premium_content_bundle_ids":[
"31b1a5e4-2193-4542-affe-9ce62b7b17b8"
]
}
},
"start_time":"2019-10-27T13:08:53.873Z",
"pixel_id":"5eda10b7-a5fe-4ac6-80f4-417e68d748fb",
"delivery_constraint":"DAILY_BUDGET",
"pacing_type":"STANDARD"
}
]
}' \
-H "Content-Type: application/json" \
-H "Authorization: Bearer meowmeowmeow" \
https://adsapi.snapchat.com/v1/campaigns/44f535d7-fde6-4b72-b76d-2d8ccf03f591/adsquads
In the placement_v2 we specify the bundle id 31b1a5e4-2193-4542-affe-9ce62b7b17b8 , this represents content made up of Lifestyle and Sports Shows (no News shows). The geo targeting country_code
attribute is restricted to the following countries: ae
, au
, at
, bh
, ca
, ch
, de
, dk
, fr
, iq
, ie
, jo
, kw
, nl
, nz
, no
, om
, qa
, sa
, se
, uk
, us
The above request returns JSON structured like this:
{
"request_status": "SUCCESS",
"request_id": "5db063be00ff00ffff004124e334240001737e616473617069736300016275696c642d30623936353833662d312d3239382d3500010111",
"adsquads": [
{
"sub_request_status": "SUCCESS",
"adsquad": {
"id": "e711d041-184d-4fd8-a3df-d957c83699d4",
"updated_at": "2019-10-23T14:29:19.252Z",
"created_at": "2019-10-23T14:29:19.252Z",
"name": "Ad Squad - Commercial test",
"status": "ACTIVE",
"campaign_id": "44f535d7-fde6-4b72-b76d-2d8ccf03f591",
"type": "SNAP_ADS",
"targeting": {
"regulated_content": false,
"geos": [
{
"country_code": "uk"
}
]
},
"placement_v2": {
"config": "CUSTOM",
"platforms": ["SNAPCHAT"],
"snapchat_positions": ["INSTREAM"],
"inclusion": {
"premium_content_bundle_ids": [
"31b1a5e4-2193-4542-affe-9ce62b7b17b8"
]
}
},
"billing_event": "IMPRESSION",
"auto_bid": true,
"target_bid": false,
"daily_budget_micro": 1000000000,
"start_time": "2019-10-27T13:08:53.873Z",
"optimization_goal": "IMPRESSIONS",
"pixel_id": "5eda10b7-a5fe-4ac6-80f4-417e68d748fb",
"delivery_constraint": "DAILY_BUDGET",
"pacing_type": "STANDARD"
}
}
]
}
Create an Ad using the Creative
curl -X POST \
-d '{
"ads": [
{
"ad_squad_id": "e711d041-184d-4fd8-a3df-d957c83699d1",
"creative_id": "2edef461-6998-4dd6-9afe-2ee2bf0d5b61",
"name": "Honey Badger Motion Picture - Ad - Commercial - FULL_DURATION",
"type": "REMOTE_WEBPAGE",
"status": "ACTIVE"
}
]
}' \
-H "Content-Type: application/json" \
-H "Authorization: Bearer meowmeowmeow" \
https://adsapi.snapchat.com/v1/adsquads/e711d041-184d-4fd8-a3df-d957c83699d4/ads
Finally we set up an Ad using the Creative that is eligible to serve as a Commercial and set the Ad to the AdSquad that targets premium content bundles, there are no other Commercial specific requirements for the Ad entity.
The above request returns JSON structured like this:
{
"request_status": "SUCCESS",
"request_id": "5db3155c00ff01f1ce6a554ee80001737e616473617069736300016275696c642d63396263633066392d312d3239392d3100010152",
"ads": [
{
"sub_request_status": "SUCCESS",
"ad": {
"id": "586e41db-54cd-481c-a512-e8852e74df3b",
"updated_at": "2019-10-25T15:31:40.646Z",
"created_at": "2019-10-25T15:31:40.646Z",
"name": "Honey Badger Motion Picture - Ad - Commercial - FULL_DURATION",
"ad_squad_id": "e711d041-184d-4fd8-a3df-d957c83699d1",
"creative_id": "2edef461-6998-4dd6-9afe-2ee2bf0d5b61",
"status": "ACTIVE",
"type": "REMOTE_WEBPAGE",
"render_type": "STATIC",
"review_status": "PENDING"
}
}
]
}