naftiko: 1.0.0-alpha2 info: label: Google Campaign Manager Campaign Manager 360 API — Placements description: 'Google Campaign Manager Campaign Manager 360 API — Placements. 6 operations. Lead operation: Google Campaign Manager List Placements. Self-contained Naftiko capability covering one Google Campaign Manager business surface.' tags: - Google Campaign Manager - Placements created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: GOOGLE_CAMPAIGN_MANAGER_API_KEY: GOOGLE_CAMPAIGN_MANAGER_API_KEY capability: consumes: - type: http namespace: google-campaign-manager-placements baseUri: https://dfareporting.googleapis.com/dfareporting/v4 description: Google Campaign Manager Campaign Manager 360 API — Placements business capability. Self-contained, no shared references. resources: - name: userprofiles-profileId-placements path: /userprofiles/{profileId}/placements operations: - name: listplacements method: GET description: Google Campaign Manager List Placements outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: campaignIds in: query type: array description: Select only placements belonging to these campaigns. - name: advertiserIds in: query type: array description: Select only placements belonging to these advertisers. - name: ids in: query type: array description: Select only placements with these IDs. - name: siteIds in: query type: array description: Select only placements associated with these sites. - name: groupIds in: query type: array description: Select only placements belonging to these placement groups. - name: compatibilities in: query type: string description: Select only placements with these compatibilities. - name: searchString in: query type: string description: Search string for filtering results. - name: sortField in: query type: string - name: sortOrder in: query type: string - name: insertplacement method: POST description: Google Campaign Manager Create a Placement outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: userprofiles-profileId-placements-generatetags path: /userprofiles/{profileId}/placements/generatetags operations: - name: generateplacementtags method: POST description: Google Campaign Manager Generate Placement Tags outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: placementIds in: query type: array description: Generate tags for these placements. - name: tagFormats in: query type: array description: Tag formats to generate. - name: campaignId in: query type: string description: Generate placements belonging to this campaign. - name: userprofiles-profileId-placements-placementId path: /userprofiles/{profileId}/placements/{placementId} operations: - name: getplacement method: GET description: Google Campaign Manager Get a Placement outputRawFormat: json outputParameters: - name: result type: object value: $. - name: updateplacement method: PUT description: Google Campaign Manager Update a Placement outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: patchplacement method: PATCH description: Google Campaign Manager Patch a Placement outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true authentication: type: bearer token: '{{env.GOOGLE_CAMPAIGN_MANAGER_API_KEY}}' exposes: - type: rest namespace: google-campaign-manager-placements-rest port: 8080 description: REST adapter for Google Campaign Manager Campaign Manager 360 API — Placements. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/userprofiles/{profileid}/placements name: userprofiles-profileid-placements description: REST surface for userprofiles-profileId-placements. operations: - method: GET name: listplacements description: Google Campaign Manager List Placements call: google-campaign-manager-placements.listplacements with: campaignIds: rest.campaignIds advertiserIds: rest.advertiserIds ids: rest.ids siteIds: rest.siteIds groupIds: rest.groupIds compatibilities: rest.compatibilities searchString: rest.searchString sortField: rest.sortField sortOrder: rest.sortOrder outputParameters: - type: object mapping: $. - method: POST name: insertplacement description: Google Campaign Manager Create a Placement call: google-campaign-manager-placements.insertplacement with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/userprofiles/{profileid}/placements/generatetags name: userprofiles-profileid-placements-generatetags description: REST surface for userprofiles-profileId-placements-generatetags. operations: - method: POST name: generateplacementtags description: Google Campaign Manager Generate Placement Tags call: google-campaign-manager-placements.generateplacementtags with: placementIds: rest.placementIds tagFormats: rest.tagFormats campaignId: rest.campaignId outputParameters: - type: object mapping: $. - path: /v1/userprofiles/{profileid}/placements/{placementid} name: userprofiles-profileid-placements-placementid description: REST surface for userprofiles-profileId-placements-placementId. operations: - method: GET name: getplacement description: Google Campaign Manager Get a Placement call: google-campaign-manager-placements.getplacement outputParameters: - type: object mapping: $. - method: PUT name: updateplacement description: Google Campaign Manager Update a Placement call: google-campaign-manager-placements.updateplacement with: body: rest.body outputParameters: - type: object mapping: $. - method: PATCH name: patchplacement description: Google Campaign Manager Patch a Placement call: google-campaign-manager-placements.patchplacement with: body: rest.body outputParameters: - type: object mapping: $. - type: mcp namespace: google-campaign-manager-placements-mcp port: 9090 transport: http description: MCP adapter for Google Campaign Manager Campaign Manager 360 API — Placements. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: google-campaign-manager-list-placements description: Google Campaign Manager List Placements hints: readOnly: true destructive: false idempotent: true call: google-campaign-manager-placements.listplacements with: campaignIds: tools.campaignIds advertiserIds: tools.advertiserIds ids: tools.ids siteIds: tools.siteIds groupIds: tools.groupIds compatibilities: tools.compatibilities searchString: tools.searchString sortField: tools.sortField sortOrder: tools.sortOrder outputParameters: - type: object mapping: $. - name: google-campaign-manager-create-placement description: Google Campaign Manager Create a Placement hints: readOnly: false destructive: false idempotent: false call: google-campaign-manager-placements.insertplacement with: body: tools.body outputParameters: - type: object mapping: $. - name: google-campaign-manager-generate-placement description: Google Campaign Manager Generate Placement Tags hints: readOnly: false destructive: false idempotent: false call: google-campaign-manager-placements.generateplacementtags with: placementIds: tools.placementIds tagFormats: tools.tagFormats campaignId: tools.campaignId outputParameters: - type: object mapping: $. - name: google-campaign-manager-get-placement description: Google Campaign Manager Get a Placement hints: readOnly: true destructive: false idempotent: true call: google-campaign-manager-placements.getplacement outputParameters: - type: object mapping: $. - name: google-campaign-manager-update-placement description: Google Campaign Manager Update a Placement hints: readOnly: false destructive: false idempotent: true call: google-campaign-manager-placements.updateplacement with: body: tools.body outputParameters: - type: object mapping: $. - name: google-campaign-manager-patch-placement description: Google Campaign Manager Patch a Placement hints: readOnly: false destructive: false idempotent: true call: google-campaign-manager-placements.patchplacement with: body: tools.body outputParameters: - type: object mapping: $.