Campaign Manager 360 API

Manage your DoubleClick Campaign Manager ad campaigns and reports programmatically. Create, retrieve, update, and delete campaigns, creatives, placements, and generate comprehensive reporting data.

Documentation

Specifications

SDKs

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-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Google Campaign Manager Campaign Manager 360 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

externalDocs:
  description: Campaign Manager 360 API Documentation
  url: https://developers.google.com/doubleclick-advertisers/rest/v4

servers:
- url: https://dfareporting.googleapis.com/dfareporting/v4
  description: Campaign Manager 360 API Production Server

tags:
- name: Ads
  description: >-
    Manage ad configurations within campaigns. Ads define the creative
    content, delivery schedules, targeting rules, and placement
    assignments that determine how and where advertising is served
    to users.
- name: Campaigns
  description: >-
    Manage advertising campaigns. Campaigns serve as top-level
    organizational containers that group ads, placements, and
    creatives under a single advertiser with shared start and end
    dates, budgets, and targeting configurations.
- 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.
- name: Reports
  description: >-
    Create, configure, and run reports to analyze campaign performance.
    Reports support multiple types including standard, reach, path to
    conversion, cross-dimension reach, floodlight, and cross-media
    reach, with configurable dimensions, metrics, and date ranges.

security:
- OAuth2:
  - https://www.googleapis.com/auth/dfareporting
  - https://www.googleapis.com/auth/dfatrafficking

