Skip to main content

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

L’API Engagement propose trois points de terminaison :

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

Le tableau ci-dessous décrit les types de métriques auxquels vous pouvez accéder via l’Engagement API. Consultez notre page Interprétation des métriques pour en savoir plus sur les métriques ci-dessous.

Regroupements d’engagement

Les regroupements permettent une organisation personnalisée des mesures d’engagement renvoyées. Vous pouvez inclure jusqu’à 3 regroupements par requête. Vous pouvez choisir de regrouper les mesures selon une ou plusieurs des valeurs suivantes : Les trois endpoints prennent en charge :
  • tweet.id
  • engagement.type  
Les endpoints /28hr et /historical peuvent fournir des mesures sous forme de séries chronologiques et prennent donc en charge :
  • engagement.day
  • engagement.hour
Pour en savoir plus sur les regroupements, consultez la page Engagement API Grouping dans la section « Guides ».

Guides

Guide de démarrage pour les développeurs

Introduction

L’objectif de cette documentation est de proposer aux développeurs une introduction à l’intégration avec l’Engagement API. Nous commencerons par expliquer pourquoi intégrer cette API, puis nous entrerons dans les détails techniques sur la manière de le faire.
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.  
L’Engagement API a été lancée en 2016 et a été la première X API à fournir ces métriques d’engagement approfondies à grande échelle. L’Engagement API est facile à utiliser et permet aux clients d’automatiser ces opérations. Voici une étude de cas décrivant un exemple d’intégration : Maintenant que nous avons exploré les « pourquoi » de l’Engagement API, commençons à approfondir les détails techniques.

Intégration de l’API Engagement

Introduction à l’API
L’Engagement API est une API RESTful simple qui reçoit des requêtes encodées en JSON et répond avec des métriques d’engagement encodées en JSON. Les requêtes se composent de trois parties principales (suivez les liens pour plus de documentation) :
  • 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.
Dans de nombreux cas, les Engagement Types et Groupings restent relativement constants d’une requête à l’autre, seuls les identifiants de Publications étant mis à jour. L’Engagement API fournit trois endpoints :
  • 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.
L’endpoint /totals permet de demander des métriques pour jusqu’à 250 Publications par requête. Les endpoints /28hour et /historical permettent de demander des métriques pour 25 Publications par requête. Après avoir expliqué comment obtenir l’accès à l’Engagement API, nous passerons en revue la création d’une requête API, proposerons un aperçu d’OAuth et fournirons des liens vers d’autres ressources techniques.
Obtenir l’accès à l’API
Si vous lisez ce document, vous avez très probablement déjà obtenu l’accès à l’API Engagement. Sinon, veuillez contacter votre responsable de compte Enterprise ou demander un accès Enterprise ici. La première étape consiste à créer une App X en utilisant un compte développeur approuvé via la Console de développement. Votre responsable de compte aura besoin de l’App ID numérique associé à cette application pour vous fournir l’accès. Si vous devez demander un compte développeur, vous pouvez le faire ici.
Effectuer une requête
La bonne nouvelle est qu’effectuer des requêtes à l’Engagement API est simple. Pour notre requête, nous allons lui demander le nombre total de Retweets, de Tweets cités, de Favoris et de réponses pour les deux Publications @XDevelopers suivantes :
1/ Aujourd’hui, nous partageons notre vision de l’avenir de la plateforme X API https://t.co/XweGngmxlP — 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 2020
La 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 :
Pour récupérer ces métriques totales, nous envoyons une requête POST JSON à l’endpoint https://data-api.x.com/insights/engagement/totals. Nous allons inclure les en-têtes suivants pour indiquer que notre requête est encodée en JSON et qu’elle est compressée avec gzip (les corps de requête peuvent devenir volumineux) :
  • Content-Type: application/json
  • Accept-Encoding: gzip  
Lorsque nous envoyons des requêtes, nous nous authentifions à l’aide d’OAuth, dont nous parlerons plus en détail dans la section suivante. L’API renvoie la réponse suivante :
Notez que la réponse contient les métriques demandées dans la structure décrite par les définitions de « groupings », avec les métriques énumérées d’abord par ID de Publication, puis par type d’engagement au niveau suivant. C’était assez simple. Si vous débutez avec l’authentification OAuth, consultez la section suivante.

