# Create standalone ad

Creates a standalone ad.

```http
POST https://api.pozy.ai/v1/ads/create
```

- Area: Ads / Ad Campaigns
- Auth: Authorization: Bearer pz_live_...

## Header parameters

- `Idempotency-Key` (string)

## Request body

Content type: `application/json`

- `accountId`, string, required
- `adAccountId`, string, required
- `name`, string: Up to 255 characters
- `campaignName`, string: Up to 255 characters
- `adSetName`, string: Up to 255 characters
- `adName`, string: Up to 255 characters
- `tracking`, object
  - `pixelId`, string
  - `urlTags`, array of object
    - `key`, string, required
    - `value`, string, required
  - `pozyTag`, boolean: Default `false`
- `goal`, string: One of `engagement`, `traffic`, `awareness`, `video_views`, `lead_generation`, `lead_conversion`, `conversions`, `app_promotion`, `catalog_sales`, `page_likes`, `page_visits`, `job_applicants`
- `smartTargeting`, object
  - `audience`, boolean
  - `interestsBehaviors`, boolean
- `optimizationGoal`, string
- `billingEvent`, string
- `buyingType`, string: One of `AUCTION`, `RESERVED`. Default `AUCTION`
- `rfPredictionId`, string
- `promotion`, object: Can be null
- `creativeFeatures`, map of string
- `catalogFormat`, string: One of `single_image`, `carousel_images_multi_items`, `carousel_images_single_item`, `carousel_slideshows`
- `multiAdvertiser`, string: One of `OPT_IN`, `OPT_OUT`
- `aiDisclosure`, string: One of `OPT_IN`, `OPT_OUT`
- `validateOnly`, boolean
- `budgetAmount`, number
- `budgetType`, string: One of `daily`, `lifetime`
- `status`, string: One of `ACTIVE`, `PAUSED`
- `campaignStatus`, string: One of `ACTIVE`, `PAUSED`
- `adSetStatus`, string: One of `ACTIVE`, `PAUSED`
- `adStatus`, string: One of `ACTIVE`, `PAUSED`
- `budgetLevel`, string: One of `adset`, `campaign`. Default `adset`
- `currency`, string: 3 to 3 characters
- `headline`, string
- `longHeadline`, string: Up to 90 characters
- `body`, string
- `description`, string: Up to 255 characters
- `bodies`, array of string: At least 1 item. Up to 5 items
- `headlines`, array of string: At least 1 item. Up to 5 items. Each item: up to 255 characters
- `descriptions`, array of string: At least 1 item. Up to 5 items. Each item: up to 255 characters
- `callToAction`, string: One of `BOOK_TRAVEL`, `CONTACT_US`, `DONATE`, `DONATE_NOW`, `DOWNLOAD`, `GET_DIRECTIONS`, `GO_LIVE`, `INTERESTED`, `LEARN_MORE`, `SEE_DETAILS`, `LIKE_PAGE`, `MESSAGE_PAGE`, `RAISE_MONEY`, `SAVE`, `SEND_TIP`, `SHOP_NOW`, `SIGN_UP`, `VIEW_INSTAGRAM_PROFILE`, `INSTAGRAM_MESSAGE`, `LOYALTY_LEARN_MORE`, `PURCHASE_GIFT_CARDS`, `PAY_TO_ACCESS`, `SEE_MORE`, `TRY_IN_CAMERA` and 100 more
- `linkUrl`, string (URL)
- `leadGenFormId`, string
- `imageUrl`, string (URL)
- `images`, object
  - `landscape`, string (URL)
  - `square`, string (URL)
- `video`, object
  - `url`, string (URL)
  - `id`, string
  - `thumbnailUrl`, string (URL)
