Tableau de bord et API de Video Insights

L'API Video Insights de Vonage est un outil de gestion de l'information. API GraphQL. Vous pouvez utiliser le tableau de bord et l'API Video Insights pour obtenir des informations sur vos applications et sessions Vonage Video.

Tableau de bord Video Insights

Remarque : Veuillez cliquer sur ici pour obtenir des informations sur la conservation des données et la latence.

Le tableau de bord Insights fournit des données au niveau des Applications. Vous pouvez y accéder en vous connectant à votre compte Compte Video API de VonagePour cela, allez dans la section Video Analytics et sélectionnez une application vidéo spécifique de Vonage.

API Insights, URL de base et authentification

L'API Insights est une API GraphQL qui vous permet d'explorer les métadonnées de vos sessions au niveau des applications et des sessions. GraphQL est une alternative à l'approche REST typique d'accès aux données via HTTP. Il a été développé par Facebook en 2012 et ouvert à tous en 2015. À consulter Guide de démarrage de GraphQL pour en savoir plus.

L'URL de base de l'API est la suivante :

https://tools.vonage.com/video/insights-api/graphql

Toutes les demandes sont formulées en tant que HTTP POST.

Explorer le schéma de l'API avec GraphiQL

Naviguer vers https://tools.vonage.com/video/insights-api/ à l'aide de votre navigateur vous amène à l'instance Insights de GraphiQLLe logiciel GraphQL API est un outil qui vous permet d'explorer le schéma de l'API GraphQL. Comme l'outil peut effectuer des demandes d'API, vous devez être connecté pour l'utiliser.

Cet outil comporte cinq fenêtres :

  • Dans le coin supérieur droit de l'outil, vous verrez apparaître une icône Docs . En cliquant sur ce bouton, vous ouvrez un volet contenant la documentation du schéma. En cliquant dessus, vous ouvrez un volet contenant la documentation du schéma. Chaque champ et type d'objet de la documentation contient une description. Cliquez dessus pour explorer le schéma.
  • Sur le côté gauche de la page se trouve le Demande de renseignements . Dans ce volet, vous pouvez construire des requêtes à exécuter contre l'API. Les allers-retours entre le volet Docs et le volet Demande de renseignements vous permet de construire la requête précise dont vous avez besoin pour obtenir uniquement les informations dont vous avez besoin. Comme vous êtes connecté, l'authentification pour effectuer des requêtes est prise en charge pour vous.
  • En dessous de la Demande de renseignements est le volet Variables d'interrogation (panneau de commande). Bien que cela ne soit pas obligatoire, vous pouvez l'utiliser pour spécifier des variables pour votre requête. Par exemple, vous pouvez définir les variables suivantes dans ce volet :
{
    "APPLICATION_ID": "23456ab-12ab-1234-23bc-123456789abc",
    "START_TIME": "2025-01-01T08:00:00.000Z"
}

Ensuite, dans le volet Requête, faites référence à toutes les variables déclarées :

query ($APPLICATION_ID: String!, $START_TIME: Date!) {
    application(applicationId: $APPLICATION_ID) {
      applicationData(
      start: $START_TIME,
      interval: AUTO,
      sdkType: [JS, IOS, ANDROID],
      groupBy: [SDK_TYPE]
          ) {
        resources {
          sdkType
          intervalStart
          intervalEnd
          usage {
            participantMinutes {
              from1To25Publishers
              from26To35Publishers
              from36PlusPublishers
            }
          }
        }
      }
    }
  }
  • A droite de la Demande de renseignements est le volet Réponse . En cliquant sur le bouton Exécuter dans l'outil, la requête sera exécutée dans le volet Demande de renseignements et le volet Réponse affiche les résultats. Il s'agit de la même réponse que celle que vous obtiendriez si vous faisiez la requête par programme.
  • Enfin, cliquez sur le bouton L'histoire au-dessus du volet d'interrogation pour afficher l'historique de vos dernières requêtes. En cliquant sur l'un des éléments affichés, vous remplirez le champ Demande de renseignements et le volet Variables d'interrogation avec ces données.

