Vue d’ensemble
Enterprise
C’est une API Enterprise disponible uniquement dans le cadre de nos niveaux d’accès gérés. Pour utiliser cette API, vous devez d’abord créer un compte avec notre équipe commerciale Enterprise. En savoir plus
L’Engagement API fournit un accès aux métriques d’impressions et d’engagement des Publications. Alors que la plupart des métriques et des endpoints exigent que vous vous authentifiiez à l’aide du contexte utilisateur OAuth 1.0a, vous pouvez accéder aux métriques publiques Favorite, Retweet, Reply et Video Views en utilisant un Jeton Bearer OAuth 2.0 et l’endpoint /totals.
Remarque : vous pouvez constater des différences entre les données affichées sur certains tableaux de bord Web de X et les données renvoyées par l’Engagement API. Ces différences surviennent parce que les tableaux de bord Web n’affichent généralement que les engagements et/ou impressions qui ont eu lieu dans l’intervalle de temps sélectionné. Par exemple, un tableau de bord Web peut afficher l’engagement sur des Publications sur la durée d’un mois calendaire, tandis que l’Engagement API peut afficher des engagements qui dépassent la durée de ce mois, mais se situent dans l’intervalle de temps demandé. Dans ces cas, l’Engagement API doit être considérée comme la source de référence.
Points de terminaison des requêtes
Totaux actuels : [/totals]
- Les requêtes renvoient une métrique totale d’impressions et une métrique totale d’engagements pour les Publications demandées
- Limité aux métriques suivantes : Impressions, Engagements, Favoris, Réponses, Retweets, Quote Tweets et Vues vidéo
- Permet de récupérer les métriques Impressions et Engagements pour les Publications créées au cours des 90 derniers jours en utilisant le contexte utilisateur OAuth 1.0a
- Permet de récupérer les métriques Favorites, Retweets, Quote Tweets, Replies et Video Views pour toute Publication en utilisant un jeton Bearer OAuth 2.0
- Les résultats sont basés sur le total actuel d’impressions et d’engagements au moment où la requête est effectuée
- Idéal pour alimenter un tableau de bord et calculer les taux d’engagement sur une variété de @handles
- Permet de demander des métriques pour jusqu’à 250 Publications par requête
28 dernières heures : [/28hr]
- Les requêtes peuvent renvoyer une métrique totale pour les impressions, une métrique totale pour les engagements, ainsi qu’une ventilation des métriques d’engagement individuelles observées au cours des 28 dernières heures
- Les données peuvent être regroupées par ID de Publication, et sous forme de séries temporelles agrégées, par jour ou par heure
- Idéal pour suivre les performances de contenu créé récemment
- Prend en charge toutes les métriques disponibles
- Prend en charge les demandes de métriques pour jusqu’à 25 Publications par requête
Historique : [/historical]
- Les requêtes peuvent renvoyer les impressions, les interactions et une ventilation des métriques d’interaction individuelles pour l’année la plus récente, en se basant sur le moment de l’interaction (et non sur la date de création de la Publication).
- Les requêtes permettent de définir une date de début et une date de fin, offrant la flexibilité de restreindre l’analyse à une période spécifique pouvant aller jusqu’à 4 semaines.
- Les données d’interaction sur les Publications sont limitées aux 365 derniers jours.
- Les données peuvent être regroupées par Post ID et, sous forme de séries chronologiques agrégées, par jour ou par heure.
- Idéal pour évaluer les performances récentes par rapport à une référence historique ou pour développer une vision historique des performances d’un @handle.
- Prend en charge toutes les métriques disponibles.
- Permet de demander des métriques pour jusqu’à 25 Publications par requête.
Métriques disponibles
| Métrique | Disponibilité de l’endpoint | Contexte utilisateur requis | Description |
|---|---|---|---|
| impressions | Tous | Oui | Nombre de fois où la Publication a été vue. Cette métrique n’est disponible que pour les Publications publiées au cours des 90 derniers jours. |
| engagements | Tous | Oui | Nombre de fois où un utilisateur a interagi avec la Publication. Cette métrique n’est disponible que pour les Publications publiées au cours des 90 derniers jours. |
| favorites | Tous | Oui - /28hrs & /Historical Non - /totals | Nombre de fois où la Publication a été ajoutée aux favoris. |
| retweets | Tous | Oui - /28hrs & /Historical Non - /totals | Nombre de fois où la Publication a été retweetée. |
| quote_tweets | /totals | Non - /totals | Nombre de fois où une Publication a été retweetée avec un commentaire (également appelée « Quote »). |
| replies | Tous | Oui - /28hrs & /Historical Non - /totals | Nombre de fois où une réponse a été publiée en réponse à la Publication. |
| video_views | Tous | Oui - /28hrs & /Historical Non - /totals | Le nombre de fois où une vidéo dans la Publication donnée a été visible à 50 % pendant au moins deux secondes. Les vues vidéo ne sont disponibles que pour les Publications âgées de 1800 jours ou moins. Si vous tentez de récupérer des vues vidéo pour des Publications de plus de 1800 jours, vous recevrez l’objet suivant dans votre réponse, ainsi qu’un objet séparé contenant les autres métriques que vous avez demandées : “unsupported_for_video_views_tweet_ids”: [“TWEET_ID”] Veuillez noter : vous pouvez constater un écart entre la métrique de vues vidéo affichée sur les plateformes détenues et exploitées par X (application mobile et site web) et le nombre que vous recevez via les endpoints /28hr et /historical. * Les vues vidéo affichées dans l’interface utilisateur X et avec l’endpoint /totals affichent le nombre de vues vidéo agrégé pour toutes les Publications dans lesquelles la vidéo donnée a été publiée. Cela signifie que la métrique affichée dans l’interface inclut les vues combinées de toute occurrence où la vidéo a été Retweetée ou republiée dans des Publications distinctes. Cette métrique n’inclut pas les vues vidéo sur les GIF. * Les vues vidéo fournies par les endpoints /28hr et /historical incluent uniquement les vues générées par la Publication spécifique pour laquelle vous récupérez des métriques. Cette métrique n’inclut pas les vues vidéo sur les GIF. |
| media_views | /28hr /historical | Oui | Nombre total de vues (lecture automatique et clic) de vos médias, comptabilisées sur les vidéos, GIF et images. |
| media_engagements (anciennement appelé Media Clicks) | /28hr /historical | Oui | Nombre de fois où un média, tel qu’une image ou une vidéo, présent dans la Publication, a été cliqué. |
| url_clicks | /28hr /historical | Oui | Nombre de fois où une URL présente dans la Publication a été cliquée. |
| hashtag_clicks | /28hr /historical | Oui | Nombre de fois où un hashtag présent dans la Publication a été cliqué. |
| detail�5fexpands | /28hr /historical | Oui | Nombre de fois où la Publication a été cliquée pour afficher plus de détails. |
| permalink�5fclicks | /28hr /historical | Oui | Nombre de fois où le lien permanent de la Publication (sa page Web individuelle dédiée à cette Publication) a été cliqué. |
| app�5finstall�5fattempts | /28hr /historical | Oui | Nombre de fois où un événement d’installation d’App s’est produit à partir de la Publication. |
| app�5fopens | /28hr /historical | Oui | Nombre de fois où un événement d’ouverture d’App s’est produit à partir de la Publication. |
| email�5ftweet | /28hr /historical | Oui | Nombre de fois où la Publication a été partagée par e-mail. |
| user�5ffollows | /28hr /historical | Oui | Nombre de fois où l’utilisateur (auteur de la Publication) a été suivi à partir de cette Publication. |
| user�5fprofile�5fclicks | /28hr /historical | Oui | Nombre de fois où le profil de l’utilisateur (auteur de la Publication) a été consulté à partir de cette Publication. |
Regroupements d’engagement
- tweet.id
- engagement.type
/28hr et /historical peuvent fournir des mesures sous forme de séries chronologiques et prennent donc en charge :
- engagement.day
- engagement.hour
Guides
Guide de démarrage pour les développeurs
Introduction
Que fournit l’Engagement API ?
- L’Engagement API fournit des données d’impressions et d’engagement pour les Publications appartenant à n’importe quel compte X au cours des 90 derniers jours, à condition que ce compte ait autorisé votre App à demander des métriques en son nom à l’aide du flux 3-legged OAuth. Cette solution puissante mais simple à mettre en œuvre donne un accès immédiat aux impressions et aux engagements avancés tels que les clics sur les URL, les clics sur les hashtags (#), et bien d’autres encore.
- L’Engagement API fournit des métriques agrégées totales pour les ajouts aux favoris, les Retweets, les Tweets cités, les réponses et les vues de vidéos pour toute Publication. Cela peut être utilisé comme un moyen puissant d’obtenir des données d’engagement de base sur n’importe quelle Publication ou collection de Publications.
- L’Engagement API apporte une nouvelle valeur aux plateformes d’écoute sociale, de marketing et de publication en permettant aux clients de mesurer le ROI sur X en mesurant efficacement les performances du contenu à l’aide de plus de 15 indicateurs de performance.
- L’Engagement API est une API de requête/réponse qui permet aux développeurs d’applications d’envoyer des requêtes avec des id de Publication, les métriques souhaitées et une période donnée, pour lesquelles l’API renvoie instantanément des données.
Pourquoi intégrer ? Exemples de cas d’usage
- Comprendre la portée totale de votre contenu pour voir combien de personnes le consultent. Découvrir combien de personnes regardent des vidéos, cliquent sur des liens, cliquent sur des hashtags ou installent mes apps.
- Générer à la fois des métriques d’engagement totales et des séries temporelles de ces métriques.
- Comprendre les métriques d’engagement de base (favoris, Retweets, Tweets cités, réponses) concernant n’importe quelle Publication publique.
- Utiliser ces métriques pour déterminer quels types de Publications fonctionnent, afin que je puisse les publier plus souvent et obtenir davantage d’impressions et d’engagements pour mon contenu.
- Automatiser des actions marketing (comme retweeter du contenu depuis un autre compte que je possède) chaque fois qu’une de mes Publications atteint 100 Likes, ou un autre seuil.
- Établir des benchmarks et comparer mes campagnes entre elles en tant qu’outil d’A/B testing.
- Analyser quel type de contenu résonne le mieux pour mon service client afin de déterminer comment et quand répondre.
- Afficher des analyses pour le contenu publié depuis ma plateforme.
Intégration de l’API Engagement
Introduction à l’API
- Tableau d’identifiants de Publications.
- Tableau spécifiant les types de métriques d’intérêt. Les types incluent des éléments tels que « impressions », « retweets », « hashtag_clicks » et « user_follows ».
- Engagement groupings, qui est une structure JSON indiquant la façon dont vous souhaitez organiser les données d’engagement dans la réponse de l’API.
- Totals - Fournit les totaux globaux des engagements pour des Publications. Certaines métriques sont disponibles pour toutes les Publications, tandis que d’autres ne sont disponibles que pour les 90 derniers jours.
- 28 hour - Fournit des métriques d’engagement sous forme de séries temporelles pour les 28 dernières heures.
- Historical - Fournit des métriques d’engagement sous forme de séries temporelles pour jusqu’à quatre semaines consécutives pour des Publications publiées depuis le 1er septembre 2014.
Obtenir l’accès à l’API
Effectuer une requête
1/ Aujourd’hui, nous partageons notre vision de l’avenir de la plateforme X API— Twitter Dev (@TwitterDev) 6 avril 2017
Ne manquez pas les Publications à propos de votre Publication. Désormais sur iOS, vous pouvez voir les Retweets avec commentaire, tous au même endroit. pic.x.com/oanjZfzC6y — X (@X) 12 mai 2020La première étape consiste à construire la requête API en JSON, composée de ces deux id de Publication placés dans un tableau, d’un tableau des types d’engagement qui nous intéressent, et d’un objet JSON « groupings » personnalisé qui indique comment nous souhaitons que les métriques soient organisées dans la réponse. Voici à quoi ressemble notre requête :
- Content-Type: application/json
- Accept-Encoding: gzip
Authentification avec OAuth
Sélection d’un endpoint de l’Engagement API
- Totals - fournit les totaux globaux de certaines métriques issues de Publications « owned » ou « unowned ». Certaines métriques sont disponibles pour toutes les Publications, tandis que d’autres ne sont disponibles que pour les Publications publiées au cours des 90 derniers jours. Prend en charge 250 Publications par requête.
- 28 hour - fournit des métriques d’engagement sous forme de séries temporelles pour les Publications « owned » des 28 dernières heures. Prend en charge 25 Publications par requête.
- Historical - fournit des métriques d’engagement sous forme de séries temporelles pour une période allant jusqu’à quatre semaines consécutives pour les Publications « owned » publiées depuis le 1er septembre 2014. Prend en charge 25 Publications par requête.
Concepts clés
Impressions et métriques d’engagement
Contenu X détenu et non détenu
/totals fournit des données d’engagement pour les Publications détenues et non détenues. Pour les Publications non détenues, vous pouvez demander les métriques d’engagement qui sont disponibles publiquement dans l’affichage d’une Publication : J’aime, Retweet et Réponse. Pour ces métriques, l’atout de l’Engagement API est de permettre de les récupérer à grande échelle de manière automatisée. Pour les Publications détenues, l’endpoint /totals fournit également les métriques d’Impression et d’engagement total.
Les endpoints /28hr et /historical fournissent des métriques uniquement pour les Publications détenues, ce qui signifie que vous devez transmettre le contexte utilisateur lorsque vous faites une requête à ces endpoints.
Données d’engagement totales et en séries temporelles
Endpoints et exemples de cas d’usage
/totals
- J’ai seulement besoin d’accéder à certains types de métriques (Impressions, Engagements, Favoris, Retweets, Tweets cités, Réponses et Vues vidéo).
- J’ai besoin d’accéder à des données d’engagement de base pour n’importe quelle Publication, pas seulement celles qui m’appartiennent.
- Je veux comparer les performances avec un concurrent.
- Je veux suivre des statistiques d’engagement de base pour un hashtag ou une campagne qui inclut des Publications qui ne m’appartiennent pas.
- Je n’ai pas besoin de données ventilées par jour ou par heure, j’ai seulement besoin du total actuel au moment où j’envoie une requête.
- J’ai besoin d’une seule métrique à afficher dans un rapport ou un tableau de bord et je ne veux stocker aucune donnée.
- Je veux afficher les données au chargement de la page, et j’ai seulement besoin d’effectuer une requête et d’obtenir une réponse.
- J’ai besoin d’accéder à des données pour des centaines de milliers ou des millions de Publications par jour.
/28hr
- J’ai besoin d’accéder aux 17 types de métriques.
- Je veux afficher des données pour des Publications très récentes publiées au cours des 28 dernières heures.
- J’ai une tâche qui s’exécute une fois par jour pour récupérer les données qui m’intéressent et je n’ai besoin d’obtenir des données que pour le dernier jour.
- J’ai besoin que les métriques soient ventilées par jour ou par heure.
- Je veux afficher, dans un tableau de bord, des séries temporelles avec une ventilation de l’activité par heure.
- J’ai besoin d’un niveau d’accès élevé pour des centaines de milliers de Publications par jour.
- J’ai des capacités de stockage et je peux actualiser les données une fois par jour et conserver un cumul.
/historical
- J’ai besoin d’accéder aux 17 types de métriques.
- J’ai besoin d’obtenir des données historiques pour des Publications créées remontant jusqu’à septembre 2014.
- Je veux afficher une analyse historique détaillée comparant les campagnes.
- J’ai besoin que les métriques soient ventilées par jour ou par heure.
- Je n’ai pas besoin d’un niveau d’accès élevé à l’Engagement API et j’ai seulement besoin d’obtenir des données pour quelques centaines ou milliers de Publications par jour.
Caractéristiques clés de l’Engagement API
- API REST fournissant des données JSON et prenant en charge les requêtes POST avec des corps de requête JSON.
- Types de requêtes : Les applications clientes peuvent effectuer les types de requêtes suivants :
- Engagements totaux — requête HTTP POST vers l’endpoint /totals
- Engagements sur les 28 dernières heures — requête HTTP POST vers l’endpoint /28hr
- Engagements historiques — requête HTTP POST vers l’endpoint /historical
- Authentification OAuth :
- Contexte utilisateur OAuth 1.0a : Toutes les métriques disponibles sont accessibles pour les Publications appartenant à un utilisateur qui a autorisé votre App via OAuth à 3 volets. Vous devez utiliser les jetons d’accès de cet utilisateur lors de l’envoi de votre requête.
- Jeton Bearer OAuth 2.0 : Certaines métriques (Retweets, Tweets cités, Réponses, Favoris et Vues vidéo) sont disponibles pour toute Publication publique.
- Métadonnées et structure de requête : Les données de requête constituent un objet JSON composé d’un tableau d’identifiants de Publication, d’un tableau de types d’engagement et d’une structure de regroupement d’engagement.
- Publications par requête :
- Endpoint /totals : 250 identifiants de Publication
- Endpoint /28hr : 25 identifiants de Publication
- Endpoint /historical : 25 identifiants de Publication
- Disponibilité des métriques d’engagement :
- /totals — Totaux des métriques depuis la date de publication de la Publication. Les Impressions et Engagements sont disponibles pour les Publications publiées au cours des 90 derniers jours, tandis que les Retweets, Tweets cités, Réponses, Favoris et Vues vidéo sont disponibles pour toutes les Publications.
- /28hr — 28 dernières heures à partir du moment de la requête.
- /historical — Toute période de 28 jours à partir du 1er septembre 2014.
- Types de métriques : Chaque requête inclut un tableau de Types de métriques. Leur disponibilité dépend de l’endpoint et, dans le cas d’une requête à l’endpoint /totals, du fait que les Publications soient ou non soumises aux autorisations de l’utilisateur.
- Endpoint /totals :
- Toutes les Publications : Favoris, Retweets, Tweets cités, Réponses et Vues vidéo
- Nécessite un contexte utilisateur OAuth 1.0a : Impressions, Engagements, Favoris, Réponses et Retweets
- Endpoints /28hr et /historical (nécessitent un contexte utilisateur OAuth 1.0a avec le jeton d’accès du propriétaire de la Publication) : Impressions, Engagements, Favoris, Réponses, Retweets, Clics sur URL, Clics sur hashtag, Clic sur le détail, Clics sur lien permanent, Clics sur média, Tentatives d’installation d’App, Ouvertures d’App, E-mails de Publication, Vues vidéo et Vues média
- Endpoint /totals :
- Regroupements d’engagement : Chaque requête inclut un tableau de Regroupements d’engagement. Avec ces regroupements, vous pouvez personnaliser la façon dont les métriques renvoyées sont organisées. Jusqu’à trois regroupements peuvent être inclus dans chaque requête. Les métriques peuvent être organisées selon les valeurs suivantes :
- Tous les endpoints : identifiant de Publication, type d’engagement
- Endpoints /28hr et /historical : ces endpoints fournissent des séries temporelles si ces regroupements supplémentaires sont spécifiés : Jour d’engagement, Heure d’engagement
- Attentes en matière d’intégration : Votre équipe sera responsable de ce qui suit :
- Créer et maintenir une application cliente capable d’envoyer des requêtes HTTP à l’Engagement API et qui renvoie les métriques d’engagement pour les identifiants de Publication inclus dans la requête.
- Limitations
- Les vues vidéo ne sont disponibles que pour les Publications âgées de 1 800 jours ou moins.
Authentification avec l’Engagement API
Veuillez noter : X doit activer l’accès à l’Engagement API pour votre App développeur avant que vous puissiez commencer à utiliser l’API. Pour ce faire, veillez à communiquer l’App ID que vous avez l’intention d’utiliser à des fins d’authentification à votre responsable de compte ou à votre équipe de support technique.Deux méthodes d’authentification sont disponibles avec l’Engagement API : OAuth 1.0a et OAuth 2.0 Bearer Token. OAuth 2.0 Bearer Token (également appelé « application-only ») vous permet d’accéder aux métriques d’engagement publiques. Cette méthode d’authentification peut être utilisée pour obtenir les totaux des Favorites (aussi appelés Likes), Retweets, Quote Tweets, Replies et vues vidéo pour toute Publication disponible publiquement lors de requêtes vers le /totals endpoint. OAuth 1.0a (également appelé « user context ») vous permet d’effectuer des requêtes au nom d’un utilisateur et d’accéder aux métriques d’engagement privées qui appartiennent à l’utilisateur en question. Cette méthode d’authentification est requise pour :
- Toutes les requêtes envoyées vers le /28hr endpoint et le /historical endpoint
- L’accès à l’une quelconque des métriques privées suivantes : Impressions, Engagements, Media Views, Media Engagements, URL Clicks, Hashtag Clicks, Detail Expands, Permalink Clicks, App Install Attempts, App Opens, Email Post, User Follows et User Profile Clicks
403 Forbidden.
L’Engagement API ne vous permettra pas de récupérer des données d’engagement pour des Publications protégées, même si vous vous authentifiez au nom de l’utilisateur qui possède ces Publications. Toute tentative en ce sens renverra une erreur 400 Bad Request, avec le message "Tweet ID(s) are unavailable".
Si vous envoyez une requête au nom de votre propre compte X (en d’autres termes, le compte qui possède l’App développeur), vous pouvez générer les Access Tokens requis directement depuis la Console de développement, sous l’onglet « Keys and tokens » de l’App développeur.
Si vous effectuez une requête au nom de tout autre utilisateur, vous devrez utiliser le flux OAuth en 3 étapes pour obtenir les Access Tokens requis. La documentation suivante contient davantage d’informations sur la manière de procéder : OAuth 1.0a: how to obtain a user’s access tokens.
Pour d’autres exemples, notamment sur la façon de s’authentifier avec OAuth 1.0a, consultez le code Python d’exemple XDevelopers pour l’Engagement API.
Changements récents apportés à l’Engagement API
| Metric | Changement |
| engagements | Nous avons mis à jour les métriques qui sont agrégées dans le total des engagements afin de les aligner sur le tableau de bord analytique des Publications. Engagements mesure « le nombre de fois où des personnes ont interagi avec cette Publication ». Pour les Publications qui incluent des médias comme une vidéo ou un GIF, la métrique engagements n’inclura plus les vues de média. Les vues de média sont désormais accessibles via une nouvelle métrique, media_views. |
| media_clicks* | Cette métrique a été remplacée par une nouvelle métrique appelée « media_engagements ». |
| video_views | Depuis le 6 juillet 2018, cette métrique est disponible pour les Publications « non détenues » via le endpoint /totals. Cela signifie que vous pouvez accéder aux vues vidéo pour toutes les Publications en utilisant l’authentification App-only. Vous ne pouvez demander que des vues vidéo pour des Publications vieilles de moins de 1 800 jours. Si vous tentez de demander des vues vidéo pour une Publication plus ancienne que 1 800 jours, vous recevrez ce qui suit : “unsupported_for_video_views_tweet_ids”: [“TWEET_ID”] Veuillez noter que cela diffère de media_views dans la mesure où video_views repose sur le standard MRC de 50 % de la vidéo visible pendant au moins deux secondes. De plus, notez que vous pouvez constater un écart entre la métrique des vues vidéo affichée sur les plateformes X détenues et exploitées (application mobile et site web) et le nombre que vous recevez via les endpoints /28hr et /historical. * Les vues vidéo affichées dans l’interface utilisateur X et fournies via le endpoint /totals indiquent le nombre de vues vidéo agrégé sur toutes les Publications dans lesquelles la vidéo donnée a été publiée. Cela signifie que la métrique affichée dans l’UI inclut les vues combinées de chaque instance où la vidéo a été Retweetée ou republiée dans des Publications distinctes. * Les vues vidéo fournies par les endpoints /28hr et /historical incluront uniquement les vues générées par la Publication spécifique pour laquelle vous récupérez les métriques. |
| media_views | Cette métrique inclut toutes les vues (lecture automatique et clic) de vos médias, comptabilisées sur les vidéos, vines, GIF et images. Veuillez noter que les Publications avec des images n’affichent pas de métrique media_views dans le tableau de bord analytique, mais qu’elle sera renvoyée dans l’Engagement API. |
| media_engagements* | Cette métrique inclut le nombre de clics sur vos médias pour les vidéos, vines, GIF et images. Cette métrique remplace media_clicks. |
| quote_tweets | Depuis le 7 juillet 2020, cette métrique est disponible pour les Publications « non détenues » via le endpoint /totals. Cela signifie que vous pouvez accéder au nombre de Publications de citation pour toutes les Publications en utilisant l’authentification App-only. |
Interpréter les métriques
Données d’impressions et d’engagement
Mesures vidéo
- Les vues vidéo fournies par l’endpoint /totals et par l’interface utilisateur de X affichent le nombre de vues vidéo agrégé pour toutes les Publications dans lesquelles la vidéo donnée a été publiée. Cela signifie que la métrique fournie via /totals et affichée dans l’interface utilisateur de X inclut la somme des vues de toute instance où la vidéo a été Retweetée ou republiée dans des Publications distinctes.
- Les vues vidéo fournies par les endpoints /28hour et /historical de l’Engagement API incluent uniquement les vues générées par la Publication spécifique pour laquelle vous extrayez les métriques.
Regroupements de l’API Engagement
- tweet.id
- engagement.type
/28hr et /historical peuvent fournir des métriques de séries temporelles et, par conséquent, prennent en charge :
- engagement.day
- engagement.hour
group_by. Les regroupements qui contiennent quatre valeurs group_by ne seront pris en charge que dans l’un des deux formats suivants :
"Grand Totals" qui contient les totaux globaux par type de métrique :
"Tweets_MetricType_TimeSeries" qui contient les métriques ventilées par id de Publication, puis par type de métrique, ainsi que les séries chronologiques horaires correspondantes :
FAQ
Enterprise
Engagement API
Comment puis-je accéder à l’Engagement API ?
Comment puis-je accéder à l’Engagement API ?
L’accès à l’Engagement API est accordé dans le cadre d’un abonnement entreprise. Veuillez remplir ce formulaire pour entrer en contact avec notre équipe commerciale.
Comment mon utilisation est-elle suivie par « @handle » ?
Comment mon utilisation est-elle suivie par « @handle » ?
Si votre contrat inclut une limite sur le nombre de handles distincts pouvant être utilisés avec l’Engagement API, le système interne de X suivra le nombre d’utilisateurs authentifiés possédant des Publications qui sont interrogées avec l’Engagement API. Les clients doivent également suivre ce nombre distinct côté client. Actuellement, il n’existe aucune API d’usage ni aucune interface permettant de vérifier l’utilisation de @handle pour l’Engagement API. Le système ne bloquera pas les dépassements si davantage de @handles sont demandés que ce qui est prévu au contrat. À la fin du mois de facturation, le nombre de @handles distincts interrogés est comparé au montant contractuel et un dépassement sera facturé conformément aux conditions du contrat.
Puis-je vérifier mon utilisation de @handle pour l’Engagement API ?
Puis-je vérifier mon utilisation de @handle pour l’Engagement API ?
Actuellement, il n’existe aucune API d’usage ni aucune interface permettant de vérifier l’utilisation de @handle pour l’Engagement API. Le système ne bloquera pas les dépassements si davantage de @handles sont demandés que ce qui est prévu au contrat. À la fin du mois de facturation, le nombre de @handles distincts interrogés est comparé au montant contractuel et un dépassement sera facturé conformément aux conditions du contrat.Le champ de métadonnées
engagements renvoyé dans la charge utile n’est pas égal à la somme de tous les différents totaux de métriques d’engagement. Pourquoi est-ce le cas ?C’est le comportement attendu. Le champ de métadonnées engagements peut ne pas toujours correspondre à la somme de toutes les métriques d’engagement individuelles renvoyées par l’API. En effet, le champ de métadonnées engagements peut inclure des engagements supplémentaires qui n’ont pas de métriques spécifiques détaillées dans la charge utile. Autrement dit, additionner tous les différents totaux de métriques d’engagement peut ne pas être égal à la valeur que vous voyez dans le champ de métrique engagements qui vous est renvoyé dans la charge utile.Vous pouvez considérer le champ de métadonnées engagements comme tout clic ou interaction effectué sur la Publication.
Le champ url_clicks dans la réponse de la charge utile renvoie un nombre, alors que la Publication ne contient pas d’URL. Comment est-ce possible ?Cela peut être dû au fait qu’une Publication contenant, par exemple, un hashtag (qui crée un lien vers une autre page) sera comptabilisée comme un clic sur une URL si un utilisateur clique dessus.
Pourquoi ne puis-je pas recevoir de données d’engagement pour une Publication spécifique ?
Pourquoi ne puis-je pas recevoir de données d’engagement pour une Publication spécifique ?
Il existe différentes raisons pour lesquelles vous pourriez ne pas être en mesure de récupérer des données d’engagement pour une Publication spécifique, notamment :
- L’ID de Publication ou les ID de Publication que vous avez demandés ne sont pas disponibles en fonction du jeton d’authentification que vous utilisez pour récupérer des données pour le compte d’un tiers.
- L’ID de Publication ou les ID de Publication que vous avez demandés pour le endpoint
/totalsne datent pas de 90 jours ou moins et ne sont donc pas disponibles pour renvoyer les impressions ou les métriques d’engagement. - L’ID de Publication ou les ID de Publication que vous avez demandés ne sont plus disponibles, ce qui indique généralement qu’elles ont été supprimées ou ne sont plus accessibles publiquement pour une autre raison.
Comment puis-je gérer la limitation de débit avec l’Engagement API ?
Comment puis-je gérer la limitation de débit avec l’Engagement API ?
Vous pouvez utiliser les informations
x-per-minute-limit et x-per-minute-remaining renvoyées par l’en-tête de réponse lorsque vous envoyez une requête à l’Engagement API pour surveiller votre consommation.x-per-minute-limit vous indique quel est votre quota et x-per-minute-remaining vous indique combien d’appels il vous reste.Guide de dépannage des erreurs
Je rencontre des problèmes d’authentification
Je rencontre des problèmes d’authentification
Assurez-vous de consulter nos directives relatives à l’authentification avec l’Engagement API.
J’ai transmis la bonne clé consommateur et le bon secret, ainsi que le jeton d’accès et le secret du jeton d’accès, mais l’erreur suivante est renvoyée. Que puis-je faire ?
J’ai transmis la bonne clé consommateur et le bon secret, ainsi que le jeton d’accès et le secret du jeton d’accès, mais l’erreur suivante est renvoyée. Que puis-je faire ?
Vous ne trouvez toujours pas ce que vous cherchez ?
J'ai une question qui n'a pas encore de réponse
J'ai une question qui n'a pas encore de réponse
Veuillez contacter notre support technique et nous vous répondrons dans les plus brefs délais.
Référence de l’API
POST insights/engagement
Methods
| Méthode | Description |
|---|---|
| POST /insights/engagement/totals | Récupérer le nombre total d’impressions et d’engagements pour un ensemble de Tweets. |
| POST /insights/engagement/historical | Récupérer les impressions et les engagements pour un ensemble de Tweets sur une période pouvant aller jusqu’à 4 semaines, en remontant jusqu’au 1er septembre 2014. |
| POST /insights/engagement/28hr | Récupérer les impressions et les engagements pour un ensemble de Tweets au cours des 28 dernières heures. |
Authentification
- Toute requête vers /totals pour obtenir les types de métriques Impressions et Engagements, qui sont limitées aux Tweet détenus (owned)
- Toute requête vers /28hr
- Toute requête vers /historical
- Toute requête vers /totals pour obtenir les types de métriques Favorites, Replies, Retweets ou Video Views, qui peuvent être récupérées pour n’importe quel Tweet
- Vue d’ensemble d’OAuth
- Utiliser l’OAuth à 3 volets, également appelé User Context
- Utiliser l’Application-only OAuth
POST /insights/engagement/totals
| Méthode HTTP | HTTP POST |
| URL | https://data-api.x.com/insights/engagement/totals |
| Type de contenu | application/json |
| Compression | Gzip. Pour effectuer une requête avec la compression Gzip, envoyez un en-tête Accept-Encoding dans la requête. L’en-tête doit être au format suivant : Accept-Encoding: gzip |
| Format de la requête POST | Les requêtes peuvent être envoyées sous forme de requête POST dont le corps est un objet JSON contenant une collection d’ID de Tweet et un regroupement souhaité. Le POST est formaté comme un tableau avec des objets tweets, engagements et groupings. Chaque requête peut contenir au maximum 250 ID de Tweet. Voici un exemple de corps de requête POST : { “tweet_ids”: [ “Tweet ID 1”, “Tweet ID 2”, “Tweet ID 3” ], “engagement_types”: [ “impressions”, “engagements”, “favorites”, “quote_tweets” ], “groupings”: { “grouping name”: { “group_by”: [ “tweet.id”, “engagement.type” ] } } } |
| ID de Tweets | Un tableau qui inclut les identifiants de Tweets pour lesquels les données d’engagement seront interrogées. Veuillez noter que vous ne pouvez demander des données que pour les Tweets créés par le @handle ayant servi à l’authentification. Jusqu’à 250 Tweets peuvent être inclus par requête, et les identifiants de Tweets doivent être représentés sous forme de chaînes de caractères. |
| Types d’engagement | Un tableau qui inclut les types de métriques d’engagement à interroger. Le point de terminaison Totals prend uniquement en charge les types d’engagement suivants : impressions, engagements, favorites, retweets, quote_tweets, replies, video_views. Le point de terminaison /totals permet de récupérer impressions et engagements pour les Tweets créés au cours des 90 derniers jours, ainsi que favorites, retweets, quote_tweets, replies et video_views pour n’importe quel Tweet. |
| Regroupements | Les résultats renvoyés par l’Engagement API peuvent être retournés sous différents groupes afin de répondre au mieux à vos besoins. Vous pouvez inclure jusqu’à 3 groupements par requête. Pour chaque groupement, vous pouvez définir un nom de groupement personnalisé afin de faciliter la référence à ce type de groupement dans votre application. Une fois que vous avez défini un nom de groupement, vous pouvez choisir de regrouper tweet.id et/ou engagement.type. Les groupements sont appliqués séquentiellement, ce qui vous permet de modifier le format de résultat souhaité en changeant l’ordre de vos valeurs group_by. Voici un exemple de groupement qui affiche les métriques séparées par ID de Tweet et par type de métrique : “groupings”: { “my grouping name”: { “group_by”: [ “tweet.id”, “engagement.type” ] } } |
| Taille maximale de la requête POST | Les requêtes peuvent inclure jusqu’à 250 identifiants de Tweets à la fois. |
| Format de la réponse | JSON. L’en-tête de votre requête doit demander une réponse au format JSON. |
| Limitation de débit | Une limitation de débit par minute s’applique, comme spécifié dans votre contrat en fonction de votre niveau d’accès. |
| Exemple de requête (métriques publiques) | curl —request POST —url https://data-api.x.com/insights/engagement/totals —header ‘accept-encoding: gzip’ —header ‘authorization: Bearer ’ —header ‘content-type: application/json’ —data ’{ “tweet_ids”: [ “1070059276213702656”,“1021817816134156288”,“1067094924124872705” ], “engagement_types”: [ “favorites”,“retweets”,“replies”,“quote_tweets”,“video_views” ], “groupings”: { “perTweetMetricsUnowned”: { “group_by”: [ “tweet.id”, “engagement.type” ] } } } —verbose —compressed |
| Exemple de requête | curl —request POST —url https://data-api.x.com/insights/engagement/totals —header ‘accept-encoding: gzip’ —header ‘authorization: OAuth oauth_consumer_key=“consumer-key-for-app”,oauth_nonce=“generated-nonce”,oauth_signature=“generated-signature”,oauth_signature_method=“HMAC-SHA1”, oauth_timestamp=“generated-timestamp”,oauth_token=“access-token-for-authed-user”, oauth_version=“1.0”’ —header ‘content-type: application/json’ —data ’{ “tweet_ids”: [ “1060976163948904448”,“1045709644067471360” ], “engagement_types”: [ “favorites”,“replies”,“retweets”,“video_views”,“impressions”,“engagements” ], “groupings”: { “perTweetMetricsOwned”: { “group_by”: [ “tweet.id”, “engagement.type” ] } } }’ —verbose —compressed |
| Exemple de réponse (métriques publiques) | { “perTweetMetricsUnowned”: { “1021817816134156288”: { “favorites”: “530”, “quote_tweets”: “79”, “replies”: “147”, “retweets”: “323”, “video_views”: “0” }, “1067094924124872705”: { “favorites”: “1360”, “quote_tweets”: “29”, “replies”: “56”, “retweets”: “178”, “video_views”: “5754512” }, “1070059276213702656”: { “favorites”: “69”, “quote_tweets”: “5”, “replies”: “7”, “retweets”: “26”, “video_views”: “0” } } } |
| Exemple de réponse | { “perTweetMetricsOwned”: { “1045709644067471360”: { “engagements”: “2”, “favorites”: “0”, “impressions”: “47”, “replies”: “0”, “retweets”: “8”, “quote_tweets”: “5”, “video_views”: “0” }, “1060976163948904448”: { “engagements”: “4”, “favorites”: “0”, “impressions”: “148”, “replies”: “1”, “retweets”: “9”, “quote_tweets”: “2”, “video_views”: “0” } } } |
| Identifiants de Tweets indisponibles | Pour les requêtes qui incluent des identifiants de Tweet devenus indisponibles (par exemple, supprimés), des données appropriées seront renvoyées pour tous les identifiants de Tweet disponibles, et les identifiants de Tweet indisponibles seront répertoriés dans un tableau nommé unavailable_tweet_ids. Par exemple : { “start”: “2015-11-17T22:00:00Z”, “end”: “2015-11-19T02:00:00Z”, “unavailable_tweet_ids”: [ “323456789” ], “group1”: { “423456789”: { “favorites”: “67”, “replies”: “8”, “retweets”: “26”, “quote_tweets”: “2” } } } |
POST /insights/engagement/28hr
| Méthode HTTP | HTTP POST |
| URL | https://data-api.x.com/insights/engagement/28hr |
| Type de contenu | application/json |
| Compression | Gzip. Pour effectuer une requête en utilisant la compression Gzip, envoyez un en-tête Accept-Encoding dans la requête de connexion. L’en-tête doit être au format suivant : Accept-Encoding: gzip |
| Format POST | Les requêtes peuvent être envoyées sous forme de requête POST, dont le corps est un objet JSON contenant une collection d’ID de Tweet et un regroupement souhaité. La requête POST est structurée sous la forme d’un tableau contenant les objets tweets, engagements et groupings. Chaque requête peut contenir au maximum 25 ID de Tweet. Voici à quoi ressemble un exemple de corps de requête POST : { “tweet_ids”: [ “Tweet ID 1”, “Tweet ID 2”, “Tweet ID 3” ], “engagement_types”: [ “impressions”, “engagements”, “url_clicks”, “detail_expands” ], “groupings”: { “grouping name”: { “group_by”: [ “tweet.id”, “engagement.type”, “engagement.hour” ] } } } |
| Identifiants de Tweet | Un tableau contenant les identifiants de Tweet des Tweets à interroger afin d’obtenir les données d’engagement. Notez que vous ne pouvez demander des données que pour des Tweets créés par le @handle utilisé pour l’authentification. Le point de terminaison de 28 heures accepte jusqu’à 25 Tweets par requête, et les identifiants de Tweet doivent être fournis sous forme de chaînes. |
| Types d’engagement | Un tableau contenant les types de métriques d’engagement à interroger. Pour l’endpoint de 28 heures, impressions, engagements et tous les types d’engagement individuels sont des métriques prises en charge. Pour la liste complète des métriques d’engagement prises en charge, voir Engagement Data. |
| Regroupements | Les résultats de l’Engagement API peuvent être renvoyés sous différents regroupements afin de répondre au mieux à vos besoins. Vous pouvez inclure jusqu’à 3 regroupements par requête. Pour chaque regroupement, vous pouvez définir un nom de regroupement personnalisé afin de faciliter la référence à ce type de regroupement dans votre application. Une fois que vous avez défini un nom de regroupement, vous pouvez choisir de regrouper selon une ou plusieurs des valeurs suivantes : tweet.id engagement.type engagement.day engagement.hour Les regroupements sont appliqués séquentiellement, ce qui vous permet de modifier le format de résultat souhaité en changeant l’ordre de vos valeurs group_by. Voici un exemple de regroupement qui affichera des métriques séparées par ID de Tweet et type de métrique, et qui ressemble à : “groupings”: { “my grouping name”: { “group_by”: [ “tweet.id”, “engagement.type”, “engagement.day” ] } } Les regroupements qui comportent 4 éléments group_by ne sont valides que s’ils utilisent l’un des deux ordres suivants. Les requêtes qui comportent 4 éléments group_by dans un seul regroupement et qui ne respectent pas l’un des ordres suivants renverront une erreur. De plus, un seul regroupement avec 4 éléments group_by sera autorisé par requête. “group_by”: [ “tweet.id”, “engagement.type”, “engagement.day”, “engagement.hour” ] “group_by”: [ “engagement.type”, “tweet.id”, “engagement.day”, “engagement.hour” ] |
| Taille maximale de la requête POST | Les requêtes peuvent cibler jusqu’à 25 identifiants de Tweet à la fois. |
| Format de la réponse | JSON. L’en‑tête de votre requête doit spécifier que la réponse est au format JSON. |
| Limite de débit | Vous serez soumis à une limitation de débit par minute, telle que spécifiée dans votre contrat en fonction de votre niveau d’accès. |
| Exemple de requête | curl -X POST “https://data-api.x.com/insights/engagement/28hr” -H ‘Accept-Encoding: gzip’ -H ‘Authorization OAuth oauth_consumer_key=“consumer-key-for-app”,oauth_nonce=“generated-nonce”,oauth_signature=“generated-signature”,oauth_signature_method=“HMAC-SHA1”, oauth_timestamp=“generated-timestamp”,oauth_token=“access-token-for-authed-user”, oauth_version=“1.0”’ -d ’{ “tweet_ids”: [ “123456789” ], “engagement_types”: [ “impressions”, “engagements” ], “groupings”: { “hourly-time-series”: { “group_by”: [ “tweet.id”, “engagement.type”, “engagement.day”, “engagement.hour” ] } } }‘ |
| Exemple de réponse | { “start”:“2015-09-14T17:00:00Z”, “end”:“2015-09-15T22:00:00Z”, “hourly-time-series”:{ “123456789”:{ “impressions”:{ “2015-09-14”:{ “17”:“551”, “18”:“412”, “19”:“371”, “20”:“280”, “21”:“100”, “22”:“19”, “23”:“6” }, “2015-09-15”:{ “00”:“5”, “01”:“2”, “02”:“7”, “03”:“3”, “04”:“1”, “05”:“0”, “06”:“0”, “07”:“0”, “08”:“0”, “09”:“0”, “10”:“0”, “11”:“0”, “12”:“0”, “13”:“0”, “14”:“0”, “15”:“0”, “16”:“0”, “17”:“0”, “18”:“0”, “19”:“0”, “20”:“0”, “21”:“0” } }, “engagements”:{ “2015-09-14”:{ “17”:“0”, “18”:“0”, “19”:“0”, “20”:“0”, “21”:“0”, “22”:“0”, “23”:“0” }, “2015-09-15”:{ “00”:“0”, “01”:“0”, “02”:“0”, “03”:“0”, “04”:“0”, “05”:“0”, “06”:“0”, “07”:“0”, “08”:“0”, “09”:“0”, “10”:“0”, “11”:“0”, “12”:“0”, “13”:“0”, “14”:“0”, “15”:“0”, “16”:“0”, “17”:“0”, “18”:“0”, “19”:“0”, “20”:“0”, “21”:“0” } } } } } |
| Identifiants de Tweets indisponibles | Pour les requêtes qui incluent des ID de Tweet devenus indisponibles (par exemple, supprimés), les données appropriées seront renvoyées pour tous les ID de Tweet disponibles, et les ID de Tweet indisponibles seront indiqués dans un tableau nommé unavailable_tweet_ids. Par exemple : { “start”: “2015-11-17T22:00:00Z”, “end”: “2015-11-19T02:00:00Z”, “unavailable_tweet_ids”: [ “323456789” ], “group1”: { “423456789”: { “favorites”: “67”, “replies”: “8”, “retweets”: 26 } } } |
POST /insights/engagement/historical
| Méthode HTTP | HTTP POST |
| URL | https://data-api.x.com/insights/engagement/historical |
| Type de contenu | application/json |
| Compression | Gzip. Pour envoyer une requête avec la compression Gzip, ajoutez un en-tête Accept-Encoding à la requête de connexion. L’en-tête doit être de la forme suivante : Accept-Encoding: gzip |
| Format de la requête POST | Les requêtes peuvent être envoyées sous forme de requête POST dont le corps contient un objet JSON regroupant une collection d’identifiants de Tweet et un regroupement souhaité. La requête POST est structurée comme un tableau contenant les objets tweets, engagements et groupings. Chaque requête peut comporter au maximum 25 identifiants de Tweet. Chaque requête peut inclure une date de début et de fin personnalisée, pour une durée maximale de quatre semaines. { “tweet_ids”: [ “Tweet ID 1”, “Tweet ID 2”, “Tweet ID 3” ], “engagement_types”: [ “impressions”, “engagements”, “url_clicks”, “detail_expands” ], “groupings”: { “grouping name”: { “group_by”: [ “tweet.id”, “engagement.type”, “engagement.hour” ] } } } |
| Dates de début et de fin | Une date de début et une date de fin personnalisées peuvent être spécifiées à l’aide des valeurs start et end dans la requête. Vous devez spécifier une date de début et une date de fin couvrant une période n’excédant pas 4 semaines. La date de début la plus ancienne possible à ce jour est le 1er septembre 2014. Les dates de fin futures ne sont pas prises en charge. Si aucune date de début ni de fin n’est fournie, l’API utilisera par défaut les 4 semaines immédiatement précédentes. La granularité minimale à laquelle les données peuvent être renvoyées par l’Engagement API est horaire. Pour toute requête effectuée avec des valeurs de début ou de fin qui ne correspondent pas exactement à une frontière horaire, les requêtes seront ajustées à l’heure entière incluse la plus proche. Par exemple, une requête avec “start”:“2015-07-01T12:24:00Z” et “end”:“2015-07-10T08:37:00Z” sera ajustée à “start”:“2015-07-01T12:00:00Z”,“end”:“2015-07-10T09:00:00Z”. |
| Identifiants de Tweet | Un tableau contenant les identifiants de Tweet des Tweets pour lesquels vous souhaitez récupérer les données d’engagement. Notez que vous ne pouvez demander des données que pour des Tweets créés par le @handle utilisé pour l’authentification. Le point de terminaison historique sur 4 semaines prend en charge jusqu’à 25 Tweets par requête, et les identifiants de Tweet doivent être fournis sous forme de chaînes. |
| Types d’engagement | Un tableau contenant les types de métriques d’engagement à interroger. Pour l’endpoint historique de 4 semaines, impressions, engagements et tous les types d’engagement individuels sont des métriques prises en charge. Pour la liste complète des métriques d’engagement prises en charge, consultez la page Engagement Data. Remarque : actuellement, trois métriques afficheront la valeur zéro pour les requêtes effectuées avant le 15 septembre 2015 : favorites, replies et retweets. |
| Regroupements | Les résultats de l’Engagement API peuvent être renvoyés dans différents groupes afin de s’adapter au mieux à vos besoins. Vous pouvez inclure un maximum de 3 regroupements par requête. Pour chaque regroupement, vous pouvez définir un nom de regroupement personnalisé afin de faciliter la référence à ce type de regroupement dans votre application. Une fois que vous avez défini un nom de regroupement, vous pouvez choisir de regrouper selon une ou plusieurs des valeurs suivantes : tweet.id engagement.type engagement.day engagement.hour Les regroupements sont appliqués dans l’ordre, ce qui vous permet de modifier le format de résultat souhaité en changeant l’ordre de vos valeurs group_by. Un exemple de regroupement qui affichera les métriques séparées par ID du Tweet, type de métrique et jour a la forme suivante : “groupings”: { “my grouping name”: { “group_by”: [ “tweet.id”, “engagement.type”, “engagement.day” ] } } Les regroupements qui comportent 4 éléments group_by ne sont valides que s’ils utilisent l’un des deux ordres suivants. Les requêtes qui ont 4 éléments group_by dans un seul regroupement et qui ne correspondent à aucun des ordres ci-dessous renverront une erreur. De plus, un seul regroupement avec 4 éléments group_by sera autorisé par requête. “group_by”: [ “tweet.id”, “engagement.type”, “engagement.day”, “engagement.hour” ] “group_by”: [ “engagement.type”, “tweet.id”, “engagement.day”, “engagement.hour” ] |
| Limite de taille de la requête POST | Les requêtes peuvent porter sur un maximum de 25 identifiants de Tweet à la fois. |
| Format de la réponse | JSON. L’en-tête de votre requête doit spécifier le format JSON pour la réponse. |
| Limitation du débit | Vous serez soumis à des limites de débit par minute, comme spécifié dans votre contrat en fonction de votre niveau d’accès. |
| Exemple de requête | curl -XPOST “https://data-api.x.com/insights/engagement/historical” -H ‘Accept-Encoding: gzip’ -H ‘Authorization OAuth oauth_consumer_key=“consumer-key-for-app”,oauth_nonce=“generated-nonce”,oauth_signature=“generated-signature”,oauth_signature_method=“HMAC-SHA1”, oauth_timestamp=“generated-timestamp”,oauth_token=“access-token-for-authed-user”, oauth_version=“1.0”’ -d ’{ “start”: “2015-08-01”, “end”: “2015-08-15”, “tweet_ids”: [ “123456789”, “223456789”, “323456789” ], “engagement_types”: [ “impressions”, “engagements”, “url_clicks”, “detail_expands” ], “groupings”: { “types-by-tweet-id”: { “group_by”: [ “tweet.id”, “engagement.type” ] } } }‘ |
| Exemple de réponse | { “start”: “2015-08-01T00:00:00Z”, “end”: “2015-08-15T00:00:00Z”, “types-by-tweet-id”: { “123456789”: { “impressions”: “0”, “engagements”: “0”, “url_clicks”: “0”, “detail_expands”: “0” }, “223456789”: { “impressions”: “788”, “engagements”: “134”, “url_clicks”: “30”, “detail_expands”: “1323” }, “323456789”: { “impressions”: “4”, “engagements”: “0”, “url_clicks”: “2”, “detail_expands”: “0” } } } |
| ID de Tweets indisponibles | Pour les requêtes qui incluent des identifiants de Tweet devenus indisponibles (par exemple, qui ont été supprimés), les données appropriées seront renvoyées pour tous les identifiants de Tweet disponibles, et les identifiants de Tweet indisponibles seront répertoriés dans un tableau appelé unavailable_tweet_ids. Par exemple :{ “start”: “2015-11-17T22:00:00Z”, “end”: “2015-11-19T02:27:50Z”, “unavailable_tweet_ids”: [ “323456789” ], “group1”: { “423456789”: { “favorites”: “67”, “replies”: “8”, “retweets”: 26 } } } |
Codes de réponse
| Status | Text | Description |
|---|---|---|
| 200 | OK | La requête a été effectuée avec succès. |
| 400 | Bad Request | En général, cette réponse se produit lorsque la requête contient du JSON invalide ou lorsqu’elle ne contient aucun payload JSON. |
| 401 | Unauthorized | L’authentification HTTP a échoué en raison d’identifiants non valides. Vérifiez vos clés et jetons OAuth. |
| 404 | Not Found | La ressource n’a pas été trouvée à l’URL vers laquelle la requête a été envoyée, probablement parce qu’une URL incorrecte a été utilisée. |
| 429 | Too Many Requests | Votre application a dépassé la limite de requêtes API. |
| 500 | Internal Server Error | Une erreur s’est produite du côté de Gnip. Réessayez d’envoyer votre requête en utilisant une stratégie de backoff exponentiel. |
| 502 | Proxy Error | Une erreur s’est produite du côté de Gnip. Réessayez d’envoyer votre requête en utilisant une stratégie de backoff exponentiel. |
| 503 | Service Unavailable | Une erreur s’est produite du côté de Gnip. Réessayez d’envoyer votre requête en utilisant une stratégie de backoff exponentiel. |
Messages d’erreur
| Error Message | Description |
|---|---|
"errors":["Your account could not be authenticated. Reason: Access token not found"] | Une erreur dans le composant d’authentification de la requête. Le champ « Reason » doit fournir des informations utiles pour diagnostiquer l’erreur. Si vous n’êtes pas en mesure de la résoudre, veuillez envoyer l’erreur complète, y compris la valeur du champ « Reason », à notre équipe d’assistance. |
"errors":["1 Tweet ID(s) are unavailable"],"unavailable_tweet_ids": ["TWEET_IDS"] | Le ou les Tweet ID que vous avez demandés ne sont plus disponibles, ce qui indique généralement qu’ils ont été supprimés ou ne sont plus accessibles publiquement pour une autre raison. |
"errors":["Impressions & engagements for tweets older than 90 days (*TIME_PERIOD*) are not supported"],"unsupported_for_impressions_engagements_tweet_ids":[*TWEET_IDS*] | Le ou les Tweet ID que vous avez demandés pour l’endpoint /totals datent de plus de 90 jours et ne sont donc pas pris en charge pour le retour des métriques d’impressions ou d’engagements. |
"errors":["Forbidden to access tweets: *TWEET_IDS*"] | Le ou les Tweet ID que vous avez demandés ne sont pas disponibles compte tenu du jeton d’authentification que vous utilisez pour récupérer des données pour le compte d’un tiers. |