Google Campaign Manager Placements API

Manage placements representing ad inventory on publisher sites. Placements define the size, format, pricing, and site location where ads can be served, and generate the ad tags that publishers install on their pages.

Documentation

Specifications

Schemas & Data

📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/google-campaign-manager/refs/heads/main/json-schema/google-campaign-manager-campaign-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/google-campaign-manager/refs/heads/main/json-schema/google-campaign-manager-ad-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/google-campaign-manager/refs/heads/main/json-schema/google-campaign-manager-placement-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/google-campaign-manager/refs/heads/main/json-schema/google-campaign-manager-report-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/google-campaign-manager/refs/heads/main/json-schema/google-campaign-manager-report-criteria-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/google-campaign-manager/refs/heads/main/json-schema/google-campaign-manager-report-reach-criteria-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/google-campaign-manager/refs/heads/main/json-schema/google-campaign-manager-report-path-to-conversion-criteria-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/google-campaign-manager/refs/heads/main/json-schema/google-campaign-manager-report-cross-dimension-reach-criteria-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/google-campaign-manager/refs/heads/main/json-schema/google-campaign-manager-report-floodlight-criteria-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/google-campaign-manager/refs/heads/main/json-schema/google-campaign-manager-report-cross-media-reach-criteria-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/google-campaign-manager/refs/heads/main/json-schema/google-campaign-manager-report-schedule-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/google-campaign-manager/refs/heads/main/json-schema/google-campaign-manager-report-delivery-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/google-campaign-manager/refs/heads/main/json-schema/google-campaign-manager-recipient-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/google-campaign-manager/refs/heads/main/json-schema/google-campaign-manager-file-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/google-campaign-manager/refs/heads/main/json-schema/google-campaign-manager-size-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/google-campaign-manager/refs/heads/main/json-schema/google-campaign-manager-date-range-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/google-campaign-manager/refs/heads/main/json-schema/google-campaign-manager-sorted-dimension-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/google-campaign-manager/refs/heads/main/json-schema/google-campaign-manager-activities-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/google-campaign-manager/refs/heads/main/json-schema/google-campaign-manager-custom-rich-media-events-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/google-campaign-manager/refs/heads/main/json-schema/google-campaign-manager-dimension-value-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/google-campaign-manager/refs/heads/main/json-schema/google-campaign-manager-last-modified-info-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/google-campaign-manager/refs/heads/main/json-schema/google-campaign-manager-audience-segment-group-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/google-campaign-manager/refs/heads/main/json-schema/google-campaign-manager-audience-segment-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/google-campaign-manager/refs/heads/main/json-schema/google-campaign-manager-event-tag-override-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/google-campaign-manager/refs/heads/main/json-schema/google-campaign-manager-click-through-url-suffix-properties-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/google-campaign-manager/refs/heads/main/json-schema/google-campaign-manager-default-click-through-event-tag-properties-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/google-campaign-manager/refs/heads/main/json-schema/google-campaign-manager-click-through-url-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/google-campaign-manager/refs/heads/main/json-schema/google-campaign-manager-creative-optimization-configuration-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/google-campaign-manager/refs/heads/main/json-schema/google-campaign-manager-optimization-activity-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/google-campaign-manager/refs/heads/main/json-schema/google-campaign-manager-ad-blocking-configuration-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/google-campaign-manager/refs/heads/main/json-schema/google-campaign-manager-measurement-partner-link-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/google-campaign-manager/refs/heads/main/json-schema/google-campaign-manager-measurement-partner-wrapping-data-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/google-campaign-manager/refs/heads/main/json-schema/google-campaign-manager-conversion-domain-override-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/google-campaign-manager/refs/heads/main/json-schema/google-campaign-manager-placement-assignment-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/google-campaign-manager/refs/heads/main/json-schema/google-campaign-manager-creative-rotation-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/google-campaign-manager/refs/heads/main/json-schema/google-campaign-manager-creative-assignment-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/google-campaign-manager/refs/heads/main/json-schema/google-campaign-manager-delivery-schedule-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/google-campaign-manager/refs/heads/main/json-schema/google-campaign-manager-frequency-cap-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/google-campaign-manager/refs/heads/main/json-schema/google-campaign-manager-geo-targeting-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/google-campaign-manager/refs/heads/main/json-schema/google-campaign-manager-country-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/google-campaign-manager/refs/heads/main/json-schema/google-campaign-manager-region-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/google-campaign-manager/refs/heads/main/json-schema/google-campaign-manager-city-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/google-campaign-manager/refs/heads/main/json-schema/google-campaign-manager-metro-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/google-campaign-manager/refs/heads/main/json-schema/google-campaign-manager-postal-code-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/google-campaign-manager/refs/heads/main/json-schema/google-campaign-manager-technology-targeting-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/google-campaign-manager/refs/heads/main/json-schema/google-campaign-manager-browser-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/google-campaign-manager/refs/heads/main/json-schema/google-campaign-manager-platform-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/google-campaign-manager/refs/heads/main/json-schema/google-campaign-manager-operating-system-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/google-campaign-manager/refs/heads/main/json-schema/google-campaign-manager-operating-system-version-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/google-campaign-manager/refs/heads/main/json-schema/google-campaign-manager-mobile-carrier-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/google-campaign-manager/refs/heads/main/json-schema/google-campaign-manager-connection-type-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/google-campaign-manager/refs/heads/main/json-schema/google-campaign-manager-day-part-targeting-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/google-campaign-manager/refs/heads/main/json-schema/google-campaign-manager-pricing-schedule-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/google-campaign-manager/refs/heads/main/json-schema/google-campaign-manager-pricing-schedule-pricing-period-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/google-campaign-manager/refs/heads/main/json-schema/google-campaign-manager-video-settings-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/google-campaign-manager/refs/heads/main/json-schema/google-campaign-manager-lookback-configuration-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/google-campaign-manager/refs/heads/main/json-schema/google-campaign-manager-tag-setting-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/google-campaign-manager/refs/heads/main/json-schema/google-campaign-manager-placement-tag-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/google-campaign-manager/refs/heads/main/json-schema/google-campaign-manager-campaigns-list-response-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/google-campaign-manager/refs/heads/main/json-schema/google-campaign-manager-ads-list-response-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/google-campaign-manager/refs/heads/main/json-schema/google-campaign-manager-placements-list-response-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/google-campaign-manager/refs/heads/main/json-schema/google-campaign-manager-placements-generate-tags-response-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/google-campaign-manager/refs/heads/main/json-schema/google-campaign-manager-reports-list-response-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/google-campaign-manager/refs/heads/main/json-schema/google-campaign-manager-error-schema.json

