> ## Documentation Index
> Fetch the complete documentation index at: https://docs.merchantspring.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Retrieve multi-channel advertising ad group performance

> Returns paginated advertising ad group performance across up to 5 channels for the selected date range, optionally filtered to specific campaigns. Values are currency-adjusted based on each store's country and the requested currency. Supports filtering by ad group status, sorting by any response column, and zero-based page indexing.



## OpenAPI

````yaml /api-reference/openapi.json get /advertising/adGroups
openapi: 3.0.1
info:
  title: MerchantSpring Public API
  version: 1.0.0
servers:
  - url: https://mm-api.merchantspring.io
    description: Production
  - url: https://mm-api-staging.merchantspring.io
    description: Staging
security: []
tags:
  - name: advertising
    x-group: Advertising
  - name: channel
    x-group: Channel
  - name: content-change
    x-group: Content Change
  - name: custom-group
    x-group: Custom Group
  - name: order
    x-group: Order
  - name: product
    x-group: Product
  - name: report
    x-group: Report
  - name: vendor
    x-group: Vendor
  - name: tag
    x-group: Tag
  - name: profitability
    x-group: Profitability
  - name: targets
    x-group: Targets
paths:
  /advertising/adGroups:
    get:
      tags:
        - advertising
      summary: Retrieve multi-channel advertising ad group performance
      description: >-
        Returns paginated advertising ad group performance across up to 5
        channels for the selected date range, optionally filtered to specific
        campaigns. Values are currency-adjusted based on each store's country
        and the requested currency. Supports filtering by ad group status,
        sorting by any response column, and zero-based page indexing.
      operationId: getAdvertisingAdGroups
      parameters:
        - name: channelId
          in: query
          description: Channel ID. Repeat the parameter for multiple channels (max 5).
          required: true
          schema:
            type: array
            items:
              type: string
        - name: campaignId
          in: query
          description: >-
            Filter to ad groups belonging to the given campaign(s). Repeatable
            (max 10), numeric.
          required: false
          schema:
            type: array
            items:
              type: string
        - name: fromDate
          in: query
          description: Start of date range as unix epoch seconds. Defaults to 30 days ago.
          required: false
          schema:
            type: integer
        - name: toDate
          in: query
          description: >-
            End of date range as unix epoch seconds. Defaults to now. The range
            must not exceed 6 months.
          required: false
          schema:
            type: integer
        - name: currency
          in: query
          description: 3-letter ISO currency code (default USD).
          required: false
          schema:
            type: string
        - name: status
          in: query
          description: Filter by ad group status bucket. Repeatable.
          required: false
          schema:
            type: array
            items:
              type: string
              enum:
                - active
                - paused
                - archived
        - name: sortKey
          in: query
          description: >-
            Response column to sort by, e.g. ad_group_name, cost, impressions,
            clicks, acos, roas (default ad_group_name).
          required: false
          schema:
            type: string
        - name: sortOrder
          in: query
          description: Sort direction (default desc).
          required: false
          schema:
            type: string
            enum:
              - asc
              - desc
        - name: pageIndex
          in: query
          description: Zero-based page index (default 0).
          required: false
          schema:
            type: integer
        - name: pageSize
          in: query
          description: Number of ad groups per page, max 100 (default 10).
          required: false
          schema:
            type: integer
      responses:
        '200':
          description: Successful operation
          headers:
            Access-Control-Allow-Origin:
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetAdvertisingAdGroupsResponse'
        '400':
          description: Invalid input
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                tooManyCampaignIds:
                  summary: More than 10 campaignId values supplied
                  value:
                    status: error
                    error: a maximum of 10 campaignId values is allowed
                campaignIdNotNumeric:
                  summary: campaignId must be digits only
                  value:
                    status: error
                    error: campaignId must be numeric
                channelNotAccessible:
                  summary: channelId unknown or not visible to this API key
                  value:
                    status: error
                    error: The channelId of 888423 are invalid or not accessible
      security:
        - api_key: []
components:
  schemas:
    GetAdvertisingAdGroupsResponse:
      type: object
      properties:
        data:
          type: array
          items:
            type: object
            properties:
              channel_id:
                type: string
              campaign_id:
                type: string
              ad_group_id:
                type: string
              ad_type:
                type: string
              campaign_name:
                type: string
              ad_group_name:
                type: string
              ad_group_status:
                type: string
              default_bid:
                type: number
                nullable: true
              cost_type:
                type: string
                nullable: true
              impressions:
                type: number
              clicks:
                type: number
              cost:
                type: number
              attributed_sales:
                type: number
              attributed_sales_same_sku:
                type: number
              attributed_conversions:
                type: number
              attributed_conversions_same_sku:
                type: number
              attributed_units_ordered:
                type: number
              attributed_units_ordered_same_sku:
                type: number
              attributed_orders_ntb:
                type: number
              attributed_units_ordered_ntb:
                type: number
              attributed_sales_ntb:
                type: number
              attributed_orders_ntb_percentage:
                type: number
                nullable: true
              attributed_units_ordered_ntb_percentage:
                type: number
                nullable: true
              attributed_sales_ntb_percentage:
                type: number
                nullable: true
              attributed_detail_page_views_clicks:
                type: number
              acos:
                type: number
              click_through_rate:
                type: number
              cost_per_click:
                type: number
              conversion_rate:
                type: number
              roas:
                type: number
        pagination:
          type: object
          properties:
            pageIndex:
              type: integer
            pageSize:
              type: integer
            count:
              type: integer
        meta:
          type: object
          properties:
            currency:
              type: string
    ErrorResponse:
      type: object
      properties:
        status:
          type: string
          enum:
            - error
        error:
          type: string
          description: >-
            Human-readable message. Validation failures list every failing rule,
            comma-separated.
      example:
        status: error
        error: Invalid request parameters
  securitySchemes:
    api_key:
      type: apiKey
      name: x-api-key
      in: header

````