# Récupérer les données d'analyse

> Récupère les données d'analyse pour obtenir des informations sur le comportement des utilisateurs et les métriques de performance, afin de les utiliser dans des graphiques.
>
> Les revenus de cet endpoint sont **basés sur les événements** : chaque valeur est attribuée à la **date de la transaction** — le jour où l'achat, le renouvellement ou le remboursement a eu lieu. Pour attribuer les revenus à la date d'installation de chaque utilisateur (par exemple, pour réconcilier avec Ads Manager), utilisez l'endpoint cohorte (`POST /api/v1/client-api/metrics/cohort/`).
>
> Limite de débit : 2 requêtes par seconde.

## OpenAPI

```yaml
/api-specs/export-analytics-api.yaml post /api/v1/client-api/metrics/analytics/
openapi: 3.1.0
info:
  title: API Adapty Export Analytics
  version: 1.0.0
  description: |
    L'API Adapty Export Analytics vous permet d'exporter vos données d'analyse au format CSV ou JSON,
    vous offrant la flexibilité d'approfondir les métriques de performance de votre application, de personnaliser les rapports
    et d'analyser les tendances au fil du temps. Grâce à cette API, vous pouvez facilement extraire des données d'analyse détaillées,
    ce qui facilite le suivi, le partage et l'affinement de vos informations de données selon vos besoins.
servers:
  - url: https://api-admin.adapty.io
    description: Serveur de production
security:
  - apikeyAuth: []
paths:
  /api/v1/client-api/metrics/analytics/:
    post:
      summary: Récupérer les données d'analyse
      description: |-
        Récupère les données d'analyse pour obtenir des informations sur le comportement des utilisateurs et les métriques de performance, afin de les utiliser dans des graphiques.

        Les revenus de cet endpoint sont **basés sur les événements** : chaque valeur est attribuée à la **date de la transaction** — le jour où l'achat, le renouvellement ou le remboursement a eu lieu. Pour attribuer les revenus à la date d'installation de chaque utilisateur (par exemple, pour réconcilier avec Ads Manager), utilisez l'endpoint cohorte (`POST /api/v1/client-api/metrics/cohort/`).

        Limite de débit : 2 requêtes par seconde.
      operationId: retrieveAnalyticsData
      security:
        - apikeyAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/AnalyticsDataRequest"
            examples:
              basic:
                summary: Requête de données d'analyse de base
                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: Données d'analyse récupérées avec succès
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AnalyticsDataResponse"
              example:
                data:
                  revenue:
                    data: []
                    value: 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
                      revenue from subscriptions and purchases that were refunded afterward. Calculated before the store's fee.<br />
                      For example, there were 5 monthly $10 subs, 1 yearly $100 sub and 10 one-time $50 purchases today,<br />
                      revenue = 5*$10 + 1*$100 + 10*$50 = $650</div>
                    metric_name: Revenue
                    is_json: true
                    unit: USD
                    recommended_period: null
                  proceeds:
                    data: []
                    value: 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
                      revenue from subscriptions and purchases that were refunded afterward. Calculated before the store's fee.<br />
                      For example, there were 5 monthly $10 subs, 1 yearly $100 sub and 10 one-time $50 purchases today,<br />
                      revenue = 5*$10 + 1*$100 + 10*$50 = $650</div>
                    metric_name: Revenue
                    is_json: true
                    unit: USD
                    recommended_period: null
                  net_revenue:
                    data: []
                    value: 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
                      revenue from subscriptions and purchases that were refunded afterward. Calculated before the store's fee.<br />
                      For example, there were 5 monthly $10 subs, 1 yearly $100 sub and 10 one-time $50 purchases today,<br />
                      revenue = 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: Données d'analyse au format CSV
        "400":
          description: Requête incorrecte
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "401":
          description: Non autorisé
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/UnauthorizedError"
        "429":
          description: Limite de débit dépassée. Maximum 2 requêtes par seconde par clé API.
components:
  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: Indiquez le graphique dont vous avez besoin. Vous ne pouvez spécifier qu'un seul type de graphique par requête.
          example: revenue
        filters:
          $ref: "#/components/schemas/MetricsFilters"
        period_unit:
          type: string
          enum:
            - day
            - week
            - month
            - quarter
            - year
          description: Indiquez l'intervalle de temps pour l'agrégation des données d'analyse
          default: month
        date_type:
          type: string
          enum:
            - purchase_date
            - profile_install_date
          description: Indiquez quelle date doit être considérée comme date d'entrée de l'utilisateur
          default: purchase_date
        segmentation:
          type: string
          description: Définit la base de la segmentation
        format:
          type: string
          enum:
            - json
            - csv
          description: Indiquez le format de fichier d'export
          default: json
    AnalyticsDataResponse:
      type: object
      description: Réponse contenant les données d'analyse pour le type de graphique demandé
      properties:
        data:
          type: object
          description: Objet contenant différents types de métriques (revenue, proceeds, net_revenue, etc.)
          additionalProperties:
            $ref: "#/components/schemas/MetricData"
    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: Entrez la date ou la période pour laquelle vous souhaitez récupérer les données du graphique
        compare_date:
          type: array
          items:
            type: string
          description: Entrez la date ou la période de comparaison
        store:
          type: array
          items:
            type: string
          description: Filtrez par le store où l'achat a été effectué
        country:
          type: array
          items:
            type: string
          description: Filtrez par le code pays à 2 lettres où l'achat a eu lieu
        store_product_id:
          type: array
          items:
            type: string
          description: Identifiant unique d'un produit dans le store
        duration:
          type: array
          items:
            type: string
          description: Indiquez la durée de l'abonnement
        attribution_source:
          type: array
          items:
            type: string
          description: L'intégration source pour l'attribution
        attribution_status:
          type: array
          items:
            type: string
          description: Indique si l'attribution est organique ou non organique
        attribution_channel:
          type: array
          items:
            type: string
          description: Canal marketing ayant conduit à la transaction
        attribution_campaign:
          type: array
          items:
            type: string
          description: Campagne marketing ayant apporté la transaction
        attribution_adgroup:
          type: array
          items:
            type: string
          description: Groupe d'annonces d'attribution ayant apporté la transaction
        attribution_adset:
          type: array
          items:
            type: string
          description: Ensemble d'annonces d'attribution ayant conduit à la transaction
        attribution_creative:
          type: array
          items:
            type: string
          description: Éléments visuels ou textuels spécifiques d'une annonce ou d'une campagne, suivis pour mesurer leur efficacité
        offer_category:
          type: array
          items:
            type: string
          description: Indiquez les catégories d'offres pour lesquelles vous souhaitez récupérer des données
        offer_type:
          type: array
          items:
            type: string
          description: Indiquez les types d'offres pour lesquels vous souhaitez récupérer des données
        offer_id:
          type: array
          items:
            type: string
          description: Indiquez les offres spécifiques pour lesquelles vous souhaitez récupérer des données
    MetricData:
      type: object
      description: Données de métrique individuelle contenant les valeurs, les descriptions et les métadonnées
      properties:
        data:
          type: array
          description: Tableau de points de données pour la métrique (peut être vide pour les métriques agrégées)
          items:
            type: object
        value:
          type: number
          description: La valeur principale pour cette métrique
        value_from:
          type: number
          nullable: true
          description: Valeur de début pour la période (si applicable)
        value_to:
          type: number
          nullable: true
          description: Valeur de fin pour la période (si applicable)
        compare_value_from:
          type: number
          nullable: true
          description: Valeur de début pour la période de comparaison (si applicable)
        compare_value_to:
          type: number
          nullable: true
          description: Valeur de fin pour la période de comparaison (si applicable)
        title:
          type: string
          description: Titre d'affichage pour la métrique
        type:
          type: string
          description: Type de métrique (p. ex., 'multi', 'single')
        default_aggregation:
          type: string
          description: Méthode d'agrégation par défaut (p. ex., 'sum', 'average')
        description:
          type: string
          description: Description HTML expliquant ce que représente cette métrique et comment elle est calculée
        metric_name:
          type: string
          description: Nom interne de la métrique
        is_json:
          type: boolean
          description: Indique si les données sont au format JSON
        unit:
          type: string
          description: Unité de mesure (p. ex., 'USD', 'percent')
        recommended_period:
          type: object
          nullable: true
          description: Plage de dates recommandée pour cette métrique
          properties:
            date_from:
              type: string
              description: Date de début de la période recommandée
            date_to:
              type: string
              description: Date de fin de la période recommandée
            period_unit:
              type: string
              description: Unité de période recommandée (day, week, month, etc.)
  securitySchemes:
    apikeyAuth:
      type: apiKey
      in: header
      name: Authorization
      description: |
        Vous devez authentifier vos requêtes API avec votre clé API secrète en tant qu'en-tête Authorization.
        Vous pouvez la trouver dans les paramètres de l'application. Le format est `Api-Key {VOTRE_CLÉ_API_SECRÈTE}`,
        par exemple : `Api-Key secret_live_...`.
```