- `creatives`, array of object: At least 1 item
  - `creativeFeatures`, map of string
  - `name`, string: Up to 255 characters
  - `headline`, string, required: Up to 255 characters
  - `body`, string, required
  - `description`, string: Up to 255 characters
  - `imageUrl`, string (URL)
  - `video`, object
    - `url`, string (URL), required
    - `thumbnailUrl`, string (URL)
  - `linkUrl`, string (URL), required
  - `callToAction`, string, required: One of `BOOK_TRAVEL`, `CONTACT_US`, `DONATE`, `DONATE_NOW`, `DOWNLOAD`, `GET_DIRECTIONS`, `GO_LIVE`, `INTERESTED`, `LEARN_MORE`, `SEE_DETAILS`, `LIKE_PAGE`, `MESSAGE_PAGE`, `RAISE_MONEY`, `SAVE`, `SEND_TIP`, `SHOP_NOW`, `SIGN_UP`, `VIEW_INSTAGRAM_PROFILE`, `INSTAGRAM_MESSAGE`, `LOYALTY_LEARN_MORE`, `PURCHASE_GIFT_CARDS`, `PAY_TO_ACCESS`, `SEE_MORE`, `TRY_IN_CAMERA` and 94 more
- `adSetId`, string
- `existingCampaignId`, string
- `phoneNumber`, string: Matches `^\+[1-9]\d{6,14}$`
- `existingCreativeId`, string
- `businessName`, string: Up to 25 characters
- `boardId`, string
- `organizationId`, string
- `targeting`, object
  - `userOs`, array of string: At least 1 item
  - `userDevice`, array of string: At least 1 item
  - `countries`, array of string
  - `regions`, array of string or object
    - one of: string
    - one of: Option 2
      - `key`, string, required
      - `name`, string
  - `cities`, array of string or object
    - one of: string
    - one of: Option 2
      - `key`, string, required
      - `name`, string
      - `radius`, number
      - `distanceUnit`, string: One of `mile`, `kilometer`
  - `zips`, array of object
    - `key`, string, required
    - `name`, string
  - `metros`, array of object
    - `key`, string, required
    - `name`, string
  - `countryGroups`, array of string: Each item: one of `africa`, `asia`, `europe`, `north_america`, `south_america`, `oceania`, `central_america`, `caribbean`, `eea`, `euro_area`, `nafta`, `mercosur`, `afta`, `apec`, `gcc`, `cisfta`, `emerging_markets`, `itunes_app_store`, `android_free_store`, `android_paid_store`
  - `customLocations`, array of object
    - `latitude`, number, required: -90 to 90
    - `longitude`, number, required: -180 to 180
    - `radius`, number, required
    - `distanceUnit`, string, required: One of `mile`, `kilometer`
    - `name`, string
    - `address`, string
  - `excludedLocations`, object
    - `countries`, array of string
    - `countryGroups`, array of string: Each item: one of `africa`, `asia`, `europe`, `north_america`, `south_america`, `oceania`, `central_america`, `caribbean`, `eea`, `euro_area`, `nafta`, `mercosur`, `afta`, `apec`, `gcc`, `cisfta`, `emerging_markets`, `itunes_app_store`, `android_free_store`, `android_paid_store`
    - `regions`, array of object
      - `key`, string, required
      - `name`, string
    - `cities`, array of object
      - `key`, string, required
      - `radius`, number
      - `distanceUnit`, string: One of `mile`, `kilometer`
    - `zips`, array of object
      - `key`, string, required
      - `name`, string
    - `places`, array of object
      - `key`, string, required
    - `neighborhoods`, array of object
      - `key`, string, required
    - `customLocations`, array of object
      - `latitude`, number, required: -90 to 90
      - `longitude`, number, required: -180 to 180
      - `radius`, number, required
      - `distanceUnit`, string, required: One of `mile`, `kilometer`
      - `name`, string
      - `address`, string
  - `ageMin`, integer: 13 to 100
  - `ageMax`, integer: 13 to 100
  - `gender`, string: One of `all`, `male`, `female`
  - `incomeTier`, string: One of `top_5`, `top_10`, `top_10_25`, `top_25_50`
  - `languages`, array of string
  - `interests`, array of object
    - `id`, string, required
    - `name`, string
  - `behaviors`, array of object
    - `id`, string, required
    - `name`, string
  - `workPositions`, array of object
    - `id`, string, required
    - `name`, string
  - `workEmployers`, array of object
    - `id`, string, required
    - `name`, string
  - `workIndustries`, array of object
    - `id`, string, required
    - `name`, string
  - `industries`, array of string
  - `companySizes`, array of string
  - `seniorities`, array of string
  - `jobFunctions`, array of string
  - `skills`, array of string
  - `audienceInclude`, array of string
  - `audienceExclude`, array of string
  - `communities`, array of string
  - `excludedCommunities`, array of string
  - `conversationKeywords`, array of string
  - `excludedConversationKeywords`, array of string