Authentification avec OAuth

OAuth est une norme d’authentification très répandue dans l’industrie technologique. Si vous utilisez déjà OAuth (peut‑être avec d’autres X API), vous utilisez probablement une bibliothèque OAuth spécifique à un langage qui masque tous les détails compliqués. Si vous découvrez OAuth, consultez notre page OAuth avec la X API ou rendez‑vous directement sur https://oauth.net pour en savoir plus. Nous vous recommandons ensuite de trouver une bibliothèque OAuth pour le langage que vous utilisez dans votre intégration et de commencer par là. Avec ces bibliothèques, le processus d’authentification consiste généralement à configurer vos clés et jetons, instancier un objet HTTP, puis effectuer des requêtes avec cet objet. Par exemple, dans l’écosystème Ruby, le pseudo‑code suivant représente une recette pour créer une App compatible OAuth en utilisant la gem Ruby « oauth » et en effectuant une requête POST :
L’Engagement API prend en charge l’authentification en mode application seule et en contexte utilisateur. Si vous collectez des métriques d’engagement pour des Publications publiques qui ne vous appartiennent pas avec le point de terminaison /totals, aucune autorisation utilisateur n’est requise et vous pouvez utiliser l’authentification en mode application seule. Dans ce cas, vous utiliserez uniquement la clé et le secret de votre App pour vous authentifier. OAuth permet également à une App d’effectuer une requête d’API « au nom d’un autre utilisateur », en utilisant des jetons associés à cet utilisateur. Si vous générez des métriques d’engagement pour des Publications qui vous appartiennent, c’est‑à‑dire des Publications publiées par un utilisateur pour lequel vous disposez de jetons utilisateur, vous enverrez des requêtes avec un contexte utilisateur, ce qui signifie une authentification à la fois avec les clés de votre App et des jetons d’accès spécifiques à l’utilisateur. Ces jetons d’accès utilisateur sont généralement fournis via le processus « Connexion avec X » ou obtenus directement auprès de l’utilisateur (veuillez noter que vous devez utiliser twurl si vous obtenez les jetons directement auprès de l’utilisateur). Une fois que l’utilisateur vous a fourni ses jetons, ceux‑ci n’expirent pas et peuvent être utilisés avec l’Engagement API pour effectuer des requêtes en son nom, tant que l’utilisateur ne réinitialise pas ses jetons ni ne change son mot de passe, auquel cas il devra vous fournir les nouveaux jetons. Vous pouvez consulter quelles métriques exigent quel type d’authentification via ce tableau.

Sélection d’un endpoint de l’Engagement API

L’Engagement API fournit trois endpoints distincts :
  • 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.  
Chaque endpoint possède ses propres caractéristiques. Que vous prévoyiez d’utiliser les trois ou que vous cherchiez à déterminer lequel correspond le mieux à votre cas d’usage, il est important de comprendre les différences entre eux. Ci-dessous, nous présentons quelques concepts clés, examinons plus en détail les trois endpoints, puis proposons des exemples de cas d’usage qui correspondent généralement à un endpoint spécifique. Nous espérons que ces informations vous aideront à intégrer plus efficacement les trois endpoints, ou à décider quel endpoint unique répond le mieux à vos besoins.  

Concepts clés

