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

# Get the Apple Ads daily series

> One metric of the Apple Ads report, day by day — the chart behind the
table. It uses the same project, cohort filters, and reporting basis,
in a different shape: no entity axis, no pagination, and no cohort
windows.

**Not derivable from the report.** The report's cohort metrics are
cumulative to date from each install date, while a series point is the
value attributed to that day. Use this endpoint for movement over
time, and the report for the breakdown by level.

**`null` is not zero.** A point is `null` when no value is available
for that day — for example, a day outside `coverage`, or a ratio metric
with an empty denominator. `0` is a reported zero.

**Filters that do not apply** to the requested metric are listed in
`filters_ignored`. This includes `filter[status]` and
`filter[delivery]`, which do not apply to a daily series.

**Length**: a series returns at most 366 daily points. For a longer
period, the oldest days are omitted and `truncated` is `true`.

**Availability**: available to accounts with Apple Ads enabled; other
accounts receive `404`. Contact support to enable Apple Ads.

**Rate limits**: the report and series endpoints are rate limited. A
`429` response includes `Retry-After`; wait that long before
retrying.



## OpenAPI

````yaml /api-reference/rest-api-v4.yaml get /analytics/apple-ads/report/series
openapi: 3.0.3
info:
  title: Qonversion REST API v4
  version: '4.0'
  description: >-
    Qonversion REST API v4 follows REST standards. It has predictable
    resource-oriented URLs, accepts JSON-encoded request bodies, returns
    JSON-encoded responses, and uses standard HTTP response codes,
    authentication, and verbs.
servers:
  - url: https://api.qonversion.io/v4
    description: Production
security:
  - secretAuth: []
tags:
  - name: Users
    description: Retrieve Qonversion users
  - name: User Properties
    description: Manage user-level attributes
  - name: Identities
    description: Link Qonversion users to your own auth IDs
  - name: Entitlements
    description: Entitlement definitions and user grants
  - name: Purchases
    description: A user's purchase history
  - name: Products
    description: Products configured in the Qonversion dashboard
  - name: Remote Configurations
    description: Server-driven configuration payloads and targeting delivered to the SDK
  - name: Customers
    description: Aggregated customer records, properties, permissions, and metrics
  - name: Segments
    description: Dynamic and system segments of users
  - name: Experiments
    description: Paywall and offering A/B experiments
  - name: Screens
    description: No-code paywall screens — CRUD, publish, analytics
  - name: Analytics
    description: Charts, cards, cohorts, LTV, and insights
  - name: Apple Ads
    description: Apple Ads reports, daily series, and connection status
  - name: Exports
    description: Asynchronous data exports
  - name: Events
    description: Event catalog
  - name: Scheduled Reports
    description: Recurring reports delivered to external destinations
  - name: Integrations
    description: Third-party integrations configuration
  - name: Automations
    description: Event-driven automations
  - name: Project Settings
    description: Project-level configuration, secret, and store credentials