- `countries`, array of string
- `countryGroups`, array of string: Each item: one of `africa`, `asia`, `europe`, `north_america`, `south_america`, `oceania`, `central_america`, `caribbean`, `eea`, `euro_area`, `nafta`, `mercosur`, `afta`, `apec`, `gcc`, `cisfta`, `emerging_markets`, `itunes_app_store`, `android_free_store`, `android_paid_store`
- `cities`, array of string or object
  - one of: string
  - one of: Option 2
    - `key`, string, required
    - `radius`, number
    - `distance_unit`, string: One of `mile`, `kilometer`
- `regions`, array of string or object
  - one of: string
  - one of: Option 2
    - `key`, string, required
- `ageMin`, integer: 13 to 65
- `ageMax`, integer: 13 to 65
- `interests`, array of object
  - `id`, string, required
  - `name`, string, required
- `zips`, array of string or object
  - one of: string
  - one of: Option 2
    - `key`, string, required
    - `name`, string
- `metros`, array of string or object
  - one of: string
  - one of: Option 2
    - `key`, string, required
    - `name`, string
- `customLocations`, array of object
  - `latitude`, number, required: -90 to 90
  - `longitude`, number, required: -180 to 180
  - `radius`, number, required
  - `distanceUnit`, string, required: One of `mile`, `kilometer`
  - `name`, string
  - `address`, string
- `behaviors`, array of object
  - `id`, string, required
  - `name`, string
- `workPositions`, array of object
  - `id`, string, required
  - `name`, string
- `workEmployers`, array of object
  - `id`, string, required
  - `name`, string
- `workIndustries`, array of object
  - `id`, string, required
  - `name`, string
- `incomeTier`, string: One of `top_5`, `top_10`, `top_10_25`, `top_25_50`
- `languages`, array of string
- `placements`, object
  - `publisherPlatforms`, array of string: Each item: one of `facebook`, `instagram`, `threads`, `messenger`, `audience_network`, `whatsapp`
  - `facebookPositions`, array of string: Each item: one of `feed`, `right_hand_column`, `marketplace`, `story`, `search`, `instream_video`, `facebook_reels`, `facebook_reels_overlay`, `profile_feed`, `notification`
  - `instagramPositions`, array of string: Each item: one of `stream`, `story`, `explore`, `explore_home`, `reels`, `profile_feed`, `ig_search`, `profile_reels`
  - `messengerPositions`, array of string: Each item: one of `messenger_home`, `sponsored_messages`, `story`
  - `audienceNetworkPositions`, array of string: Each item: one of `classic`, `rewarded_video`
  - `threadsPositions`, array of string: Each item: one of `threads_stream`
  - `whatsappPositions`, array of string: Each item: one of `status`
  - `devicePlatforms`, array of string: Each item: one of `mobile`, `desktop`
- `savedTargetingId`, string
- `rawTargeting`, object
- `specialAdCategories`, array of string: Each item: one of `HOUSING`, `EMPLOYMENT`, `CREDIT`, `FINANCIAL_PRODUCTS_SERVICES`, `ISSUES_ELECTIONS_POLITICS`, `ONLINE_GAMBLING_AND_GAMING`
- `specialAdCategoryCountry`, array of string
- `regionalRegulatedCategories`, array of string
- `regionalRegulationIdentities`, map of string or integer
- `endDate`, string (date-time)
- `startDate`, string (date-time)
- `pageId`, string
- `instagramAccountId`, string
- `dynamicCreative`, object
  - `imageUrls`, array of string (URL): At least 1 item. Up to 10 items
  - `videoUrls`, array of string (URL): At least 1 item. Up to 10 items
  - `bodies`, array of string: Up to 5 items
  - `titles`, array of string: Up to 5 items
  - `descriptions`, array of string: Up to 5 items
  - `linkUrls`, array of string (URL)
  - `callToActionTypes`, array of string: Each item: one of `BOOK_TRAVEL`, `CONTACT_US`, `DONATE`, `DONATE_NOW`, `DOWNLOAD`, `GET_DIRECTIONS`, `GO_LIVE`, `INTERESTED`, `LEARN_MORE`, `SEE_DETAILS`, `LIKE_PAGE`, `MESSAGE_PAGE`, `RAISE_MONEY`, `SAVE`, `SEND_TIP`, `SHOP_NOW`, `SIGN_UP`, `VIEW_INSTAGRAM_PROFILE`, `INSTAGRAM_MESSAGE`, `LOYALTY_LEARN_MORE`, `PURCHASE_GIFT_CARDS`, `PAY_TO_ACCESS`, `SEE_MORE`, `TRY_IN_CAMERA` and 94 more
  - `adFormat`, string: One of `SINGLE_IMAGE`, `CAROUSEL_IMAGE`, `SINGLE_VIDEO`
