> ## Documentation Index
> Fetch the complete documentation index at: https://docs.markifact.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Create Single Image Ad

> Creates a Snapchat single image ad: uploads the image, creates the creative, then the ad

Creates a Snapchat single image ad: uploads the image, creates the creative, then the ad. Supports swipe-up attachments and bulk creation. Requires a Snapchat Public Profile ID.

| | |
| - | - |
| **App** | Snapchat Ads |
| **Operation ID** | `snapchat_ads_create_single_image_ad` |
| **Type** | Action |
| **Connection** | `snapchat_ads` (required) |
| **Credits per run** | 1 |
| **Agent / MCP tool** | Yes |
| **Requires approval** | Yes (write operation) |

## Inputs

| Field | Type | Required | Default | Description |
| - | - | - | - | - |
| `account` | DynamicAccount | Yes | - | Select the Snapchat Ads account that owns the ad squad. |
| `update_type` | string or SelectableOption | Yes | - | Choose whether to create a single ad or multiple ads at once. Options: single or bulk. |
| `profile_id` | string or SelectItem | Yes | - | Snapchat Public Profile ID attached to the creative (sent as profile\_properties.profile\_id). Required by Snapchat for all new creatives. In bulk mode this is the default; rows can override it with a profile\_id column. |
| `ad_squad_id` | string or SelectItem | No | - | Snapchat ad squad ID to create the ad in. |
| `ad_name` | string | No | - | Name used for the ad, the creative, and the uploaded media. Max 375 characters. |
| `ad_status` | string or SelectableOption | No | `{'value': 'PAUSED', 'label': 'Paused'}` | Status when the ad is created: ACTIVE or PAUSED. Default: PAUSED. |
| `image_url` | string | No | - | Top snap image. Accepts a direct image URL, Google Drive share link (set to 'Anyone with the link'), or Markifact uploaded image. Snapchat requires 1080x1920 PNG or JPG, max 5MB. |
| `headline` | string | No | - | Headline displayed under the profile name. Max 34 characters. |
| `brand_name` | string | No | - | Optional brand name override. Max 32 characters. When omitted, the Public Profile name is shown. |
| `attachment_type` | string or SelectableOption | No | `{'value': 'NONE', 'label': 'None (Snap Ad)'}` | What opens on swipe up. NONE creates a SNAP\_AD creative (top snap only). WEB\_VIEW creates a REMOTE\_WEBPAGE ad opening web\_view\_url. APP\_INSTALL creates an App Install ad (requires app\_name, icon\_url, and ios\_app\_id and/or android\_app\_url). DEEP\_LINK opens deep\_link\_uri in your app (same app fields required). |
| `call_to_action` | string or SelectableOption | No | - | Call to action button text. Only used with an attachment. Choices include all documented creative CTAs; Snapchat validates compatibility with the creative type. Forwarded without substituting another CTA. |
| `shareable` | boolean | No | `True` | Allow users to share the ad with friends. Default true. |
| `top_snap_crop_position` | string or SelectableOption | No | - | Image crop position: OPTIMIZED (Snapchat default), MIDDLE, TOP, or BOTTOM. |
| `web_view_url` | string | No | - | SSL-enabled URL opened on swipe up. Required when attachment\_type is WEB\_VIEW. Max 2048 characters. |
| `block_preload` | boolean | No | `False` | Block Snapchat from preloading the web view page. Default false. |
| `app_name` | string | No | - | Application name shown on the app install or deep link attachment. Max 30 characters. Required for APP\_INSTALL and DEEP\_LINK attachments. |
| `ios_app_id` | string | No | - | iOS App Store ID (for example 1234567890). At least one of ios\_app\_id or android\_app\_url is required for APP\_INSTALL and DEEP\_LINK attachments. |
| `android_app_url` | string | No | - | Google Play Store ID (for example com.snapchat.android). |
| `icon_url` | string | No | - | App icon image, uploaded to Snapchat as media (sent as icon\_media\_id). Snapchat requires a square PNG, ideally 256x256. Required for APP\_INSTALL and DEEP\_LINK attachments. |
| `enable_skoverlay` | boolean | No | `False` | Enable the iOS SKOverlay for the app attachment. Default false. |
| `product_page_id` | string | No | - | Optional iOS Custom Product Page ID (UUID). |
| `deep_link_uri` | string | No | - | Deep link URI opened in your app (for example myapp\://product/123). Required when attachment\_type is DEEP\_LINK. |
| `fallback_type` | string or SelectableOption | No | - | Deep link fallback when the app is not installed: APP\_INSTALL (Snapchat default) or WEB\_SITE. WEB\_SITE requires web\_view\_fallback\_url. |
| `web_view_fallback_url` | string | No | - | Fallback web URL used with fallback\_type WEB\_SITE. |
| `third_party_paid_impression_tracking_urls` | string or array of string | No | - | Third-party impression tracking tags, executed on ad impression. List of https URLs from Snapchat-approved domains (for example ad.doubleclick.net/ddm/trackimp). |
| `third_party_on_swipe_tracking_urls` | string or array of string | No | - | Third-party swipe tracking tags, executed on swipe up. List of https URLs from Snapchat-approved domains (for example ad.doubleclick.net/ddm/trackclk). |
| `return_detailed_results` | boolean | No | `False` | Bulk mode only. If true, returns per-row results and does not raise on partial failures. |
| `structured_data` | array (also accepts a comma-separated string) | No | - | Use only when update\_type is bulk. Required columns: ad\_squad\_id, ad\_name, image\_url, headline. Optional columns: ad\_status, brand\_name, attachment\_type, call\_to\_action, shareable, top\_snap\_crop\_position, web\_view\_url, block\_preload, app\_name, ios\_app\_id, android\_app\_url, icon\_url, enable\_skoverlay, product\_page\_id, deep\_link\_uri, fallback\_type, web\_view\_fallback\_url, profile\_id, third\_party\_paid\_impression\_tracking\_urls, third\_party\_on\_swipe\_tracking\_urls. |

### SelectItem

| Field | Type | Required | Default | Description |
| - | - | - | - | - |
| `value` | string | Yes | - | The value of the selectable item. |
| `label` | string | Yes | - | The label of the selectable item, used for display purposes. If not provided, defaults to the value. |

### SelectableOption

| Field | Type | Required | Default | Description |
| - | - | - | - | - |
| `value` | string | Yes | - | |
| `label` | string | Yes | - | |

## Output

**Type**: `Dict`

Returns created Snapchat ad, creative, and media IDs.

**Fields**: `ad_ids`, `creative_ids`, `media_ids`, `created_count`


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.