openapi: 3.2.0 info: title: Ads Manager Campaigns API description: Ads Manager API version: 1.0.0 servers: - url: https://api-public.groundtruth.com description: Production tags: - name: Campaigns paths: /campaigns: get: tags: - Campaigns summary: Get Campaigns description: Gets all campaigns in an account operationId: get_campaigns security: - api-key: [] - user-id: [] - session: [] parameters: - name: limit in: query required: false schema: type: integer maximum: 100 exclusiveMinimum: 1 description: Number of campaigns to limit response to default: 10 title: Limit description: Number of campaigns to limit response to - name: page_num in: query required: false schema: type: integer minimum: 1 description: Page number to retrieve. Starts at 1. default: 1 title: Page Num description: Page number to retrieve. Starts at 1. - name: sort_order in: query required: false schema: $ref: '#/components/schemas/SortOrder' description: Sorts campaigns by name default: asc description: Sorts campaigns by name - name: updated_since in: query required: false schema: anyOf: - type: integer - type: 'null' description: Limits results to campaigns updated since a unix timestamp title: Updated Since description: Limits results to campaigns updated since a unix timestamp - name: tenant_id in: query required: true schema: type: integer title: Tenant Id - name: account_id in: query required: true schema: type: integer title: Account Id responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/CampaignsModel' '400': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseModel' description: Bad Request '401': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseModel' description: Unauthorized '403': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseModel' description: Forbidden '404': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseModel' description: Not Found '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseModel' description: Internal Server Error post: tags: - Campaigns summary: Create Campaign description: Creates a campaign operationId: create_campaign security: - api-key: [] - user-id: [] - session: [] parameters: - name: tenant_id in: query required: true schema: type: integer title: Tenant Id - name: account_id in: query required: true schema: type: integer title: Account Id requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CreateCampaignModel' responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/CampaignModel' '400': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseModel' description: Bad Request '401': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseModel' description: Unauthorized '403': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseModel' description: Forbidden '404': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseModel' description: Not Found '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseModel' description: Internal Server Error /campaigns/with_adgroups: post: tags: - Campaigns summary: Create Campaign And Adgroups description: Creates a campaign and ad groups together operationId: create_campaign_and_adgroups security: - api-key: [] - user-id: [] - session: [] parameters: - name: tenant_id in: query required: true schema: type: integer title: Tenant Id - name: account_id in: query required: true schema: type: integer title: Account Id requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CreateCampaignAndAdgroupsModel' responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/CampaignAndAdgroupsModel' '400': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseModel' description: Bad Request '401': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseModel' description: Unauthorized '403': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseModel' description: Forbidden '404': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseModel' description: Not Found '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseModel' description: Internal Server Error /campaigns/dashboard: get: tags: - Campaigns summary: Get Campaigns Dashboard description: Gets campaigns in a tenant operationId: get_campaigns_dashboard security: - api-key: [] - user-id: [] - session: [] parameters: - name: limit in: query required: false schema: type: integer maximum: 100 exclusiveMinimum: 1 description: Number of campaigns to limit response to default: 10 title: Limit description: Number of campaigns to limit response to - name: page_num in: query required: false schema: type: integer minimum: 1 description: Page number to retrieve. Starts at 1. default: 1 title: Page Num description: Page number to retrieve. Starts at 1. - name: sort_by in: query required: false schema: $ref: '#/components/schemas/CampaignDashboardSortField' description: Field to sort campaigns by (non-reporting columns only) default: name description: Field to sort campaigns by (non-reporting columns only) - name: sort_order in: query required: false schema: $ref: '#/components/schemas/SortOrder' description: Sort order default: asc description: Sort order - name: start_date in: query required: false schema: anyOf: - type: string format: date - type: 'null' description: Include campaigns that overlap this range start (end_date >= start_date or open-ended). Also used as reporting metrics start date (YYYY-MM-DD). title: Start Date description: Include campaigns that overlap this range start (end_date >= start_date or open-ended). Also used as reporting metrics start date (YYYY-MM-DD). - name: end_date in: query required: false schema: anyOf: - type: string format: date - type: 'null' description: Include campaigns that overlap this range end (start_date <= end_date). Also used as reporting metrics end date (YYYY-MM-DD). title: End Date description: Include campaigns that overlap this range end (start_date <= end_date). Also used as reporting metrics end date (YYYY-MM-DD). - name: status in: query required: false schema: anyOf: - type: array items: $ref: '#/components/schemas/CampaignDashboardStatus' - type: 'null' description: Filter by campaign statuses title: Status description: Filter by campaign statuses - name: account_ids in: query required: false schema: anyOf: - type: array items: type: integer - type: 'null' description: Filter by account ID(s) title: Account Ids description: Filter by account ID(s) - name: organization_ids in: query required: false schema: anyOf: - type: array items: type: integer - type: 'null' description: Filter by organization ID(s) title: Organization Ids description: Filter by organization ID(s) - name: objectives in: query required: false schema: anyOf: - type: array items: $ref: '#/components/schemas/Objective' - type: 'null' description: Filter by ad group objectives. Returns campaigns with at least one matching ad group. title: Objectives description: Filter by ad group objectives. Returns campaigns with at least one matching ad group. - name: search in: query required: false schema: anyOf: - type: string - type: 'null' description: Search by campaign name or ID title: Search description: Search by campaign name or ID - name: tenant_id in: query required: true schema: type: integer title: Tenant Id responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/CampaignsDashboardModel' '400': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseModel' description: Bad Request '401': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseModel' description: Unauthorized '403': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseModel' description: Forbidden '404': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseModel' description: Not Found '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseModel' description: Internal Server Error /campaigns/dashboard/export: post: tags: - Campaigns summary: Export Campaigns Dashboard description: Exports campaigns in a tenant as an Excel file operationId: export_campaigns_dashboard security: - api-key: [] - user-id: [] - session: [] parameters: - name: tenant_id in: query required: true schema: type: integer title: Tenant Id requestBody: content: application/json: schema: $ref: '#/components/schemas/ExportCampaignsDashboardRequestModel' responses: '200': description: Successful Response content: application/json: schema: {} '400': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseModel' description: Bad Request '401': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseModel' description: Unauthorized '403': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseModel' description: Forbidden '404': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseModel' description: Not Found '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseModel' description: Internal Server Error /campaigns/{campaign_id}: get: tags: - Campaigns summary: Get Campaign description: Gets a campaign operationId: get_campaign security: - api-key: [] - user-id: [] - session: [] parameters: - name: campaign_id in: path required: true schema: type: integer title: Campaign Id - name: tenant_id in: query required: true schema: type: integer title: Tenant Id responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/CampaignModel' '400': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseModel' description: Bad Request '401': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseModel' description: Unauthorized '403': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseModel' description: Forbidden '404': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseModel' description: Not Found '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseModel' description: Internal Server Error put: tags: - Campaigns summary: Update Campaign description: Updates a campaign operationId: update_campaign security: - api-key: [] - user-id: [] - session: [] parameters: - name: campaign_id in: path required: true schema: type: integer title: Campaign Id - name: tenant_id in: query required: true schema: type: integer title: Tenant Id requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/UpdateCampaignModel' responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/CampaignModel' '400': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseModel' description: Bad Request '401': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseModel' description: Unauthorized '403': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseModel' description: Forbidden '404': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseModel' description: Not Found '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseModel' description: Internal Server Error delete: tags: - Campaigns summary: Delete Campaign description: Deletes a campaign operationId: delete_campaign security: - api-key: [] - user-id: [] - session: [] parameters: - name: campaign_id in: path required: true schema: type: integer title: Campaign Id - name: tenant_id in: query required: true schema: type: integer title: Tenant Id responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/SuccessResponseModel' '400': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseModel' description: Bad Request '401': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseModel' description: Unauthorized '403': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseModel' description: Forbidden '404': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseModel' description: Not Found '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseModel' description: Internal Server Error /campaigns/{campaign_id}/ad_packages: post: tags: - Campaigns summary: Create Ad Package description: Creates an ad package operationId: create_ad_package security: - api-key: [] - user-id: [] - session: [] parameters: - name: campaign_id in: path required: true schema: type: integer title: Campaign Id - name: tenant_id in: query required: true schema: type: integer title: Tenant Id requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CreateAdPackageModel' responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/CreatedAdPackageModel' '400': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseModel' description: Bad Request '401': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseModel' description: Unauthorized '403': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseModel' description: Forbidden '404': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseModel' description: Not Found '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponseModel' description: Internal Server Error components: schemas: BudgetModel-Input: properties: start_date: type: string format: date title: Start Date end_date: anyOf: - type: string format: date - type: 'null' title: End Date budget: anyOf: - type: number minimum: 0.0 - type: string pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$ title: Budget description: If budget is at the campaign level, this will be 0 type: object required: - start_date - end_date - budget title: BudgetModel CreateUpdateCTVPremiumCategoryModel: properties: id: type: integer title: Id type: object required: - id title: CreateUpdateCTVPremiumCategoryModel BudgetLevel: oneOf: - const: campaign title: CAMPAIGN - const: adgroup title: ADGROUP type: string enum: - campaign - adgroup title: BudgetLevel x-enum-varnames: - CAMPAIGN - ADGROUP CreateCampaignAndAdgroupsModel: properties: campaign: $ref: '#/components/schemas/CreateCampaignModel' adgroups: items: $ref: '#/components/schemas/CreateAdgroupModel' type: array title: Adgroups type: object required: - campaign title: CreateCampaignAndAdgroupsModel CreateUpdateAudioStreamingGenreModel: properties: id: type: integer title: Id type: object required: - id title: CreateUpdateAudioStreamingGenreModel LookalikeAudienceScale: oneOf: - const: 1 title: SCALE_2X - const: 3 title: SCALE_4X - const: 5 title: SCALE_6X - const: 9 title: SCALE_10X type: integer enum: - 1 - 3 - 5 - 9 title: LookalikeAudienceScale x-enum-varnames: - SCALE_2X - SCALE_4X - SCALE_6X - SCALE_10X CampaignBudgetType: oneOf: - const: 0 title: LIFETIME - const: 3 title: DAILY type: integer enum: - 0 - 3 title: CampaignBudgetType x-enum-varnames: - LIFETIME - DAILY NeighborhoodModel: properties: id: type: string title: Id name: type: string title: Name type: $ref: '#/components/schemas/NeighborhoodTargetType' sensitivity: anyOf: - $ref: '#/components/schemas/Sensitivity' - type: 'null' location_group_metadata: anyOf: - $ref: '#/components/schemas/app__api__models__LocationGroupMetadata' - type: 'null' type: object required: - id - name - type title: NeighborhoodModel DriveToLocationType: oneOf: - const: brand title: BRAND - const: location_group title: LOCATION_GROUP type: string enum: - brand - location_group title: DriveToLocationType x-enum-varnames: - BRAND - LOCATION_GROUP BillingSource: oneOf: - const: 1 title: XAD - const: 2 title: DART - const: 3 title: AARKI - const: 4 title: BEINTO - const: 5 title: BONZAI - const: 6 title: BRIDGETRACK - const: 7 title: CELTRA - const: 8 title: EYERETURN - const: 9 title: FLASHTALKING - const: 10 title: JIVOX - const: 11 title: KATANA - const: 12 title: LIN_MEDIA - const: 13 title: MEDIALETS - const: 14 title: MEDIAMIND_SIZMEK - const: 15 title: MIXPO - const: 16 title: PHLUANT - const: 17 title: POINTROLL - const: 18 title: SIMPLYTICS - const: 19 title: ATLAS - const: 20 title: MEDIAPLEX - const: 21 title: S4M_NGINX - const: 22 title: TRUEFFECTS - const: 24 title: INNOVID - const: 25 title: VINDICO - const: 26 title: ADFORM - const: 31 title: ADGEAR - const: 32 title: MIAOZHEN - const: 36 title: IQMOBILE - const: 41 title: ADOBE_ANALYTICS type: integer enum: - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 - 13 - 14 - 15 - 16 - 17 - 18 - 19 - 20 - 21 - 22 - 24 - 25 - 26 - 31 - 32 - 36 - 41 title: BillingSource x-enum-varnames: - XAD - DART - AARKI - BEINTO - BONZAI - BRIDGETRACK - CELTRA - EYERETURN - FLASHTALKING - JIVOX - KATANA - LIN_MEDIA - MEDIALETS - MEDIAMIND_SIZMEK - MIXPO - PHLUANT - POINTROLL - SIMPLYTICS - ATLAS - MEDIAPLEX - S4M_NGINX - TRUEFFECTS - INNOVID - VINDICO - ADFORM - ADGEAR - MIAOZHEN - IQMOBILE - ADOBE_ANALYTICS AgeRange: oneOf: - const: 18-24 title: _18_24 - const: 25-34 title: _25_34 - const: 35-44 title: _35_44 - const: 45-54 title: _45_54 - const: 55-64 title: _55_64 - const: 65-999 title: _65_UP - const: unknown title: UNKNOWN type: string enum: - 18-24 - 25-34 - 35-44 - 45-54 - 55-64 - 65-999 - unknown title: AgeRange x-enum-varnames: - _18_24 - _25_34 - _35_44 - _45_54 - _55_64 - _65_UP - UNKNOWN CampaignDashboardSortField: oneOf: - const: name title: NAME - const: id title: ID - const: account_id title: ACCOUNT_ID - const: account_name title: ACCOUNT_NAME - const: organization_id title: ORGANIZATION_ID - const: organization_name title: ORGANIZATION_NAME - const: status title: STATUS - const: days_remaining title: DAYS_REMAINING - const: start_date title: START_DATE - const: end_date title: END_DATE - const: salesforce_number title: SALESFORCE_NUMBER - const: budget title: BUDGET - const: pacing title: PACING type: string enum: - name - id - account_id - account_name - organization_id - organization_name - status - days_remaining - start_date - end_date - salesforce_number - budget - pacing title: CampaignDashboardSortField x-enum-varnames: - NAME - ID - ACCOUNT_ID - ACCOUNT_NAME - ORGANIZATION_ID - ORGANIZATION_NAME - STATUS - DAYS_REMAINING - START_DATE - END_DATE - SALESFORCE_NUMBER - BUDGET - PACING CreateUpdateDriveToLocationModel: properties: id: type: string title: Id type: $ref: '#/components/schemas/DriveToLocationType' type: object required: - id - type title: CreateUpdateDriveToLocationModel app__api__routes__adgroups__models__CTVPremiumCategoryModel: properties: id: type: integer title: Id name: type: string title: Name type: object required: - id - name title: CTVPremiumCategoryModel ProximityMode: oneOf: - const: in_store title: IN_STORE - const: on_lot title: ON_LOT - const: retail_block title: RETAIL_BLOCK - const: radial title: RADIAL type: string enum: - in_store - on_lot - retail_block - radial title: ProximityMode x-enum-varnames: - IN_STORE - ON_LOT - RETAIL_BLOCK - RADIAL NeighborhoodType: oneOf: - const: business title: BUSINESS - const: residential title: RESIDENTIAL type: string enum: - business - residential title: NeighborhoodType x-enum-varnames: - BUSINESS - RESIDENTIAL LocationGroupType: oneOf: - const: 0 title: BUSINESS - const: 1 title: RESIDENTIAL type: integer enum: - 0 - 1 title: LocationGroupType x-enum-varnames: - BUSINESS - RESIDENTIAL CreateUpdateAudioPodcastTopicModel: properties: id: type: integer title: Id type: object required: - id title: CreateUpdateAudioPodcastTopicModel app__api__routes__adgroups__models__PublisherCategoryModel: properties: id: type: integer title: Id name: type: string title: Name type: object required: - id - name title: PublisherCategoryModel CreateUpdateTrackingPixelModel: properties: id: type: integer title: Id type: object required: - id title: CreateUpdateTrackingPixelModel PacingMode: oneOf: - const: 0 title: DEFAULT - const: 1 title: ACCELERATED - const: 2 title: ASAP type: integer enum: - 0 - 1 - 2 title: PacingMode x-enum-varnames: - DEFAULT - ACCELERATED - ASAP CreateUpdateAdPackageModel: properties: id: type: integer title: Id type: object required: - id title: CreateUpdateAdPackageModel CampaignAndAdgroupsModel: properties: campaign: $ref: '#/components/schemas/CampaignModel' adgroups: items: $ref: '#/components/schemas/AdgroupModel' type: array title: Adgroups type: object required: - campaign - adgroups title: CampaignAndAdgroupsModel CreateUpdateOnPremiseLocationModel: properties: id: type: string title: Id type: $ref: '#/components/schemas/OnPremiseLocationType' proximity: anyOf: - $ref: '#/components/schemas/ProximityMode' - type: 'null' radius: anyOf: - type: number - type: 'null' title: Radius type: object required: - id - type title: CreateUpdateOnPremiseLocationModel CreateCampaignModel: properties: name: type: string maxLength: 256 minLength: 1 title: Name budget: anyOf: - type: number exclusiveMaximum: 1000000.0 exclusiveMinimum: 0.0 - type: string pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$ - type: 'null' title: Budget budget_padding: anyOf: - type: number exclusiveMaximum: 100000000.0 minimum: 0.0 - type: string pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$ - type: 'null' title: Budget Padding budget_level: $ref: '#/components/schemas/BudgetLevel' budget_type: $ref: '#/components/schemas/CampaignBudgetType' billing_source: $ref: '#/components/schemas/BillingSource' default: 1 is_auto_reconciliation_enabled: type: boolean title: Is Auto Reconciliation Enabled default: false account_billing_source_id: anyOf: - type: integer - type: 'null' title: Account Billing Source Id impression_frequency_cap: anyOf: - type: integer exclusiveMaximum: 128.0 exclusiveMinimum: 0.0 - type: 'null' title: Impression Frequency Cap impression_frequency_cap_hours: anyOf: - type: integer exclusiveMaximum: 32768.0 exclusiveMinimum: 0.0 - type: 'null' title: Impression Frequency Cap Hours client_io_name: anyOf: - type: string maxLength: 500 minLength: 1 - type: 'null' title: Client Io Name client_io_number: anyOf: - type: string maxLength: 128 minLength: 1 - type: 'null' title: Client Io Number salesforce_number: anyOf: - type: string maxLength: 16 minLength: 1 - type: 'null' title: Salesforce Number is_cbd_enabled: type: boolean title: Is Cbd Enabled default: false bid_type: $ref: '#/components/schemas/app__constants__BidType' default: CPM is_political_inventory_enabled: type: boolean title: Is Political Inventory Enabled default: false iab_content_category: anyOf: - type: string maxLength: 10 minLength: 1 - type: 'null' title: Iab Content Category account_executives: items: $ref: '#/components/schemas/CreateUpdateCampaignUserModel' type: array title: Account Executives account_managers: items: $ref: '#/components/schemas/CreateUpdateCampaignUserModel' type: array title: Account Managers campaign_managers: items: $ref: '#/components/schemas/CreateUpdateCampaignUserModel' type: array title: Campaign Managers publisher_domains: items: $ref: '#/components/schemas/PublisherDomainModel' type: array title: Publisher Domains app_bundles: items: $ref: '#/components/schemas/AppBundleModel' type: array title: App Bundles enable_brand_safe_publishers: type: boolean title: Enable Brand Safe Publishers default: true is_quickstart: type: boolean title: Is Quickstart default: false type: object required: - name - budget_level - budget_type title: CreateCampaignModel Community: oneOf: - const: aa title: AFRICAN_AMERICAN - const: as title: ASIAN_AMERICAN - const: hl title: HISPANIC_LATINO type: string enum: - aa - as - hl title: Community x-enum-varnames: - AFRICAN_AMERICAN - ASIAN_AMERICAN - HISPANIC_LATINO CampaignDashboardStatus: oneOf: - const: active title: ACTIVE - const: paused title: PAUSED - const: pending title: PENDING - const: expired title: EXPIRED type: string enum: - active - paused - pending - expired title: CampaignDashboardStatus x-enum-varnames: - ACTIVE - PAUSED - PENDING - EXPIRED CreateUpdatePublisherCategoryModel: properties: id: type: integer title: Id type: object required: - id title: CreateUpdatePublisherCategoryModel AdPackageModel: properties: id: type: integer title: Id name: type: string title: Name type: object required: - id - name title: AdPackageModel BillabilityType: oneOf: - const: 0 title: BILLABLE - const: 1 title: ADDED_VALUE - const: 2 title: MAKE_GOOD - const: 3 title: SURVEY - const: 4 title: TEST type: integer enum: - 0 - 1 - 2 - 3 - 4 title: BillabilityType x-enum-varnames: - BILLABLE - ADDED_VALUE - MAKE_GOOD - SURVEY - TEST PublisherDomainModel: properties: domain: type: string minLength: 1 title: Domain exclude: type: boolean title: Exclude type: object required: - domain - exclude title: PublisherDomainModel CampaignUserModel: properties: id: type: integer title: Id email: type: string title: Email name: type: string title: Name type: object required: - id - email - name title: CampaignUserModel IncomeRange: oneOf: - const: '-50' title: _50_UNDER - const: 50-100 title: _50_100 - const: 100-150 title: _100_150 - const: 150-200 title: _150_200 - const: 200- title: _200_UP type: string enum: - '-50' - 50-100 - 100-150 - 150-200 - 200- title: IncomeRange x-enum-varnames: - _50_UNDER - _50_100 - _100_150 - _150_200 - _200_UP UpdateCampaignModel: properties: name: type: string maxLength: 256 minLength: 1 title: Name budget: anyOf: - type: number exclusiveMaximum: 1000000.0 exclusiveMinimum: 0.0 - type: string pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$ - type: 'null' title: Budget budget_padding: anyOf: - type: number exclusiveMaximum: 100000000.0 - type: string pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$ - type: 'null' title: Budget Padding budget_level: $ref: '#/components/schemas/BudgetLevel' billing_source: $ref: '#/components/schemas/BillingSource' default: 1 is_auto_reconciliation_enabled: anyOf: - type: boolean - type: 'null' title: Is Auto Reconciliation Enabled account_billing_source_id: anyOf: - type: integer - type: 'null' title: Account Billing Source Id impression_frequency_cap: anyOf: - type: integer exclusiveMaximum: 128.0 exclusiveMinimum: 0.0 - type: 'null' title: Impression Frequency Cap impression_frequency_cap_hours: anyOf: - type: integer exclusiveMaximum: 32768.0 exclusiveMinimum: 0.0 - type: 'null' title: Impression Frequency Cap Hours client_io_name: anyOf: - type: string maxLength: 500 minLength: 1 - type: 'null' title: Client Io Name client_io_number: anyOf: - type: string maxLength: 128 minLength: 1 - type: 'null' title: Client Io Number salesforce_number: anyOf: - type: string maxLength: 16 minLength: 1 - type: 'null' title: Salesforce Number is_cbd_enabled: type: boolean title: Is Cbd Enabled default: false is_political_inventory_enabled: type: boolean title: Is Political Inventory Enabled default: false iab_content_category: anyOf: - type: string maxLength: 10 minLength: 1 - type: 'null' title: Iab Content Category account_executives: items: $ref: '#/components/schemas/CreateUpdateCampaignUserModel' type: array title: Account Executives account_managers: items: $ref: '#/components/schemas/CreateUpdateCampaignUserModel' type: array title: Account Managers campaign_managers: items: $ref: '#/components/schemas/CreateUpdateCampaignUserModel' type: array title: Campaign Managers publisher_domains: items: $ref: '#/components/schemas/PublisherDomainModel' type: array title: Publisher Domains app_bundles: items: $ref: '#/components/schemas/AppBundleModel' type: array title: App Bundles enable_brand_safe_publishers: type: boolean title: Enable Brand Safe Publishers default: true type: object required: - name - budget_level title: UpdateCampaignModel Gender: oneOf: - const: M title: MALE - const: F title: FEMALE - const: unknown title: UNKNOWN type: string enum: - M - F - unknown title: Gender x-enum-varnames: - MALE - FEMALE - UNKNOWN ErrorResponseModel: properties: errors: items: $ref: '#/components/schemas/ErrorModel' type: array title: Errors type: object required: - errors title: ErrorResponseModel CreateUpdateAudienceModel: properties: id: type: string title: Id type: $ref: '#/components/schemas/AudienceType-Input' exclude: type: boolean title: Exclude default: false type: object required: - id - type title: CreateUpdateAudienceModel CampaignDashboardItemModel: properties: id: type: integer title: Id name: type: string title: Name start_date: type: string format: date title: Start Date end_date: anyOf: - type: string format: date - type: 'null' title: End Date status: $ref: '#/components/schemas/CampaignDashboardStatus' account_id: type: integer title: Account Id account_name: type: string title: Account Name organization_id: type: integer title: Organization Id organization_name: type: string title: Organization Name salesforce_number: anyOf: - type: string - type: 'null' title: Salesforce Number days_remaining: anyOf: - type: integer - type: 'null' title: Days Remaining budget: anyOf: - type: number - type: 'null' title: Budget gross_budget: anyOf: - type: number - type: 'null' title: Gross Budget budget_type: $ref: '#/components/schemas/BudgetType' pacing: anyOf: - type: number - type: 'null' title: Pacing impressions: anyOf: - type: integer - type: 'null' title: Impressions clicks: anyOf: - type: integer - type: 'null' title: Clicks visits: anyOf: - type: integer - type: 'null' title: Visits vr: anyOf: - type: number - type: 'null' title: Vr vcr: anyOf: - type: number - type: 'null' title: Vcr ctr: anyOf: - type: number - type: 'null' title: Ctr daily_spend: anyOf: - type: number - type: 'null' title: Daily Spend spends_spent: anyOf: - type: number - type: 'null' title: Spends Spent secondary_actions: anyOf: - type: number - type: 'null' title: Secondary Actions sar: anyOf: - type: number - type: 'null' title: Sar reach: anyOf: - type: number - type: 'null' title: Reach conversions: anyOf: - type: integer - type: 'null' title: Conversions type: object required: - id - name - start_date - status - account_id - account_name - organization_id - organization_name - budget_type title: CampaignDashboardItemModel app__api__routes__adgroups__models__AudioStreamingGenreModel: properties: id: type: integer title: Id name: type: string title: Name type: object required: - id - name title: AudioStreamingGenreModel Language: oneOf: - const: en title: ENGLISH - const: es title: SPANISH type: string enum: - en - es title: Language x-enum-varnames: - ENGLISH - SPANISH CampaignsDashboardModel: properties: total_count: type: integer title: Total Count limit: type: integer title: Limit page_num: type: integer title: Page Num total_pages: type: integer title: Total Pages has_next_page: type: boolean title: Has Next Page has_prev_page: type: boolean title: Has Prev Page items: items: $ref: '#/components/schemas/CampaignDashboardItemModel' type: array title: Items type: object required: - total_count - limit - page_num - total_pages - has_next_page - has_prev_page - items title: CampaignsDashboardModel AudienceType-Input: oneOf: - const: behavior title: BEHAVIOR - const: custom_audience title: CUSTOM_AUDIENCE - const: segment title: SEGMENT - const: brand title: BRAND - const: category title: CATEGORY - const: location_group title: LOCATION_GROUP - const: third_party title: THIRD_PARTY type: string enum: - behavior - custom_audience - segment - brand - category - location_group - third_party title: AudienceType x-enum-varnames: - BEHAVIOR - CUSTOM_AUDIENCE - SEGMENT - BRAND - CATEGORY - LOCATION_GROUP - THIRD_PARTY AudienceModel: properties: id: type: string title: Id name: type: string title: Name type: $ref: '#/components/schemas/app__api__routes__adgroups__constants__AudienceType' exclude: type: boolean title: Exclude size: anyOf: - type: integer - type: 'null' title: Size description: anyOf: - type: string - type: 'null' title: Description sensitivity: anyOf: - $ref: '#/components/schemas/Sensitivity' - type: 'null' status: anyOf: - $ref: '#/components/schemas/ThirdPartyAudienceStatus' - type: 'null' category_id: anyOf: - type: integer - type: 'null' title: Category Id location_group_metadata: anyOf: - $ref: '#/components/schemas/app__api__models__LocationGroupMetadata' - type: 'null' type: object required: - id - name - type - exclude - size title: AudienceModel CreatedAdPackageModel: properties: id: type: integer title: Id name: type: string title: Name type: object required: - id - name title: CreatedAdPackageModel DOOHMetadataModel: properties: venue_type_id: type: integer title: Venue Type Id publisher_name: anyOf: - type: string - type: 'null' title: Publisher Name num_screens: type: integer title: Num Screens num_ad_units: type: integer title: Num Ad Units ad_specs: additionalProperties: true type: object title: Ad Specs venue_type: anyOf: - type: string - type: 'null' title: Venue Type type: object required: - venue_type_id - num_screens - num_ad_units - ad_specs title: DOOHMetadataModel LocationFilterModel-Input: properties: type: $ref: '#/components/schemas/LocationFilterType' exclude: type: boolean title: Exclude default: false city: anyOf: - type: string - type: 'null' title: City state: anyOf: - type: string - type: 'null' title: State description: State code zip_code: anyOf: - type: string - type: 'null' title: Zip Code county: anyOf: - type: string - type: 'null' title: County description: County name dma: anyOf: - type: string - type: 'null' title: Dma description: DMA name lat: anyOf: - type: number maximum: 90.0 minimum: -90.0 - type: 'null' title: Lat lng: anyOf: - type: number maximum: 180.0 minimum: -180.0 - type: 'null' title: Lng address: anyOf: - type: string - type: 'null' title: Address radius: anyOf: - type: number - type: 'null' title: Radius type: object required: - type title: LocationFilterModel app__api__models__LocationGroupMetadata: properties: type: anyOf: - $ref: '#/components/schemas/LocationGroupType' - type: 'null' url: anyOf: - type: string - type: 'null' title: Url accepted: type: integer title: Accepted default: 0 rejected: type: integer title: Rejected default: 0 invalid: type: integer title: Invalid default: 0 conflict: type: integer title: Conflict default: 0 build_status: anyOf: - $ref: '#/components/schemas/LocationGroupBuildStatus' - type: 'null' description: Audience or neighborhood build pipeline state. If the API is unrelated to audiences and neighborhoods (e.g. /search/drive_to_locations), this will be null. is_sensitive: type: boolean title: Is Sensitive description: True if any of the POIs in the location group are deemed sensitive. default: false type: object title: LocationGroupMetadata ExchangeBidType: oneOf: - const: cpm title: CPM - const: cpc title: CPC type: string enum: - cpm - cpc title: ExchangeBidType x-enum-varnames: - CPM - CPC AdgroupModel: properties: id: type: integer title: Id tenant_id: type: integer title: Tenant Id organization_id: type: integer title: Organization Id account_id: type: integer title: Account Id campaign_id: type: integer title: Campaign Id name: type: string title: Name start_date: type: string format: date title: Start Date end_date: anyOf: - type: string format: date - type: 'null' title: End Date status: type: integer enum: - 2 - 1 title: Status objective: anyOf: - $ref: '#/components/schemas/Objective' - type: 'null' tactic: anyOf: - $ref: '#/components/schemas/TargetingTactic' - type: 'null' media_types: items: $ref: '#/components/schemas/MediaType' type: array title: Media Types bid_type: $ref: '#/components/schemas/app__api__routes__constants__BidType' bid_price: type: string pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$ title: Bid Price budgets: items: $ref: '#/components/schemas/BudgetModel-Output' type: array title: Budgets gross_budget: anyOf: - type: string pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$ - type: 'null' title: Gross Budget budget_type: $ref: '#/components/schemas/BudgetType' audiences: items: $ref: '#/components/schemas/AudienceModel' type: array title: Audiences lookalike_audience_scale: anyOf: - $ref: '#/components/schemas/LookalikeAudienceScale' - type: 'null' deprecated: true location_filters: items: $ref: '#/components/schemas/LocationFilterModel-Output' type: array title: Location Filters drive_to_locations: items: $ref: '#/components/schemas/DriveToLocationModel' type: array title: Drive To Locations genders: items: $ref: '#/components/schemas/Gender' type: array title: Genders age_ranges: items: $ref: '#/components/schemas/AgeRange' type: array title: Age Ranges enable_alcohol_age: type: boolean title: Enable Alcohol Age enable_privacy_idfas: type: boolean title: Enable Privacy Idfas income_ranges: items: $ref: '#/components/schemas/IncomeRange' type: array title: Income Ranges communities: items: $ref: '#/components/schemas/Community' type: array title: Communities optimization_strategy: $ref: '#/components/schemas/OptimizationStrategy' ctr_threshold: anyOf: - type: number - type: 'null' title: Ctr Threshold sar_threshold: anyOf: - type: integer - type: 'null' title: Sar Threshold conversion_threshold: anyOf: - type: number - type: 'null' title: Conversion Threshold psvr_threshold: anyOf: - type: number - type: 'null' title: Psvr Threshold publisher_categories: items: $ref: '#/components/schemas/app__api__routes__adgroups__models__PublisherCategoryModel' type: array title: Publisher Categories streaming_video_content_categories: items: $ref: '#/components/schemas/app__api__routes__adgroups__models__StreamingVideoContentCategoryModel' type: array title: Streaming Video Content Categories ctv_premium_categories: items: $ref: '#/components/schemas/app__api__routes__adgroups__models__CTVPremiumCategoryModel' type: array title: Ctv Premium Categories audio_podcast_topics: items: $ref: '#/components/schemas/app__api__routes__adgroups__models__AudioPodcastTopicModel' type: array title: Audio Podcast Topics audio_streaming_genres: items: $ref: '#/components/schemas/app__api__routes__adgroups__models__AudioStreamingGenreModel' type: array title: Audio Streaming Genres audio_podcast_ad_positions: items: $ref: '#/components/schemas/AudioPodcastAdPosition' type: array title: Audio Podcast Ad Positions operating_systems: items: $ref: '#/components/schemas/OperatingSystem' type: array title: Operating Systems languages: items: $ref: '#/components/schemas/Language' type: array title: Languages dayparting: items: type: integer type: array title: Dayparting neighborhoods: items: $ref: '#/components/schemas/NeighborhoodModel' type: array title: Neighborhoods neighborhood_types: items: $ref: '#/components/schemas/NeighborhoodType' type: array title: Neighborhood Types created_date: anyOf: - type: string format: date-time - type: 'null' title: Created Date updated_date: anyOf: - type: string format: date-time - type: 'null' title: Updated Date on_premise_locations: items: $ref: '#/components/schemas/OnPremiseLocationModel' type: array title: On Premise Locations completed_steps: items: $ref: '#/components/schemas/AdgroupStep' type: array title: Completed Steps tracking_pixels: items: $ref: '#/components/schemas/TrackingPixelModel' type: array title: Tracking Pixels billability_type: $ref: '#/components/schemas/BillabilityType' added_cost_cpm: type: string pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$ title: Added Cost Cpm default: '0' viewable_percentage: anyOf: - type: integer - type: 'null' title: Viewable Percentage measurable_percentage: anyOf: - type: integer - type: 'null' title: Measurable Percentage gross_bid_price: anyOf: - type: string pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$ - type: 'null' title: Gross Bid Price ad_package: anyOf: - $ref: '#/components/schemas/AdPackageModel' - type: 'null' budget_padding: type: string pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$ title: Budget Padding default: '0' daily_impression_cap: anyOf: - type: integer - type: 'null' title: Daily Impression Cap integration_reports: items: $ref: '#/components/schemas/IntegrationReport' type: array title: Integration Reports third_party_placement_name: anyOf: - type: string - type: 'null' title: Third Party Placement Name third_party_placement_id: anyOf: - type: string - type: 'null' title: Third Party Placement Id mobile_carriers: items: $ref: '#/components/schemas/MobileCarrierCode' type: array title: Mobile Carriers exchange_publishers: items: $ref: '#/components/schemas/app__api__routes__adgroups__models__PublisherModel' type: array title: Exchange Publishers custom_publishers: items: $ref: '#/components/schemas/app__api__routes__adgroups__models__PublisherModel' type: array title: Custom Publishers exchange_bid_type: anyOf: - $ref: '#/components/schemas/ExchangeBidType' - type: 'null' exchange_bid_price: anyOf: - type: string pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$ - type: 'null' title: Exchange Bid Price rotate_creatives_evenly: type: boolean title: Rotate Creatives Evenly pacing_mode: $ref: '#/components/schemas/PacingMode' dooh_metadata: anyOf: - $ref: '#/components/schemas/DOOHMetadataModel' - type: 'null' retargeting_segment_name: anyOf: - type: string - type: 'null' title: Retargeting Segment Name type: object required: - id - tenant_id - organization_id - account_id - campaign_id - name - start_date - end_date - status - objective - tactic - media_types - bid_type - bid_price - budgets - gross_budget - budget_type - audiences - lookalike_audience_scale - location_filters - drive_to_locations - genders - age_ranges - enable_alcohol_age - enable_privacy_idfas - income_ranges - communities - optimization_strategy - ctr_threshold - sar_threshold - conversion_threshold - psvr_threshold - publisher_categories - streaming_video_content_categories - ctv_premium_categories - audio_podcast_topics - audio_streaming_genres - audio_podcast_ad_positions - operating_systems - languages - dayparting - neighborhoods - neighborhood_types - on_premise_locations - completed_steps - tracking_pixels - billability_type - integration_reports - mobile_carriers - exchange_publishers - custom_publishers - exchange_bid_type - exchange_bid_price - rotate_creatives_evenly - pacing_mode title: AdgroupModel TrackingPixelModel: properties: id: type: integer title: Id name: type: string title: Name hashcode: anyOf: - type: string - type: 'null' title: Hashcode type: object required: - id - name title: TrackingPixelModel MobileCarrierCode: oneOf: - const: ALLTEL title: ALLTEL - const: APPLCHN title: APPALACHIAN_WIRELESS - const: ATT title: ATT - const: BLUEGRASS title: BLUEGRASS_CELLULAR - const: CINCINNATI title: CINCINNATI_BELL - const: CORR title: CORR_WIRELESS - const: CRICKET title: CRICKET - const: METROPCS title: METRO_PCS - const: PLATEAU title: PLATEAU_WIRELESS - const: SIMMETRY title: SIMMETRY - const: SPRINT title: SPRINT - const: TMOBILE title: TMOBILE - const: USCELLULAR title: US_CELLULAR - const: VERIZON title: VERIZON_WIRELESS - const: WIFI title: WIFI type: string enum: - ALLTEL - APPLCHN - ATT - BLUEGRASS - CINCINNATI - CORR - CRICKET - METROPCS - PLATEAU - SIMMETRY - SPRINT - TMOBILE - USCELLULAR - VERIZON - WIFI title: MobileCarrierCode x-enum-varnames: - ALLTEL - APPALACHIAN_WIRELESS - ATT - BLUEGRASS_CELLULAR - CINCINNATI_BELL - CORR_WIRELESS - CRICKET - METRO_PCS - PLATEAU_WIRELESS - SIMMETRY - SPRINT - TMOBILE - US_CELLULAR - VERIZON_WIRELESS - WIFI Status: oneOf: - const: 1 title: ACTIVE - const: 2 title: PAUSED - const: 7 title: INCOMPLETE - const: 10 title: DRAFT - const: 11 title: REJECTED - const: 12 title: SUBMITTED type: integer enum: - 1 - 2 - 7 - 10 - 11 - 12 title: Status x-enum-varnames: - ACTIVE - PAUSED - INCOMPLETE - DRAFT - REJECTED - SUBMITTED ErrorModel: properties: code: type: string title: Code message: type: string title: Message fields: anyOf: - items: type: string type: array - type: 'null' title: Fields type: object required: - code - message - fields title: ErrorModel AdgroupStep: oneOf: - const: 1 title: OBJECTIVE - const: 2 title: MEDIA_CHANNEL - const: 3 title: LOCATION_AUDIENCE - const: 4 title: PLACEMENT - const: 5 title: BUDGET_SCHEDULE - const: 6 title: MEASUREMENT type: integer enum: - 1 - 2 - 3 - 4 - 5 - 6 title: AdgroupStep x-enum-varnames: - OBJECTIVE - MEDIA_CHANNEL - LOCATION_AUDIENCE - PLACEMENT - BUDGET_SCHEDULE - MEASUREMENT LocationFilterModel-Output: properties: type: $ref: '#/components/schemas/LocationFilterType' exclude: type: boolean title: Exclude default: false city: anyOf: - type: string - type: 'null' title: City state: anyOf: - type: string - type: 'null' title: State description: State code zip_code: anyOf: - type: string - type: 'null' title: Zip Code county: anyOf: - type: string - type: 'null' title: County description: County name dma: anyOf: - type: string - type: 'null' title: Dma description: DMA name lat: anyOf: - type: number maximum: 90.0 minimum: -90.0 - type: 'null' title: Lat lng: anyOf: - type: number maximum: 180.0 minimum: -180.0 - type: 'null' title: Lng address: anyOf: - type: string - type: 'null' title: Address radius: anyOf: - type: number - type: 'null' title: Radius display_name: type: string title: Display Name readOnly: true type: object required: - type - display_name title: LocationFilterModel Objective: oneOf: - const: 1 title: BRAND_AWARENESS - const: 2 title: AD_CLICKS - const: 3 title: IN_STORE_VISITS - const: 4 title: REACH - const: 5 title: VIDEO_VIEWS - const: 6 title: AUDIO_LISTENS type: integer enum: - 1 - 2 - 3 - 4 - 5 - 6 title: Objective x-enum-varnames: - BRAND_AWARENESS - AD_CLICKS - IN_STORE_VISITS - REACH - VIDEO_VIEWS - AUDIO_LISTENS MediaType: oneOf: - const: app title: APP - const: web title: MOBILE_WEB - const: desktop title: DESKTOP - const: ott title: OTT - const: ctv title: CTV - const: audio-podcast title: AUDIO_PODCAST - const: audio-streaming title: AUDIO_STREAMING - const: dooh title: DOOH type: string enum: - app - web - desktop - ott - ctv - audio-podcast - audio-streaming - dooh title: MediaType x-enum-varnames: - APP - MOBILE_WEB - DESKTOP - OTT - CTV - AUDIO_PODCAST - AUDIO_STREAMING - DOOH TargetingTactic: oneOf: - const: 0 title: DEFAULT - const: 31 title: WEATHER - const: 32 title: ON_PREMISE - const: 33 title: GEOTARGETING - const: 34 title: NEIGHBORHOOD - const: 35 title: AUDIENCE type: integer enum: - 0 - 31 - 32 - 33 - 34 - 35 title: TargetingTactic x-enum-varnames: - DEFAULT - WEATHER - ON_PREMISE - GEOTARGETING - NEIGHBORHOOD - AUDIENCE Sensitivity: oneOf: - const: 0 title: WHITELIST - const: 1 title: GRAYLIST - const: 2 title: SEMI_SENSITIVE - const: 3 title: BLACKLIST type: integer enum: - 0 - 1 - 2 - 3 title: Sensitivity x-enum-varnames: - WHITELIST - GRAYLIST - SEMI_SENSITIVE - BLACKLIST DriveToLocationModel: properties: id: type: string title: Id name: type: string title: Name type: $ref: '#/components/schemas/DriveToLocationType' sensitivity: anyOf: - $ref: '#/components/schemas/Sensitivity' - type: 'null' location_group_metadata: anyOf: - $ref: '#/components/schemas/app__api__models__LocationGroupMetadata' - type: 'null' type: object required: - id - name - type title: DriveToLocationModel AudioPodcastAdPosition: oneOf: - const: 0 title: PRE_ROLL - const: -1 title: MID_ROLL - const: -2 title: POST_ROLL type: integer enum: - 0 - -1 - -2 title: AudioPodcastAdPosition x-enum-varnames: - PRE_ROLL - MID_ROLL - POST_ROLL OnPremiseLocationType: oneOf: - const: brand title: BRAND - const: category title: CATEGORY - const: location_group title: LOCATION_GROUP type: string enum: - brand - category - location_group title: OnPremiseLocationType x-enum-varnames: - BRAND - CATEGORY - LOCATION_GROUP LocationGroupBuildStatus: oneOf: - const: not_required title: NOT_REQUIRED - const: initial title: INITIAL - const: in_progress title: IN_PROGRESS - const: updating title: UPDATING - const: ready title: READY - const: expired title: EXPIRED type: string enum: - not_required - initial - in_progress - updating - ready - expired title: LocationGroupBuildStatus x-enum-varnames: - NOT_REQUIRED - INITIAL - IN_PROGRESS - UPDATING - READY - EXPIRED OptimizationStrategy: oneOf: - const: delivery title: DELIVERY - const: click title: CLICK - const: sar title: SAR - const: conversion title: CONVERSION - const: visit title: VISIT type: string enum: - delivery - click - sar - conversion - visit title: OptimizationStrategy x-enum-varnames: - DELIVERY - CLICK - SAR - CONVERSION - VISIT ThirdPartyAudienceStatus: oneOf: - const: Ready title: READY - const: Building title: BUILDING - const: Available title: AVAILABLE type: string enum: - Ready - Building - Available title: ThirdPartyAudienceStatus x-enum-varnames: - READY - BUILDING - AVAILABLE app__api__routes__adgroups__models__AudioPodcastTopicModel: properties: id: type: integer title: Id name: type: string title: Name type: object required: - id - name title: AudioPodcastTopicModel CreateUpdateStreamingVideoContentCategoryModel: properties: id: type: integer title: Id type: object required: - id title: CreateUpdateStreamingVideoContentCategoryModel BudgetModel-Output: properties: start_date: type: string format: date title: Start Date end_date: anyOf: - type: string format: date - type: 'null' title: End Date budget: type: string pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$ title: Budget description: If budget is at the campaign level, this will be 0 type: object required: - start_date - end_date - budget title: BudgetModel NeighborhoodTargetType: oneOf: - const: behavior title: BEHAVIOR - const: brand title: BRAND - const: category title: CATEGORY - const: location_group title: LOCATION_GROUP type: string enum: - behavior - brand - category - location_group title: NeighborhoodTargetType x-enum-varnames: - BEHAVIOR - BRAND - CATEGORY - LOCATION_GROUP OnPremiseLocationModel: properties: id: type: string title: Id name: type: string title: Name type: $ref: '#/components/schemas/OnPremiseLocationType' proximity: anyOf: - $ref: '#/components/schemas/ProximityMode' - type: 'null' radius: anyOf: - type: number - type: 'null' title: Radius sensitivity: type: integer title: Sensitivity location_group_metadata: anyOf: - $ref: '#/components/schemas/app__api__models__LocationGroupMetadata' - type: 'null' type: object required: - id - name - type - proximity - sensitivity title: OnPremiseLocationModel IntegrationReport: oneOf: - const: USAMP title: USAMP - const: PLACED title: PLACED_FOURSQUARE - const: LIVERAMP title: LIVE_RAMP_EXPOSURE_FILES - const: XAD title: XAD_EXPOSURE_FILE - const: NEUSTAR title: NEUSTAR - const: CARDLYTICS title: CARDLYTICS - const: AFFINITY title: AFFINITY type: string enum: - USAMP - PLACED - LIVERAMP - XAD - NEUSTAR - CARDLYTICS - AFFINITY title: IntegrationReport x-enum-varnames: - USAMP - PLACED_FOURSQUARE - LIVE_RAMP_EXPOSURE_FILES - XAD_EXPOSURE_FILE - NEUSTAR - CARDLYTICS - AFFINITY SortOrder: oneOf: - const: desc title: DESC - const: asc title: ASC type: string enum: - desc - asc title: SortOrder x-enum-varnames: - DESC - ASC CreateAdPackageModel: properties: name: type: string maxLength: 256 minLength: 1 title: Name type: object required: - name title: CreateAdPackageModel CreateNeighborhoodModel: properties: id: type: string title: Id type: $ref: '#/components/schemas/NeighborhoodTargetType' type: object required: - id - type title: CreateNeighborhoodModel app__api__routes__adgroups__models__PublisherModel: properties: id: type: integer title: Id name: type: string title: Name type: object required: - id - name title: PublisherModel CampaignModel: properties: id: type: integer title: Id account_id: type: integer title: Account Id organization_id: type: integer title: Organization Id tenant_id: type: integer title: Tenant Id name: type: string title: Name start_date: type: string format: date title: Start Date end_date: anyOf: - type: string format: date - type: 'null' title: End Date status: $ref: '#/components/schemas/Status' budget: anyOf: - type: number - type: 'null' title: Budget gross_budget: anyOf: - type: number - type: 'null' title: Gross Budget budget_padding: anyOf: - type: number - type: 'null' title: Budget Padding budget_level: $ref: '#/components/schemas/BudgetLevel' budget_type: $ref: '#/components/schemas/BudgetType' billing_source: anyOf: - $ref: '#/components/schemas/BillingSource' - type: 'null' is_cbd_enabled: type: boolean title: Is Cbd Enabled bid_type: $ref: '#/components/schemas/app__constants__BidType' is_auto_reconciliation_enabled: type: boolean title: Is Auto Reconciliation Enabled account_billing_source_id: anyOf: - type: integer - type: 'null' title: Account Billing Source Id impression_frequency_cap: anyOf: - type: integer - type: 'null' title: Impression Frequency Cap impression_frequency_cap_hours: anyOf: - type: integer - type: 'null' title: Impression Frequency Cap Hours client_io_name: anyOf: - type: string - type: 'null' title: Client Io Name client_io_number: anyOf: - type: string - type: 'null' title: Client Io Number salesforce_number: anyOf: - type: string - type: 'null' title: Salesforce Number created_date: anyOf: - type: string format: date-time - type: 'null' title: Created Date updated_date: anyOf: - type: string format: date-time - type: 'null' title: Updated Date is_political_inventory_enabled: type: boolean title: Is Political Inventory Enabled iab_content_category: anyOf: - type: string - type: 'null' title: Iab Content Category account_executives: items: $ref: '#/components/schemas/CampaignUserModel' type: array title: Account Executives account_managers: items: $ref: '#/components/schemas/CampaignUserModel' type: array title: Account Managers campaign_managers: items: $ref: '#/components/schemas/CampaignUserModel' type: array title: Campaign Managers publisher_domains: items: $ref: '#/components/schemas/PublisherDomainModel' type: array title: Publisher Domains app_bundles: items: $ref: '#/components/schemas/AppBundleModel' type: array title: App Bundles enable_brand_safe_publishers: type: boolean title: Enable Brand Safe Publishers default: true quickstart_step: anyOf: - type: integer - type: 'null' title: Quickstart Step type: object required: - id - account_id - organization_id - tenant_id - name - start_date - status - budget_level - budget_type - is_cbd_enabled - bid_type - is_auto_reconciliation_enabled - is_political_inventory_enabled title: CampaignModel app__api__routes__adgroups__constants__AudienceType: oneOf: - const: behavior title: BEHAVIOR - const: custom_audience title: CUSTOM_AUDIENCE - const: segment title: SEGMENT - const: brand title: BRAND - const: category title: CATEGORY - const: location_group title: LOCATION_GROUP - const: third_party title: THIRD_PARTY type: string enum: - behavior - custom_audience - segment - brand - category - location_group - third_party title: AudienceType x-enum-varnames: - BEHAVIOR - CUSTOM_AUDIENCE - SEGMENT - BRAND - CATEGORY - LOCATION_GROUP - THIRD_PARTY CampaignsModel: properties: total_count: type: integer title: Total Count limit: type: integer title: Limit page_num: type: integer title: Page Num total_pages: type: integer title: Total Pages has_next_page: type: boolean title: Has Next Page has_prev_page: type: boolean title: Has Prev Page items: items: $ref: '#/components/schemas/CampaignModel' type: array title: Items type: object required: - total_count - limit - page_num - total_pages - has_next_page - has_prev_page - items title: CampaignsModel CampaignsDashboardExportColumn: oneOf: - const: id title: ID - const: name title: NAME - const: status title: STATUS - const: account_id title: ACCOUNT_ID - const: account_name title: ACCOUNT_NAME - const: organization_id title: ORGANIZATION_ID - const: organization_name title: ORGANIZATION_NAME - const: salesforce_number title: SALESFORCE_NUMBER - const: start_date title: START_DATE - const: end_date title: END_DATE - const: days_remaining title: DAYS_REMAINING - const: budget title: BUDGET - const: gross_budget title: GROSS_BUDGET - const: budget_type title: BUDGET_TYPE - const: pacing title: PACING - const: impressions title: IMPRESSIONS - const: clicks title: CLICKS - const: visits title: VISITS - const: vr title: VR - const: vcr title: VCR - const: ctr title: CTR - const: daily_spend title: DAILY_SPEND - const: spends_spent title: SPEND - const: secondary_actions title: SECONDARY_ACTIONS - const: sar title: SAR - const: reach title: REACH - const: conversions title: CONVERSIONS type: string enum: - id - name - status - account_id - account_name - organization_id - organization_name - salesforce_number - start_date - end_date - days_remaining - budget - gross_budget - budget_type - pacing - impressions - clicks - visits - vr - vcr - ctr - daily_spend - spends_spent - secondary_actions - sar - reach - conversions title: CampaignsDashboardExportColumn x-enum-varnames: - ID - NAME - STATUS - ACCOUNT_ID - ACCOUNT_NAME - ORGANIZATION_ID - ORGANIZATION_NAME - SALESFORCE_NUMBER - START_DATE - END_DATE - DAYS_REMAINING - BUDGET - GROSS_BUDGET - BUDGET_TYPE - PACING - IMPRESSIONS - CLICKS - VISITS - VR - VCR - CTR - DAILY_SPEND - SPEND - SECONDARY_ACTIONS - SAR - REACH - CONVERSIONS CreateUpdateCampaignUserModel: properties: id: type: integer title: Id type: object required: - id title: CreateUpdateCampaignUserModel AppBundleModel: properties: bundle: type: string minLength: 1 title: Bundle exclude: type: boolean title: Exclude type: object required: - bundle - exclude title: AppBundleModel ExportCampaignsDashboardRequestModel: properties: sort_by: $ref: '#/components/schemas/CampaignDashboardSortField' default: name sort_order: $ref: '#/components/schemas/SortOrder' default: asc start_date: anyOf: - type: string format: date - type: 'null' title: Start Date end_date: anyOf: - type: string format: date - type: 'null' title: End Date statuses: anyOf: - items: $ref: '#/components/schemas/CampaignDashboardStatus' type: array - type: 'null' title: Statuses account_ids: anyOf: - items: type: integer type: array - type: 'null' title: Account Ids organization_ids: anyOf: - items: type: integer type: array - type: 'null' title: Organization Ids objectives: anyOf: - items: $ref: '#/components/schemas/Objective' type: array - type: 'null' title: Objectives search: anyOf: - type: string - type: 'null' title: Search columns: anyOf: - items: $ref: '#/components/schemas/CampaignsDashboardExportColumn' type: array - type: 'null' title: Columns included_campaign_ids: anyOf: - items: type: integer type: array - type: 'null' title: Included Campaign Ids excluded_campaign_ids: anyOf: - items: type: integer type: array - type: 'null' title: Excluded Campaign Ids type: object title: ExportCampaignsDashboardRequestModel SuccessResponseModel: properties: success: type: boolean title: Success default: true type: object title: SuccessResponseModel BudgetType: oneOf: - const: 0 title: LIFETIME - const: 1 title: PERIODIC - const: 2 title: TIME_PERIOD - const: 3 title: DAILY type: integer enum: - 0 - 1 - 2 - 3 title: BudgetType x-enum-varnames: - LIFETIME - PERIODIC - TIME_PERIOD - DAILY CreatePublisherModel: properties: id: type: integer title: Id type: object required: - id title: CreatePublisherModel app__constants__BidType: oneOf: - const: CPM title: CPM - const: CPV title: CPV type: string enum: - CPM - CPV title: BidType x-enum-varnames: - CPM - CPV CreateAdgroupModel: properties: name: type: string maxLength: 256 minLength: 1 title: Name objective: anyOf: - $ref: '#/components/schemas/Objective' - type: 'null' description: Unless you're creating an empty ad group with just a name, objective is required. Changing objective may clear targeting that does not apply to the new selection; the saved adgroup may not match your request payload. tactic: $ref: '#/components/schemas/TargetingTactic' description: 'Currently supported: DEFAULT, GEOTARGETING, ON_PREMISE, AUDIENCE, NEIGHBORHOOD' default: 0 media_types: items: $ref: '#/components/schemas/MediaType' type: array maxItems: 2 uniqueItems: true title: Media Types description: 'Currently supported: desktop, ott, audio-streaming, audio-podcast, ctv, web, app. Changing media types may clear targeting that does not apply to the new selection; the saved adgroup may not match your request payload.' bid_type: $ref: '#/components/schemas/app__api__routes__constants__BidType' default: cpm bid_price: anyOf: - type: number - type: string pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$ title: Bid Price default: '0' budgets: items: $ref: '#/components/schemas/BudgetModel-Input' type: array minItems: 1 title: Budgets description: You must provide at least one budget time period. The budget itself can be 0 though. audiences: anyOf: - items: $ref: '#/components/schemas/CreateUpdateAudienceModel' type: array - type: 'null' title: Audiences lookalike_audience_scale: anyOf: - $ref: '#/components/schemas/LookalikeAudienceScale' - type: 'null' deprecated: true location_filters: anyOf: - items: $ref: '#/components/schemas/LocationFilterModel-Input' type: array - type: 'null' title: Location Filters drive_to_locations: anyOf: - items: $ref: '#/components/schemas/CreateUpdateDriveToLocationModel' type: array - type: 'null' title: Drive To Locations genders: anyOf: - items: $ref: '#/components/schemas/Gender' type: array uniqueItems: true - type: 'null' title: Genders age_ranges: anyOf: - items: $ref: '#/components/schemas/AgeRange' type: array uniqueItems: true - type: 'null' title: Age Ranges enable_alcohol_age: type: boolean title: Enable Alcohol Age default: false enable_privacy_idfas: type: boolean title: Enable Privacy Idfas default: false daily_impression_cap: anyOf: - type: integer exclusiveMinimum: 0.0 - type: 'null' title: Daily Impression Cap integration_reports: anyOf: - items: $ref: '#/components/schemas/IntegrationReport' type: array uniqueItems: true - type: 'null' title: Integration Reports third_party_placement_name: anyOf: - type: string maxLength: 128 minLength: 1 - type: 'null' title: Third Party Placement Name third_party_placement_id: anyOf: - type: string maxLength: 128 minLength: 1 - type: 'null' title: Third Party Placement Id mobile_carriers: anyOf: - items: $ref: '#/components/schemas/MobileCarrierCode' type: array - type: 'null' title: Mobile Carriers income_ranges: anyOf: - items: $ref: '#/components/schemas/IncomeRange' type: array uniqueItems: true - type: 'null' title: Income Ranges communities: anyOf: - items: $ref: '#/components/schemas/Community' type: array uniqueItems: true - type: 'null' title: Communities optimization_strategy: $ref: '#/components/schemas/OptimizationStrategy' default: delivery ctr_threshold: anyOf: - type: number maximum: 0.7 minimum: 0.0 - type: 'null' title: Ctr Threshold description: Use null for system default default: 0 sar_threshold: anyOf: - type: integer maximum: 10.0 minimum: 0.0 - type: 'null' title: Sar Threshold description: Use null for system default default: 0 conversion_threshold: anyOf: - type: number maximum: 1.0 minimum: 0.0 - type: 'null' title: Conversion Threshold description: Use null for system default default: 0 psvr_threshold: anyOf: - type: number maximum: 0.99 minimum: 0.0 - type: 'null' title: Psvr Threshold description: Use null for system default default: 0 publisher_categories: anyOf: - items: $ref: '#/components/schemas/CreateUpdatePublisherCategoryModel' type: array - type: 'null' title: Publisher Categories description: This is only applicable or mobile and desktop media types streaming_video_content_categories: anyOf: - items: $ref: '#/components/schemas/CreateUpdateStreamingVideoContentCategoryModel' type: array - type: 'null' title: Streaming Video Content Categories description: This only works for CTV and OTT media types ctv_premium_categories: anyOf: - items: $ref: '#/components/schemas/CreateUpdateCTVPremiumCategoryModel' type: array - type: 'null' title: Ctv Premium Categories description: This only works for CTV media type audio_podcast_topics: anyOf: - items: $ref: '#/components/schemas/CreateUpdateAudioPodcastTopicModel' type: array - type: 'null' title: Audio Podcast Topics description: This only works for audio podcast media type audio_streaming_genres: anyOf: - items: $ref: '#/components/schemas/CreateUpdateAudioStreamingGenreModel' type: array - type: 'null' title: Audio Streaming Genres description: This only works for audio streaming media type audio_podcast_ad_positions: anyOf: - items: $ref: '#/components/schemas/AudioPodcastAdPosition' type: array uniqueItems: true - type: 'null' title: Audio Podcast Ad Positions description: This only works for audio podcast media type languages: anyOf: - items: $ref: '#/components/schemas/Language' type: array uniqueItems: true - type: 'null' title: Languages description: This only works for audio podcast and streaming media types operating_systems: anyOf: - items: $ref: '#/components/schemas/OperatingSystem' type: array uniqueItems: true - type: 'null' title: Operating Systems description: This only works for mobile media type dayparting: anyOf: - items: type: integer exclusiveMaximum: 336.0 minimum: 0.0 type: array uniqueItems: true - type: 'null' title: Dayparting description: Each number in the list represents a half hour in a week. 0 is the first half hour (12am - 12:30am) on Sunday. 335 is the last half hour (11:30pm - 12am) on Saturday. on_premise_locations: anyOf: - items: $ref: '#/components/schemas/CreateUpdateOnPremiseLocationModel' type: array - type: 'null' title: On Premise Locations neighborhoods: anyOf: - items: $ref: '#/components/schemas/CreateNeighborhoodModel' type: array - type: 'null' title: Neighborhoods neighborhood_types: anyOf: - items: $ref: '#/components/schemas/NeighborhoodType' type: array uniqueItems: true - type: 'null' title: Neighborhood Types tracking_pixels: anyOf: - items: $ref: '#/components/schemas/CreateUpdateTrackingPixelModel' type: array - type: 'null' title: Tracking Pixels billability_type: $ref: '#/components/schemas/BillabilityType' default: 0 added_cost_cpm: anyOf: - type: number minimum: 0.0 - type: string pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$ title: Added Cost Cpm description: Additional CPM added on top of the base bid price default: '0' viewable_percentage: anyOf: - type: integer maximum: 100.0 exclusiveMinimum: 0.0 - type: 'null' title: Viewable Percentage description: Percentage of measurable impressions that must be viewable measurable_percentage: anyOf: - type: integer maximum: 100.0 exclusiveMinimum: 0.0 - type: 'null' title: Measurable Percentage description: Percentage of impressions that must be measurable gross_bid_price: anyOf: - type: number - type: string pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$ - type: 'null' title: Gross Bid Price ad_package: anyOf: - $ref: '#/components/schemas/CreateUpdateAdPackageModel' - type: 'null' description: Used to group similar ad groups budget_padding: anyOf: - type: number - type: string pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$ title: Budget Padding default: '0' rotate_creatives_evenly: type: boolean title: Rotate Creatives Evenly default: true pacing_mode: $ref: '#/components/schemas/PacingMode' description: Spend pacing for the ad group. Omitted defaults to standard (DEFAULT) pacing. default: 0 retargeting_segment_name: anyOf: - type: string minLength: 1 - type: 'null' title: Retargeting Segment Name description: Audience name for retargeting segment exchange_publishers: anyOf: - items: $ref: '#/components/schemas/CreatePublisherModel' type: array - type: 'null' title: Exchange Publishers custom_publishers: anyOf: - items: $ref: '#/components/schemas/CreatePublisherModel' type: array - type: 'null' title: Custom Publishers exchange_bid_type: anyOf: - $ref: '#/components/schemas/ExchangeBidType' - type: 'null' exchange_bid_price: anyOf: - anyOf: - type: number - type: string pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$ gt: 0 - type: 'null' title: Exchange Bid Price type: object required: - name - budgets title: CreateAdgroupModel app__api__routes__adgroups__models__StreamingVideoContentCategoryModel: properties: id: type: integer title: Id name: type: string title: Name type: object required: - id - name title: StreamingVideoContentCategoryModel OperatingSystem: oneOf: - const: ios title: IOS - const: android title: ANDROID - const: others title: OTHERS type: string enum: - ios - android - others title: OperatingSystem x-enum-varnames: - IOS - ANDROID - OTHERS app__api__routes__constants__BidType: oneOf: - const: cpm title: CPM - const: cpc title: CPC - const: cpv title: CPV type: string enum: - cpm - cpc - cpv title: BidType x-enum-varnames: - CPM - CPC - CPV LocationFilterType: oneOf: - const: City title: CITY - const: State title: STATE - const: Zip title: ZIP_CODE - const: DMA title: DMA - const: County title: COUNTY - const: LatLng title: LAT_LNG - const: Address title: ADDRESS type: string enum: - City - State - Zip - DMA - County - LatLng - Address title: LocationFilterType x-enum-varnames: - CITY - STATE - ZIP_CODE - DMA - COUNTY - LAT_LNG - ADDRESS securitySchemes: api-key: type: apiKey in: header name: x-gt-api-key user-id: type: apiKey in: header name: x-gt-user-id