Plusieurs concepts clés permettent d’illustrer les différentes fonctionnalités des trois endpoints de l’Engagement API, ainsi que les données qu’ils fournissent.  
Impressions et métriques d’engagement
Les impressions représentent le nombre de fois qu’une Publication donnée a été vue sur la plateforme X dans un contexte organique. Les impressions générées à partir de Publications vues dans un contexte Promoted ou Paid ne sont pas incluses. Avant l’Engagement API, les impressions de Publication ne représentaient qu’une mesure des vues potentielles. Elles étaient basées sur le comptage des abonnés du compte de l’auteur et de ceux de tout compte retweetant le contenu. Elles ne tenaient pas compte de la situation fréquente dans laquelle un utilisateur donné ne voit en réalité pas la Publication. Les métriques d’impression générées par l’Engagement API constituent une mesure réelle du nombre de fois qu’une Publication a été rendue à l’affichage. Si un abonné à votre compte ne voit pas votre Publication, cela ne compte pas comme une impression. L’Engagement API fournit des métriques sur 14 types de métriques d’engagement distincts, chacun représentant une action spécifique qu’un utilisateur peut effectuer lorsqu’une Publication lui est présentée. Celles-ci incluent le fait de retweeter, d’aimer, de répondre, de cliquer sur des entités comme les #hashtags, les liens et les médias, de suivre l’auteur et de consulter le profil de l’auteur. L’ensemble de ces actions individuelles est agrégé dans une métrique unique, Engagements.
Contenu X détenu et non détenu
L’Engagement API établit une distinction claire entre les Publications détenues et non détenues. Les Publications détenues sont des Publications publiées depuis votre compte, ou des Publications pour lesquelles vous avez obtenu l’autorisation de demander des données d’engagement. Comme avec les autres X API, vous obtenez cette autorisation lorsque d’autres utilisateurs/comptes X partagent des jetons d’accès qui vous permettent d’effectuer des appels à l’API en leur nom. Un moyen courant d’obtenir ces jetons est d’utiliser le processus « Sign in with X ». L’endpoint /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
L’endpoint /totals fournit, comme son nom l’indique, uniquement des totaux globaux pour ses types d’engagement. Ses chiffres représentent les totaux à jour depuis la publication de la Publication. Si une Publication vient d’être publiée et que vous demandez à plusieurs reprises ses métriques, ces totaux changeront généralement à chaque requête. Les endpoints /28hr et /historical peuvent fournir à la fois des totaux globaux et des données en séries temporelles. Lorsque vous demandez des données en séries temporelles, les métriques d’engagement peuvent être agrégées en données quotidiennes ou horaires.    Consultez notre documentation sur les regroupements d’engagement pour savoir comment demander des données en séries temporelles avec les endpoints /28hr et /historical.

Endpoints et exemples de cas d’usage

Compte tenu des caractéristiques et des différences évoquées ci-dessus, chaque endpoint correspond généralement à différents types de cas d’usage. Pour vous aider à décider quel endpoint sert le mieux votre cas d’usage particulier, vous trouverez ci-dessous quelques exemples de besoins exprimés par des utilisateurs et l’endpoint qui y répond le mieux.
/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
  • 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
Lorsque vous envoyez une requête avec OAuth 1.0a, vous devez inclure les Access Tokens (Access Token et Secret) de l’utilisateur qui possède la Publication ou la ressource protégée concernée. Si vous ne fournissez pas les Access Tokens utilisateur corrects lors de la requête de données utilisateur protégées, l’Engagement API renverra une erreur 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

L’Engagement API fournit des métriques d’impressions et d’engagement inestimables qui vous permettent de surveiller les performances de votre activité sur X. Dans le cadre de nos efforts continus pour permettre des décisions marketing fondées sur nos données, nous sommes heureux de partager des changements récents apportés à l’Engagement API qui offrent une plus grande cohérence des métriques sur l’ensemble de X.   Nous avons récemment déployé des changements pour moderniser l’Engagement API afin d’utiliser la même méthodologie d’agrégation de métriques que celle employée par le tableau de bord analytique de X (analytics.x.com). Nous avons adopté une approche réfléchie pour essayer de minimiser les changements d’API disruptifs lors du déploiement de ces nouvelles métriques et avons déployé le premier ensemble de changements le 9 octobre 2017. Ces changements améliorent la cohérence entre tous les endroits où vous ou vos clients pouvez suivre vos performances sur X. Veuillez consulter le récapitulatif détaillé des changements ci‑dessous :

Interpréter les métriques

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 apparaissent parce que les tableaux de bord Web n’affichent généralement que les interactions et/ou impressions qui se sont produites dans l’intervalle de temps sélectionné. Par exemple, un tableau de bord Web peut afficher les interactions sur des Publications sur la durée d’un mois calendaire, tandis que l’Engagement API peut indiquer des interactions qui dépassent la durée de ce mois, mais restent incluses dans la plage temporelle demandée. Dans ce type de cas, l’Engagement API doit être considérée comme la source de référence.  

