openapi: 3.1.0
info:
  title: Adapty Dışa Aktarma Analitik API'si
  version: 1.0.0
  description: |
    Adapty Dışa Aktarma Analitik API'si, analitik verilerinizi CSV veya JSON formatında dışa aktarmanıza olanak tanır;
    bu sayede uygulamanızın performans metriklerini daha ayrıntılı inceleme, raporları özelleştirme
    ve zaman içindeki eğilimleri analiz etme esnekliği elde edersiniz. Bu API ile ayrıntılı analitik verilerini
    kolayca çekebilir, verileri izlemeyi, paylaşmayı ve gerektiğinde veri içgörülerinizi iyileştirmeyi
    pratik hale getirebilirsiniz.
servers:
  - url: https://api-admin.adapty.io
    description: Üretim sunucusu
paths:
  /api/v1/client-api/metrics/analytics/:
    post:
      summary: Analitik verilerini al
      description: "Kullanıcı davranışı ve performans metriklerine ilişkin içgörüler için grafiklerde kullanılmak üzere analitik verilerini alır.\n\nHız sınırı: Saniyede 2 istek."
      operationId: retrieveAnalyticsData
      security:
        - apikeyAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AnalyticsDataRequest'
            examples:
              basic:
                summary: Temel analitik veri isteği
                value:
                  chart_id: "revenue"
                  filters:
                    date: ["2024-01-01", "2024-12-31"]
                    country: ["us"]
                    attribution_channel: ["social_media_influencers"]
                  period_unit: "week"
                  segmentation: "attribution_campaign"
      responses:
        '200':
          description: Analitik verileri başarıyla alındı
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AnalyticsDataResponse'
              example:
                data:
                  revenue:
                    data: []
                    value: 0.0
                    value_from: null
                    value_to: null
                    compare_value_from: null
                    compare_value_to: null
                    title: "revenue"
                    type: "multi"
                    default_aggregation: "sum"
                    description: "<div>Total money received from both subscriptions and one-time purchases. Does not include\nrevenue from subscriptions and purchases that were refunded afterward. Calculated before the store's fee.<br />\nFor example, there were 5 monthly $10 subs, 1 yearly $100 sub and 10 one-time $50 purchases today,<br />\nrevenue = 5*$10 + 1*$100 + 10*$50 = $650</div>"
                    metric_name: "Revenue"
                    is_json: true
                    unit: "USD"
                    recommended_period: null
                  proceeds:
                    data: []
                    value: 0.0
                    value_from: null
                    value_to: null
                    compare_value_from: null
                    compare_value_to: null
                    title: "revenue"
                    type: "multi"
                    default_aggregation: "sum"
                    description: "<div>Total money received from both subscriptions and one-time purchases. Does not include\nrevenue from subscriptions and purchases that were refunded afterward. Calculated before the store's fee.<br />\nFor example, there were 5 monthly $10 subs, 1 yearly $100 sub and 10 one-time $50 purchases today,<br />\nrevenue = 5*$10 + 1*$100 + 10*$50 = $650</div>"
                    metric_name: "Revenue"
                    is_json: true
                    unit: "USD"
                    recommended_period: null
                  net_revenue:
                    data: []
                    value: 0.0
                    value_from: null
                    value_to: null
                    compare_value_from: null
                    compare_value_to: null
                    title: "revenue"
                    type: "multi"
                    default_aggregation: "sum"
                    description: "<div>Total money received from both subscriptions and one-time purchases. Does not include\nrevenue from subscriptions and purchases that were refunded afterward. Calculated before the store's fee.<br />\nFor example, there were 5 monthly $10 subs, 1 yearly $100 sub and 10 one-time $50 purchases today,<br />\nrevenue = 5*$10 + 1*$100 + 10*$50 = $650</div>"
                    metric_name: "Revenue"
                    is_json: true
                    unit: "USD"
                    recommended_period: null
            text/csv:
              schema:
                type: string
                description: CSV formatında analitik verileri
        '400':
          description: Hatalı İstek
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Yetkisiz
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedError'
        '429':
          description: Hız sınırı aşıldı. API anahtarı başına saniyede maksimum 2 istek.

  /api/v1/client-api/metrics/cohort/:
    post:
      summary: Kohort verilerini al
      description: "Kullanıcı gruplarını zaman içinde izlemek için kohort verilerini alır.\n\nHız sınırı: Saniyede 2 istek."
      operationId: retrieveCohortData
      security:
        - apikeyAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CohortDataRequest'
            examples:
              basic:
                summary: Temel kohort veri isteği
                value:
                  filters:
                    date: ["2024-04-01", "2024-09-30"]
                    store: ["app_store"]
                    country: ["us"]
                  period_unit: "month"
                  period_type: "renewals"
                  value_type: "absolute"
                  value_field: "subscriptions"
      responses:
        '200':
          description: Kohort verileri başarıyla alındı
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CohortDataResponse'
              example:
                data:
                  - segment_start_date: "2024-04-01"
                    type: "total"
                    title: "Total"
                    total_installs: 0
                    total_subscriptions: 0
                    total_paid_subscribers: 0
                    total_revenue_usd: 0.0
                    total_proceeds_usd: 0.0
                    total_net_revenue_usd: 0.0
                    total_anrpas_usd: 0.0
                    total_appas_usd: 0.0
                    total_arpas_usd: 0.0
                    total_anrppu_usd: 0.0
                    total_apppu_usd: 0.0
                    total_arppu_usd: 0.0
                    total_anrpu_usd: 0.0
                    total_appu_usd: 0.0
                    total_arpu_usd: 0.0
                    predict: null
                    values:
                      - arpas_usd: 0.0
                        appas_usd: 0.0
                        anrpas_usd: 0.0
                        anrppu_usd: 0.0
                        apppu_usd: 0.0
                        arppu_usd: 0.0
                        anrpu_usd: 0.0
                        appu_usd: 0.0
                        arpu_usd: 0.0
                        installs: 0
                        period: 1
                        revenue_usd: 0.0
                        proceeds_usd: 0.0
                        net_revenue_usd: 0.0
                        revenue_relative: 0.0
                        proceeds_relative: 0.0
                        net_revenue_relative: 0.0
                        subscriptions: 0
                        subscriptions_relative: 0.0
                        subscribers: 0
                        subscribers_relative: 0.0
                        currently_active_period: false
            text/csv:
              schema:
                type: string
                description: CSV formatında kohort verileri
        '400':
          description: Hatalı İstek
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Yetkisiz
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedError'
        '429':
          description: Hız sınırı aşıldı. API anahtarı başına saniyede maksimum 2 istek.

  /api/v1/client-api/metrics/conversion/:
    post:
      summary: Dönüşüm verilerini al
      description: "Kullanıcı eylemlerini analiz etmek ve pazarlama çabalarının etkinliğini zaman içinde ölçmek için dönüşüm verilerini alır.\n\nHız sınırı: Saniyede 2 istek."
      operationId: retrieveConversionData
      security:
        - apikeyAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ConversionDataRequest'
            examples:
              basic:
                summary: Temel dönüşüm veri isteği
                value:
                  filters:
                    date: ["2024-01-01", "2024-12-31"]
                  from_period: 1
                  to_period: "6+"
                  period_unit: "month"
                  date_type: "purchase_date"
                  segmentation: "country"
                  format: "json"
      responses:
        '200':
          description: Dönüşüm verileri başarıyla alındı
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ConversionDataResponse'
              example:
                data: []
                value: 0.0
                value_from: 0
                value_to: 0
                compare_value_from: null
                compare_value_to: null
                title: "Conversion rate from Paid to more than 6 months"
                type: "multi"
                default_aggregation: "sum"
                description: "If Х - the number of the 1st payments taken during the selected date, and Y - the amount of the renewals that happened after the 6 months since the selected date from those 1st payments, then Conversion = (Y / X) * 100%. For example, we had 100 1st subscriptions of various products on the 1st of January and among them 20 renewed on the 1st week of July (the 25th payment). On the 8th of July, we open the chart and see the conversion of the 1st of January = (20 / 100) * 100% = 20%. Then 30 more subscribers of the 1st of January renewed by the start of August (the 8th payment). We open the chart on the 1st of August and see that the conversion of the 1st of January = ((20+30) / 100) * 100% = 50%. This number shows which part of those who had their 1st payment on the 1st of January converted to the period > 6 months with any number of payments by the current moment."
                metric_name: "from_paid_to_6_months_conversion"
                is_json: true
                unit: "percent"
                recommended_period:
                  date_from: "2018-04-29"
                  date_to: "2024-12-31"
                  period_unit: "month"
            text/csv:
              schema:
                type: string
                description: CSV formatında dönüşüm verileri
        '400':
          description: Hatalı İstek
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Yetkisiz
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedError'
        '429':
          description: Hız sınırı aşıldı. API anahtarı başına saniyede maksimum 2 istek.

  /api/v1/client-api/metrics/funnel/:
    post:
      summary: Huni verilerini al
      description: "Kullanıcıların dönüşüm sürecinin belirli aşamalarından nasıl geçtiğini izlemek için huni verilerini alır.\n\nHız sınırı: Saniyede 2 istek."
      operationId: retrieveFunnelData
      security:
        - apikeyAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/FunnelDataRequest'
            examples:
              basic:
                summary: Temel huni veri isteği
                value:
                  filters:
                    date: ["2024-01-01", "2024-12-31"]
                    compare_date: ["2023-01-01", "2023-12-31"]
                    offer_category: ["promotional"]
                  period_unit: "quarter"
                  show_value_as: "absolute"
                  format: "csv"
      responses:
        '200':
          description: Huni verileri başarıyla alındı
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FunnelDataResponse'
              example:
                data:
                  - title: "Total"
                    type: "total"
                    values:
                      - period: -2
                        title: "Install"
                        value: 2
                        value_relative: 100.0
                        relative_changes: 0.0
                        following_changes:
                          title: "Drop off"
                          value: 2
                          value_relative: 100.0
                        churn_reason_title: ""
                        churn_reasons: []
                        values: []
                      - period: -1
                        title: "Paywall displayed"
                        value: 0
                        value_relative: 0.0
                        relative_changes: 0.0
                        following_changes:
                          title: "Drop off"
                          value: 0
                          value_relative: 0.0
                        churn_reason_title: ""
                        churn_reasons: []
                        values: []
            text/csv:
              schema:
                type: string
                description: CSV formatında huni verileri
        '400':
          description: Hatalı İstek
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Yetkisiz
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedError'
        '429':
          description: Hız sınırı aşıldı. API anahtarı başına saniyede maksimum 2 istek.

  /api/v1/client-api/metrics/ltv/:
    post:
      summary: Yaşam Boyu Değer (LTV) verilerini al
      description: "Müşterilerin etkileşim süresi boyunca uzun vadeli gelir potansiyelini değerlendirmek için LTV verilerini alır.\n\nHız sınırı: Saniyede 2 istek."
      operationId: retrieveLTVData
      security:
        - apikeyAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/LTVDataRequest'
            examples:
              basic:
                summary: Temel LTV veri isteği
                value:
                  filters:
                    date: ["2024-01-01", "2024-12-31"]
                    compare_date: ["2023-01-01", "2023-12-31"]
                    offer_category: ["introductory"]
                    store: ["app_store"]
                    country: ["us"]
                    attribution_source: ["appsflyer"]
                    attribution_status: ["organic"]
                    attribution_channel: ["social_media"]
                  period_unit: "quarter"
                  period_type: "renewals"
                  segmentation: "store_product_id"
                  format: "csv"
      responses:
        '200':
          description: LTV verileri başarıyla alındı
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LTVDataResponse'
              example:
                revenue:
                  data:
                    - title: "Total"
                      type: "total"
                      value: 0.0
                      values: []
                      cohort_size: 0
                  description: "<div>LTV (Lifetime Value) is calculated as revenue for the period / number of subscribers on start.\n It's an actual, not predicted LTV.\n <a target=\"_blank\" rel=\"noopener noreferrer\" href='https://adapty.io/docs/ltv'> Read more</a>.</div>"
                  value: 0.0
                  unit: "USD"
                  title: "LTV"
                proceeds:
                  data:
                    - title: "Total"
                      type: "total"
                      value: 0.0
                      values: []
                      cohort_size: 0
                  description: "<div>LTV (Lifetime Value) is calculated as revenue for the period / number of subscribers on start.\n It's an actual, not predicted LTV.\n <a target=\"_blank\" rel=\"noopener noreferrer\" href='https://adapty.io/docs/ltv'> Read more</a>.</div>"
                  value: 0.0
                  unit: "USD"
                  title: "LTV"
                net_revenue:
                  data:
                    - title: "Total"
                      type: "total"
                      value: 0.0
                      values: []
                      cohort_size: 0
                  description: "<div>LTV (Lifetime Value) is calculated as revenue for the period / number of subscribers on start.\n It's an actual, not predicted LTV.\n <a target=\"_blank\" rel=\"noopener noreferrer\" href='https://adapty.io/docs/ltv'> Read more</a>.</div>"
                  value: 0.0
                  unit: "USD"
                  title: "LTV"
            text/csv:
              schema:
                type: string
                description: CSV formatında LTV verileri
        '400':
          description: Hatalı İstek
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Yetkisiz
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedError'
        '429':
          description: Hız sınırı aşıldı. API anahtarı başına saniyede maksimum 2 istek.

  /api/v1/client-api/metrics/retention/:
    post:
      summary: Tutundurma verilerini al
      description: "Bir ürünün kullanıcıları zaman içinde nasıl aktif tuttuğunu analiz etmek için tutundurma verilerini alır.\n\nHız sınırı: Saniyede 2 istek."
      operationId: retrieveRetentionData
      security:
        - apikeyAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RetentionDataRequest'
            examples:
              basic:
                summary: Temel tutundurma veri isteği
                value:
                  filters:
                    date: ["2024-01-01", "2024-12-31"]
                    compare_date: ["2023-01-01", "2023-12-31"]
                  period_unit: "quarter"
                  period_type: "renewals"
                  segmentation: "store_product_id"
                  format: "csv"
      responses:
        '200':
          description: Tutundurma verileri başarıyla alındı
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RetentionDataResponse'
              example:
                data: []
                title: "Subscription retention"
                metric_name: "Subscription retention"
                description: "Absolute value is the amount of users who entered the current step - subscribed for a trial or paid for a subscription. Relative is calculated as a percentage of these users among those who got a trial. So it starts with 100% for the trial step."
                value_type: null
            text/csv:
              schema:
                type: string
                description: CSV formatında tutundurma verileri
        '400':
          description: Hatalı İstek
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Yetkisiz
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedError'
        '429':
          description: Hız sınırı aşıldı. API anahtarı başına saniyede maksimum 2 istek.

  /api/v1/client-api/exports/placements/:
    post:
      summary: Placement bilgilerini al
      description: "Paywall veya onboarding placement'larına ilişkin bilgileri alır: paywall'lar, segment'ler, kitleler ve A/B testleri. Bu, sahip olduğunuz her placement'ı ayrı ayrı açmak zorunda kalmadan her şeyin doğru şekilde ayarlandığını doğrulamanıza yardımcı olabilir.\n\nHız sınırı: Saniyede 2 istek."
      operationId: retrievePlacementInfo
      security:
        - apikeyAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PlacementInfoRequest'
            examples:
              basic:
                summary: Temel placement bilgi isteği
                value:
                  filters:
                    placement_type: "paywall"
      responses:
        '200':
          description: Placement bilgileri başarıyla alındı
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlacementInfoResponse'
            text/csv:
              schema:
                type: string
                description: CSV formatında placement bilgileri
        '400':
          description: Hatalı İstek
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Yetkisiz
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedError'
        '429':
          description: Hız sınırı aşıldı. API anahtarı başına saniyede maksimum 2 istek.