paths:
  /analytics/apple-ads/report/series:
    get:
      tags:
        - Apple Ads
      summary: Get the Apple Ads daily series
      description: |-
        One metric of the Apple Ads report, day by day — the chart behind the
        table. It uses the same project, cohort filters, and reporting basis,
        in a different shape: no entity axis, no pagination, and no cohort
        windows.

        **Not derivable from the report.** The report's cohort metrics are
        cumulative to date from each install date, while a series point is the
        value attributed to that day. Use this endpoint for movement over
        time, and the report for the breakdown by level.

        **`null` is not zero.** A point is `null` when no value is available
        for that day — for example, a day outside `coverage`, or a ratio metric
        with an empty denominator. `0` is a reported zero.

        **Filters that do not apply** to the requested metric are listed in
        `filters_ignored`. This includes `filter[status]` and
        `filter[delivery]`, which do not apply to a daily series.

        **Length**: a series returns at most 366 daily points. For a longer
        period, the oldest days are omitted and `truncated` is `true`.

        **Availability**: available to accounts with Apple Ads enabled; other
        accounts receive `404`. Contact support to enable Apple Ads.

        **Rate limits**: the report and series endpoints are rate limited. A
        `429` response includes `Retry-After`; wait that long before
        retrying.
      operationId: v4GetAnalyticsAppleAdsSeries
      parameters:
        - name: from
          in: query
          required: true
          description: >-
            Start of the period, Unix seconds UTC. Bounds the days on the axis
            (and, for cohort metrics, the install dates).
          schema:
            type: integer
            format: int64
        - name: to
          in: query
          required: true
          description: End of the period, Unix seconds UTC. Must be greater than `from`.
          schema:
            type: integer
            format: int64
        - name: environment
          in: query
          required: false
          description: 0 = sandbox, 1 = production.
          schema:
            type: integer
            enum:
              - 0
              - 1
            default: 1
        - name: metric
          in: query
          required: false
          description: >-
            Which metric to plot. `spend`, `installs`, and `taps` are Apple
            metrics; `users`, `trials`, `trials_converted`, `paying`, `revenue`,
            `arpu`, and `arppu` are Qonversion cohort metrics; `roas` and
            `cost_per_subscription` combine both. The response echoes
            `is_cohort_metric` and a `semantics` caption that states what a
            point means — for example, revenue on day X is the revenue
            attributed to the cohort acquired on day X.
          schema:
            type: string
            default: spend
            enum:
              - spend
              - installs
              - taps
              - users
              - trials
              - trials_converted
              - paying
              - revenue
              - arpu
              - arppu
              - roas
              - cost_per_subscription
        - name: revenue_type
          in: query
          required: false
          description: >-
            Which revenue basis feeds the revenue-derived metrics (revenue,
            arpu, arppu, roas). Both bases exist for every day; this selects the
            one plotted.
          schema:
            type: string
            enum:
              - gross
              - net
            default: gross
        - name: currency
          in: query
          required: false
          description: >-
            ISO 4217 code, uppercase. Monetary metrics are converted at one
            midpoint rate for the whole period, reported in
            `currency_conversion`. If no exchange rate is available for the
            period, values are in USD: `currency` is `USD` and
            `currency_conversion.rate_unavailable_for` holds the requested code.
          schema:
            type: string
            pattern: ^[A-Z]{3}$
            default: USD
        - name: filter[country][]
          in: query
          required: false
          description: >-
            Narrow the cohort (and Apple metrics where Apple supports the split)
            by storefront country. Array-valued — repeat the key.
          style: form
          explode: true
          schema:
            type: array
            items:
              type: string
        - name: filter[campaign_name][]
          in: query
          required: false
          description: Narrow by campaign name. Array-valued — repeat the key.
          style: form
          explode: true
          schema:
            type: array
            items:
              type: string
        - name: filter[ad_set_name][]
          in: query
          required: false
          description: Narrow by ad group. Array-valued — repeat the key.
          style: form
          explode: true
          schema:
            type: array
            items:
              type: string
        - name: filter[media_source_name][]
          in: query
          required: false
          description: >-
            Narrows the Qonversion cohort only; Apple spend is not split by
            media source. When it does not apply to the requested metric, it is
            listed in `filters_ignored`. Array-valued — repeat the key.
          style: form
          explode: true
          schema:
            type: array
            items:
              type: string
        - name: filter_not[media_source_name][]
          in: query
          required: false
          description: >-
            Exclude these media sources from the cohort. Array-valued — repeat
            the key. This is the only supported exclusion; `filter_not` on
            `country`, `campaign_name`, or `ad_set_name` returns `400`.
          style: form
          explode: true
          schema:
            type: array
            items:
              type: string
      responses:
        '200':
          description: Daily series for the requested metric.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V4AnalyticsAppleAdsSeries'
        '400':
          description: Invalid request parameters
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V4Error'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V4Error'
        '403':
          description: Insufficient permissions
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V4Error'
        '404':
          description: Not found. Also returned to accounts without Apple Ads enabled.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V4Error'
        '429':
          description: >-
            Rate limited. The response includes `Retry-After`; wait that long
            before retrying.
          headers:
            Retry-After:
              description: Seconds to wait before retrying.
              schema:
                type: integer
                example: 60
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V4Error'
        '500':
          description: Internal error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V4Error'
        '502':
          description: Bad gateway
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V4Error'
        '504':
          description: Gateway timeout
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V4Error'
      security:
        - secretAuth: []