Données d’impressions et d’engagement

L’Engagement API fournit des impressions et des données d’engagement organiques. Les impressions représentent le nombre de fois qu’une Publication donnée a été vue sur la plateforme X dans un contexte organique. Les impressions générées par des Publications vues dans un contexte Promoted ou Paid ne sont pas incluses. Les engagements représentent le nombre de fois qu’une Publication donnée a fait l’objet d’une interaction de la part d’un utilisateur, à la fois dans un contexte organique et promoted. Les engagements incluent, entre autres, les Retweets, Favoris, Réponses, clics sur des URL, clics sur des hashtags, clics sur des mentions et vues de médias. Pour la liste complète des actions d’engagement incluses, consultez la section Engagement Data.  Pour calculer un taux d’engagement de référence, utilisez le nombre total d’engagements divisé par le nombre total d’impressions pour une Publication donnée sur la période que vous analysez. Les données d’impressions et d’engagement ne peuvent être récupérées que pour les Publications provenant de @handles que vous possédez, ou de @handles qui ont autorisé votre application à consulter les détails concernant leurs Publications.  En interne, l’Engagement API suit le nombre de @handles uniques pour lesquels des requêtes ont été effectuées par rapport à la limite de @handles prévue au contrat.  Il est recommandé de suivre également l’utilisation des requêtes @handle côté client tout au long du mois.  

Mesures vidéo

Il existe plusieurs mesures différentes qui représentent les impressions de médias sur X. La première est notre métrique de vues vidéo, qui repose sur le standard MRC selon lequel au moins 50 % de la vidéo doit être visible pendant au moins deux secondes. La seconde est la métrique Media Views, qui inclut toutes les vues (lecture automatique et clic) de vos médias, comptabilisées pour les vidéos, vines, GIF et images. La métrique de vues vidéo est disponible pour les Publications dont vous êtes le propriétaire via les endpoints /28hour et /historical, ainsi que pour toutes les Publications qui ne vous appartiennent pas via l’endpoint /totals.  Bien que la métrique de vues vidéo dans l’interface utilisateur de X utilise le même standard MRC, veuillez noter que vous pouvez observer 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 la valeur que vous recevez via les différents endpoints de l’Engagement API.
  • 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.   
Veuillez noter que nous ne fournissons pas de vues vidéo pour les Publications âgées de plus de 1800 jours. À la place, nous renvoyons un objet qui répertorie les Publications âgées de plus de 1800 jours. Vous continuerez à recevoir toutes les autres métriques pour les Publications demandées dans un objet séparé. Voici un exemple de réponse :
La métrique Media Views n’est disponible que pour les Publications vous appartenant via les endpoints /28hour et /historical.

Regroupements de l’API Engagement

Les regroupements permettent une organisation personnalisée des métriques d’engagement renvoyées. Vous pouvez inclure un maximum de 3 regroupements par requête. Vous pouvez choisir de regrouper les métriques selon une ou plusieurs des valeurs suivantes : Les trois endpoints prennent en charge :
  • tweet.id
  • engagement.type  
Les endpoints /28hr et /historical peuvent fournir des métriques de séries temporelles et, par conséquent, prennent en charge :
  • engagement.day
  • engagement.hour
Les regroupements sont appliqués successivement, ce qui vous permet de modifier le format des résultats souhaité en changeant l’ordre de vos valeurs group_by. Les regroupements qui contiennent quatre valeurs group_by ne seront pris en charge que dans l’un des deux formats suivants :
OU
Par exemple, si vous souhaitez générer des totaux globaux par type de métrique, incluez la spécification de « groupings » suivante dans votre requête (et consultez la page Référence de l’API pour plus d’informations sur la façon de constituer vos requêtes) :
Avec ce regroupement, la réponse JSON de l’Engagement API inclura un attribut de niveau racine "Grand Totals" qui contient les totaux globaux par type de métrique :
Pour générer, pour une seule Publication, une série temporelle de métriques sur 4 heures, regroupée par ID de Publication, la spécification de regroupement suivante ferait partie de la requête :
Avec ce regroupement, la réponse JSON de l’API Engagement inclura un attribut au niveau racine "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

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.
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.
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.  
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 /totals ne 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.
Veuillez consulter les différents messages d’erreur que vous recevrez probablement dans l’un des cas ci-dessus.
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