Other Resources

OpenAPI Specification

google-campaign-manager-placements-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Google Campaign Manager Campaign Manager 360 Ads Placements API
  description: The Campaign Manager 360 API (formerly DoubleClick Campaign Manager) provides programmatic access to manage digital advertising campaigns, ads, placements, and reports. Use this API to automate trafficking workflows, create and manage campaign structures, configure ad placements across publisher sites, and generate comprehensive reporting data for campaign performance analysis. The API supports the full campaign lifecycle from creation through reporting and optimization.
  version: v4
  contact:
    name: Google Campaign Manager 360 API Support
    url: https://support.google.com/campaignmanager
  termsOfService: https://developers.google.com/terms
servers:
- url: https://dfareporting.googleapis.com/dfareporting/v4
  description: Campaign Manager 360 API Production Server
security:
- OAuth2:
  - https://www.googleapis.com/auth/dfareporting
  - https://www.googleapis.com/auth/dfatrafficking
tags:
- name: Placements
  description: Manage placements representing ad inventory on publisher sites. Placements define the size, format, pricing, and site location where ads can be served, and generate the ad tags that publishers install on their pages.
paths:
  /userprofiles/{profileId}/placements:
    get:
      operationId: listPlacements
      summary: Google Campaign Manager List Placements
      description: Retrieves a list of placements, possibly filtered. Results are returned in descending order by last modified time.
      tags:
      - Placements
      security:
      - OAuth2:
        - https://www.googleapis.com/auth/dfatrafficking
      parameters:
      - $ref: '#/components/parameters/ProfileId'
      - name: campaignIds
        in: query
        required: false
        description: Select only placements belonging to these campaigns.
        schema:
          type: array
          items:
            type: string
        style: form
        explode: true
      - name: advertiserIds
        in: query
        required: false
        description: Select only placements belonging to these advertisers.
        schema:
          type: array
          items:
            type: string
        style: form
        explode: true
      - name: ids
        in: query
        required: false
        description: Select only placements with these IDs.
        schema:
          type: array
          items:
            type: string
        style: form
        explode: true
      - name: siteIds
        in: query
        required: false
        description: Select only placements associated with these sites.
        schema:
          type: array
          items:
            type: string
        style: form
        explode: true
      - name: groupIds
        in: query
        required: false
        description: Select only placements belonging to these placement groups.
        schema:
          type: array
          items:
            type: string
        style: form
        explode: true
      - name: compatibilities
        in: query
        required: false
        description: Select only placements with these compatibilities.
        schema:
          type: string
          enum:
          - DISPLAY
          - DISPLAY_INTERSTITIAL
          - IN_STREAM_VIDEO
          - IN_STREAM_AUDIO
      - name: searchString
        in: query
        required: false
        description: Search string for filtering results.
        schema:
          type: string
      - name: sortField
        in: query
        required: false
        schema:
          type: string
          enum:
          - ID
          - NAME
          default: ID
      - name: sortOrder
        in: query
        required: false
        schema:
          type: string
          enum:
          - ASCENDING
          - DESCENDING
          default: ASCENDING
      - $ref: '#/components/parameters/MaxResults'
      - $ref: '#/components/parameters/PageToken'
      responses:
        '200':
          description: List of placements.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlacementsListResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
    post:
      operationId: insertPlacement
      summary: Google Campaign Manager Create a Placement
      description: Inserts a new placement. The placement is associated with a campaign, site, and directory site, and defines the ad inventory configuration for a specific location on a publisher site.
      tags:
      - Placements
      parameters:
      - $ref: '#/components/parameters/ProfileId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Placement'
            example:
              name: Homepage Leaderboard 728x90
              campaignId: '12345678'
              siteId: '11111111'
              directorySiteId: '22222222'
              compatibility: DISPLAY
              size:
                id: '12345'
                width: 728
                height: 90
              tagFormats:
              - PLACEMENT_TAG_STANDARD
              - PLACEMENT_TAG_JAVASCRIPT
              pricingSchedule:
                startDate: '2026-01-01'
                endDate: '2026-03-31'
                pricingType: PRICING_TYPE_CPM
      responses:
        '200':
          description: Created placement.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Placement'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /userprofiles/{profileId}/placements/{placementId}:
    get:
      operationId: getPlacement
      summary: Google Campaign Manager Get a Placement
      description: Gets one placement by ID.
      tags:
      - Placements
      security:
      - OAuth2:
        - https://www.googleapis.com/auth/dfatrafficking
      parameters:
      - $ref: '#/components/parameters/ProfileId'
      - $ref: '#/components/parameters/PlacementId'
      responses:
        '200':
          description: Placement details.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Placement'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
    put:
      operationId: updatePlacement
      summary: Google Campaign Manager Update a Placement
      description: Updates an existing placement.
      tags:
      - Placements
      parameters:
      - $ref: '#/components/parameters/ProfileId'
      - $ref: '#/components/parameters/PlacementId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Placement'
      responses:
        '200':
          description: Updated placement.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Placement'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
    patch:
      operationId: patchPlacement
      summary: Google Campaign Manager Patch a Placement
      description: Updates an existing placement. This method supports patch semantics.
      tags:
      - Placements
      parameters:
      - $ref: '#/components/parameters/ProfileId'
      - $ref: '#/components/parameters/PlacementId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Placement'
      responses:
        '200':
          description: Patched placement.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Placement'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /userprofiles/{profileId}/placements/generatetags:
    post:
      operationId: generatePlacementTags
      summary: Google Campaign Manager Generate Placement Tags
      description: Generates tags for one or more placements. Tags are the code snippets that publishers place on their sites to enable ad serving for the associated placements.
      tags:
      - Placements
      parameters:
      - $ref: '#/components/parameters/ProfileId'
      - name: placementIds
        in: query
        required: false
        description: Generate tags for these placements.
        schema:
          type: array
          items:
            type: string
        style: form
        explode: true
      - name: tagFormats
        in: query
        required: false
        description: Tag formats to generate.
        schema:
          type: array
          items:
            type: string
            enum:
            - PLACEMENT_TAG_STANDARD
            - PLACEMENT_TAG_IFRAME_JAVASCRIPT
            - PLACEMENT_TAG_IFRAME_ILAYER
            - PLACEMENT_TAG_INTERNAL_REDIRECT
            - PLACEMENT_TAG_JAVASCRIPT
            - PLACEMENT_TAG_INTERSTITIAL_IFRAME_JAVASCRIPT
            - PLACEMENT_TAG_INTERSTITIAL_INTERNAL_REDIRECT
            - PLACEMENT_TAG_INTERSTITIAL_JAVASCRIPT
            - PLACEMENT_TAG_CLICK_COMMANDS
            - PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH
            - PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH_VAST_3
            - PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH_VAST_4
            - PLACEMENT_TAG_TRACKING
            - PLACEMENT_TAG_TRACKING_IFRAME
            - PLACEMENT_TAG_TRACKING_JAVASCRIPT
        style: form
        explode: true
      - name: campaignId
        in: query
        required: false
        description: Generate placements belonging to this campaign.
        schema:
          type: string
      responses:
        '200':
          description: Generated placement tags.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlacementsGenerateTagsResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
