Snapchat · Schema

Snapchat Ad Campaign

Schema for validating Snapchat Ads API campaign, ad squad, ad, and creative entities used in the advertising lifecycle.

AdvertisingARAugmented RealityMarketingMessagingSocial-Media
View JSON Schema on GitHub

JSON Schema

snapchat-ad-campaign-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://developers.snap.com/schemas/snapchat/ad-campaign.json",
  "title": "Snapchat Ad Campaign",
  "description": "Schema for validating Snapchat Ads API campaign, ad squad, ad, and creative entities used in the advertising lifecycle.",
  "type": "object",
  "$defs": {
    "Organization": {
      "type": "object",
      "description": "An Organization represents a brand, partner, or ad agency on the Snapchat advertising platform.",
      "required": ["name"],
      "properties": {
        "id": {
          "type": "string",
          "description": "The unique identifier of the organization."
        },
        "name": {
          "type": "string",
          "description": "The name of the organization."
        },
        "address_line_1": {
          "type": "string",
          "description": "First line of the organization address."
        },
        "locality": {
          "type": "string",
          "description": "City or locality of the organization."
        },
        "administrative_district_level_1": {
          "type": "string",
          "description": "State or province of the organization."
        },
        "country": {
          "type": "string",
          "description": "Two-letter country code.",
          "pattern": "^[A-Z]{2}$"
        },
        "postal_code": {
          "type": "string",
          "description": "Postal code of the organization."
        },
        "type": {
          "type": "string",
          "description": "The type of organization.",
          "enum": ["ENTERPRISE", "PARTNER"]
        },
        "created_at": {
          "type": "string",
          "format": "date-time",
          "description": "Timestamp when the organization was created."
        },
        "updated_at": {
          "type": "string",
          "format": "date-time",
          "description": "Timestamp when the organization was last updated."
        }
      }
    },
    "AdAccount": {
      "type": "object",
      "description": "An Ad Account contains advertising campaigns and is owned by an Organization.",
      "required": ["name", "organization_id", "currency", "timezone"],
      "properties": {
        "id": {
          "type": "string",
          "description": "The unique identifier of the ad account."
        },
        "name": {
          "type": "string",
          "description": "The name of the ad account."
        },
        "organization_id": {
          "type": "string",
          "description": "The ID of the parent organization."
        },
        "type": {
          "type": "string",
          "description": "The type of ad account.",
          "enum": ["PARTNER", "DIRECT"]
        },
        "status": {
          "type": "string",
          "description": "The status of the ad account.",
          "enum": ["ACTIVE", "PAUSED", "DISABLED"]
        },
        "currency": {
          "type": "string",
          "description": "ISO 4217 currency code for the ad account.",
          "pattern": "^[A-Z]{3}$"
        },
        "timezone": {
          "type": "string",
          "description": "IANA timezone identifier (e.g., America/Los_Angeles)."
        },
        "advertiser": {
          "type": "string",
          "description": "The name of the advertiser."
        },
        "funding_source_ids": {
          "type": "array",
          "description": "Array of funding source IDs associated with this account.",
          "items": {
            "type": "string"
          }
        },
        "created_at": {
          "type": "string",
          "format": "date-time",
          "description": "Timestamp when the ad account was created."
        },
        "updated_at": {
          "type": "string",
          "format": "date-time",
          "description": "Timestamp when the ad account was last updated."
        }
      }
    },
    "Campaign": {
      "type": "object",
      "description": "A Campaign defines a business objective and organizes Ad Squads for aggregate reporting.",
      "required": ["name", "ad_account_id", "status"],
      "properties": {
        "id": {
          "type": "string",
          "description": "The unique identifier of the campaign."
        },
        "name": {
          "type": "string",
          "description": "The name of the campaign."
        },
        "ad_account_id": {
          "type": "string",
          "description": "The ID of the parent ad account."
        },
        "status": {
          "type": "string",
          "description": "The status of the campaign.",
          "enum": ["ACTIVE", "PAUSED"]
        },
        "daily_budget_micro": {
          "type": "integer",
          "description": "Daily budget in micro-currency units (1,000,000 micro = 1 unit of currency).",
          "minimum": 0
        },
        "lifetime_spend_cap_micro": {
          "type": "integer",
          "description": "Lifetime spend cap in micro-currency units.",
          "minimum": 0
        },
        "start_time": {
          "type": "string",
          "format": "date-time",
          "description": "The start time of the campaign."
        },
        "end_time": {
          "type": "string",
          "format": "date-time",
          "description": "The end time of the campaign."
        },
        "objective_v2_properties": {
          "type": "object",
          "description": "The v2 objective properties for the campaign, replacing the deprecated objective field.",
          "properties": {
            "objective": {
              "type": "string",
              "description": "The campaign objective type."
            }
          }
        },
        "created_at": {
          "type": "string",
          "format": "date-time",
          "description": "Timestamp when the campaign was created."
        },
        "updated_at": {
          "type": "string",
          "format": "date-time",
          "description": "Timestamp when the campaign was last updated."
        }
      }
    },
    "AdSquad": {
      "type": "object",
      "description": "An Ad Squad organizes ads within a campaign, defining targeting, budget, schedule, and bid strategy.",
      "required": ["name", "campaign_id", "status"],
      "properties": {
        "id": {
          "type": "string",
          "description": "The unique identifier of the ad squad."
        },
        "name": {
          "type": "string",
          "description": "The name of the ad squad."
        },
        "campaign_id": {
          "type": "string",
          "description": "The ID of the parent campaign."
        },
        "status": {
          "type": "string",
          "description": "The status of the ad squad.",
          "enum": ["ACTIVE", "PAUSED"]
        },
        "type": {
          "type": "string",
          "description": "The delivery type.",
          "enum": ["SNAP_ADS", "STORY_ADS"]
        },
        "placement": {
          "type": "string",
          "description": "Where ads will be placed."
        },
        "bid_micro": {
          "type": "integer",
          "description": "The bid amount in micro-currency units.",
          "minimum": 0
        },
        "daily_budget_micro": {
          "type": "integer",
          "description": "Daily budget in micro-currency units.",
          "minimum": 0
        },
        "lifetime_budget_micro": {
          "type": "integer",
          "description": "Lifetime budget in micro-currency units.",
          "minimum": 0
        },
        "start_time": {
          "type": "string",
          "format": "date-time",
          "description": "The start time of the ad squad."
        },
        "end_time": {
          "type": "string",
          "format": "date-time",
          "description": "The end time of the ad squad."
        },
        "targeting": {
          "type": "object",
          "description": "Targeting criteria for the ad squad."
        },
        "created_at": {
          "type": "string",
          "format": "date-time",
          "description": "Timestamp when the ad squad was created."
        },
        "updated_at": {
          "type": "string",
          "format": "date-time",
          "description": "Timestamp when the ad squad was last updated."
        }
      }
    },
    "Ad": {
      "type": "object",
      "description": "An Ad is an individual ad unit delivered to users, belonging to an Ad Squad and referencing a Creative.",
      "required": ["name", "ad_squad_id", "creative_id", "status"],
      "properties": {
        "id": {
          "type": "string",
          "description": "The unique identifier of the ad."
        },
        "name": {
          "type": "string",
          "description": "The name of the ad."
        },
        "ad_squad_id": {
          "type": "string",
          "description": "The ID of the parent ad squad."
        },
        "creative_id": {
          "type": "string",
          "description": "The ID of the creative used by this ad."
        },
        "status": {
          "type": "string",
          "description": "The status of the ad.",
          "enum": ["ACTIVE", "PAUSED"]
        },
        "type": {
          "type": "string",
          "description": "The type of ad."
        },
        "created_at": {
          "type": "string",
          "format": "date-time",
          "description": "Timestamp when the ad was created."
        },
        "updated_at": {
          "type": "string",
          "format": "date-time",
          "description": "Timestamp when the ad was last updated."
        }
      }
    },
    "Creative": {
      "type": "object",
      "description": "A Creative defines the visual and interactive content of an ad.",
      "required": ["name", "ad_account_id", "type"],
      "properties": {
        "id": {
          "type": "string",
          "description": "The unique identifier of the creative."
        },
        "name": {
          "type": "string",
          "description": "The name of the creative."
        },
        "ad_account_id": {
          "type": "string",
          "description": "The ID of the parent ad account."
        },
        "type": {
          "type": "string",
          "description": "The type of creative.",
          "enum": [
            "SNAP_AD",
            "APP_INSTALL",
            "LONGFORM_VIDEO",
            "WEB_VIEW",
            "DEEP_LINK",
            "LENS",
            "COLLECTION",
            "DYNAMIC",
            "PREVIEW"
          ]
        },
        "headline": {
          "type": "string",
          "description": "The headline text displayed on the creative.",
          "maxLength": 34
        },
        "brand_name": {
          "type": "string",
          "description": "The brand name displayed on the creative.",
          "maxLength": 25
        },
        "shareable": {
          "type": "boolean",
          "description": "Whether the creative can be shared by users."
        },
        "call_to_action": {
          "type": "string",
          "description": "The call-to-action button type.",
          "enum": [
            "INSTALL_NOW",
            "WATCH_MORE",
            "VIEW_MORE",
            "SIGN_UP",
            "SHOP_NOW",
            "BUY_NOW",
            "GET_NOW",
            "BOOK_NOW",
            "LISTEN",
            "ORDER_NOW",
            "PLAY",
            "APPLY_NOW",
            "DOWNLOAD",
            "SEND",
            "MORE"
          ]
        },
        "top_snap_media_id": {
          "type": "string",
          "description": "The media ID for the top snap creative asset."
        },
        "created_at": {
          "type": "string",
          "format": "date-time",
          "description": "Timestamp when the creative was created."
        },
        "updated_at": {
          "type": "string",
          "format": "date-time",
          "description": "Timestamp when the creative was last updated."
        }
      }
    }
  }
}