Ads · Ad Campaigns

Create a standalone ad group

Creates a standalone ad group. Works with Google Ads and Reddit Ads.

POSThttps://api.pozy.ai/v1/ads/ad-sets
Google Workspace and RedditcreateAdSet

Guides: Google Ads, Idempotency and safe retries

Request

Send your API key as Authorization: Bearer pz_live_.... Read-only keys cannot call it. Keys with the ads resource group disabled get 403 resource_group_disabled. Authentication

Headers

NameTypeNotes
Idempotency-KeystringUp to 255 charactersRetries with the same key return the original result. See Idempotency

Request body

application/json, required

  • accountIdstringrequired
  • platformstringrequired

    One of facebook, instagram, tiktok, linkedin, pinterest, google, twitter, openai, reddit.

  • campaignIdstringrequired
  • namestringrequired

    1 to 255 characters.

  • statusstring

    One of ACTIVE, PAUSED. Default PAUSED.

  • maxCpcnumber
  • adAccountIdstring
  • customerIdstringdeprecated
  • budgetAmountnumber
  • budgetTypestring

    One of daily, lifetime.

  • startDatestring
  • endDatestring
  • targetingobject
    31 child fields
    • userOsarray of string

      At least 1 item.

    • userDevicearray of string

      At least 1 item.

    • countriesarray of string
    • regionsarray of string or object

      One of:

      string
      Option 2 (2 fields)
      • keystringrequired
      • namestring
    • citiesarray of string or object

      One of:

      string
      Option 2 (4 fields)
      • keystringrequired
      • namestring
      • radiusnumber
      • distanceUnitstring

        One of mile, kilometer.

    • zipsarray of object
      2 child fields
      • keystringrequired
      • namestring
    • metrosarray of object
      2 child fields
      • keystringrequired
      • namestring
    • countryGroupsarray 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.

    • customLocationsarray of object
      6 child fields
      • latitudenumberrequired

        -90 to 90.

      • longitudenumberrequired

        -180 to 180.

      • radiusnumberrequired
      • distanceUnitstringrequired

        One of mile, kilometer.

      • namestring
      • addressstring
    • excludedLocationsobject
      8 child fields
      • countriesarray of string
      • countryGroupsarray 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.

      • regionsarray of object
        2 child fields
        • keystringrequired
        • namestring
      • citiesarray of object
        3 child fields
        • keystringrequired
        • radiusnumber
        • distanceUnitstring

          One of mile, kilometer.

      • zipsarray of object
        2 child fields
        • keystringrequired
        • namestring
      • placesarray of object
        1 child field
        • keystringrequired
      • neighborhoodsarray of object
        1 child field
        • keystringrequired
      • customLocationsarray of object
        6 child fields
        • latitudenumberrequired

          -90 to 90.

        • longitudenumberrequired

          -180 to 180.

        • radiusnumberrequired
        • distanceUnitstringrequired

          One of mile, kilometer.

        • namestring
        • addressstring
    • ageMininteger

      13 to 100.

    • ageMaxinteger

      13 to 100.

    • genderstring

      One of all, male, female.

    • incomeTierstring

      One of top_5, top_10, top_10_25, top_25_50.

    • languagesarray of string
    • interestsarray of object
      2 child fields
      • idstringrequired
      • namestring
    • behaviorsarray of object
      2 child fields
      • idstringrequired
      • namestring
    • workPositionsarray of object
      2 child fields
      • idstringrequired
      • namestring
    • workEmployersarray of object
      2 child fields
      • idstringrequired
      • namestring
    • workIndustriesarray of object
      2 child fields
      • idstringrequired
      • namestring
    • industriesarray of string
    • companySizesarray of string
    • senioritiesarray of string
    • jobFunctionsarray of string
    • skillsarray of string
    • audienceIncludearray of string
    • audienceExcludearray of string
    • communitiesarray of string
    • excludedCommunitiesarray of string
    • conversationKeywordsarray of string
    • excludedConversationKeywordsarray of string
  • promotedObjectobject
    • pixelIdstring
    • customEventTypestring
  • optimizationGoalstring
  • bidStrategystring

    One of LOWEST_COST_WITHOUT_CAP, LOWEST_COST_WITH_BID_CAP, COST_CAP.

  • bidAmountnumber

Example

curl -X POST "https://api.pozy.ai/v1/ads/ad-sets" \
  -H "Authorization: Bearer $POZY_API_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{
  "accountId": "696e0b682d0a31188e7a2ba9",
  "platform": "facebook",
  "campaignId": "65a3737dd8b11ea61f199e6e",
  "name": "Acme"
}'

Response

201 on success

  • adSetIdstring
  • campaignIdstring
201 response
{
  "adSetId": "60484b408d44e7c2492bfec5",
  "campaignId": "65a3737dd8b11ea61f199e6e"
}

Errors

Errors use one shape: { error, type, code, param?, details? }. The ones you are most likely to see here:

400invalid_request_errorA parameter or body field is missing or invalid. param names it.
401authentication_errorThe API key is missing, revoked or expired.
403permission_errorThe key is read-only, scoped to other profiles, or has this resource group disabled.
429rate_limit_errorToo many requests this minute. Wait for Retry-After seconds.

Every code is listed in Errors.

More in Ad Campaigns

GETList adsGETList Google Ads recommendationsPOSTApply Google Ads recommendationsPOSTDismiss Google Ads recommendationsGETList portfolio bid strategiesPOSTCreate portfolio bid strategyPATCHUpdate portfolio bid strategyGETList shared budgetsPOSTCreate a shared budgetGETList Search keywordsPOSTAdd Search ad-group keywordsPATCHPause or enable a Search keywordDELRemove a Search keywordGETList campaignsPOSTCreate a standalone campaignPUTPause or resume a campaignGETRead a campaign's ad schedule (dayparting)PUTReplace a campaign's ad schedule (dayparting)GETRead a campaign's current biddingGETGet live campaign detailsPUTUpdate a campaignDELDelete a campaignGETList campaign-level negative keywordsPUTReplace campaign-level negative keywordsPOSTPause or resume many campaignsPOSTDuplicate a campaignGETRead a Google campaign's device, location, excluded location, and language targetingPUTEdit a Google campaign's device, location, excluded location, or language targetingGETList ad setsPOSTDuplicate an ad setPOSTDuplicate an adGETGet live ad-set detailsPUTUpdate an ad setDELDelete an ad setGETRead a Reddit ad group's targeting and schedulePUTPause or resume a single ad setGETGet campaign treeGETGet daily account metricsGETGet ad detailsPUTUpdate adDELCancel an adPUTPause or resume a single adGETList campaign assetsPOSTAttach campaign assetsPUTUpdate campaign assetsDELRemove campaign assetsGETList ad-group assetsPOSTAttach ad-group assetsPUTUpdate ad-group assetsDELRemove ad-group assetsGETRead the platform's review verdict for an adGETReview status of each creative in a TikTok Smart+ adGETList ads that need attentionPOSTDismiss an ads alertGETReview status of every TikTok Smart+ ad of an advertiserGETList campaign negative listsPUTReplace campaign negative listsPOSTBoost post as adGETList Performance Max asset groupsPOSTCreate a Performance Max asset groupGETGet a Performance Max asset groupPATCHUpdate a Performance Max asset groupDELRemove a Performance Max asset groupPOSTLink or unlink asset group assetsPUTReplace an asset group's listing-group treePOSTCreate standalone adGETGet campaign conversion goalsPATCHUpdate campaign conversion goals