- `carouselCards`, array of object: At least 2 items. Up to 10 items
  - `imageUrl`, string (URL), required
  - `linkUrl`, string (URL)
  - `headline`, string: Up to 255 characters
  - `description`, string: Up to 255 characters
  - `callToAction`, string
- `optimizeCardOrder`, boolean
- `defaultLocale`, string
- `translations`, array of object: At least 1 item. Up to 10 items
  - `locale`, string, required
  - `headline`, string, required: Up to 255 characters
  - `body`, string, required
  - `description`, string, required: Up to 255 characters
  - `linkUrl`, string (URL)
  - `imageUrl`, string (URL)
  - `videoUrl`, string (URL)
  - `thumbnailUrl`, string (URL)
- `placementAssets`, object
  - `defaultImageUrl`, string (URL)
  - `defaultVideoUrl`, string (URL)
  - `defaultThumbnailUrl`, string (URL)
  - `rules`, array of object, required: At least 1 item. Up to 10 items
    - `imageUrl`, string (URL)
    - `videoUrl`, string (URL)
    - `thumbnailUrl`, string (URL)
    - `headline`, string: 1 to 255 characters
    - `body`, string
    - `description`, string: 1 to 255 characters
    - `placements`, object, required
      - `publisherPlatforms`, array of string: Each item: one of `facebook`, `instagram`, `threads`, `messenger`, `audience_network`, `whatsapp`
      - `facebookPositions`, array of string: Each item: one of `feed`, `right_hand_column`, `marketplace`, `story`, `search`, `instream_video`, `facebook_reels`, `facebook_reels_overlay`, `profile_feed`, `notification`
      - `instagramPositions`, array of string: Each item: one of `stream`, `story`, `explore`, `explore_home`, `reels`, `profile_feed`, `ig_search`, `profile_reels`
      - `messengerPositions`, array of string: Each item: one of `messenger_home`, `sponsored_messages`, `story`
      - `audienceNetworkPositions`, array of string: Each item: one of `classic`, `rewarded_video`
      - `threadsPositions`, array of string: Each item: one of `threads_stream`
      - `whatsappPositions`, array of string: Each item: one of `status`
      - `devicePlatforms`, array of string: Each item: one of `mobile`, `desktop`
- `audienceId`, string
- `campaignType`, string: One of `display`, `search`, `pmax`, `demand_gen`. Default `display`
- `locationTargetingType`, object
- `assetGroup`, object
  - `name`, string: 1 to 128 characters
  - `finalUrl`, string (URL), required: Matches `^https?://`
  - `headlines`, array of string, required: At least 3 items. Up to 15 items. Each item: 1 to 30 characters
  - `longHeadline`, string, required: 1 to 90 characters
  - `descriptions`, array of string, required: At least 2 items. Up to 5 items. Each item: 1 to 90 characters
  - `businessName`, string, required: 1 to 25 characters
  - `images`, object, required
    - `landscape`, array of string (URL), required: At least 1 item. Up to 20 items. Each item: matches `^https?://`
    - `square`, array of string (URL), required: At least 1 item. Up to 20 items. Each item: matches `^https?://`
    - `logo`, array of string (URL), required: At least 1 item. Up to 5 items. Each item: matches `^https?://`
  - `youtubeVideoId`, string: Matches `^[A-Za-z0-9_-]{11}$`
