Field Schema¶
Complete reference for all fields used in Pablo ad creation across Notion, Airtable, and API integrations.
Fields¶
| Field Name | Required | Description |
|---|---|---|
ad_id |
- | Meta ad ID (when supplied, overwrites existing ad) |
ad_name |
✓ | Internal identifier for tracking |
ad_headline |
✓ | Main headline text displayed in ad |
ad_description |
- | Additional description text |
ad_body |
✓ | Primary text/body copy |
ad_link_url |
✓ | Destination URL when ad is clicked |
ad_cta_label |
✓ | Button label |
ad_media_type |
✓ | Type of creative |
ad_asset_url |
✓ | Main image/video file(s) |
ad_asset_mid_url |
- | Square/portrait format (4:5 ratio) |
ad_asset_vertical_url |
- | Vertical format (9:16 ratio) |
ad_asset_filename |
- | Filename for main asset (API only) |
ad_asset_mid_filename |
- | Filename for mid asset (API only) |
ad_asset_vertical_filename |
- | Filename for vertical asset (API only) |
destination_ad_account_id |
✓ | Meta ad account ID |
destination_adset_id |
✓ | Target ad set ID |
destination_template_ad_id |
✓ | Template ad for settings |
ad_initial_status |
- | Initial ad status (ACTIVE or PAUSED, default: PAUSED) |
lead_form_id |
- | Meta lead form ID (if using lead ads) |
partner_instagram_username |
- | Partner/creator Instagram username for branded content |
partner_facebook_page_id |
- | (Advanced) Partner's Facebook Page ID for branded content |
System Fields¶
Pablo automatically populates these fields after ad creation (read-only):
| Field Name | Description |
|---|---|
build_id |
Unique build identifier |
build_status |
Current build state: building, qa, published, error |
error_message |
Error details if build fails |
ad_post_id |
Facebook post ID for the ad |
ad_preview_link |
Preview link to view the created ad |
partner_instagram_id |
Resolved Instagram user ID (when partner_instagram_username is provided) |
partner_instagram_metadata |
Cached partner info: {id, username, name, profile_picture_url} |
Field Details¶
ad_id¶
Type: String (Numeric)
Required: No
Description: Meta ad ID for updating an existing ad. When supplied, Pablo will overwrite the specified ad instead of creating a new one.
Format: Numeric string (e.g., "120234452710130091")
Usage:
- Leave empty to create a new ad
- Provide ad ID to update/overwrite an existing ad
Validation:
- Must be numeric
- Must be a valid ad ID in the specified ad account
- The ad must exist and be accessible to the authenticated user
Notes:
- When updating an ad, all creative content will be replaced with new values
- Useful for refreshing ad creative without creating duplicate ads
- Pablo populates this field automatically after creating a new ad
ad_name¶
Type: Text
Required: Yes
Description: The name of the ad in Facebook ads manager.
Validation:
- Must not be empty
- Max 255 characters
- Any text characters allowed
ad_headline¶
Type: Text
Required: Yes
Description: Main headline text displayed prominently in the ad.
Validation:
- Must not be empty
- Max 255 characters
- Plain text only
- May be truncated on some placements if too long
ad_description¶
Type: Text
Required: No
Description: Additional description text for the ad. This field provides extra context or details beyond the main body text.
Validation:
- Plain text only
- No character limit
- Optional field - can be left empty
Notes:
- Not all Meta ad placements display the description field
- Most commonly shown in link preview formats
- Consider this supplementary to your main
ad_bodytext
ad_body¶
Type: Text
Required: Yes
Description: Primary text/body copy for the ad.
Validation:
- Must not be empty
- Plain text only
- Unlimited length
- Longer text may be truncated with "... See more" on some placements
ad_link_url¶
Type: URL
Required: Yes
Description: Destination URL where users are directed when they click the ad.
Validation:
- Must start with
http://orhttps:// - Must be publicly accessible (no localhost or private IPs)
- Must return 200 status code
- Must meet Meta's advertising policies
ad_cta_label¶
Type: Enum (Select)
Required: Yes
Description: Call-to-action button text displayed on the ad.
Common Values:
| Value | Display Text |
|---|---|
SHOP_NOW |
Shop Now |
LEARN_MORE |
Learn More |
SIGN_UP |
Sign Up |
DOWNLOAD |
Download |
GET_QUOTE |
Get Quote |
CONTACT_US |
Contact Us |
APPLY_NOW |
Apply Now |
BOOK_TRAVEL |
Book Travel |
Notes:
- See Meta's Call-to-Action Reference for the complete list and availability by objective
ad_media_type¶
Type: Enum (Select)
Required: Yes
Description: Type of ad creative.
Allowed Values:
| Value | Description | Asset Requirements |
|---|---|---|
static |
Single image ad | 1 image file |
carousel |
Multi-image swipeable ad | 2-10 image files |
video |
Video ad | 1 video file + optional thumbnail |
When ad_media_type is carousel, the assets in ad_asset_url will be used to create the carousel, and their type will be automatically determined.
ad_asset_url¶
Type: File URL or Array of URLs
Required: Yes
Description: Primary creative file(s). Single file for static/video ads, multiple files for carousel ads. Refer to Meta's specifications for Image Ads and Video Ads.
ad_asset_mid_url¶
Type: File URL or Array of URLs
Required: No
Description: Portrait/mid format asset(s) optimized for Feed placements. Refer to Meta's specifications for Image Ads and Video Ads.
ad_asset_vertical_url¶
Type: File URL or Array of URLs
Required: No
Description: Vertical format asset(s) optimized for Stories and Reels placements. Refer to Meta's specifications for Image Ads and Video Ads.
ad_asset_filename¶
Type: Text
Required: No
Description: Optional filename for the main asset, which will determine how it appears in Ads Manager.
Notes: Not used in Notion/Airtable (filenames auto-detected from attachments)
ad_asset_mid_filename¶
Type: Text
Required: No
Description: Filename for the mid (4:5) asset, which will determine how it appears in Ads Manager.
Notes: Not used in Notion/Airtable (filenames auto-detected from attachments)
ad_asset_vertical_filename¶
Type: Text
Required: No
Description: Filename for the vertical (9:16) asset, which will determine how it appears in Ads Manager.
Notes: Not used in Notion/Airtable (filenames auto-detected from attachments)
destination_ad_account_id¶
Type: String (Numeric)
Required: Yes
Description: Meta ad account ID where the ad will be created.
Format: Numeric string (e.g., "123456789")
Validation:
- Must be numeric
- Must be an ad account accessible to the authenticated user
- Account must be active (not deleted or disabled)
destination_adset_id¶
Type: String (Numeric)
Required: Yes
Description: Target ad set ID within the ad account where the ad will be placed.
Format: Numeric string (e.g., "987654321")
Validation:
- Must be numeric
- Must exist in the specified ad account
- Must be active (not deleted or archived)
- Cannot use ad sets with "Dynamic Creative" enabled
destination_template_ad_id¶
Type: String (Numeric)
Required: Yes
Description: Existing ad ID to copy settings from (page connections, tracking parameters, creative enhancements).
Format: Numeric string (e.g., "555666777")
Inherited Settings:
- Connected Facebook Page
- Connected Instagram account
- Connected Threads profile
- Tracking parameters (UTM tags, pixels)
- Creative enhancement settings (degrees_of_freedom_spec)
partner_instagram_username¶
Type: Text
Required: No
Description: Instagram username of a partner/creator for branded content ads. Pablo will automatically look up their Instagram Business Account ID and configure the ad as a branded content partnership.
Format: Username with or without @ (e.g., "@creator" or "creator")
Notes:
- Used for influencer/creator partnership ads
- The partner must have an Instagram Business or Creator account
- The ad will display "Paid partnership" disclosure
- Pablo auto-populates
partner_instagram_idandpartner_instagram_metadata
partner_facebook_page_id¶
Type: String (Numeric)
Required: No
Description: The Facebook Page ID of the partner/creator for branded content ads.
Validation:
- Must be numeric
- Optional - Pablo automatically resolves this from the partner's Instagram account
Notes:
- Advanced Use Only: You typically do NOT need to provide this field.
- Pablo uses the Meta API to look up the partner's Page ID based on the provided
partner_instagram_username. - Only use this if the automatic resolution fails or you need to force a specific Page ID.
- The partner must have an Instagram Business/Creator account linked to this Page.
ad_initial_status¶
Type: Enum (Select)
Required: No
Default: PAUSED
Description: The initial status of the ad when it's created in Meta Ads Manager.
Allowed Values:
| Value | Description |
|---|---|
ACTIVE |
Ad goes live immediately after creation |
PAUSED |
Ad is created but remains paused (default) |
Notes:
- If not specified, ads default to
PAUSEDstatus - You can change the status later in Meta Ads Manager
- Setting to
ACTIVErequires the ad set and campaign to also be active - Useful for testing ads before making them live
lead_form_id¶
Type: Text
Required: No
Description: Meta lead form ID for lead generation ads.
Format: Numeric string (e.g., "123456789012345")
Validation:
- Must be a valid lead form ID in your Meta account
- Lead form must be active and approved
- Only applicable when creating lead ads
Notes:
- Used for lead generation campaigns
- Leave empty for standard link ads
- Lead form must be created in Meta Ads Manager first