components:
  schemas:
    V4AnalyticsAppleAdsSeries:
      type: object
      required:
        - object
        - url
        - metric
        - unit
        - currency
        - revenue_type
        - semantics
        - is_cohort_metric
        - points
        - filters_ignored
      properties:
        object:
          type: string
          example: analytics_apple_ads_series
        url:
          type: string
          example: /v4/analytics/apple-ads/report/series
        metric:
          type: string
          description: The metric this series plots.
        unit:
          type: string
          enum:
            - day
          description: Granularity. Always `day` — a point is one UTC day.
        currency:
          type: string
          description: >-
            Currency of the monetary points. If no exchange rate is available
            for the period, values are in USD and `currency` is `USD` (see
            `currency_conversion`).
        revenue_type:
          type: string
          enum:
            - gross
            - net
        semantics:
          type: string
          description: >-
            One sentence stating what a point of this metric means, including
            the cohort attribution where it applies.
        is_cohort_metric:
          type: boolean
          description: >-
            `true` when a point is attributed to the cohort acquired that day
            (revenue, arpu, arppu, trials, and so on); `false` when it measures
            what happened that day (spend, installs, taps).
        points:
          type: array
          items:
            $ref: '#/components/schemas/V4AnalyticsAppleAdsSeriesPoint'
          description: >-
            One point per UTC day of the requested period, oldest first. Days
            without a value are present with `value: null`.
        filters_ignored:
          type: array
          items:
            type: string
          description: >-
            Filter codes that do not apply to the requested metric and were not
            applied, including `status` and `delivery`. Sorted. An empty array
            means every filter was applied.
        coverage:
          $ref: '#/components/schemas/V4AnalyticsAppleAdsSeriesCoverage'
        truncated:
          type: boolean
          description: >-
            Present and `true` when the requested period is longer than 366
            days; the oldest days are omitted.
        currency_conversion:
          type: object
          nullable: true
          description: >-
            Present when a currency other than USD was requested. Either the
            rate that was applied, or `rate_unavailable_for` with the requested
            code when no exchange rate is available for the period (values are
            then in USD).
          properties:
            rate:
              type: number
            rate_date:
              type: string
            method:
              type: string
              enum:
                - single_midpoint_rate
            rate_unavailable_for:
              type: string
    V4Error:
      type: object
      required:
        - error
      properties:
        error:
          type: object
          required:
            - type
            - code
            - message
          properties:
            type:
              type: string
              enum:
                - request
                - resource
                - logical
                - internal
            code:
              type: string
              description: |
                Machine-readable snake_case error code. Examples include
                `invalid_data`, `invalid_request`, `invalid_product_id`,
                `not_found`, `already_exists`, `offering_already_exists`,
                `product_not_in_project`, `cannot_set_main_directly`,
                `cannot_demote_main`, `cannot_patch_experiment_variant`,
                `cannot_delete_experiment_variant`, and
                `cannot_setmain_experiment_variant`. Resource-specific codes
                are documented on the corresponding reference page.
            message:
              type: string
              description: Human-readable description. May change; do not parse.
            details:
              type: array
              nullable: true
              description: Per-field validation errors, present on 400 validation failures.
              items:
                type: object
                properties:
                  field:
                    type: string
                  message:
                    type: string
    V4AnalyticsAppleAdsSeriesPoint:
      type: object
      description: One UTC day of the axis.
      required:
        - date
        - value
      properties:
        date:
          type: string
          format: date
          description: UTC date, YYYY-MM-DD.
        value:
          type: number
          nullable: true
          description: >-
            The metric's value for that day, or `null` when no value is
            available — for example, a day outside `coverage`, or a ratio metric
            with an empty denominator. `null` is never zero; `0` is a reported
            zero.
    V4AnalyticsAppleAdsSeriesCoverage:
      type: object
      description: >-
        Dates with Apple spend data inside the requested period. Present only
        for metrics that use Apple spend data (`spend`, `installs`, `taps`,
        `roas`, `cost_per_subscription`).
      required:
        - from
        - to
        - error
        - currency_supported
      properties:
        from:
          type: string
          format: date
          nullable: true
          description: >-
            First covered UTC date, or `null` when no date in the period has
            spend data.
        to:
          type: string
          format: date
          nullable: true
          description: Last covered UTC date.
        error:
          type: boolean
          description: >-
            `true` when spend data is unavailable for this request (distinct
            from an empty coverage window); spend-based points are then `null`.
            Request the series again later.
        currency_supported:
          type: boolean
          description: >-
            `false` when spend cannot be converted into the requested currency;
            monetary points are then `null`.
        spend_currencies:
          type: array
          items:
            type: string
          description: Currencies of the spend data for this period.
  securitySchemes:
    secretAuth:
      type: http
      scheme: bearer
      bearerFormat: sk_…
      description: >-
        Bearer authentication using the project **Secret Key** (prefixed with
        `sk_`), used exactly as shown in the dashboard. Endpoints that support
        sandbox data take an explicit `environment` field or parameter. All v4
        public endpoints require the Secret Key — see
        [Authentication](/reference/v4/authentication). Never expose the Secret
        Key in client-side code.

````