components:
  securitySchemes:
    apikeyAuth:
      type: apiKey
      in: header
      name: Authorization
      description: |
        API isteklerinizi, Authorization başlığı olarak gizli API anahtarınızla kimlik doğrulamanız gerekir.
        Bunu Uygulama Ayarları'nda bulabilirsiniz. Format şöyledir: `Api-Key {YOUR_SECRET_API_KEY}`,
        örneğin: `Api-Key secret_live_...`.

  schemas:
    AnalyticsDataRequest:
      type: object
      required:
        - chart_id
        - filters
      properties:
        chart_id:
          type: string
          enum: [revenue, mrr, arr, arppu, subscriptions_active, subscriptions_new, subscriptions_renewal_cancelled, subscriptions_expired, trials_active, trials_new, trials_renewal_cancelled, trials_expired, grace_period, billing_issue, refund_events, refund_money, non_subscriptions, arpu, installs]
          description: Hangi grafiğe ihtiyaç duyduğunuzu belirtin. Her istekte yalnızca bir grafik türü belirtebilirsiniz.
          example: "revenue"
        filters:
          $ref: '#/components/schemas/MetricsFilters'
        period_unit:
          type: string
          enum: [day, week, month, quarter, year]
          description: Analitik verilerinin toplanacağı zaman aralığını belirtin
          default: "month"
        date_type:
          type: string
          enum: [purchase_date, profile_install_date]
          description: Kullanıcının katılım tarihi olarak hangi tarihin kullanılacağını belirtin
          default: "purchase_date"
        segmentation:
          type: string
          description: Segmentasyonun temelini belirler
        format:
          type: string
          enum: [json, csv]
          description: Dışa aktarma dosya formatını belirtin
          default: "json"

    CohortDataRequest:
      type: object
      required:
        - filters
      properties:
        filters:
          $ref: '#/components/schemas/MetricsFilters'
        period_unit:
          type: string
          enum: [day, week, month, quarter, year]
          description: Analitik verilerinin toplanacağı zaman aralığını belirtin
          default: "month"
        period_type:
          type: string
          enum: [renewals, days]
          description: Verileri yenilemeler veya günler bazında analiz edin
          default: "renewals"
        value_type:
          type: string
          enum: [absolute, relative]
          description: Değerlerin nasıl görüntüleneceğini belirtin
          default: "absolute"
        value_field:
          type: string
          enum: [revenue, arppu, arpu, arpas, subscribers, subscriptions]
          description: Görüntülenen değer türünü belirtin
          default: "revenue"
        accounting_type:
          type: string
          enum: [revenue, proceeds, net_revenue]
          description: Kullanılan muhasebe yöntemi
          default: "revenue"
        renewal_days:
          type: array
          items:
            type: integer
          description: period_type=days kohort türü için uygulamanın kurulmasından bu yana geçen gün listesi
        prediction_months:
          type: integer
          enum: [3, 6, 9, 12, 18, 24]
          description: Kaç aylık tahmin istediğinizi girin
          default: 12
        format:
          type: string
          enum: [json, csv]
          description: Dışa aktarma dosya formatını belirtin
          default: "json"

    ConversionDataRequest:
      type: object
      required:
        - filters
        - from_period
        - to_period
      properties:
        filters:
          $ref: '#/components/schemas/MetricsFilters'
        from_period:
          oneOf:
            - type: string
            - type: "null"
          description: Kullanıcının dönüşüm öncesindeki başlangıç abonelik durumu
        to_period:
          type: string
          description: Dönüşümün ardından kullanıcının yeni abonelik durumu
        period_unit:
          type: string
          enum: [day, week, month, quarter, year]
          description: Analitik verilerinin toplanacağı zaman aralığını belirtin
          default: "month"
        date_type:
          type: string
          enum: [purchase_date, profile_install_date]
          description: Kullanıcının katılım tarihi olarak hangi tarihin kullanılacağını belirtin
          default: "purchase_date"
        segmentation:
          type: string
          description: Segmentasyonun temelini belirler
        format:
          type: string
          enum: [json, csv]
          description: Dışa aktarma dosya formatını belirtin
          default: "json"

    FunnelDataRequest:
      type: object
      required:
        - filters
      properties:
        filters:
          $ref: '#/components/schemas/MetricsFilters'
        period_unit:
          type: string
          enum: [day, week, month, quarter, year]
          description: Analitik verilerinin toplanacağı zaman aralığını belirtin
        show_value_as:
          type: string
          enum: [absolute, relative, both]
          description: Değerlerin nasıl görüntüleneceğini belirtin
        segmentation:
          type: string
          description: Segmentasyonun temelini belirler
        format:
          type: string
          enum: [json, csv]
          description: Dışa aktarma dosya formatını belirtin
          default: "json"

    LTVDataRequest:
      type: object
      required:
        - filters
      properties:
        filters:
          $ref: '#/components/schemas/MetricsFilters'
        period_unit:
          type: string
          enum: [day, week, month, quarter, year]
          description: Analitik verilerinin toplanacağı zaman aralığını belirtin
        period_type:
          type: string
          enum: [renewals, days]
          description: Verileri yenilemeler veya günler bazında analiz edin
        segmentation:
          type: string
          description: Segmentasyonun temelini belirler
        format:
          type: string
          enum: [json, csv]
          description: Dışa aktarma dosya formatını belirtin
          default: "json"

    RetentionDataRequest:
      type: object
      required:
        - filters
      properties:
        filters:
          $ref: '#/components/schemas/MetricsFilters'
        period_unit:
          type: string
          enum: [day, week, month, quarter, year]
          description: Analitik verilerinin toplanacağı zaman aralığını belirtin
        segmentation:
          type: string
          description: Segmentasyonun temelini belirler
        use_trial:
          type: boolean
          description: Deneme sürümü kullanılıp kullanılmadığını gösteren boolean değer
          default: false
        format:
          type: string
          enum: [json, csv]
          description: Dışa aktarma dosya formatını belirtin
          default: "json"

    PlacementInfoRequest:
      type: object
      required:
        - filters
      properties:
        filters:
          type: object
          required:
            - placement_type
          properties:
            placement_type:
              type: string
              enum: [paywall, onboarding]
              description: Yanıtta gönderilecek placement'ların filtreleneceği tür

    PlacementInfoResponse:
      type: object
      properties:
        data:
          type: array
          items:
            type: object
            properties:
              developer_id:
                type: string
                description: Placement kimliği
              placement_name:
                type: string
                description: Placement adı
              audience_name:
                type: string
                description: Kitle adı
              segment_name:
                type: string
                description: Kitle kimliği
              cross_placement_ab_test_name:
                type: string
                nullable: true
                description: Placement'lar arası A/B testi adı
              ab_test_name:
                type: string
                nullable: true
                description: A/B testi adı
              paywall_name:
                type: string
                description: Paywall adı (yalnızca placement_type, paywall ise döndürülür)
              onboarding_name:
                type: string
                description: Onboarding adı (yalnızca placement_type, onboarding ise döndürülür)

    MetricsFilters:
      type: object
      required:
        - date
      properties:
        date:
          type: array
          items:
            type: string
          description: Grafik verilerini almak istediğiniz tarihi veya zaman dilimini girin
        compare_date:
          type: array
          items:
            type: string
          description: Karşılaştırma tarihini veya zaman dilimini girin
        store:
          type: array
          items:
            type: string
          description: Satın almanın yapıldığı uygulama mağazasına göre filtrele
        country:
          type: array
          items:
            type: string
          description: Satın almanın gerçekleştiği 2 harfli ülke koduna göre filtrele
        store_product_id:
          type: array
          items:
            type: string
          description: Uygulama mağazasındaki ürünün benzersiz tanımlayıcısı
        duration:
          type: array
          items:
            type: string
          description: Abonelik süresini belirtin
        attribution_source:
          type: array
          items:
            type: string
          description: Attribution için kaynak entegrasyon
        attribution_status:
          type: array
          items:
            type: string
          description: Attribution'ın organik mi yoksa organik olmayan mı olduğunu gösterir
        attribution_channel:
          type: array
          items:
            type: string
          description: İşleme yol açan pazarlama kanalı
        attribution_campaign:
          type: array
          items:
            type: string
          description: İşlemi getiren pazarlama kampanyası
        attribution_adgroup:
          type: array
          items:
            type: string
          description: İşlemi getiren attribution reklam grubu
        attribution_adset:
          type: array
          items:
            type: string
          description: İşleme yol açan attribution reklam seti
        attribution_creative:
          type: array
          items:
            type: string
          description: Etkinliği ölçmek için izlenen bir reklam veya kampanyadaki belirli görsel ya da metin ögeleri
        offer_category:
          type: array
          items:
            type: string
          description: Veri almak istediğiniz teklif kategorilerini belirtin
        offer_type:
          type: array
          items:
            type: string
          description: Veri almak istediğiniz teklif türlerini belirtin
        offer_id:
          type: array
          items:
            type: string
          description: Veri almak istediğiniz belirli teklifleri belirtin

    ErrorResponse:
      type: object
      properties:
        errors:
          type: array
          items:
            type: object
            properties:
              source:
                type: string
              errors:
                type: array
                items:
                  type: string
        error_code:
          type: string
        status_code:
          type: integer

    UnauthorizedError:
      type: object
      properties:
        errors:
          type: array
          items:
            type: object
            properties:
              source:
                type: string
              errors:
                type: array
                items:
                  type: string
        error_code:
          type: string
        status_code:
          type: integer

    AnalyticsDataResponse:
      type: object
      description: İstenen grafik türü için analitik verilerini içeren yanıt
      properties:
        data:
          type: object
          description: Farklı metrik türlerini içeren nesne (revenue, proceeds, net_revenue vb.)
          additionalProperties:
            $ref: '#/components/schemas/MetricData'

    MetricData:
      type: object
      description: Değerleri, açıklamaları ve meta verileri içeren bireysel metrik verisi
      properties:
        data:
          type: array
          description: Metriğe ait veri noktaları dizisi (toplu metrikler için boş olabilir)
          items:
            type: object
        value:
          type: number
          description: Bu metrik için ana değer
        value_from:
          type: number
          nullable: true
          description: Dönem için başlangıç değeri (varsa)
        value_to:
          type: number
          nullable: true
          description: Dönem için bitiş değeri (varsa)
        compare_value_from:
          type: number
          nullable: true
          description: Karşılaştırma dönemi için başlangıç değeri (varsa)
        compare_value_to:
          type: number
          nullable: true
          description: Karşılaştırma dönemi için bitiş değeri (varsa)
        title:
          type: string
          description: Metrik için görüntüleme başlığı
        type:
          type: string
          description: Metrik türü (ör. 'multi', 'single')
        default_aggregation:
          type: string
          description: Varsayılan toplama yöntemi (ör. 'sum', 'average')
        description:
          type: string
          description: Bu metriğin ne ifade ettiğini ve nasıl hesaplandığını açıklayan HTML açıklaması
        metric_name:
          type: string
          description: Metriğin dahili adı
        is_json:
          type: boolean
          description: Verinin JSON formatında olup olmadığı
        unit:
          type: string
          description: Ölçüm birimi (ör. 'USD', 'percent')
        recommended_period:
          type: object
          nullable: true
          description: Bu metrik için önerilen tarih aralığı
          properties:
            date_from:
              type: string
              description: Önerilen dönemin başlangıç tarihi
            date_to:
              type: string
              description: Önerilen dönemin bitiş tarihi
            period_unit:
              type: string
              description: Önerilen dönem birimi (day, week, month vb.)

    CohortDataResponse:
      type: object
      description: Kullanıcı davranışını zaman içinde gösteren kohort analizi verilerini içeren yanıt
      properties:
        data:
          type: array
          description: Her biri aynı dönemde başlayan bir kullanıcı grubunu temsil eden kohort segment'leri dizisi
          items:
            $ref: '#/components/schemas/CohortSegment'

    CohortSegment:
      type: object
      description: Aynı dönemde başlayan kullanıcıları temsil eden bir kohort segment'i
      properties:
        segment_start_date:
          type: string
          description: Bu kohort segment'inin başlangıç tarihi
        type:
          type: string
          description: Segment türü (toplu veriler için 'total', bireysel kohort için 'single')
        title:
          type: string
          description: Bu kohort segment'i için görüntüleme başlığı
        total_installs:
          type: integer
          description: Bu kohort'taki toplam uygulama kurulum sayısı
        total_subscriptions:
          type: integer
          description: Bu kohort'taki toplam abonelik sayısı
        total_paid_subscribers:
          type: integer
          description: Bu kohort'taki toplam ücretli abone sayısı
        total_revenue_usd:
          type: number
          description: Bu kohort için USD cinsinden toplam gelir
        total_proceeds_usd:
          type: number
          description: Bu kohort için USD cinsinden toplam hasılat (mağaza ücretleri düşüldükten sonra)
        total_net_revenue_usd:
          type: number
          description: Bu kohort için USD cinsinden toplam net gelir
        total_anrpas_usd:
          type: number
          description: USD cinsinden toplam Aktif Abone Başına Ortalama Net Gelir (ANRPAS)
        total_appas_usd:
          type: number
          description: USD cinsinden toplam Aktif Abone Başına Ortalama Hasılat (APPAS)
        total_arpas_usd:
          type: number
          description: USD cinsinden toplam Aktif Abone Başına Ortalama Gelir (ARPAS)
        total_anrppu_usd:
          type: number
          description: USD cinsinden toplam Ödeme Yapan Kullanıcı Başına Ortalama Net Gelir (ANRPPU)
        total_apppu_usd:
          type: number
          description: USD cinsinden toplam Ödeme Yapan Kullanıcı Başına Ortalama Hasılat (APPPU)
        total_arppu_usd:
          type: number
          description: USD cinsinden toplam Ödeme Yapan Kullanıcı Başına Ortalama Gelir (ARPPU)
        total_anrpu_usd:
          type: number
          description: USD cinsinden toplam Kullanıcı Başına Ortalama Net Gelir (ANRPU)
        total_appu_usd:
          type: number
          description: USD cinsinden toplam Kullanıcı Başına Ortalama Hasılat (APPU)
        total_arpu_usd:
          type: number
          description: USD cinsinden toplam Kullanıcı Başına Ortalama Gelir (ARPU)
        predict:
          type: object
          nullable: true
          description: Bu kohort için tahmin verisi (varsa)
        values:
          type: array
          description: Kohort performansını zaman içinde gösteren dönem bazlı değerler dizisi
          items:
            $ref: '#/components/schemas/CohortValue'

    CohortValue:
      type: object
      description: Belirli bir zaman dilimine ait performans metriklerini gösteren, kohort segment'i içindeki bireysel dönem değeri
      properties:
        arpas_usd:
          type: number
          description: Bu dönem için USD cinsinden Aktif Abone Başına Ortalama Gelir
        appas_usd:
          type: number
          description: Bu dönem için USD cinsinden Aktif Abone Başına Ortalama Hasılat
        anrpas_usd:
          type: number
          description: Bu dönem için USD cinsinden Aktif Abone Başına Ortalama Net Gelir
        anrppu_usd:
          type: number
          description: Bu dönem için USD cinsinden Ödeme Yapan Kullanıcı Başına Ortalama Net Gelir
        apppu_usd:
          type: number
          description: Bu dönem için USD cinsinden Ödeme Yapan Kullanıcı Başına Ortalama Hasılat
        arppu_usd:
          type: number
          description: Bu dönem için USD cinsinden Ödeme Yapan Kullanıcı Başına Ortalama Gelir
        anrpu_usd:
          type: number
          description: Bu dönem için USD cinsinden Kullanıcı Başına Ortalama Net Gelir
        appu_usd:
          type: number
          description: Bu dönem için USD cinsinden Kullanıcı Başına Ortalama Hasılat
        arpu_usd:
          type: number
          description: Bu dönem için USD cinsinden Kullanıcı Başına Ortalama Gelir
        installs:
          type: integer
          description: Bu dönemdeki uygulama kurulum sayısı
        period:
          type: integer
          description: Dönem numarası (1 = birinci dönem, 2 = ikinci dönem vb.)
        revenue_usd:
          type: number
          description: Bu dönem için USD cinsinden toplam gelir
        proceeds_usd:
          type: number
          description: Bu dönem için USD cinsinden toplam hasılat (mağaza ücretleri düşüldükten sonra)
        net_revenue_usd:
          type: number
          description: Bu dönem için USD cinsinden toplam net gelir
        revenue_relative:
          type: number
          description: Birinci döneme göre yüzde olarak gelir (%100 = birinci dönem)
        proceeds_relative:
          type: number
          description: Birinci döneme göre yüzde olarak hasılat (%100 = birinci dönem)
        net_revenue_relative:
          type: number
          description: Birinci döneme göre yüzde olarak net gelir (%100 = birinci dönem)
        subscriptions:
          type: integer
          description: Bu dönemdeki abonelik sayısı
        subscriptions_relative:
          type: number
          description: Birinci döneme göre yüzde olarak abonelikler (%100 = birinci dönem)
        subscribers:
          type: integer
          description: Bu dönemdeki abone sayısı
        subscribers_relative:
          type: number
          description: Birinci döneme göre yüzde olarak aboneler (%100 = birinci dönem)
        currently_active_period:
          type: boolean
          description: Bu kohort için şu anda aktif dönem olup olmadığı

    ConversionDataResponse:
      type: object
      description: Kullanıcıların abonelik durumları arasındaki geçişini gösteren dönüşüm verilerini içeren yanıt
      properties:
        data:
          type: array
          description: Dönüşüm veri noktaları dizisi (toplu metrikler için boş olabilir)
          items:
            type: object
        value:
          type: number
          description: Dönüşüm oranı değeri
        value_from:
          type: integer
          description: Dönüşüm için başlangıç abonelik durumu
        value_to:
          type: integer
          description: Dönüşüm için hedef abonelik durumu
        compare_value_from:
          type: number
          nullable: true
          description: Karşılaştırma dönemi için başlangıç değeri
        compare_value_to:
          type: number
          nullable: true
          description: Karşılaştırma dönemi için bitiş değeri
        title:
          type: string
          description: Dönüşüm türünü açıklayan görüntüleme başlığı
        type:
          type: string
          description: Dönüşüm metriği türü
        default_aggregation:
          type: string
          description: Bu metrik için varsayılan toplama yöntemi
        description:
          type: string
          description: Dönüşüm oranının nasıl hesaplandığına dair ayrıntılı açıklama
        metric_name:
          type: string
          description: Dönüşüm metriğinin dahili adı
        is_json:
          type: boolean
          description: Verinin JSON formatında olup olmadığı
        unit:
          type: string
          description: Ölçüm birimi (dönüşüm oranları için genellikle 'percent')
        recommended_period:
          type: object
          description: Bu dönüşüm metriği için önerilen tarih aralığı
          properties:
            date_from:
              type: string
              description: Önerilen dönemin başlangıç tarihi
            date_to:
              type: string
              description: Önerilen dönemin bitiş tarihi
            period_unit:
              type: string
              description: Önerilen dönem birimi

    FunnelDataResponse:
      type: object
      description: Kullanıcıların dönüşüm aşamalarından nasıl geçtiğini gösteren huni analizi verilerini içeren yanıt
      properties:
        data:
          type: array
          description: Dönüşüm sürecinin farklı aşamalarını gösteren huni segment'leri dizisi
          items:
            $ref: '#/components/schemas/FunnelSegment'

    FunnelSegment:
      type: object
      description: Dönüşüm sürecindeki bir aşamayı temsil eden huni segment'i
      properties:
        title:
          type: string
          description: Bu huni segment'i için görüntüleme başlığı
        type:
          type: string
          description: Huni segment'i türü (toplu veriler için 'total')
        values:
          type: array
          description: Aşamalar arasındaki ilerlemeyi gösteren huni değerleri dizisi
          items:
            $ref: '#/components/schemas/FunnelValue'

    FunnelValue:
      type: object
      description: Kullanıcı ilerlemesini ve terk oranını gösteren bireysel huni aşaması değeri
      properties:
        period:
          type: integer
          description: Hunideki dönem numarası (-2 = Kurulum, -1 = Paywall görüntülendi vb.)
        title:
          type: string
          description: Bu huni aşaması için görüntüleme başlığı
        value:
          type: integer
          description: Bu aşamaya ulaşan kullanıcı sayısı
        value_relative:
          type: number
          description: Birinci aşamaya göre bu aşamaya ulaşan kullanıcıların yüzdesi
        relative_changes:
          type: number
          description: Bir önceki döneme kıyasla dönüşüm oranındaki değişim
        following_changes:
          type: object
          description: Bu aşamadan sonra terk eden kullanıcılara ilişkin bilgi
          properties:
            title:
              type: string
              description: Terk aşaması için başlık
            value:
              type: integer
              description: Terk eden kullanıcı sayısı
            value_relative:
              type: number
              description: Terk eden kullanıcıların yüzdesi
        churn_reason_title:
          type: string
          description: Bu aşamadaki kayıp nedenini açıklayan başlık
        churn_reasons:
          type: array
          description: Belirli kayıp nedenlerinin dizisi
          items:
            type: object
        values:
          type: array
          description: Bu huni aşamasına ait ek iç içe değerler
          items:
            type: object

    LTVDataResponse:
      type: object
      description: Farklı gelir türleri için Yaşam Boyu Değer (LTV) verilerini içeren yanıt
      properties:
        revenue:
          $ref: '#/components/schemas/LTVMetric'
          description: Brüt gelir kullanılarak hesaplanan LTV
        proceeds:
          $ref: '#/components/schemas/LTVMetric'
          description: Hasılat kullanılarak hesaplanan LTV (mağaza ücretleri düşüldükten sonra)
        net_revenue:
          $ref: '#/components/schemas/LTVMetric'
          description: Net gelir kullanılarak hesaplanan LTV

    LTVMetric:
      type: object
      description: Kohort verilerini ve hesaplamalarını içeren bireysel LTV metriği
      properties:
        data:
          type: array
          description: Farklı kohort'lar için LTV veri noktaları dizisi
          items:
            $ref: '#/components/schemas/LTVData'
        description:
          type: string
          description: LTV'nin nasıl hesaplandığını açıklayan HTML açıklaması
        value:
          type: number
          description: Genel LTV değeri
        unit:
          type: string
          description: Ölçüm birimi (genellikle 'USD')
        title:
          type: string
          description: Bu LTV metriği için görüntüleme başlığı

    LTVData:
      type: object
      description: Belirli bir kohort için bireysel LTV veri noktası
      properties:
        title:
          type: string
          description: Bu LTV veri noktası için görüntüleme başlığı
        type:
          type: string
          description: LTV verisi türü (toplu veriler için 'total')
        value:
          type: number
          description: Bu kohort için LTV değeri
        values:
          type: array
          description: Dönem bazlı LTV değerleri dizisi
          items:
            type: object
        cohort_size:
          type: integer
          description: Bu kohort'taki kullanıcı sayısı

    RetentionDataResponse:
      type: object
      description: Kullanıcı etkileşimini zaman içinde gösteren tutundurma verilerini içeren yanıt
      properties:
        data:
          type: array
          description: Tutundurma veri noktaları dizisi (bazı tutundurma türleri için boş olabilir)
          items:
            type: object
        title:
          type: string
          description: Tutundurma metriği için görüntüleme başlığı
        metric_name:
          type: string
          description: Tutundurma metriğinin dahili adı
        description:
          type: string
          description: Tutundurmanın nasıl hesaplandığının açıklaması (mutlak ve göreli değerler)
        value_type:
          type: string
          nullable: true
          description: Tutundurma değerinin türü (mutlak veya göreli)

security:
  - apikeyAuth: []