Obtention des données d'application

Les applicationData de l'objet de l'application renvoie le champ ApplicationData qui fournit des données de rapport agrégées au niveau de l'application.

Vous devez inclure un start date de la requête. Cette valeur peut être une chaîne de format ISO-8601 (telle que "2025-01-15T23:43:34.023Z") ou une valeur Int représentant un horodatage d'époque. Les nombres entiers de 10 chiffres ou moins représentent des secondes d'époque. Les nombres entiers de plus de 10 chiffres représentent des millisecondes d'époque.

Les ApplicationData comprend un objet resources qui est un tableau de Metric objets. Vous avez la possibilité de filtrer et de regrouper les données en fonction du type de SDK, de la version du SDK, du pays, de la région, du navigateur ou de la version du navigateur. En outre, vous avez la possibilité de modifier l'attribut Interval dans lequel vous souhaitez segmenter les données (soit DAILY, WEEKLYou MONTHLY). Notez que si vous définissez l'option Intervalvous ne verrez que les intervalles de temps qui contiennent des données.

Note : Les données Insights au niveau de l'application sont généralement disponibles dans un délai de 36 à 48 heures.

Remarque : Le filtrage par région, SDK et navigateur n'est pas disponible pour les procès-verbaux des participants et des archives.

Les Metric comprend des informations sur le pays, la région (État américain, le cas échéant), le type et la version de Vonage Video SDK, ainsi que le navigateur et la version du navigateur (le cas échéant) pour les résultats. L'objet Metric comprend également les propriétés suivantes :

  • usage - Informations sur les minutes de flux publiées, les minutes de flux souscrites, l'utilisation des archives, l'utilisation de la diffusion, l'utilisation SIP et l'utilisation séparée par niveaux d'éditeur.
  • quality - Informations sur la qualité vidéo
  • errors - Les taux d'échec pour la connexion aux sessions, la publication et l'abonnement

La requête suivante demande des résultats ApplicationData qui incluent les minutes des participants pour les clients utilisant les SDK JavaScript, Android et iOS de Vonage Video :

{
  application(applicationId: "23456ab-12ab-1234-23bc-123456789abc") {
    applicationData(
      start: "2025-01-01T07:00:00.000Z",
      interval: MONTHLY,
      sdkType: [JS, ANDROID, IOS],
      groupBy: SDK_TYPE
    ) {
      resources {
        intervalStart,
        intervalEnd,
          usage {
            participantMinutes {
              from1To25Publishers
              from26To35Publishers
              from36PlusPublishers
          }
      }
    }
  }
}
}

Il convient de noter qu'en définissant le start à 0, vous demanderez les résultats en commençant par les premiers enregistrements disponibles.

Problème connu : Les données relatives au nom et à la version du navigateur sont null ou vide dans certains résultats quotidiens avant le 14 septembre 2023. Les valeurs sont incluses à partir du 14 septembre 2023.

Obtention des données de session (Advanced Insights)

Remarque : Veuillez cliquer sur ici pour obtenir des informations sur la conservation des données et la latence.

Important : Les requêtes de données de session sont disponibles pour Clients d'Advanced Insights seulement.

Les sessionData du champ application renvoie l'objet SessionData objet. Cet objet comprend deux champs : sessions et sessionSummaries.

Informations détaillées sur la session