- `demandGen`, object
  - `adGroupName`, string: Up to 255 characters
  - `finalUrl`, string (URL), required
  - `businessName`, string, required: Up to 25 characters
  - `headlines`, array of string, required: At least 1 item. Up to 5 items. Each item: up to 40 characters
  - `longHeadlines`, array of string: At least 1 item. Up to 5 items. Each item: up to 90 characters
  - `descriptions`, array of string, required: At least 1 item. Up to 5 items. Each item: up to 90 characters
  - `callToAction`, string: Up to 25 characters
  - `images`, object, required
    - `landscape`, array of string (URL): At least 1 item. Up to 20 items
    - `square`, array of string (URL): At least 1 item. Up to 20 items
    - `portrait`, array of string (URL): At least 1 item. Up to 20 items
    - `logo`, array of string (URL), required: At least 1 item. Up to 5 items
  - `youtubeVideoIds`, array of string: At least 1 item. Up to 5 items. Each item: matches `^[A-Za-z0-9_-]{11}$`
  - `carouselCards`, array of object: At least 2 items. Up to 10 items
    - `headline`, string, required: Up to 40 characters
    - `finalUrl`, string (URL)
    - `callToAction`, string: Up to 25 characters
    - `images`, object, required
      - `landscape`, string (URL)
      - `square`, string (URL)
      - `portrait`, string (URL)
  - `channels`, array of string: At least 1 item. Each item: one of `youtube_in_stream`, `youtube_in_feed`, `youtube_shorts`, `discover`, `gmail`, `display`
  - `audience`, object
    - `userLists`, array of string: At least 1 item. Up to 20 items
    - `userInterests`, array of string: At least 1 item. Up to 20 items
    - `customAudiences`, array of string: At least 1 item. Up to 20 items
    - `ageRanges`, array of object: At least 1 item. Up to 6 items
      - `min`, integer, required: One of `18`, `25`, `35`, `45`, `55`, `65`
      - `max`, integer: One of `24`, `34`, `44`, `54`, `64`
    - `genders`, array of string: At least 1 item. Up to 3 items. Each item: one of `male`, `female`, `undetermined`
  - `audienceId`, string
- `keywords`, array of string or object: Up to 1000 items
  - one of: string
  - one of: Option 2
    - `text`, string, required: 1 to 80 characters
    - `matchType`, string: One of `exact`, `phrase`, `broad`
- `negativeKeywords`, array of string or object: Up to 1000 items
  - one of: string
  - one of: Option 2
    - `text`, string, required: 1 to 80 characters
    - `matchType`, string: One of `exact`, `phrase`, `broad`
- `campaignNegativeKeywords`, array of string or object: Up to 1000 items
  - one of: string
  - one of: Option 2
    - `text`, string, required: 1 to 80 characters
    - `matchType`, string: One of `exact`, `phrase`, `broad`
- `additionalHeadlines`, array of string or object
  - one of: string
  - one of: Google Rsa Headline
    - `text`, string, required: 1 to 30 characters
    - `pinnedField`, string: One of `HEADLINE_1`, `HEADLINE_2`, `HEADLINE_3`
- `additionalDescriptions`, array of string or object
  - one of: string
  - one of: Google Rsa Description
    - `text`, string, required: 1 to 90 characters
    - `pinnedField`, string: One of `DESCRIPTION_1`, `DESCRIPTION_2`
- `sitelinks`, array of object: At least 2 items. Up to 20 items
  - `text`, string, required: 1 to 25 characters
  - `linkUrl`, string (URL), required
  - `description1`, string: 1 to 35 characters
  - `description2`, string: 1 to 35 characters
- `callouts`, array of string: At least 1 item. Up to 20 items. Each item: 1 to 25 characters
- `structuredSnippets`, array of object: At least 1 item. Up to 20 items
  - `header`, string, required: One of `Amenities`, `Brands`, `Courses`, `Degree programs`, `Destinations`, `Featured hotels`, `Insurance coverage`, `Models`, `Neighborhoods`, `Service catalog`, `Shows`, `Styles`, `Types`
  - `values`, array of string, required: At least 3 items. Up to 10 items. Each item: 1 to 25 characters