Assurez-vous de consulter nos directives relatives à l’authentification avec l’Engagement API.
Assurez-vous de ne pas utiliser de jetons d’accès ni de secrets lorsque vous essayez de vous authentifier avec l’endpoint /totals. En effet, si vous incluez ces jetons et tentez de récupérer du contenu à partir d’une Publication qui n’est pas associée à ces jetons, vous recevrez probablement une erreur de ce type :

Vous ne trouvez toujours pas ce que vous cherchez ?

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

Authentification

L’Engagement API nécessite l’utilisation de HTTPS et prend en charge à la fois le User Context et l’Application-only OAuth. La plupart des requêtes vers l’Engagement API exigent l’utilisation de l’OAuth à 3 volets (une version spécifique du User Context), ce qui signifie que vous utilisez la consumer key et le consumer secret de l’App qui a été enregistrée et approuvée pour l’accès à l’Engagement API par votre account manager Twitter, ainsi que le jeton d’accès et le secret de jeton d’accès des propriétaires des Tweet pour appeler l’endpoint. Les requêtes suivantes nécessitent ce type d’OAuth :
  • 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
Certaines requêtes vers l’Engagement API peuvent être effectuées à l’aide de l’Application-only OAuth, ce qui signifie que vous devez simplement fournir votre consumer key et votre consumer secret, ou un Jeton Bearer. La requête suivante peut être effectuée avec ce type d’OAuth :
  • 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
Pour toute requête, vous devrez configurer une App Twitter et la clé d’API correspondante à l’aide de la console de gestion d’App disponible sur developer.x.com. Veuillez noter : vous pouvez afficher et modifier vos Apps Twitter existantes via le Twitter app dashboard si vous êtes connecté à votre compte Twitter sur developer.x.com. Une fois que vous avez configuré votre App, l’id de l’App devra être approuvé par votre account representative afin que votre App puisse effectuer des requêtes vers l’Engagement API. Des jetons d’accès doivent être utilisés pour représenter l’« utilisateur actuel », et les requêtes effectuées au nom d’un autre utilisateur doivent être signées avec un jeton valide. Assurez-vous d’encoder correctement les caractères réservés dans les URL et les corps de requêtes POST avant de préparer les chaînes de base de signature OAuth. Pour plus d’informations sur la manière de commencer avec OAuth, veuillez consulter les liens suivants :

POST /insights/engagement/totals

L’endpoint totals permet de récupérer les totaux actuels d’impressions et d’engagements pour un ensemble pouvant compter jusqu’à 250 Tweets à la fois.

POST /insights/engagement/28hr

L’endpoint 28 heures permet de récupérer les impressions et les engagements pour un ensemble allant jusqu’à 25 Tweets au cours des 28 dernières heures. L’endpoint 28 heures permet également de demander toutes les métriques individuelles prises en charge. Pour la liste complète des métriques prises en charge, consultez Disponibilité des métriques.

POST /insights/engagement/historical

Le endpoint historique permet de récupérer les impressions et les engagements pour un ensemble pouvant aller jusqu’à 25 Tweets, pour une période maximale de 4 semaines. Actuellement, les données antérieures au 1er septembre 2014 ne peuvent pas être récupérées via l’API. Le endpoint historique permet également de récupérer l’ensemble des métriques individuelles prises en charge. Pour la liste complète des métriques prises en charge, consultez Metric Availability.

Codes de réponse

Messages d’erreur

Dans différents scénarios, l’API Engagement renverra des messages d’erreur spécifiques à la situation que votre application doit être en mesure de gérer. Le tableau ci-dessous inclut des exemples courants de ces messages d’erreur et la façon dont vous devez les interpréter. Veuillez noter que, dans de nombreux cas, l’API Engagement renverra des résultats partiels pour les données disponibles, avec des messages d’erreur spécifiques dans le cadre d’une réponse 200 OK contenant plus d’informations.