paths:
  /userprofiles/{profileId}/campaigns:
    get:
      operationId: listCampaigns
      summary: Google Campaign Manager List Campaigns
      description: >-
        Retrieves a list of campaigns, possibly filtered. Results are
        returned in descending order by last modified time. Use query
        parameters to filter by advertiser, archive status, search
        string, or specific campaign IDs.
      tags:
      - Campaigns
      security:
      - OAuth2:
        - https://www.googleapis.com/auth/dfatrafficking
      parameters:
      - $ref: '#/components/parameters/ProfileId'
      - name: advertiserIds
        in: query
        required: false
        description: Select only campaigns that belong to these advertisers.
        schema:
          type: array
          items:
            type: string
        style: form
        explode: true
      - name: ids
        in: query
        required: false
        description: Select only campaigns with these IDs.
        schema:
          type: array
          items:
            type: string
        style: form
        explode: true
      - name: searchString
        in: query
        required: false
        description: >-
          Search string for filtering results. Matches against campaign
          name and ID fields.
        schema:
          type: string
      - name: archived
        in: query
        required: false
        description: Select only archived campaigns. Default is false.
        schema:
          type: boolean
          default: false
      - name: sortField
        in: query
        required: false
        description: Field by which to sort the list.
        schema:
          type: string
          enum:
          - ID
          - NAME
          default: ID
      - name: sortOrder
        in: query
        required: false
        description: Order of sorted results.
        schema:
          type: string
          enum:
          - ASCENDING
          - DESCENDING
          default: ASCENDING
      - $ref: '#/components/parameters/MaxResults'
      - $ref: '#/components/parameters/PageToken'
      responses:
        '200':
          description: List of campaigns.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CampaignsListResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'

      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
    post:
      operationId: insertCampaign
      summary: Google Campaign Manager Create a Campaign
      description: >-
        Inserts a new campaign. The campaign is created under the
        specified advertiser with the provided configuration. Required
        fields include name, advertiserId, startDate, and endDate.
      tags:
      - Campaigns
      parameters:
      - $ref: '#/components/parameters/ProfileId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Campaign'
            example:
              name: Q1 2026 Brand Awareness Campaign
              advertiserId: '12345678'
              startDate: '2026-01-01'
              endDate: '2026-03-31'
              defaultLandingPageId: '98765432'
      responses:
        '200':
          description: Created campaign.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Campaign'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'

      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /userprofiles/{profileId}/campaigns/{campaignId}:
    get:
      operationId: getCampaign
      summary: Google Campaign Manager Get a Campaign
      description: Gets one campaign by ID.
      tags:
      - Campaigns
      security:
      - OAuth2:
        - https://www.googleapis.com/auth/dfatrafficking
      parameters:
      - $ref: '#/components/parameters/ProfileId'
      - $ref: '#/components/parameters/CampaignId'
      responses:
        '200':
          description: Campaign details.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Campaign'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'

      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
    put:
      operationId: updateCampaign
      summary: Google Campaign Manager Update a Campaign
      description: >-
        Updates an existing campaign. All writable fields must be
        provided in the request body; unset writable fields will be
        reset to their default values.
      tags:
      - Campaigns
      parameters:
      - $ref: '#/components/parameters/ProfileId'
      - $ref: '#/components/parameters/CampaignId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Campaign'
      responses:
        '200':
          description: Updated campaign.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Campaign'
        '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: patchCampaign
      summary: Google Campaign Manager Patch a Campaign
      description: >-
        Updates an existing campaign. This method supports patch
        semantics; only the fields specified in the request body are
        modified.
      tags:
      - Campaigns
      parameters:
      - $ref: '#/components/parameters/ProfileId'
      - $ref: '#/components/parameters/CampaignId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Campaign'
      responses:
        '200':
          description: Patched campaign.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Campaign'
        '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}/ads:
    get:
      operationId: listAds
      summary: Google Campaign Manager List Ads
      description: >-
        Retrieves a list of ads, possibly filtered. Results are returned
        in descending order by last modified time. Use query parameters
        to filter by campaign, advertiser, type, or other criteria.
      tags:
      - Ads
      security:
      - OAuth2:
        - https://www.googleapis.com/auth/dfatrafficking
      parameters:
      - $ref: '#/components/parameters/ProfileId'
      - name: campaignIds
        in: query
        required: false
        description: Select only ads belonging to these campaigns.
        schema:
          type: array
          items:
            type: string
        style: form
        explode: true
      - name: advertiserIds
        in: query
        required: false
        description: Select only ads belonging to these advertisers.
        schema:
          type: array
          items:
            type: string
        style: form
        explode: true
      - name: ids
        in: query
        required: false
        description: Select only ads with these IDs.
        schema:
          type: array
          items:
            type: string
        style: form
        explode: true
      - name: placementIds
        in: query
        required: false
        description: Select only ads with these placement IDs assigned.
        schema:
          type: array
          items:
            type: string
        style: form
        explode: true
      - name: type
        in: query
        required: false
        description: Select only ads with the specified type.
        schema:
          type: string
          enum:
          - AD_SERVING_STANDARD_AD
          - AD_SERVING_DEFAULT_AD
          - AD_SERVING_CLICK_TRACKER
          - AD_SERVING_TRACKING
          - AD_SERVING_BRAND_SAFE_AD
      - name: active
        in: query
        required: false
        description: Select only active ads.
        schema:
          type: boolean
      - name: archived
        in: query
        required: false
        description: Select only archived ads.
        schema:
          type: boolean
          default: false
      - name: searchString
        in: query
        required: false
        description: >-
          Search string for filtering results. Matches against ad
          name and ID fields.
        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 ads.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AdsListResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'

      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
    post:
      operationId: insertAd
      summary: Google Campaign Manager Create an Ad
      description: >-
        Inserts a new ad. The ad is created under the specified campaign
        and advertiser with the provided delivery, creative rotation,
        and targeting configuration.
      tags:
      - Ads
      parameters:
      - $ref: '#/components/parameters/ProfileId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Ad'
            example:
              name: Homepage Banner Ad
              campaignId: '12345678'
              advertiserId: '87654321'
              type: AD_SERVING_STANDARD_AD
              active: true
              startTime: '2026-01-01T00:00:00Z'
              endTime: '2026-03-31T23:59:59Z'
      responses:
        '200':
          description: Created ad.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Ad'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'

      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /userprofiles/{profileId}/ads/{adId}:
    get:
      operationId: getAd
      summary: Google Campaign Manager Get an Ad
      description: Gets one ad by ID.
      tags:
      - Ads
      security:
      - OAuth2:
        - https://www.googleapis.com/auth/dfatrafficking
      parameters:
      - $ref: '#/components/parameters/ProfileId'
      - $ref: '#/components/parameters/AdId'
      responses:
        '200':
          description: Ad details.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Ad'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'

      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
    put:
      operationId: updateAd
      summary: Google Campaign Manager Update an Ad
      description: >-
        Updates an existing ad. All writable fields must be provided
        in the request body.
      tags:
      - Ads
      parameters:
      - $ref: '#/components/parameters/ProfileId'
      - $ref: '#/components/parameters/AdId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Ad'
      responses:
        '200':
          description: Updated ad.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Ad'
        '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: patchAd
      summary: Google Campaign Manager Patch an Ad
      description: >-
        Updates an existing ad. This method supports patch semantics;
        only the fields specified in the request body are modified.
      tags:
      - Ads
      parameters:
      - $ref: '#/components/parameters/ProfileId'
      - $ref: '#/components/parameters/AdId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Ad'
      responses:
        '200':
          description: Patched ad.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Ad'
        '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:
    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
  /userprofiles/{profileId}/reports:
    get:
      operationId: listReports
      summary: Google Campaign Manager List Reports
      description: >-
        Retrieves list of reports. Results are ordered by last modified
        time descending.
      tags:
      - Reports
      security:
      - OAuth2:
        - https://www.googleapis.com/auth/dfareporting
      parameters:
      - $ref: '#/components/parameters/ProfileId'
      - name: scope
        in: query
        required: false
        description: The scope that defines which results are returned.
        schema:
          type: string
          enum:
          - ALL
          - MINE
          default: MINE
      - name: sortField
        in: query
        required: false
        schema:
          type: string
          enum:
          - ID
          - LAST_MODIFIED_TIME
          - NAME
          default: LAST_MODIFIED_TIME
      - name: sortOrder
        in: query
        required: false
        schema:
          type: string
          enum:
          - ASCENDING
          - DESCENDING
          default: DESCENDING
      - $ref: '#/components/parameters/MaxResults'
      - $ref: '#/components/parameters/PageToken'
      responses:
        '200':
          description: List of reports.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReportsListResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'

      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
    post:
      operationId: insertReport
      summary: Google Campaign Manager Create a Report
      description: >-
        Creates a report. Configure the report type, criteria with
        dimensions and metrics, date range, and optional scheduling
        for automated delivery.
      tags:
      - Reports
      parameters:
      - $ref: '#/components/parameters/ProfileId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Report'
            example:
              name: Weekly Campaign Performance Report
              type: STANDARD
              format: CSV
              criteria:
                dateRange:
                  relativeDateRange: LAST_7_DAYS
                dimensions:
                - name: campaign
                - name: ad
                metricNames:
                - impressions
                - clicks
                - clickRate
                - totalConversions
      responses:
        '200':
          description: Created report.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Report'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'

      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /userprofiles/{profileId}/reports/{reportId}:
    get:
      operationId: getReport
      summary: Google Campaign Manager Get a Report
      description: Retrieves a report by its ID.
      tags:
      - Reports
      security:
      - OAuth2:
        - https://www.googleapis.com/auth/dfareporting
      parameters:
      - $ref: '#/components/parameters/ProfileId'
      - $ref: '#/components/parameters/ReportId'
      responses:
        '200':
          description: Report details.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Report'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'

      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
    put:
      operationId: updateReport
      summary: Google Campaign Manager Update a Report
      description: Updates a report.
      tags:
      - Reports
      parameters:
      - $ref: '#/components/parameters/ProfileId'
      - $ref: '#/components/parameters/ReportId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Report'
      responses:
        '200':
          description: Updated report.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Report'
        '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: patchReport
      summary: Google Campaign Manager Patch a Report
      description: Updates a report. This method supports patch semantics.
      tags:
      - Reports
      parameters:
      - $ref: '#/components/parameters/ProfileId'
      - $ref: '#/components/parameters/ReportId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Report'
      responses:
        '200':
          description: Patched report.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Report'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidd

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