- `advantageAudience`, integer: One of `0`, `1`
- `attributionSpec`, array of object: At least 1 item. Up to 3 items
  - `eventType`, string, required: One of `CLICK_THROUGH`, `VIEW_THROUGH`, `ENGAGED_VIDEO_VIEW`
  - `windowDays`, integer, required: One of `1`, `7`, `28`
- `gender`, string: One of `all`, `male`, `female`. Default `all`
- `bidStrategy`, object
- `bidAmount`, number
- `roasAverageFloor`, number
- `portfolioBidStrategyId`, string: Matches `^\d+$`
- `targetImpressionShare`, object
  - `location`, string, required: One of `ANYWHERE_ON_PAGE`, `TOP_OF_PAGE`, `ABSOLUTE_TOP_OF_PAGE`
  - `percent`, number, required: At most 100
  - `maxCpc`, number, required
- `manualCpc`, object
  - `maxCpc`, number, required
- `networkSettings`, object
  - `searchPartners`, boolean
  - `displayNetwork`, boolean
- `valueRuleSetId`, string: Matches `^\d+$`
- `valueRulesApplied`, boolean
- `platformSpecificData`, object
  - one of: Linked In Ads settings
    - `costType`, string: One of `CPM`, `CPC`, `CPV`
    - `unitCost`, number
    - `optimizationTargetType`, string
    - `creativeSelection`, string: One of `OPTIMIZED`, `ROUND_ROBIN`
    - `audienceExpansionEnabled`, boolean
    - `offsiteDeliveryEnabled`, boolean
    - `connectedTelevisionOnly`, boolean
    - `carousel`, object
      - `cards`, array of object, required: At least 2 items. Up to 10 items
        - `imageUrl`, string (URL), required
        - `headline`, string
        - `landingUrl`, string (URL)
    - `document`, object
      - `url`, string (URL), required
      - `title`, string, required
    - `spotlight`, object
      - `headline`, string, required
      - `description`, string
      - `callToAction`, string, required
      - `landingUrl`, string (URL), required
      - `logoUrl`, string (URL)
      - `organizationName`, string
      - `showMemberProfilePhoto`, boolean
      - `backgroundImageUrl`, string (URL)
    - `follower`, object
      - `headline`, object, required
        - `preApproved`, string
        - `custom`, string
      - `description`, object, required
        - `preApproved`, string
        - `custom`, string
      - `callToAction`, string, required: One of `VISIT_ORGANIZATION_COMPANY_PAGE`, `VISIT_ORGANIZATION_LIFE_PAGE`, `VISIT_ORGANIZATION_JOBS_PAGE`, `VISIT_ORGANIZATION_CAREERS_PAGE`
      - `logoUrl`, string (URL)
      - `organizationName`, string
      - `showMemberProfilePhoto`, boolean
    - `jobs`, object
      - `headline`, object, required
        - `preApproved`, string
        - `custom`, string
      - `buttonLabel`, object, required
        - `preApproved`, string
        - `custom`, string
      - `logoUrl`, string (URL)
      - `organizationName`, string
      - `showMemberProfilePhoto`, boolean
    - `textAd`, object
      - `headline`, string, required: Up to 25 characters
      - `description`, string, required: Up to 75 characters
      - `landingUrl`, string (URL), required
      - `imageUrl`, string (URL)
    - `conversation`, object
      - `subject`, string, required
      - `sender`, string
      - `body`, string
      - `footer`, string
      - `headline`, string
      - `firstMessageId`, string, required
      - `messages`, array of object, required: At least 1 item. Up to 25 items
        - `id`, string, required
        - `text`, string, required: Up to 500 characters
        - `buttons`, array of object: At least 1 item. Up to 5 items
          - `text`, string, required: Up to 35 characters
          - `nextMessageId`, string
          - `url`, string (URL)
    - `event`, object
      - `urn`, string, required: Matches `^urn:li:event:\d+$`
    - `thoughtLeader`, object
      - `postUrn`, string, required: Matches `^urn:li:(share|ugcPost):\d+$`
  - one of: Meta Ads settings
    - `bidStrategy`, string: One of `LOWEST_COST_WITHOUT_CAP`, `LOWEST_COST_WITH_BID_CAP`, `COST_CAP`, `LOWEST_COST_WITH_MIN_ROAS`
    - `bidAmount`, number
    - `roasAverageFloor`, number
    - `dailyMinSpendTarget`, number
    - `lifetimeMinSpendTarget`, number
    - `customerLifecycle`, object
      - `strategy`, string, required: One of `all_customers`, `new_customers`, `new_customers_excluding_engaged`
      - `existingCustomerAudienceIds`, array of string
      - `engagedAudienceIds`, array of string
    - `adSchedule`, object: At least 1 item
      - `dayOfWeek`, string, required: One of `MONDAY`, `TUESDAY`, `WEDNESDAY`, `THURSDAY`, `FRIDAY`, `SATURDAY`, `SUNDAY`
      - `startHour`, integer, required: 0 to 23
      - `endHour`, integer, required: 1 to 24
      - `timezoneType`, string: One of `USER`, `ADVERTISER`. Default `USER`
