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

# Get Campaign Report By Product

> Endpoint to get a campaign's total behavioral summary report, divided by products, between given dates.



## OpenAPI

````yaml /openapi.json get /public/v1/reporting-service/campaigns/{campaign-id}/products
openapi: 3.1.0
info:
  title: Topsort Endpoints v2 API Reference
  description: >
    In order for a storefront to be able to run auctions in Topsort and report
    auction-related events back to Topsort,

    both the `/v2/auctions` and `/v2/events` endpoints must be integrated.

    Below are the endpoint and model definitions for each.
  contact:
    email: wicha@topsort.com
  license:
    name: Apache 2.0
    url: http://www.apache.org/licenses/LICENSE-2.0.html
  x-logo:
    url: https://assets.topsort.com/Topsort_logo_icon_dark.svg
    backgroundColor: '#fff'
    altText: Topsort
  version: 2.0.0
servers:
  - url: https://api.topsort.com
    description: Base API URL
security: []
tags:
  - name: Auctions
    description: >-
      An auction determines which products should be promoted based on the
      vendors' bids.
  - name: Events
    description: >-
      Events are sent to Topsort as part of the attribution and reporting
      journey.
  - name: Toptimize
    description: >
      An out-of-the-box solution for prediction, ranking, retrieval, and other
      elements of ad selection.
  - name: Toppie API
    description: Toppie management API.
  - name: Campaign API
    description: Full-featured campaign management API for banners and sponsored listings.
  - name: Catalog API
    description: Products catalog management API.
  - name: Billing API
    description: Marketplace and Vendor Billing management API.
  - name: Reporting API
    description: Marketplace, Vendor, Campaign, and product reporting API.
  - name: Invitation API
    description: Vendor invitations management API.
  - name: User API
    description: User management API.
  - name: Webhooks API
    description: Webhooks API that allows event-driven automation.
  - name: Assets API
    description: Assets management API.
  - name: Segments Service
    description: Segments Service.
  - name: Forecasting Service
    description: Toptimize Forecasting Service.
  - name: Offsite Ads API
    description: Offsite Ads API that allows to manage offsite ads campaigns.
  - name: Media API
    description: Ad configuration API.
paths:
  /public/v1/reporting-service/campaigns/{campaign-id}/products:
    get:
      tags:
        - Reporting API
      summary: Get Campaign Report By Product
      description: >-
        Endpoint to get a campaign's total behavioral summary report, divided by
        products, between given dates.
      operationId: get_campaign_report_by_product
      parameters:
        - name: campaign-id
          in: path
          required: true
          schema:
            type: string
            format: uuid
            description: The ID of the campaign.
          description: The ID of the campaign.
        - name: limit
          in: query
          required: false
          schema:
            type: integer
            maximum: 100
            minimum: 0
            description: The pagination limit.
            default: 100
          description: The pagination limit.
        - name: next_page
          in: query
          required: false
          schema:
            description: >-
              Pagination cursor as provided in an earlier response. If provided
              will fetch the next page of results.
            oneOf:
              - type: string
              - type: 'null'
          description: >-
            Pagination cursor as provided in an earlier response. If provided
            will fetch the next page of results.
        - name: start_date
          in: query
          required: true
          schema:
            type: string
            format: date
            description: The start date for which reports will be generated.
          description: The start date for which reports will be generated.
        - name: end_date
          in: query
          required: true
          schema:
            type: string
            format: date
            description: The end date for which reports will be generated.
          description: The end date for which reports will be generated.
        - name: order_by
          in: query
          required: false
          schema:
            description: >-
              Order by field. Sorts by numeric values (impressions, clicks,
              etc). Only one dimension allowed.
            oneOf:
              - $ref: >-
                  #/components/schemas/Advanced_APIs_CampaignReportByProductOrderByDimension
              - type: 'null'
          description: >-
            Order by field. Sorts by numeric values (impressions, clicks, etc).
            Only one dimension allowed. Allowed values are in the schema
            (CampaignReportByProductOrderByDimension); other dimensions return
            422.
        - name: direction
          in: query
          required: false
          schema:
            description: 'Order direction. Must be one of: asc, desc.'
            oneOf:
              - $ref: '#/components/schemas/Advanced_APIs_ReportingOrderByDirection'
              - type: 'null'
          description: 'Order direction. Must be one of: asc, desc.'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Advanced_APIs_CampaignKPIsByProduct'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Advanced_APIs_HTTPValidationError'
      security:
        - Advanced_APIs_HTTPBearer: []
