Les Copilot API de métriques d’utilisation ne publient pas de rapport d’équipe pré-agrégé unique. Les métriques au niveau de l’équipe sont construites en joignant le rapport des équipes utilisateur (qui répertorie les appartenances d’équipe de chaque utilisateur pour un jour donné) avec le rapport des métriques d’utilisation par utilisateur (qui contient l’activité de Copilot chaque utilisateur pour ce jour). L’agrégation des lignes jointes par team_id produit des métriques au niveau de l’équipe.
La même méthode de jointure prend en charge tout découpage au niveau des équipes dont vous avez besoin : par (team, day), par (team, day, language), par (team, day, IDE), sur des fenêtres glissantes, et ainsi de suite.
Extraction des rapports
Les deux rapports référencés dans ce guide sont téléchargés en deux étapes. Tout d’abord, appelez le point de terminaison REST pour le jour souhaité. Le point de terminaison retourne des URL signées limitées dans le temps à partir desquelles vous pouvez télécharger les fichiers de rapport. Téléchargez ensuite les fichiers JSON délimités par des sauts de ligne (NDJSON) auxquels ces URL renvoient. Les lignes d’appartenance utilisateur-équipe et les lignes par utilisateur se trouvent dans ces fichiers NDJSON ; elles ne sont pas renvoyées directement par le point de terminaison REST.
| Report | Point de terminaison |
|---|---|
| Équipes d’utilisateurs de l’organisation | GET / |
| Équipes utilisateur d’entreprise | GET / |
| Métriques d’utilisation par utilisateur de l’organisation | GET / |
| Métriques d’utilisation par utilisateur d’entreprise | GET / |
Chaque point de terminaison retourne une réponse du formulaire :
{
"download_links": [
"https://example.com/copilot-user-teams-report-1.ndjson"
],
"report_day": "2026-05-07"
}
Téléchargez le fichier à chaque URL avant l’expiration du lien afin de récupérer les lignes correspondant à ce rapport.
Pour obtenir des schémas de demande et de réponse complets, des exigences d’authentification et des points de terminaison associés, consultez Points de terminaison d’API REST pour les métriques d’utilisation Copilot. Pour obtenir une vue d’ensemble de la façon dont les champs de métrique d’utilisation individuels sont définis, consultez Données disponibles dans les métriques d’utilisation Copilot.
Pour une période de plusieurs jours, appelez les points de terminaison journaliers une fois par jour et agrégez les résultats quotidiens. Consultez ci-dessous la création de rapports d’équipe à fenêtre glissante.
Rapports impliqués
Les métriques au niveau de l’équipe proviennent de la jonction de deux familles de rapports : les rapports d’équipes utilisateur pour l’appartenance à l’équipe et les rapports de métriques d’utilisation par utilisateur pour l’activité.
Rapports d’équipes utilisateur
Ces rapports répertorient les appartenances d’équipe de chaque utilisateur le jour donné.
| Report | Étendue | Champs clés |
|---|---|---|
organization_ | Appartenance des utilisateurs aux équipes de l’organisation pour la journée considérée. Inclut uniquement les équipes de l’organisation. | |
user_id, , user_login, day``organization_, , team_id``slug | ||
enterprise_user_ | Adhésion à l’équipe Enterprise pour un jour. Inclut à la fois les équipes d’entreprise et les équipes métier. | |
user_id, , user_login, day``enterprise_id, , team_id``slug |
Un utilisateur appartenant à plusieurs équipes le même jour apparaît dans plusieurs lignes : une ligne par (user, team) paire.
Important
Les équipes avec moins de 5 utilisateurs assis Copilot sont exclues des rapports des équipes d’utilisateurs.
Implications:
- Une équipe avec moins de 5 utilisateurs assis sur une journée donnée n’apparaît pas dans le rapport des équipes utilisateur de ce jour, même si ses membres ont Copilot une activité. L’activité figure toujours dans le rapport de métriques d’utilisation par utilisateur, mais aucune ligne d’équipe n’existe dans le résultat de la jointure.
- Une équipe qui franchit le seuil pendant une période de plusieurs jours est présente sur certains jours et absente sur d’autres. Seuls les jours où l’équipe était au-dessus du seuil contribuent à ses totaux.
- Si vous additionnez à nouveau les lignes d’équipe pour les comparer à un total d’entreprise ou d’organisation, la somme sera inférieure au total de l’entité. L’écart provient de l’activité des utilisateurs qui appartiennent uniquement à des équipes en dessous du seuil : ils n’ont aucune ligne d’équipe dans le résultat de la jointure, de sorte que leur activité n’est représentée dans aucun agrégat d’équipe.
Rapports de métriques d’utilisation par utilisateur
Ces rapports contiennent l’activité de Copilot chaque utilisateur pour une journée donnée.
| Report | Étendue | Champs clés |
|---|---|---|
organization_ | Une ligne par (user_id, day, organization_id) avec l’activité Copilot de l’utilisateur au sein de cette organisation pour cette journée. | |
user_id, day, , organization_, compteurs d’activité, tableaux de répartition | ||
users_1_day | Une ligne par (user_id, day, enterprise_id), avec l’activité de l’utilisateurCopilot au sein de cette entreprise pour ce jour. | user_id, day, enterprise_id, compteurs d’activité, tableaux de répartition |
Pour obtenir la liste complète des champs disponibles dans ces rapports, consultez Données disponibles dans les métriques d’utilisation Copilot.
Avertissement
Ne joignez pas les rapports par utilisateur sur 28 jours glissants (users_28_day, organization_users_28_day) avec le rapport quotidien utilisateur-équipe. Le rapport sur les équipes des utilisateurs reflète l’appartenance à une équipe à une date donnée. Par conséquent, le fait de joindre 28 jours d’activité à un instantané d’appartenance pris sur une seule journée attribue l’ensemble des 28 jours d’activité aux équipes auxquelles l’utilisateur appartient le jour de la jointure. Cela attribue incorrectement l’activité aux mauvaises équipes chaque fois que la composition des équipes a changé pendant la période. Joignez toujours l’activité quotidienne avec les données quotidiennes utilisateur-équipe, puis agrégez selon la fenêtre souhaitée.
Rapports au niveau de l’entité
Les rapports au niveau de l’entité (enterprise_28_day, , organization_28_day, enterprise_1_day``organization_1_day) sont des totaux pré-agrégés pour l’ensemble de l’entreprise ou de l’organisation. Ils n’incluent pas user_id ni team_id, et ne peuvent pas être combinés avec le rapport sur les équipes d’utilisateurs pour produire des répartitions par équipe. Utilisez-les directement lorsque vous souhaitez obtenir les totaux de l’entreprise ou de l’organisation ; pour les totaux au niveau de l’équipe, utilisez la jointure entre les user-teams quotidiens et les métriques quotidiennes par utilisateur décrite ci-dessous.
Example
Cet exemple minimal de bout en bout génère les métriques des équipes de l’organisation pour une journée. Les exemples de lignes NDJSON ci-dessous pour chaque rapport d’entrée sont similaires aux lignes que vous trouverez dans le fichier téléchargé à partir de l’un download_links de ces rapports (voir Extraction des rapports ci-dessus).
Deux utilisateurs ont une activité Copilot le 07/05/2026 dans l’organisation 999 :
- Alice (
user_id=1001) appartient à deux équipes ce jour-là :frontend(team_id=42) etbackend(team_id=43). - Bob (
user_id=1002) appartient àfrontend(team_id=42) uniquement.
Entrée : organization_user_teams_1_day
{"user_id": 1001, "user_login": "alice", "day": "2026-05-07", "organization_id": "999", "team_id": 42, "slug": "frontend"}
{"user_id": 1001, "user_login": "alice", "day": "2026-05-07", "organization_id": "999", "team_id": 43, "slug": "backend"}
{"user_id": 1002, "user_login": "bob", "day": "2026-05-07", "organization_id": "999", "team_id": 42, "slug": "frontend"}
Alice apparaît deux fois : une ligne par équipe à laquelle elle appartient.
Entrée : organization_users_1_day
{"user_id": 1001, "user_login": "alice", "day": "2026-05-07", "organization_id": "999", "enterprise_id": "13213",
"user_initiated_interaction_count": 50, "code_generation_activity_count": 40, "code_acceptance_activity_count": 12,
"loc_suggested_to_add_sum": 200, "loc_added_sum": 88, "used_chat": true, "used_agent": true, ...}
{"user_id": 1002, "user_login": "bob", "day": "2026-05-07", "organization_id": "999", "enterprise_id": "13213",
"user_initiated_interaction_count": 30, "code_generation_activity_count": 25, "code_acceptance_activity_count": 7,
"loc_suggested_to_add_sum": 80, "loc_added_sum": 24, "used_chat": true, "used_agent": false, ...}
Une ligne par (user, day, organization). Les totaux d’activité sont pour la journée, additionnés sur toutes les surfaces.
Résultat joint et agrégé
Effectuez une jointure interne entre les deux rapports sur (user_id, day, organization_id), puis regroupez par team_id et agrégez. La active_users colonne ci-dessous est une sortie d’agrégation (COUNT(DISTINCT user_id)et non un champ du rapport par utilisateur). Les colonnes numériques restantes sont des sommes des champs de rapport correspondants.
| team_id | slug | utilisateurs_actifs | nombre_d'activités_d'acceptation_du_code | loc_added_sum |
|---|---|---|---|---|
| 42 | frontend | 2 | 19 | 112 |
| 43 | Serveur principal | 1 | 12 | 88 |
Deux lignes équipe-jour, une par équipe. La frontend ligne agrège à la fois l’activité d’Alice et de Bob. La backend ligne contient uniquement l’activité d’Alice.
L’activité d’Alice contribue aux deux équipes. Les valeurs 12 et 88 de sa ligne sont comptabilisées dans frontend puis à nouveau dans backend. Cela correspond à l’objectif des métriques par équipe (chaque équipe voit l’activité de ses membres), mais réagréger les deux lignes d’équipe en un total unique pour l’organisation entraîne un double comptage d’Alice. Pour les totaux de l’organisation, interrogez directement organization_users_1_day sans effectuer la jointure utilisateur-équipe.
Comment construire des métriques au niveau de l’équipe
Pour n’importe quelle tranche au niveau de l’équipe, les quatre mêmes étapes s’appliquent.
-
Sélectionnez la paire de rapports.
- Pour les équipes de l’organisation, associez
organization_user_teams_1_dayàorganization_users_1_day. L’ID d’entité partagée estorganization_id. - Pour les équipes grandes entreprises et commerciales, associez
enterprise_user_teams_1_dayàusers_1_day. L’ID d’entité partagée estenterprise_id.
- Pour les équipes de l’organisation, associez
-
Effectuez une jointure interne entre les deux rapports sur
(user_id, day, entity_id). Les trois clés doivent correspondre. La jointure est de type un-à-plusieurs du côté des équipes : un utilisateur appartenant à plusieurs équipes correspond à plusieurs lignes utilisateur-équipe. -
Filtrer par
dayau jour où vous le souhaitez. Les deux rapports portent la mêmedayvaleur. -
Regrouper par
team_id(etslugpour le nom d’affichage de l’équipe), puis agréger. Utiliser :COUNT(DISTINCT user_id)pour les nombres d’utilisateurs distincts, tels que les utilisateurs actifs.SUM(...)pour les compteurs de volume tels quecode_generation_activity_count,loc_added_sumetuser_initiated_interaction_count.
La jointure est une jointure interne : une équipe apparaît dans le résultat pour une journée donnée uniquement si au moins un de ses membres a eu une activité ce jour-là. Pour lister les équipes sans activité sur la journée, effectuez une jointure externe gauche à partir du rapport utilisateur-équipe et considérez les compteurs nuls comme égaux à zéro.
Couper par langage, IDE, fonctionnalité ou modèle
Les répartitions par dimension sont stockées dans des champs tableau sur chaque ligne utilisateur (totals_by_ide, totals_by_language_feature, totals_by_language_model, totals_by_model_feature). Pour regrouper par dimension, développez le tableau correspondant dans le cadre de la jointure, ajoutez les colonnes de dimension à votre regroupement, puis agrégez les compteurs propres à cette dimension.
language et ide se trouvent dans des tableaux distincts, donc un tableau croisé (language × ide) au niveau de l’équipe nécessite deux requêtes combinées dans votre application.
Création de rapports d’équipe sur fenêtre glissante
Pour produire un rapport d’équipe sur une fenêtre glissante (par exemple un cumul sur 28 jours) :
- Appelez les points de terminaison quotidiens pour chaque jour de la fenêtre.
- Joignez chaque jour le rapport de métriques d’utilisation par utilisateur (
organization_users_1_dayouusers_1_day) avec le rapport des équipes utilisateur (organization_user_teams_1_dayouenterprise_user_teams_1_day) du même jour sur(user_id, day, entity_id). - Filtrez
daydans la fenêtre et retirezdaydu regroupement.
Les compteurs de volume sont cumulables d’un jour à l’autre ; additionnez-les sur toute la fenêtre. Les nombres d’utilisateurs distincts doivent être évalués comme COUNT(DISTINCT user_id) sur les lignes jointes de la fenêtre complète. Ils ne peuvent pas être additionnés sur les nombres quotidiens.
La jointure quotidienne garantit que l’activité de chaque journée est attribuée aux équipes auxquelles l’utilisateur appartenait ce jour-là. Sans cela, les changements d’appartenance à une équipe au cours de la période entraîneraient une attribution incorrecte de l’activité à de mauvaises équipes.
Limitations et mises en garde
- Les utilisateurs de plusieurs équipes contribuent à chaque équipe à laquelle ils appartiennent. Soyez prudent lorsque vous réagrégez les lignes d’équipe en un total d’organisation ou d’entreprise : les utilisateurs appartenant à plusieurs équipes seront comptés plusieurs fois. Utilisez directement le rapport par utilisateur (sans joindre les équipes utilisateur) pour les totaux de l’organisation ou de l’entreprise.
- Les équipes en dessous du seuil sont absentes du rapport sur les équipes utilisateur. Les équipes avec moins de 5 utilisateurs assis sur Copilot une journée donnée sont exclues. Leur activité n’est donc pas représentée dans les résultats au niveau de l’équipe, même si l’activité est toujours dans le rapport par utilisateur.
- Les nombres d’utilisateurs distincts ne peuvent pas être additionnés sur plusieurs jours. Lors d’un cumul sur plusieurs jours, évaluez
COUNT(DISTINCT user_id)sur les lignes jointes de l’ensemble de la fenêtre plutôt que d’additionner les décomptes quotidiens. -
**Davantage de surfaces fonctionnelles sont désormais suivies.** Les compteurs de volume (`code_generation_activity_count`, `code_acceptance_activity_count` et les compteurs `loc_*`) agrègent l’activité provenant de plusieurs surfacesCopilot : complétions en ligne dans l’IDE, actions dans le panneau de conversation et (pour les compteurs de lignes acceptées) modifications agent co-pilote. Pour en savoir plus sur la couverture par surface et par compteur, consultez [AUTOTITLE](/copilot/reference/copilot-usage-metrics/copilot-usage-metrics). Si vous utilisiez auparavant des métriques similaires provenant d’une surface qui ne comptabilisait que les complétions en ligne dans l’IDE, attendez-vous à des valeurs plus élevées dans ces compteurs et établissez une nouvelle référence plutôt que de comparer directement avant/après la transition. - Tirez parti des nouvelles dimensions. Des répartitions par IDE, par fonctionnalité, par
(language, feature), par(language, model)et par-(model, feature)sont disponibles sur chaque ligne utilisateur, permettant de produire des rapports au niveau des équipes qui n’étaient pas pris en charge par les précédentes surfaces de métriques d’équipe.
Étapes suivantes
- Pour obtenir la référence complète du schéma et du champ pour le rapport des métriques d’utilisation par utilisateur, consultez Données disponibles dans les métriques d’utilisation Copilot.
- Pour obtenir des exemples de charges utiles JSON à partir des points de terminaison des métriques d’utilisation, consultez Exemple de schéma pour les métriques d’utilisation de Copilot.
- Pour obtenir des conseils sur la réconciliation des métriques entre le tableau de bord, les API et les exportations, consultez Rapprochement des métriques d’utilisation de Copilot entre les tableaux de bord, les API et les rapports.