Offer Disclaimers
The Offer Disclaimers feature enables the ability to show additional offer details for a product or service.
Overview
Who is this for?
Advertisements in regulated verticals (e.g., Auto, Pharma, FinServ) often need to include terms, conditions or disclaimers in their ad campaigns. With Offer Disclaimers, Snapchatters get a better ad viewing experience without extensive on-screen text, and advertisers remain complaint while reserving more space for the ad creative.
Compatability Matrix
| Ad Format | Non-DPA | DPA |
|---|---|---|
| Single image or video (Snap ads) | ✅ | ✅ |
| Story Ads | ✅ | ✅ |
| Commercials | ✅ | ✅ |
| Collection ads | ✅ | ❌ |
| Spotlight | ❌ | ❌ |
Spotlight placement is not supported i.e. "See Offer Details" pill will not render.
Offer Sources
There are two potential sources that the ad delivery system will reference from when producing the text observed Offer Details:
- A Product Catalog through a field
- An Offer Disclaimer Entity
| Ad Type | Source | Offer Disclaimer Render Type |
|---|---|---|
| Dynamic Product Ad (DPA) | Product Catalog (field: offer_details) | DYNAMIC |
| Traditional, Non-DPA | Offer Disclaimer (field: disclaimer_text) | STATIC |
Regardless of the source an Offer Disclaimer Entity must always exist & be correctly associated.
Getting Started
Dynamic Product Ads (DPA)
In short, the Dynamic Product Ad generates ads on-the-fly and relies on data from a Product Catalog.
The data fed to the Product Catalog may include an optional new field offer_details.
1. Get Access
For DPA offer details, please notify your account team that you’d like to utilize Offer Details, and Snap will make sure to provide you appropriate access.
2. Update Catalog
The offer_details - only within the context of Product Catalogs - may be up to 10,000 characters.
Update your Product Catalog to include offer_details as a new field, and [publish the changes]
name , offer_details, ... , other_fields
"cool insurnance", "supports 10,000 characters", .... ,
3. Setup Offer Disclaimer
Once the data feed is pushing products that contain the offer_details; create an Offer Disclaimer Entity that must be:
DYNAMIC, and have it'sdisclaimer_textbenull- associated the creative to this Offer Disclaimer.
4. Disable Spotlight & Wrap
Ensure your ad stays compliant w/ the type of ads Offer Disclaimers support and disable spotlight.
Wrap it up! Offer details should now auto populate for relevant products that have the field in their product catalog.
Non-DPA
For any traditional snap advertisement - anything but a dynamic product ad - you'll operate directly with the Offer Disclaimer Entity which is generally available.
1. Setup Offer Disclaimer
The disclaimer_text of the Offer Disclaimer Entity may be up to 5,000 characters.
Once you've prepared your disclaimer, and within the context of non-DPA only, create an Offer Disclaimer Entity that must be:
- STATIC, and have it's
disclaimer_textbe nonnull - associate the creative to this Offer Disclaimer
2. Disable Spotlight & Wrap
Ensure your ad stays compliant w/ the type of ads Offer Disclaimers support and disable spotlight.
Offer Disclaimer Entity
An Offer Disclaimer is a reusable piece of text owned by an Ad Account. It can be associated with one or more Creatives to display legal text, terms, or other required disclosures as part of an ad.
Attributes
| Attribute | Description | Required | Possible Values |
|---|---|---|---|
| id | The unique ID of the Offer Disclaimer. | Read-Only | A UUID string. |
| ad_account_id | The ID of the Ad Account that owns the disclaimer. | R | A UUID string. |
| name | The user-defined name for the disclaimer. | R | String, max length: 255 characters. |
| disclaimer_text | The full legal or disclosure text. | R | String, max length: 5000 characters. |
| disclaimer_render_type | Determines where the details are pulled from | R | STATIC: Render text this entity itself i.e. the disclaimer_text, 'DYNAMIC': Render text rom a product catalog source; for Dynamic Product Ads only |
| created_at | The timestamp when the disclaimer was created. | Read-Only | ISO 8601 formatted date-time string. |
| updated_at | The timestamp when the disclaimer was last updated. | Read-Only | ISO 8601 formatted date-time string. |
HTTP Methods
Create an Offer Disclaimer (POST)
Creates one or more new Offer Disclaimers under a specified Ad Account.
POST /v1/adaccounts/{ad_account_id}/offer_disclaimers
Example Create Request for non-DPA
The following example creates a single Offer Disclaimer with render type STATIC for non-DPA.
curl -X POST \
-H "Content-Type: application/json" \
-H "Authorization: Bearer meowmeowmeow" \
'https://adsapi.snapchat.com/v1/adaccounts/82225ba6-7559-4000-9663-bace8adff5f2/offer_disclaimers' \
-d '{
"offer_disclaimers": [{
"name": "Summer Sale T&Cs",
"ad_account_id": "82225ba6-7559-4000-9663-bace8adff5f2",
"disclaimer_text": "Offer valid for a limited time. Restrictions apply.",
"disclaimer_render_type": "STATIC"
}]
}'
The above command returns JSON structured like this:
{
"request_status": "SUCCESS",
"request_id": "a1b2c3d4-e5f6-7890-1234-fedcba987654",
"offer_disclaimers": [
{
"sub_request_status": "SUCCESS",
"offer_disclaimer": {
"id": "3d7f2c99-1a2b-3c4d-5e6f-7890abcdef12",
"created_at": "2025-06-09T18:00:00.000Z",
"updated_at": "2025-06-09T18:00:00.000Z",
"name": "Summer Sale T&Cs",
"ad_account_id": "82225ba6-7559-4000-9663-bace8adff5f2",
"disclaimer_text": "Offer valid for a limited time. Restrictions apply.",
"disclaimer_render_type": "STATIC"
}
}
]
}
Example Create Request for DPA
The following example creates a single Offer Disclaimer with render type DYNAMIC for DPA.
curl -X POST \
-H "Content-Type: application/json" \
-H "Authorization: Bearer meowmeowmeow" \
'https://adsapi.snapchat.com/v1/adaccounts/82225ba6-7559-4000-9663-bace8adff5f2/offer_disclaimers' \
-d '{
"offer_disclaimers": [{
"name": "Summer Sale T&Cs",
"ad_account_id": "82225ba6-7559-4000-9663-bace8adff5f2",
"disclaimer_text": null,
"disclaimer_render_type": "DYNAMIC"
}]
}' \
The above command returns JSON structured like this:
{
"request_status": "SUCCESS",
"request_id": "a1b2c3d4-e5f6-7890-1234-fedcba987654",
"offer_disclaimers": [
{
"sub_request_status": "SUCCESS",
"offer_disclaimer": {
"id": "3d7f2c99-1a2b-3c4d-5e6f-7890abcdef12",
"created_at": "2025-06-09T18:00:00.000Z",
"updated_at": "2025-06-09T18:00:00.000Z",
"name": "Summer Sale T&Cs",
"ad_account_id": "82225ba6-7559-4000-9663-bace8adff5f2",
"disclaimer_text": null,
"disclaimer_render_type": "DYNAMIC"
}
}
]
}
Get a Specific Offer Disclaimer (GET)
Retrieves the details for a single Offer Disclaimer by its ID.
GET /v1/adaccounts/{ad_account_id}/offer_disclaimers/{offer_disclaimer_id}
Example Request
The following example gets an Offer Disclaimer with a specific ID.
curl -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Bearer meowmeowmeow" \
'https://adsapi.snapchat.com/v1/adaccounts/82225ba6-7559-4000-9663-bace8adff5f2/offer_disclaimers/3d7f2c99-1a2b-3c4d-5e6f-7890abcdef12'
The above command returns JSON structured like this:
{
"request_status": "SUCCESS",
"request_id": "b2c3d4e5-f6a7-8901-2345-edcba9876543",
"offer_disclaimers": [
{
"id": "3d7f2c99-1a2b-3c4d-5e6f-7890abcdef12",
"created_at": "2025-06-09T18:00:00.000Z",
"updated_at": "2025-06-09T18:00:00.000Z",
"name": "Summer Sale T&Cs",
"ad_account_id": "82225ba6-7559-4000-9663-bace8adff5f2",
"disclaimer_text": "Offer valid for a limited time. Restrictions apply.",
"disclaimer_render_type": "STATIC"
}
]
}
List Offer Disclaimers (GET)
Retrieves a paginated list of all Offer Disclaimers belonging to an Ad Account.
GET /v1/adaccounts/{ad_account_id}/offer_disclaimers
Parameters
| Attribute | Description | Required | Possible Values |
|---|---|---|---|
| limit | The maximum number of disclaimers to return in a single page. | O | Integer between 1 and 1000. Default: 50. |
| cursor | A pointer to a specific page of results. | O | String returned in the next_link of a previous request. |
Example Request
The following example lists all Offer Disclaimers for an Ad Account.
curl -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Bearer meowmeowmeow" \
'https://adsapi.snapchat.com/v1/adaccounts/82225ba6-7559-4000-9663-bace8adff5f2/offer_disclaimers?limit=2'
The above command returns JSON structured like this:
{
"request_status": "SUCCESS",
"request_id": "c3d4e5f6-a7b8-9012-3456-dcba98765432",
"offer_disclaimers": [
{
"id": "3d7f2c99-1a2b-3c4d-5e6f-7890abcdef12",
"created_at": "2025-06-09T18:00:00.000Z",
"updated_at": "2025-06-09T18:00:00.000Z",
"name": "Summer Sale T&Cs",
"ad_account_id": "82225ba6-7559-4000-9663-bace8adff5f2",
"disclaimer_text": "Offer valid for a limited time. Restrictions apply.",
"disclaimer_render_type": "STATIC"
},
{
"id": "4e8g3d11-2b3c-4d5e-6f7a-8901bcdef123",
"created_at": "2025-06-09T18:05:00.000Z",
"updated_at": "2025-06-09T18:05:00.000Z",
"name": "Winter Giveaway Rules",
"ad_account_id": "82225ba6-7559-4000-9663-bace8adff5f2",
"disclaimer_text": "See official rules for details.",
"disclaimer_render_type": "STATIC"
}
],
"paging": {
"next_link": "https://adsapi.snapchat.com/v1/adaccounts/82225ba6-7559-4000-9663-bace8adff5f2/offer_disclaimers?limit=2&cursor=meowmeowmeow"
}
}
Delete an Offer Disclaimer (DELETE)
Permanently deletes a specific Offer Disclaimer.
DELETE /v1/adaccounts/{ad_account_id}/offer_disclaimers/{offer_disclaimer_id}
Example Request
The following example deletes an Offer Disclaimer with a specific ID.
curl -X DELETE \
-H "Content-Type: application/json" \
-H "Authorization: Bearer meowmeowmeow" \
'https://adsapi.snapchat.com/v1/adaccounts/82225ba6-7559-4000-9663-bace8adff5f2/offer_disclaimers/3d7f2c99-1a2b-3c4d-5e6f-7890abcdef12'
The above command returns JSON structured like this:
{
"request_status": "SUCCESS",
"request_id": "d4e5f6a7-b8c9-0123-4567-cba987654321"
}