- `dsaBeneficiary`, string: Up to 100 characters
- `dsaPayor`, string: Up to 100 characters
- `brandIdentity`, object
  - `displayName`, string, required: 1 to 40 characters
  - `imageUrl`, string (URL), required
- `identityId`, string
- `identityType`, string: One of `TT_USER`, `CUSTOMIZED_USER`, `BC_AUTH_TT`
- `smartPlus`, boolean
- `userOs`, array of string: At least 1 item
- `userDevice`, array of string: At least 1 item
- `isSkadnetworkAttribution`, boolean
- `campaignAttribution`, string: One of `AEM`, `SKADNETWORK`
- `promotedObject`, object
  - `pixelId`, string
  - `customEventType`, string
  - `customEventStr`, string
  - `pageId`, string
  - `applicationId`, string
  - `objectStoreUrl`, string (URL)
  - `customConversionId`, string
  - `productCatalogId`, string
  - `productSetId`, string
  - `offlineConversionDataSetId`, string
  - `whatsappPhoneNumber`, string

## Example request

```bash
curl -X POST "https://api.pozy.ai/v1/ads/create" \
  -H "Authorization: Bearer $POZY_API_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{
  "accountId": "696e0b682d0a31188e7a2ba9",
  "adAccountId": "666219aad7bab67ace411e4f"
}'
```

```ts
import { randomUUID } from "node:crypto";

const res = await fetch("https://api.pozy.ai/v1/ads/create", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.POZY_API_KEY}`,
    "Idempotency-Key": randomUUID(),
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    accountId: "696e0b682d0a31188e7a2ba9",
    adAccountId: "666219aad7bab67ace411e4f"
  }),
});
const data = await res.json();
if (!res.ok) throw new Error(data?.error ?? `Request failed with status ${res.status}`);
console.log(data);
```

```python
import os
import requests

resp = requests.post(
    "https://api.pozy.ai/v1/ads/create",
    headers={"Authorization": f"Bearer {os.environ['POZY_API_KEY']}"},
    json={
        "accountId": "696e0b682d0a31188e7a2ba9",
        "adAccountId": "666219aad7bab67ace411e4f",
    },
    timeout=30,
)
resp.raise_for_status()
print(resp.json())
```

## Response 200

- `validateOnly`, boolean
- `appliedDefaults`, object
  - `name`, string
  - `goal`, string
  - `budgetType`, string: One of `daily`
  - `endDate`, string
  - `countries`, array of string
- `results`, array of object
  - `node`, string: One of `campaign`, `adSet`, `creative`, `ad`, `performanceMaxCampaign`
  - `status`, string: One of `validated`, `skipped`, `unverified`
  - `reason`, string
- `message`, string

```json
{
  "validateOnly": true,
  "appliedDefaults": {
    "name": "Acme",
    "goal": "string",
    "budgetType": "daily",
    "endDate": "string",
    "countries": [
      "string"
    ]
  },
  "results": [
    {
      "node": "campaign",
      "status": "validated",
      "reason": "string"
    }
  ],
  "message": "Hello from Pozy"
}
```