Les sessions renvoie un champ Sessions objet. Transmettez les identifiants de session en tant qu'éléments de l'objet sessionIds (un tableau de chaînes de caractères correspondantes). L'argument Sessions comprend un objet resources qui est un tableau de Session objets. Les Session possède les propriétés suivantes :

  • mediaMode - Le mode média de la session. Il s'agit de "routed" pour les sessions acheminées par le routeur vidéo de Vonage ou le routeur vidéo de Vonage. "relayed" pour la diffusion directe en continu d'un poste à l'autre.
  • publisherMinutes - Le nombre total de minutes diffusées pour tous les éditeurs de la session. Notez que l'inclusion de ce champ ralentira les résultats de la requête.
  • subscriberMinutes - Nombre total de minutes de diffusion pour tous les abonnés de la session. Notez que l'inclusion de ce champ ralentira les résultats de la requête.
  • participantMinutes - Le nombre total de minutes séparées par tranches d'éditeurs pour toutes les réunions de la session.
  • meetings - Un tableau de Meeting Une session Vonage Video peut avoir plusieurs objets. réunions. Lorsque le premier client se connecte à la session, la première réunion commence. La réunion se termine lorsqu'il n'y a plus de connexions dans la session pendant au moins 10 minutes. Lorsqu'un client se connecte à nouveau, une nouvelle réunion commence. Chaque objet Réunion comprend les propriétés suivantes :
    • subscriberMinutes - Le nombre total de minutes de l'abonné dans la réunion.
    • publisherMinutes - Le nombre total de minutes de l'éditeur dans la réunion.
    • participantMinutes - Le nombre total de minutes séparées par les niveaux d'éditeurs dans la réunion.
    • connections - Un tableau d'objets Connexion définissant chaque client connecté à la session (pendant la réunion). Les propriétés de l'objet Connexion comprennent des informations sur le Client SDK Vonage Client utilisé, le navigateur utilisé (pour les clients Web), des informations sur les éditeurs et les abonnés, etc.
    • publishers - Un tableau d'objets Publisher. Les propriétés de l'objet Publisher comprennent des informations sur le flux de l'éditeur, les abonnés au flux, les statistiques du flux, etc. (Les statistiques de flux sont incluses dans le module complémentaire Advanced Insights. Voir Obtenir des statistiques sur les flux.)
    • subscribers - Tableau d'objets Subscriber, fournissant des détails sur chaque abonné. Les propriétés de l'objet Abonné comprennent des informations sur le flux de l'abonné, des statistiques sur le flux, etc. (Les statistiques de flux sont incluses dans le module complémentaire Advanced Insights. Voir Obtenir des statistiques sur les flux.)
    • createdAt et destroyedAt - Horodatage du début et de la fin de la réunion.

Remarque : Si tous les utilisateurs sont déconnectés d'une réunion et qu'une nouvelle connexion à la session est établie dans les 10 minutes, une nouvelle réunion sera créée avec le même identifiant que la première. Toutefois, si la nouvelle connexion est établie après 10 minutes, la nouvelle réunion recevra un numéro d'identification unique.

Exemple de requête détaillée de session

La requête suivante demande des informations sur l'éditeur de deux sessions Vonage Video :