components:
  schemas:
    PlacementsGenerateTagsResponse:
      type: object
      description: Response containing generated placement tags.
      properties:
        placementTags:
          type: array
          items:
            $ref: '#/components/schemas/PlacementTag'
          example: []
        kind:
          type: string
          readOnly: true
          default: dfareporting#placementsGenerateTagsResponse
          example: example_value
    ConversionDomainOverride:
      type: object
      description: Conversion domain override for a placement.
      properties:
        conversionDomains:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
              name:
                type: string
          example: []
    LookbackConfiguration:
      type: object
      description: Lookback window configuration for attribution.
      properties:
        clickDuration:
          type: integer
          description: Lookback window, in days, from the last time a given user clicked on one of your ads.
          example: 10
        postImpressionActivitiesDuration:
          type: integer
          description: Lookback window, in days, from the last time a given user viewed one of your ads.
          example: 10
    Error:
      type: object
      description: Standard Google API error response.
      properties:
        error:
          type: object
          properties:
            code:
              type: integer
              description: HTTP status code.
            message:
              type: string
              description: Human-readable error message.
            status:
              type: string
              description: Error status string.
            errors:
              type: array
              items:
                type: object
                properties:
                  message:
                    type: string
                  domain:
                    type: string
                  reason:
                    type: string
          example: example_value
    Placement:
      type: object
      description: A Campaign Manager 360 placement. Placements represent ad inventory on publisher sites and define the size, format, pricing, and location where ads can be served.
      required:
      - name
      - campaignId
      - compatibility
      - tagFormats
      properties:
        id:
          type: string
          description: Placement ID. Read-only, auto-generated field.
          readOnly: true
          example: abc123
        accountId:
          type: string
          description: Account ID of this placement.
          readOnly: true
          example: '500123'
        subaccountId:
          type: string
          description: Subaccount ID of this placement.
          readOnly: true
          example: '500123'
        advertiserId:
          type: string
          description: Advertiser ID of this placement.
          example: '500123'
        campaignId:
          type: string
          description: Campaign ID of this placement. Required on insert.
          example: '500123'
        name:
          type: string
          description: Name of this placement. Must be fewer than 512 characters.
          maxLength: 512
          example: Example Title
        siteId:
          type: string
          description: Site ID associated with this placement. Required on insert, read-only after.
          example: '500123'
        directorySiteId:
          type: string
          description: Directory site ID of this placement. Required on insert, read-only after.
          example: '500123'
        externalId:
          type: string
          description: External ID for this placement.
          example: '500123'
        keyName:
          type: string
          description: Key name of this placement, auto-generated from the name.
          readOnly: true
          example: example_value
        placementGroupId:
          type: string
          description: ID of the placement group this placement belongs to.
          example: '500123'
        compatibility:
          type: string
          description: Placement compatibility. Required on insert.
          enum:
          - DISPLAY
          - DISPLAY_INTERSTITIAL
          - IN_STREAM_VIDEO
          - IN_STREAM_AUDIO
          example: DISPLAY
        size:
          $ref: '#/components/schemas/Size'
        additionalSizes:
          type: array
          description: Additional sizes associated with this placement.
          items:
            $ref: '#/components/schemas/Size'
          example: []
        tagFormats:
          type: array
          description: Tag formats to generate for this placement.
          items:
            type: string
            enum:
            - PLACEMENT_TAG_STANDARD
            - PLACEMENT_TAG_IFRAME_JAVASCRIPT
            - PLACEMENT_TAG_IFRAME_ILAYER
            - PLACEMENT_TAG_INTERNAL_REDIRECT
            - PLACEMENT_TAG_JAVASCRIPT
            - PLACEMENT_TAG_INTERSTITIAL_IFRAME_JAVASCRIPT
            - PLACEMENT_TAG_INTERSTITIAL_INTERNAL_REDIRECT
            - PLACEMENT_TAG_INTERSTITIAL_JAVASCRIPT
            - PLACEMENT_TAG_CLICK_COMMANDS
            - PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH
            - PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH_VAST_3
            - PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH_VAST_4
            - PLACEMENT_TAG_TRACKING
            - PLACEMENT_TAG_TRACKING_IFRAME
            - PLACEMENT_TAG_TRACKING_JAVASCRIPT
          example: []
        paymentSource:
          type: string
          description: Payment source for this placement. Read-only after insert.
          enum:
          - PLACEMENT_AGENCY_PAID
          - PLACEMENT_PUBLISHER_PAID
          example: PLACEMENT_AGENCY_PAID
        paymentApproved:
          type: boolean
          description: Whether payment was approved for this placement. Read-only for non-publisher-paid placements.
          readOnly: true
          example: true
        status:
          type: string
          description: Third-party placement status.
          enum:
          - PENDING_REVIEW
          - PAYMENT_ACCEPTED
          - PAYMENT_REJECTED
          - ACKNOWLEDGE_REJECTION
          - ACKNOWLEDGE_ACCEPTANCE
          - DRAFT
          example: PENDING_REVIEW
        activeStatus:
          type: string
          description: Whether this placement is active, inactive, archived, or permanently archived.
          enum:
          - PLACEMENT_STATUS_ACTIVE
          - PLACEMENT_STATUS_INACTIVE
          - PLACEMENT_STATUS_ARCHIVED
          - PLACEMENT_STATUS_PERMANENTLY_ARCHIVED
          example: PLACEMENT_STATUS_ACTIVE
        pricingSchedule:
          $ref: '#/components/schemas/PricingSchedule'
        contentCategoryId:
          type: string
          description: ID of the content category assigned to this placement.
          example: '500123'
        placementStrategyId:
          type: string
          description: ID of the placement strategy assigned to this placement.
          example: '500123'
        comment:
          type: string
          description: Comments for this placement.
          example: example_value
        primary:
          type: boolean
          description: Whether this placement is the primary placement in a roadblock.
          example: true
        sslRequired:
          type: boolean
          description: Whether creatives assigned to this placement must be SSL-compliant.
          example: true
        adBlockingOptOut:
          type: boolean
          description: Whether this placement opts out of ad blocking.
          example: true
        wrappingOptOut:
          type: boolean
          description: Whether this placement opts out of tag wrapping.
          example: true
        videoSettings:
          $ref: '#/components/schemas/VideoSettings'
        videoActiveViewOptOut:
          type: boolean
          description: Whether Verification and ActiveView for in-stream video creatives are disabled for this placement.
          example: true
        vpaidAdapterChoice:
          type: string
          description: VPAID adapter setting for this placement.
          enum:
          - DEFAULT
          - FLASH
          - HTML5
          - BOTH
          example: DEFAULT
        lookbackConfiguration:
          $ref: '#/components/schemas/LookbackConfiguration'
        tagSetting:
          $ref: '#/components/schemas/TagSetting'
        partnerWrappingData:
          $ref: '#/components/schemas/MeasurementPartnerWrappingData'
        conversionDomainOverride:
          $ref: '#/components/schemas/ConversionDomainOverride'
        kind:
          type: string
          description: Identifies what kind of resource this is. Value is always dfareporting#placement.
          readOnly: true
          default: dfareporting#placement
          example: example_value
        createInfo:
          $ref: '#/components/schemas/LastModifiedInfo'
          readOnly: true
        lastModifiedInfo:
          $ref: '#/components/schemas/LastModifiedInfo'
          readOnly: true
        idDimensionValue:
          $ref: '#/components/schemas/DimensionValue'
          readOnly: true
        advertiserIdDimensionValue:
          $ref: '#/components/schemas/DimensionValue'
          readOnly: true
        campaignIdDimensionValue:
          $ref: '#/components/schemas/DimensionValue'
          readOnly: true
        siteIdDimensionValue:
          $ref: '#/components/schemas/DimensionValue'
          readOnly: true
        directorySiteIdDimensionValue:
          $ref: '#/components/schemas/DimensionValue'
          readOnly: true
        placementGroupIdDimensionValue:
          $ref: '#/components/schemas/DimensionValue'
          readOnly: true
    PlacementsListResponse:
      type: object
      description: Placement list response.
      properties:
        placements:
          type: array
          items:
            $ref: '#/components/schemas/Placement'
          example: []
        nextPageToken:
          type: string
          example: example_value
        kind:
          type: string
          readOnly: true
          default: dfareporting#placementsListResponse
          example: example_value
    PricingSchedulePricingPeriod:
      type: object
      description: A pricing period within a pricing schedule.
      properties:
        startDate:
          type: string
          format: date
          example: '2026-01-15'
        endDate:
          type: string
          format: date
          example: '2026-01-15'
        units:
          type: string
          description: Units of this pricing period.
          example: example_value
        rateOrCostNanos:
          type: string
          description: Rate or cost of this pricing period in nanos.
          example: example_value
        pricingComment:
          type: string
          description: Comments for this pricing period.
          example: example_value
    PricingSchedule:
      type: object
      description: Pricing schedule for a placement.
      properties:
        startDate:
          type: string
          format: date
          description: Placement start date.
          example: '2026-01-15'
        endDate:
          type: string
          format: date
          description: Placement end date.
          example: '2026-01-15'
        pricingType:
          type: string
          description: Placement pricing type.
          enum:
          - PRICING_TYPE_CPM
          - PRICING_TYPE_CPC
          - PRICING_TYPE_CPA
          - PRICING_TYPE_FLAT_RATE_IMPRESSIONS
          - PRICING_TYPE_FLAT_RATE_CLICKS
          example: PRICING_TYPE_CPM
        capCostType:
          type: string
          description: Placement cap cost type.
          enum:
          - PLANNING_PLACEMENT_CAP_COST_TYPE_NONE
          - PLANNING_PLACEMENT_CAP_COST_TYPE_MONTHLY
          - PLANNING_PLACEMENT_CAP_COST_TYPE_CUMULATIVE
          example: PLANNING_PLACEMENT_CAP_COST_TYPE_NONE
        pricingPeriods:
          type: array
          description: Pricing periods for this placement.
          items:
            $ref: '#/components/schemas/PricingSchedulePricingPeriod'
          example: []
        testingStartDate:
          type: string
          format: date
          description: Testing start date of this placement.
          example: '2026-01-15'
    PlacementTag:
      type: object
      description: A generated placement tag.
      properties:
        placementId:
          type: string
          description: The placement ID this tag is generated for.
          example: '500123'
        tagDatas:
          type: array
          description: Tags generated for this placement.
          items:
            type: object
            properties:
              format:
                type: string
                description: Tag format type.
              impressionTag:
                type: string
                description: The tag string for impressions.
              clickTag:
                type: string
                description: The tag string for clicks.
              adId:
                type: string
              creativeId:
                type: string
          example: []
    LastModifiedInfo:
      type: object
      description: Modification timestamp information.
      properties:
        time:
          type: string
          description: Timestamp of the last change in milliseconds since epoch.
          example: example_value
    DimensionValue:
      type: object
      description: A dimension value used for filtering and reporting.
      properties:
        dimensionName:
          type: string
          description: The name of the dimension.
          example: example_value
        value:
          type: string
          description: The value of the dimension.
          example: example_value
        id:
          type: string
          description: The ID associated with the value.
          example: abc123
        matchType:
          type: string
          description: Match type for filtering.
          enum:
          - EXACT
          - BEGINS_WITH
          - CONTAINS
          - WILDCARD_EXPRESSION
          example: EXACT
        etag:
          type: string
          readOnly: true
          example: example_value
        kind:
          type: string
          readOnly: true
          default: dfareporting#dimensionValue
          example: example_value
    MeasurementPartnerWrappingData:
      type: object
      description: Measurement partner wrapping data for placements.
      properties:
        measurementPartner:
          type: string
          enum:
          - NONE
          - INTEGRAL_AD_SCIENCE
          - DOUBLE_VERIFY
          example: NONE
        tagWrappingMode:
          type: string
          enum:
          - NONE
          - BLOCKING
          - MONITORING
          - MONITORING_READ_ONLY
          - VIDEO_PIXEL_MONITORING
          - TRACKING
          - NON_VPAID_MONITORING
          - VPAID_MONITORING
          example: NONE
        wrappedTag:
          type: string
          description: The wrapped tag content.
          example: example_value
        linkStatus:
          type: string
          enum:
          - MEASUREMENT_PARTNER_LINK_STATUS_UNSPECIFIED
          - MEASUREMENT_PARTNER_LINK_ACTIVE
          - MEASUREMENT_PARTNER_LINK_INACTIVE
          example: MEASUREMENT_PARTNER_LINK_STATUS_UNSPECIFIED
    VideoSettings:
      type: object
      description: Video settings for in-stream video placements.
      properties:
        companionSettings:
          type: object
          description: Companion ad settings.
          properties:
            companionsDisabled:
              type: boolean
            enabledSizes:
              type: array
              items:
                $ref: '#/components/schemas/Size'
            imageOnly:
              type: boolean
            kind:
              type: string
              readOnly: true
          example: example_value
        transcodeSettings:
          type: object
          description: Transcode settings.
          properties:
            enabledVideoFormats:
              type: array
              items:
                type: integer
            kind:
              type: string
              readOnly: true
          example: example_value
        skippableSettings:
          type: object
          description: Skippability settings.
          properties:
            skippable:
              type: boolean
            skipOffset:
              type: object
              properties:
                offsetSeconds:
                  type: integer
                offsetPercentage:
                  type: integer
            progressOffset:
              type: object
              properties:
                offsetSeconds:
                  type: integer
                offsetPercentage:
                  type: integer
            kind:
              type: string
              readOnly: true
          example: example_value
        obaEnabled:
          type: boolean
          description: Whether OBA icons are enabled for this placement.
          example: true
        obaSettings:
          type: object
          properties:
            iconClickThroughUrl:
              type: string
              format: uri
            iconClickTrackingUrl:
              type: string
              format: uri
            iconViewTrackingUrl:
              type: string
              format: uri
            program:
              type: string
            resourceUrl:
              type: string
              format: uri
            size:
              $ref: '#/components/schemas/Size'
            xPosition:
              type: string
            yPosition:
              type: string
          example: example_value
        orientation:
          type: string
          description: Video orientation setting.
          enum:
          - ANY
          - LANDSCAPE
          - PORTRAIT
          example: ANY
        kind:
          type: string
          readOnly: true
          example: example_value
    TagSetting:
      type: object
      description: Tag settings for a placement.
      properties:
        additionalKeyValues:
          type: string
          description: Additional key-values to append to tags.
          example: example_value
        includeClickTracking:
          type: boolean
          description: Whether to include click-tracking string in tags.
          example: true
        includeClickThroughUrls:
          type: boolean
          description: Whether to include click-through URLs in tags.
          example: https://www.example.com
        keywordOption:
          type: string
          description: Option specifying how keywords are embedded in ad tags.
          enum:
          - PLACEHOLDER_WITH_LIST_OF_KEYWORDS
          - IGNORE
          - GENERATE_SEPARATE_TAG_FOR_EACH_KEYWORD
          example: PLACEHOLDER_WITH_LIST_OF_KEYWORDS
    Size:
      type: object
      description: Represents the dimensions of ads, placements, and creatives.
      properties:
        id:
          type: string
          description: ID of this size.
          example: abc123
        width:
          type: integer
          description: Width of this size in pixels.
          example: 10
        height:
          type: integer
          description: Height of this size in pixels.
          example: 10
        iab:
          type: boolean
          description: Whether this size is an IAB standard size.
          example: true
        kind:
          type: string
          readOnly: true
          default: dfareporting#size
          example: example_value
  responses:
    Forbidden:
      description: Insufficient permissions for the requested operation.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    Unauthorized:
      description: Authentication required or invalid credentials.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    NotFound:
      description: The requested resource was not found.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    BadRequest:
      description: Invalid request parameters or malformed request body.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  parameters:
    PageToken:
      name: pageToken
      in: query
      required: false
      description: Value of the nextPageToken from the previous result page.
      schema:
        type: string
    PlacementId:
      name: placementId
      in: path
      required: true
      description: Placement ID.
      schema:
        type: string
        pattern: ^\d+$
      example: '11223344'
    MaxResults:
      name: maxResults
      in: query
      required: false
      description: Maximum number of results to return. Default is 1000.
      schema:
        type: integer
        minimum: 0
        maximum: 1000
        default: 1000
    ProfileId:
      name: profileId
      in: path
      required: true
      description: The Campaign Manager 360 user profile ID. Each user has a profile for each account they have access to.
      schema:
        type: string
        pattern: ^\d+$
   

# --- truncated at 32 KB (32 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/google-campaign-manager/refs/heads/main/openapi/google-campaign-manager-placements-api-openapi.yml