# Recuperar datos de embudo

> Recupera datos de embudo para realizar el seguimiento de la progresión de los usuarios a través de etapas específicas de un proceso de conversión.
>
> Límite de tasa: 2 solicitudes por segundo.

## OpenAPI

```yaml
/api-specs/export-analytics-api.yaml post /api/v1/client-api/metrics/funnel/
openapi: 3.1.0
info:
  title: API de Exportación de Analíticas de Adapty
  version: 1.0.0
  description: |
    La API de Exportación de Analíticas de Adapty te permite exportar tus datos de analíticas en formato CSV o JSON,
    ofreciéndote la flexibilidad de profundizar en las métricas de rendimiento de tu app, personalizar informes
    y analizar tendencias a lo largo del tiempo. Con esta API puedes extraer fácilmente datos analíticos detallados,
    lo que facilita el seguimiento, la compartición y el refinamiento de tus insights de datos según sea necesario.
servers:
  - url: https://api-admin.adapty.io
    description: Servidor de producción
security:
  - apikeyAuth: []
paths:
  /api/v1/client-api/metrics/funnel/:
    post:
      summary: Recuperar datos de embudo
      description: |-
        Recupera datos de embudo para realizar el seguimiento de la progresión de los usuarios a través de etapas específicas de un proceso de conversión.

        Límite de tasa: 2 solicitudes por segundo.
      operationId: retrieveFunnelData
      security:
        - apikeyAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/FunnelDataRequest"
            examples:
              basic:
                summary: Solicitud básica de datos de embudo
                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: Datos de embudo recuperados correctamente
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/FunnelDataResponse"
              example:
                data:
                  - title: Total
                    type: total
                    values:
                      - period: -2
                        title: Install
                        value: 2
                        value_relative: 100
                        relative_changes: 0
                        following_changes:
                          title: Drop off
                          value: 2
                          value_relative: 100
                        churn_reason_title: ""
                        churn_reasons: []
                        values: []
                      - period: -1
                        title: Paywall displayed
                        value: 0
                        value_relative: 0
                        relative_changes: 0
                        following_changes:
                          title: Drop off
                          value: 0
                          value_relative: 0
                        churn_reason_title: ""
                        churn_reasons: []
                        values: []
            text/csv:
              schema:
                type: string
                description: Datos de embudo en formato CSV
        "400":
          description: Solicitud incorrecta
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "401":
          description: No autorizado
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/UnauthorizedError"
        "429":
          description: Límite de tasa superado. Máximo 2 solicitudes por segundo por clave de API.
components:
  schemas:
    FunnelDataRequest:
      type: object
      required:
        - filters
      properties:
        filters:
          $ref: "#/components/schemas/MetricsFilters"
        period_unit:
          type: string
          enum:
            - day
            - week
            - month
            - quarter
            - year
          description: Especifica el intervalo de tiempo para agregar los datos de analíticas
        show_value_as:
          type: string
          enum:
            - absolute
            - relative
            - both
          description: Especifica cómo se muestran los valores
        segmentation:
          type: string
          description: Define la base para la segmentación
        format:
          type: string
          enum:
            - json
            - csv
          description: Especifica el formato del archivo de exportación
          default: json
    FunnelDataResponse:
      type: object
      description: Respuesta que contiene datos de análisis de embudo que muestran la progresión de los usuarios a través de las etapas de conversión
      properties:
        data:
          type: array
          description: Array de segmentos de embudo que muestran las diferentes etapas del proceso de conversión
          items:
            $ref: "#/components/schemas/FunnelSegment"
    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
    MetricsFilters:
      type: object
      required:
        - date
      properties:
        date:
          type: array
          items:
            type: string
          description: Introduce la fecha o el período de tiempo para el que deseas recuperar los datos del gráfico
        compare_date:
          type: array
          items:
            type: string
          description: Introduce la fecha o el período de tiempo de comparación
        store:
          type: array
          items:
            type: string
          description: Filtra por el store donde se realizó la compra
        country:
          type: array
          items:
            type: string
          description: Filtra por el código de país de 2 letras donde se realizó la compra
        store_product_id:
          type: array
          items:
            type: string
          description: Identificador único de un producto del store
        duration:
          type: array
          items:
            type: string
          description: Especifica la duración de la suscripción
        attribution_source:
          type: array
          items:
            type: string
          description: La integración de origen para la atribución
        attribution_status:
          type: array
          items:
            type: string
          description: Indica si la atribución es orgánica o no orgánica
        attribution_channel:
          type: array
          items:
            type: string
          description: Canal de marketing que originó la transacción
        attribution_campaign:
          type: array
          items:
            type: string
          description: Campaña de marketing que originó la transacción
        attribution_adgroup:
          type: array
          items:
            type: string
          description: Grupo de anuncios de atribución que originó la transacción
        attribution_adset:
          type: array
          items:
            type: string
          description: Conjunto de anuncios de atribución que originó la transacción
        attribution_creative:
          type: array
          items:
            type: string
          description: Elementos visuales o de texto específicos de un anuncio o campaña rastreados para medir la efectividad
        offer_category:
          type: array
          items:
            type: string
          description: Especifica las categorías de oferta para las que deseas recuperar datos
        offer_type:
          type: array
          items:
            type: string
          description: Especifica los tipos de oferta para los que deseas recuperar datos
        offer_id:
          type: array
          items:
            type: string
          description: Especifica las ofertas concretas para las que deseas recuperar datos
    FunnelSegment:
      type: object
      description: Un segmento de embudo que representa una etapa en el proceso de conversión
      properties:
        title:
          type: string
          description: Título de visualización para este segmento de embudo
        type:
          type: string
          description: Tipo de segmento de embudo ('total' para datos agregados)
        values:
          type: array
          description: Array de valores de embudo que muestran la progresión a través de las etapas
          items:
            $ref: "#/components/schemas/FunnelValue"
    FunnelValue:
      type: object
      description: Valor individual de etapa de embudo que muestra la progresión y el abandono de usuarios
      properties:
        period:
          type: integer
          description: Número de período en el embudo (-2 = Instalación, -1 = Paywall mostrado, etc.)
        title:
          type: string
          description: Título de visualización para esta etapa del embudo
        value:
          type: integer
          description: Número de usuarios que alcanzaron esta etapa
        value_relative:
          type: number
          description: Porcentaje de usuarios que alcanzaron esta etapa relativo a la primera etapa
        relative_changes:
          type: number
          description: Cambio en la tasa de conversión respecto al período anterior
        following_changes:
          type: object
          description: Información sobre los usuarios que abandonaron después de esta etapa
          properties:
            title:
              type: string
              description: Título para la etapa de abandono
            value:
              type: integer
              description: Número de usuarios que abandonaron
            value_relative:
              type: number
              description: Porcentaje de usuarios que abandonaron
        churn_reason_title:
          type: string
          description: Título que describe el motivo de abandono en esta etapa
        churn_reasons:
          type: array
          description: Array de motivos de abandono específicos
          items:
            type: object
        values:
          type: array
          description: Valores anidados adicionales para esta etapa del embudo
          items:
            type: object
  securitySchemes:
    apikeyAuth:
      type: apiKey
      in: header
      name: Authorization
      description: |
        Debes autenticar tus solicitudes a la API con tu clave de API secreta como cabecera de autorización.
        Puedes encontrarla en la Configuración de la App. El formato es `Api-Key {YOUR_SECRET_API_KEY}`,
        por ejemplo: `Api-Key secret_live_...`.
```