{
    application(applicationId: "23456ab-12ab-1234-23bc-123456789abc") {
      sessionData {
            sessions(sessionIds: [
                "1_MX4xMDB-fjE1Mzg4NzA0MjExNDd-VjRuSWhpn4",
                "2_MX4xMDB-fjE1Mzg4NzA0OTQzOTN-RFFxeXfcn4"
            ]) {
                resources {
                    sessionId
                    meetings {
                        totalCount
                        resources {
                            createdAt
                            publisherMinutes
                            destroyedAt
                            publishers {
                                resources {
                                    createdAt
                                    destroyedAt
                                    connectionId
                                    stream {
                                      streamId
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }    
}

Obtenir des statistiques sur les flux

Remarque : Les statistiques sur les flux sont disponibles pour Clients d'Advanced Insights seulement.

Les resources de l'objet MeetingPublishers est un tableau d'objets Publisher. L'objet Publisher inclut l'objet PublisherStreamStatsCollection. Cet objet est une collection de ressources, et sa propriété resources est un tableau d'objets PublisherStats. Chaque objet PublisherStats contient des statistiques de flux pour l'éditeur, prises périodiquement (toutes les 30 secondes) au cours de la diffusion en continu de l'éditeur. Ces statistiques comprennent des données sur la latence audio et vidéo, le débit binaire audio et vidéo, le taux de perte de paquets audio et vidéo, la résolution vidéo, les codecs audio et vidéo, et si le flux comprenait de l'audio et de la vidéo au moment de l'instantané des statistiques du flux.

La requête suivante demande les statistiques périodiques de débit audio et vidéo pour les éditeurs dans une session vidéo Vonage :

{
  application(applicationId: "23456ab-12ab-1234-23bc-123456789abc") {
    sessionData {
      sessions(sessionIds: [
        "1_MX4xMDB-fjE1Mzg4NzA0MjExNDd-VjRuSWhpn4",
      ]) {
        resources {
          sessionId
          meetings {
            resources {
              createdAt
              publishers {
                resources {
                  createdAt
                  connectionId
                  stream {
                    streamId
                  }
                  streamStatsCollection {
                    resources {
                      createdAt
                      audioBitrateKbps
                      videoBitrateKbps
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}

De même, le resources de l'objet MeetingSubscribers est un tableau d'objets Subscriber, et chacun d'entre eux comprend une collection de ressources SubscriberStreamStatsCollection, qui inclut des statistiques de flux similaires pour un abonné.

Résumé de la session

Remarque : Le résumé de la session est disponible pour Clients d'Advanced Insights seulement.

Les sessionSummaries est un tableau de SessionSummary (un pour chaque session correspondant à la requête). L'objet SessionSummary comprend un resources qui est un tableau de MeetingSummary (un pour chaque réunion de la session). Les objets MeetingSummary comprend des informations sur le nombre de flux, de connexions et d'abonnés totaux et simultanés dans la réunion.

Les deux SessionSummary et MeetingSummary Les objets comprennent publisherMinutes, subscriberMinuteset participantMinutes propriétés. Celles-ci indiquent le nombre total de minutes diffusées pour tous les éditeurs et abonnés de la session ou de la réunion. Y compris participantMinutes les comptes-rendus séparés par niveau d'éditeur dans la session ou la réunion. Il est à noter que l'inclusion de publisherMinutes, subscriberMinutesou participantMinutes dans une requête ralentira les résultats.

La requête suivante demande des informations partielles SessionSummary les résultats :

{
     application(applicationId: "23456ab-12ab-1234-23bc-123456789abc") {
         sessionData {
             sessionSummaries (
                 start: "2025-01-01T07:00:00.000Z",
             ) {
                 resources {
                     sessionId
                     meetings {
                         resources {
                             maxConcurrentStreams
                             maxConcurrentStreams
                             maxConcurrentSubscribers
                             totalStreams
                             totalConnections
                         }
                    }
                }
            }
        }
    }
}

Mesures de transcription après appel

Remarque : Mesures de transcription après appel sont disponibles pour Clients d'Advanced Insights seulement.

La requête suivante demande postCallTranscriptions données : est-elle activée, et nombre total de minutes passées par elle.

{
  project(projectId: 12345678) {
    sessionData {
      sessions(sessionIds: ["1_MX4xMDB-fjE1Mzg4NzA0MjExNDd-VjRuSWhpn4"]) {
        resources {
          sessionId
          meetings(meetingId: '23456ab-12ab-1234-23bc-123456789abc', first: 1) {
            resources {
              meetingId
              postCallTranscriptions {
                hasEnabled
                totalMinutes
              }
            }
          }
        }
      }
    }
  }
}

Mesures de la qualité SIP

La requête suivante ne fournit que les statistiques minimales de qualité SIP :

project(projectId: 12345678) {
    sessionData {
      sessions(sessionIds: [
        "1_MX4xMDB-fjE1Mzg4NzA0MjExNDd-VjRuSWhpn4"
       ]) {
        resources {
          meetings {
            resources {
              connections {
                resources {
                  sipCalls(first: 1) {
                    resources {
                      sipCallStatsCollection {
                        totalCount
                        resources {
                          audioCodec
                          audioLatencyMs
                          videoCodec
                          videoLatencyMs
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
  }

Cette requête fournit des informations de base sur le protocole SIP sans statistiques :

project(projectId: 12345678) {
    sessionData {
      sessions(sessionIds: [
        "1_MX4xMDB-fjE1Mzg4NzA0MjExNDd-VjRuSWhpn4"
       ]) {
        resources {
          meetings {
            resources {
              connections {
                resources {
                  sipCalls(first: 10) {
                    resources {
                      sipCallId
                      connectionId
                      conferenceId
                      createdAt
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
  }

Pour récupérer les statistiques complètes sur la qualité SIP, utilisez la requête suivante :

 {
 project(projectId: 12345678) {
     sessionData {
       sessions(sessionIds: [
        "1_MX4xMDB-fjE1Mzg4NzA0MjExNDd-VjRuSWhpn4"
       ]) {
         resources {
           meetings {
             resources {
               connections {
                 resources {
                   sipCalls(first: 1) {
                     resources {
                       sipCallId
                       connectionId
                       conferenceId
                       createdAt
                       sipCallStatsCollection {
                         totalCount
                         resources {
                           audioCodec
                           audioLatencyMs
                           audioSentBitrateKbps
                           audioSentPacketLoss
                           videoCodec
                           videoLatencyMs
                           videoSentBitrateKbps
                           videoSentPacketLoss
                         }
                       }
                     }
                   }
                 }
               }
             }
           }
         }
       }
     }
   }

Effectuer des requêtes POST à l'API GraphQL de Video Insights

Toutes les requêtes GraphQL de Video Insights sont adressées à https://tools.vonage.com/video/insights-api/graphql.

Régler le Content-Type à l'en-tête application/json.

Régler le Authorization à l'en-tête Bearer <JWT>où le JWT est généré pour votre application Vonage Video (à l'aide de sa clé privée) comme décrit dans la section Authentification Video API.

Le corps du message POST contient un objet JSON avec un seul élément query dont la valeur est la chaîne GraphQL.

Exemple de requête cURL pour obtenir les minutes souscrites en streaming :

curl -X POST \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_VIDEO_JWT" \ -d '{"query":"{ application(applicationId: \"APPLICATION_ID\") { applicationData(start: \"START_DATE\") { resources { usage { streamedSubscribedMinutes } } } } }"}' \ 'https://tools.vonage.com/video/insights-api/graphql'

Remplacer YOUR_VIDEO_JWT avec un JWT valide généré pour votre application vidéo Vonage (après avoir activé les capacités vidéo et signé avec la clé privée de l'application), APPLICATION_ID avec l'identifiant (UUID) de cette application, et START_DATE avec un horodatage ISO-8601 ou une valeur d'époque.

Objets de réponse

Les objets de réponse respectent le schéma GraphQL et sont formatés en JSON, mais ils n'incluent que les champs que vous avez spécifiés dans vos demandes. Les objets curl ci-dessus produira un objet de réponse semblable à celui qui suit :

 {  
  "data":{  
    "application":{  
      "applicationData":{  
        "resources":[  
          {  
            "usage":{  
              "streamedSubscribedMinutes":3189
            }
          }
        ]
      }
    }
  }
}

La façon la plus simple d'avoir un aperçu de ce qui vous attend est d'ajouter différents filtres, groupes et champs à la base de données des Insights GraphiQL Exploreret observer la réponse.

Utilisation de la pagination dans les requêtes

Les deux applicationData() et sessionData() Les API acceptent les options de pagination pour toutes les méthodes qui renvoient des listes (tableaux). Toutes ces méthodes mettent en œuvre une fonction ResourceCollection qui contiennent les propriétés optionnelles suivantes :

  • first (facultatif) - Le nombre d'entrées à renvoyer par page. La limite est de 10 pour les réunions et de 1000 pour toutes les autres collections de ressources. Le nombre d'entrées renvoyées par défaut est de 10 pour les réunions et de 50 pour toutes les autres collections de ressources.

  • endCursor (facultatif) - Curseur de chaîne de caractères utilisé pour spécifier la page actuelle (décalage). La valeur de ce curseur est obtenue à partir de l'élément pageInfo pour chaque liste renvoyée. Si vous ne spécifiez pas de endCursor une requête renvoie la première page de résultats correspondante (le début de la liste).

  • Les pageInfo (renvoyé pour chaque liste) comprend les propriétés suivantes :

    • hasNextPage - Propriété booléenne qui indique s'il y a plus de pages disponibles.
    • endCursor - La chaîne à passer pour obtenir la page suivante.

    Par exemple, la requête suivante renvoie des informations sur la pagination ainsi que les 10 premiers résultats. applicationData ressources :

{
  application(applicationId: "23456ab-12ab-1234-23bc-123456789abc") {
    applicationData(
      start: "2025-01-01T07:00:00.000Z",
      first: 10,
      interval: MONTHLY,

    ) {
      pageInfo {
        hasNextPage
        endCursor
      }
      resources {
          participantMinutes {
            from1To25Publishers
            from26To35Publishers
            from36PlusPublishers
        }
      }
    }
  }
}

La réponse contient des informations sur la pagination :

{
  "data": {
    "application": {
      "applicationData": {
        "pageInfo": {
          "hasNextPage": true,
          "endCursor": "aW5zaWdodHMtcmVzb3VyY2U6MTA=="
        },
        "resources": [
          {
            "usage": {
               "participantMinutes": {
                  "from1To25Publishers": 22,
                  "from26To35Publishers": 20,
                  "from36PlusPublishers": 10,
            }
          },
                    ...

Utiliser le endCursor de cette réponse ("aW5zaWdodHMtcmVzb3VyY2U6MTA==") en tant que endCursor utilisée dans la requête pour obtenir la page suivante d'enregistrements correspondants :

{
  application(applicationId: "23456ab-12ab-1234-23bc-123456789abc") {
    applicationData(
      start: 0,
      first: 10,
      interval: MONTHLY,
      endCursor: "aW5zaWdodHMtcmVzb3VyY2U6MTA=="

    ) {
      pageInfo {
        hasNextPage
        endCursor
      }
      resources {
        usage {
          participantMinutes {
            from1To25Publishers
            from26To35Publishers
            from36PlusPublishers
        }
      }
    }
  }
}

Conservation des données et temps de latence

Aperçus / Tableau de bord des aperçus

Conservation des données :

  • Agrégation quotidienne : 90 jours
  • Agrégation mensuelle : 12 mois

Notes :

  • Les données d'agrégation quotidiennes sont calculées sur la base de 00:00 - 23:59 PST/PDT.
  • La période de conservation de l'agrégation quotidienne pour Insights API et Insights Dashboard a été mise à jour à 90 jours (au lieu de 60 jours) à compter du 12 août 2021. Les données agrégées quotidiennement pour les sessions vidéo après cette date seront disponibles pendant 90 jours.

Temps de latence prévu : 36 - 48 heures Advanced Insights retention period

Perspectives avancées

Conservation des données : 21 jours

Remarque : La période de conservation est basée sur l'heure de création d'une réunion au sein de la session.

Temps de latence prévu : 5 minutes

Advanced Insights retention period

Remarque : Une session unique peut avoir plusieurs réunions. Une nouvelle réunion est définie lorsque la session n'est pas utilisée pendant 10 minutes. Veuillez vous référer à notre documentation sur Sessions ou réunions pour plus d'informations.

Codes d'erreur

Les erreurs sont incluses dans la réponse, dans un fichier errors comme dans le cas suivant :

"errors": [
  {
    "message": "You must provide a valid application ID.",
    "locations": [
      {
        "line": 2,
        "column": 3
      }
    ],
    "path": [
      "application"
    ],
    "errorCode": 1008
  }
]

Le tableau suivant répertorie les codes d'erreur et leurs descriptions. Voir le message de l'erreur pour plus de détails.

Code d'erreur Description de l'erreur
1000 L'identifiant de l'application fourni n'est pas valide.
1001 Aucune authentification valide n'a été fournie.
1002 Plage de dates non valide.
1003 Paramètre non valide. Un seul intervalle de dates est autorisé.
1004 Paramètres non valides.
1005 Paramètre non valide.
1006 Paramètre non valide. La valeur doit être un entier.
1007 Paramètre non valide pour spécifier un numéro de version du SDK vidéo de Vonage. Le format requis est 0.0.0.
1008 Vous devez fournir une pièce d'identité valide pour la demande.
1009 Paramètre non valide.
1010 Le paramètre transmis n'est pas valide. Le paramètre n'accepte qu'une seule valeur.
1011 Jeton non valide.
1012 Erreur de serveur interne.
1013 Un paramètre obligatoire est manquant.
1014 La requête spécifiée nécessite l'utilisation de l'option Perspectives avancées complémentaire.
1015 L'identifiant de l'application spécifiée n'a pas été trouvé.
1016 La session a expiré.
1017 La session spécifiée n'a pas été trouvée.
1018 Vous devez fournir au moins un identifiant de session dans le tableau d'entrée.
1019 Le jeton ne correspond pas à l'identifiant de l'application.
1020 Impossible de valider le jeton.
1021 Vous n'êtes pas autorisé à consulter les données de cette application.
1022 Erreur de type. Voir les détails dans le message chaîne de caractères.

Questions supplémentaires

Vous pouvez rechercher un identifiant de session sans inclure un identifiant de projet dans une requête :

{
  project(sessionIds: "2_MX4xMDB-fjE3MTMyMTMwNDQ1NDV-Z29CLzhyejNha1N2M2RaV255Sno1RTZNfn5-") {
    sessionData {
      sessions {
        resources {
          mediaMode
          sessionId
          meetings {
            totalCount
            pageInfo {
              hasNextPage
              endCursor
            }
            resources {
              meetingId
              createdAt
              destroyedAt
            }
          }
        }
      }
    }
  }
}

Vous pouvez utiliser le not opérateur pour projectData:

{
  project(projectId: 12345678) {
    projectData(
      start: "2024-04-10T11:37:06.147Z"
      interval: AUTO
      not: {
        sdkType:ANDROID
      }
    ) {
      resources {
        intervalStart
        intervalEnd
        sdkType
        sdkVersion
        browser
        usage {
          streamedPublishedMinutes
          streamedSubscribedMinutes
        }
      }
    }
  }
}

Vous pouvez filtrer les connexions en fonction de la localisation et du navigateur :

{
  project(sessionIds: "2_MX4xMDB-fjE3MTMyMTMwNDQ1NDV-Z29CLzhyejNha1N2M2RaV255Sno1RTZNfn5-") {
    sessionData {
      sessions {
        resources {
          meetings {
            resources {
              connections(country: "US") {
                totalCount
              }
            }
          }
        }
      } 
    }
  }
}

Vous pouvez définir un audioCodec filtre (pour PCMU, VP8, OPUS, TELEPHONEou OTHER), ou définir un videoCodec filtre (pour VP8, H264, VP9, RTXou OTHER) :

{
  project(sessionIds: "2_MX4xMDB-fjE3MTMyMTMwNDQ1NDV-Z29CLzhyejNha1N2M2RaV255Sno1RTZNfn5-") {
    sessionData {
      sessions {
        resources {
          sessionId
          meetings {
            resources {
              meetingId
              createdAt
              publishers {
                resources {
                  createdAt
                  connectionId
                  stream {
                    streamId
                  }
                  streamStatsCollection(filters: { videoCodec: VP8} ) {
                    resources {
                      createdAt
                      audioBitrateKbps
                      videoBitrateKbps
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}

Vous pouvez définir un mediaMode filtre à ROUTED ou RELAYED.

{
  project(sessionIds: "2_MX4xMDB-fjE3MTMyMTMwNDQ1NDV-Z29CLzhyejNha1N2M2RaV255Sno1RTZNfn5-") {
    sessionData {
      sessionSummaries (
        start: "2024-02-25T20:02:32.345Z"
        filters: { mediaMode: ROUTED } ) {
        resources {
          sessionId
          mediaMode
          meetings  {
            totalCount
            pageInfo {
              hasNextPage
              endCursor
            }
            resources {
              meetingId
              createdAt
              destroyedAt
            }
          }
        }
      }
    }
  }
}