components:
  schemas:
    Advanced_APIs_CampaignReportByProductOrderByDimension:
      type: string
      description: >-
        Dimension to order by for the campaign report by product endpoint. Only
        these values are accepted; other ReportingDimension values (e.g.
        vendor_id, campaign_id) return 422.
      enum:
        - impressions
        - charged_impressions
        - clicks
        - charged_clicks
        - purchase_count
        - purchase_revenue
        - ad_spend
        - cpc
        - ctr
        - conversion_rate
        - roas
      title: CampaignReportByProductOrderByDimension
    Advanced_APIs_ReportingOrderByDirection:
      type: string
      enum:
        - asc
        - desc
      title: ReportingOrderByDirection
      description: The direction to order by.
    Advanced_APIs_CampaignKPIsByProduct:
      properties:
        hasMore:
          type: boolean
          title: Hasmore
          description: >-
            Flag that indicates whether more results are available. `true`
            indicates there is a next page of results. `false` indicates  this
            response contains the last page of results.
        nextPage:
          title: Nextpage
          description: >-
            Pagination cursor. Provide this value as a `next_page` query
            parameter in a new request to retrieve the next page of results.
          examples:
            - SSBzb2xlbW5seSBzd2VhciB0aGF0IEkgYW0gdXAgdG8gbm8gZ29vZAo=
          oneOf:
            - type: string
              minLength: 1
            - type: 'null'
        reports:
          items:
            $ref: '#/components/schemas/Advanced_APIs_ProductKPIs'
          type: array
          title: Reports
          description: A list with report data, separated by product
      type: object
      required:
        - hasMore
        - reports
      title: CampaignKPIsByProduct
    Advanced_APIs_HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/Advanced_APIs_ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    Advanced_APIs_ProductKPIs:
      properties:
        adSpend:
          type: integer
          minimum: 0
          title: Adspend
          description: >-
            Amount spent on ads during the selected period in minor units of
            currency.
        cpc:
          type: number
          title: Cpc
          description: Average cost per click during the selected period.
        cpm:
          type: number
          title: Cpm
          description: Average cost per thousand impressions during the selected period.
          default: 0
        ctr:
          type: number
          title: Ctr
          description: The click through rate during the selected period.
        conversionRate:
          type: number
          title: Conversionrate
          description: The conversion rate during the selected period.
        impressions:
          type: integer
          minimum: 0
          title: Impressions
          description: Number of impressions during the selected period.
        chargedImpressions:
          type: integer
          minimum: 0
          title: Chargedimpressions
          description: Amount of charged impressions during the selected period.
        clicks:
          type: integer
          minimum: 0
          title: Clicks
          description: Number of clicks during the selected period.
        chargedClicks:
          type: integer
          minimum: 0
          title: Chargedclicks
          description: Amount of charged clicks during the selected period.
        purchaseCount:
          type: integer
          minimum: 0
          title: Purchasecount
          description: Number of purchases during the selected period.
        purchaseRevenue:
          type: integer
          minimum: 0
          title: Purchaserevenue
          description: >-
            Revenue from promoted sales during the selected period in minor
            units of currency.
        roas:
          type: number
          title: Roas
          description: The return on ad spend during the selected period.
        acos:
          type: number
          title: Acos
          description: >-
            Advertising cost of sales (inverse of ROAS) during the selected
            period.
          default: 0
        productId:
          type: string
          title: Productid
          description: The id of the product whose report data we want to see
        quantity:
          type: integer
          minimum: 0
          title: Quantity
          description: Number of purchased units during the selected period.
      type: object
      required:
        - adSpend
        - cpc
        - ctr
        - conversionRate
        - impressions
        - chargedImpressions
        - clicks
        - chargedClicks
        - purchaseCount
        - purchaseRevenue
        - roas
        - productId
        - quantity
      title: ProductKPIs
      description: KPI data for a particular product within a specific campaign.
    Advanced_APIs_ValidationError:
      properties:
        loc:
          items:
            oneOf:
              - type: string
              - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
      type: object
      required:
        - loc
        - msg
        - type
      title: ValidationError
  securitySchemes:
    Advanced_APIs_HTTPBearer:
      type: http
      description: >-
        A valid API key generated in Topsort's UI. Use the TSE API key if
        calling auctions or events API, otherwise use the TSC API key.
      scheme: bearer

````