Introduction
Les indicateurs analytiques aident les partenaires et les annonceurs à comprendre les performances du contenu qu’ils diffusent sur X. Cela inclut des informations telles que les impressions, les clics, les vues vidéo et les dépenses. De plus, les partenaires et les annonceurs peuvent obtenir des métriques détaillées pour différents segments des audiences qu’ils atteignent. L’Ads API prend en charge deux façons de récupérer des métriques détaillées de performance de campagne : de manière synchrone et asynchrone. Avec les appels d’analytics synchrones, les métriques demandées sont renvoyées dans la réponse. Avec les endpoints d’analytics asynchrones, les métriques demandées sont disponibles dans un fichier de résultats téléchargeable une fois que la tâche associée a terminé son traitement. L’endpoint synchrone prend en charge de courtes plages temporelles et est idéal pour l’optimisation en temps réel des campagnes. Les endpoints asynchrones prennent en charge des plages temporelles beaucoup plus longues et sont donc conçus pour récupérer un volume de données bien plus important, idéal pour générer des rapports ou reconstituer l’historique. Les différences entre les endpoints d’analytics synchrones et asynchrones sont résumées dans le tableau suivant. Ces informations ont pour but d’aider les développeurs à choisir quel ensemble d’endpoints utiliser.- Cela fait référence au nombre maximal de jobs pouvant être dans un état de traitement à un moment donné.
- Optimisation en temps réel : utiliser les métriques de performance pour mettre à jour les campagnes actives
- Synchronisation : synchronisations planifiées en arrière-plan
- Intégration d’un nouveau compte : reconstitution des données historiques
- Entités : le type d’entité ainsi que jusqu’à 20 id d’entité pour lesquelles vous souhaitez obtenir des analytics
- Plage temporelle : les heures de début et de fin, exprimées au format ISO 8601
- Remarque : elles doivent être exprimées en heures pleines
- Groupes de métriques : un ou plusieurs ensembles de métriques associées (voir Metrics and Segmentation pour la liste des métriques dans chaque groupe de métriques)
- Granularité : spécifie le niveau d’agrégation auquel les métriques doivent être renvoyées
- Emplacement : détermine si les métriques sont récupérées pour des publicités diffusées sur X ou en dehors de X
- Remarque : une seule valeur d’emplacement peut être spécifiée par requête
start_time et end_time pour spécifier une plage temporelle. Ces valeurs doivent être alignées avec la granularité spécifiée de la manière suivante.
TOTAL: spécifiez n’importe quelle plage temporelle (dans les limites du point de terminaison)DAY: les valeurs d’heure de début et de fin doivent toutes deux être alignées sur minuit dans le fuseau horaire du compteHOUR: spécifiez n’importe quelle plage temporelle (dans les limites du point de terminaison)
start_time=2019-01-01T00:00:00Z et end_time=2019-01-02T00:00:00Z renverra une seule journée de métriques analytiques (et non deux), car cette plage temporelle ne couvre qu’une période de 24 heures.
Segmentation
Disponible uniquement via nos points de terminaison d’analytics asynchrones, la segmentation permet aux partenaires et aux annonceurs de récupérer des métriques ventilées selon certaines valeurs de ciblage spécifiques. Pour demander des métriques segmentées, utilisez le paramètre de requête segmentation_type. Pour plus de détails sur les options de segmentation, voir Metrics and Segmentation.
Pourquoi les chiffres de l’Ads API ne correspondent-ils pas à ceux affichés dans l’interface X Ads ?
- Assurez-vous d’avoir demandé des données pour les deux emplacements :
ALL_ON_TWITTERetPUBLISHER_NETWORK,SPOTLIGHTetTREND. - N’oubliez pas que les heures de fin dans l’Ads API sont exclusives ; elles sont inclusives dans l’interface Ads.
- Dès que les métriques de reporting sont disponibles, vous pouvez les récupérer. Elles sont disponibles en quasi temps réel. Cependant, ces premiers résultats sont des estimations et sont donc susceptibles d’évoluer. Les métriques sont finalisées après 24 heures, à l’exception des données de dépenses.
- Les métriques de dépenses sont généralement définitives dans les 3 jours suivant l’événement. Toutefois, nous traitons les données de facturation jusqu’à 14 jours après la date de l’événement (pour le filtrage du spam, par exemple).
- Utilisez l’endpoint Active Entities
null ?
- Il est probable que la campagne n’ait pas été diffusée pendant la période demandée.
- Utilisez l’endpoint Active Entities pour déterminer pour quelles entités et pour quelle période récupérer des données analytics.
null alors que l’interface affiche des 0 ?
- L’interface choisit d’afficher ces valeurs sous forme de 0, mais les valeurs sont équivalentes.
- Nous prenons en charge les valeurs d’emplacement suivantes dans analytics :
ALL_ON_TWITTERetPUBLISHER_NETWORK,SPOTLIGHTetTREND(c’est-à-dire la X Audience Platform).
- Oui. Le statut de l’entité n’a pas d’impact sur la disponibilité des métriques analytics.
- Il n’est pas attendu que les données segmentées se totalisent à 100 % par rapport aux données non segmentées, en raison de la manière dont ces informations sont dérivées.
- Nous ne prenons pas en charge la segmentation multiple.
- Pour les requêtes soumises à une limitation de débit (celles qui renvoient un code d’état
HTTP 429), vous devez consulter l’en-têtex-rate-limit-resetet réessayer uniquement au moment indiqué ou après. - Pour les requêtes qui aboutissent à un code d’état HTTP 503 Service Unavailable, vous devez consulter l’en-tête
retry-afteret réessayer uniquement après le moment indiqué. - Les applications qui ne respectent pas les délais indiqués pour les réessais peuvent se voir retirer leur accès à l’Ads API ou faire l’objet d’une réduction de débit sans préavis.
- Toutes les métriques Analytics sont figées et ne changeront plus après 24 heures, à l’exception de
billed_charge_local_micro. - La métrique
billed_charge_local_microest une estimation pendant une période pouvant aller jusqu’à 3 jours après la mise à disposition des données. - Après 24 heures, cette métrique peut diminuer en raison de crédits pour surdépenses (publicités diffusées après le
end_timeindiqué) et pour des événements facturables considérés comme non valides. Cette métrique ne change que très légèrement après 24 heures. - Veuillez consulter la page Analytics pour plus d’informations.
- Fournissez toujours à la fois un
start_timeet unend_time. - Ne récupérez pas de données pour des entités de plus de 7 jours.
- Demandez idéalement des données avec une granularité
HOUR, car vous pouvez toujours agréger et consolider les métriques pour obtenir une granularitéDAYetTOTAL. - Demandez idéalement des données au niveau des
line_itemset despromoted_tweets, car vous pouvez toujours agréger et consolider ces métriques pour obtenir des totaux sur l’ensemble de la hiérarchie des entités publicitaires (c.-à-d. aux niveaux campagne, instrument de financement ou compte). - Enregistrez et stockez les valeurs des métriques analytiques de votre côté (localement).
- Ne redemandez pas de données âgées de plus de 30 jours. Ces données ne changeront pas et doivent être stockées localement.
- Toutes les données non segmentées sont en temps réel et doivent être disponibles en quelques secondes après la survenue d’un événement.
- Regroupez les métriques de conversion et les métriques non liées aux conversions dans des requêtes séparées.
- Reportez-vous aux consignes fournies ci-dessus pour la section « Fetching Real-time, Non-segmented Data ». Des conseils supplémentaires sont fournis ci-dessous.
- Pour la plupart des types de données segmentées, il est possible que les données ne soient pas complètes pendant une période pouvant aller jusqu’à 1 heure. Les données segmentées par
INTERESTSpeuvent être retardées jusqu’à 12 heures. - Il est normal que les données segmentées ne totalisent pas 100 % des données non segmentées, en raison de la manière dont ces informations sont dérivées.
- Lors du complément rétroactif de données (c’est‑à‑dire l’ajout d’un nouveau compte annonceur), vous devrez peut‑être effectuer plusieurs requêtes en utilisant des intervalles
start_timeetend_timeplus courts. - Limitez vos extractions à des fenêtres de 30 jours.
- Limitez la fréquence de ces requêtes et répartissez‑les dans le temps afin de ne pas épuiser vos limites de taux pour ces extractions.
fetch_stats) sur notre dépôt GitHub ads-platform-tools.
Les indicateurs applicables à une entité dépendent de l’objectif de campagne. Utilisez ce guide pour déterminer quels groupes d’indicateurs récupérer pour chaque type d’objectif, ainsi que comment calculer des indicateurs dérivés supplémentaires.
Groupes de métriques pertinents : ENGAGEMENT et BILLING. MEDIA est également applicable si des médias sont utilisés dans les éléments créatifs.
Groupes de métriques pertinents :
ENGAGEMENT, BILLING et WEB_CONVERSION. MEDIA est également applicable si un média est utilisé dans les créations publicitaires.
Groupes de métriques pertinents :
ENGAGEMENT, BILLING, MOBILE_CONVERSION et LIFE_TIME_VALUE_MOBILE_CONVERSION. MEDIA et VIDEO sont également applicables si une carte d’App mobile média ou vidéo est utilisée dans les créations.
Groupes de métriques pertinents :
ENGAGEMENT et BILLING. MEDIA est également applicable si des médias sont utilisés dans les créatifs.
Groupes de métriques pertinents :
ENGAGEMENT et BILLING. MEDIA est également applicable si des médias sont utilisés dans les créations publicitaires.
Groupes de métriques concernés :
ENGAGEMENT, BILLING et VIDEO.
Groupes de métriques pertinents :
ENGAGEMENT, BILLING et VIDEO.
Ce document présente un aperçu des métriques disponibles dans notre Analytics pour chaque type d’entité, ainsi que des segmentations disponibles pour chacune de ces métriques.
*Certaines métriques de la famille de métriques
ENGAGEMENT ne sont pas disponibles au niveau du compte et de l’instrument de financement. Voir la section ENGAGEMENT pour plus de détails.
Avis concernant les modifications de la définition des métriques vidéo :
La métrique
video_total_views au sein du groupe de métriques VIDEO prendra en compte toutes les vues pour lesquelles la vidéo est au moins à 50 % visible pendant 2 secondes, conformément au standard MRC.
Notre définition d’origine d’une vue vidéo, à savoir une vidéo visible à 100 % à l’écran pendant au moins 3 secondes, restera disponible sous la forme d’une nouvelle métrique video_3s100pct_views dans le groupe de métriques VIDEO. Pour continuer à enchérir et à être facturé sur la base de la définition d’origine de la vue, utilisez l’unité d’enchère nouvellement disponible VIEW_3S_100PCT.
Les statistiques de conversion mobile sont disponibles uniquement pour les comptes annonceurs pour lesquels MACT est activé.
Les statistiques de conversions mobiles sur la durée de vie (lifetime) ne sont disponibles que pour les comptes annonceurs activés pour MACT.
Les rapports de segmentation permettent d’obtenir des métriques ventilées selon les valeurs d’un type de ciblage donné. La segmentation n’est disponible que via les requêtes analytiques asynchrones en raison de la complexité supplémentaire significative qu’elles impliquent.
La segmentation n’est pas prise en charge pour les entités
MEDIA_CREATIVE ou ORGANIC_TWEET.
Certains types de segmentation nécessitent que des paramètres supplémentaires soient transmis. Ils sont documentés ci-dessous.
Lors de la segmentation par CITIES ou POSTAL_CODES, l’API ne renverra que les emplacements ciblés. La segmentation par régions et par zones métropolitaines renverra à la fois les emplacements ciblés et non ciblés.
Les indicateurs de campagne dépendent de leur objectif de campagne. Utilisez ce guide pour savoir comment calculer les indicateurs dérivés à utiliser en fonction des objectifs définis.
Tout
metric sans accolades correspond à un indicateur renvoyé par les endpoints analytics de l’Ads API. Tout nom entouré de {accolades} indique un indicateur dérivé pour cette catégorie.
ENGAGEMENTS
APP_INSTALLS et APP_ENGAGEMENTS
ABONNÉS
LEAD_GENERATION
VIDEO_VIEWS
Pour un
placement_type égal à PROMOTED_ACCOUNT, voir l’objectif FOLLOWERS ci-dessus. Pour tous les autres emplacements utilisant cet objectif, voir ENGAGEMENTS pour les métriques dérivées correspondantes.
L’endpoint Active Entities est conçu pour être utilisé conjointement avec nos endpoints d’analytics synchrones et asynchrones, car il fournit des informations sur les campagnes pour lesquelles demander des analytics. Il le fait en renvoyant des détails sur les entités publicitaires et sur les moments où leurs métriques ont changé. L’utilisation de cet endpoint simplifiera grandement votre code et votre logique de récupération des analytics.
Ce guide inclut des informations et du contexte à propos de l’endpoint et de sa source de données. Il fournit également des directives d’utilisation et une série d’exemples de requêtes illustrant comment utiliser Active Entities avec nos endpoints d’analytics. La section Résumé propose une vue d’ensemble de l’approche recommandée.
Chaque fois qu’une métrique d’entité publicitaire change, nous enregistrons des informations sur ce changement. Ces événements de modification sont stockés dans des tranches horaires et incluent des détails sur l’entité ainsi que sur le moment auquel le changement s’applique. Ce dernier point est nécessaire, car les événements de modification ne correspondent pas toujours au moment où ils ont été enregistrés. Les ajustements de facturation en sont une raison fréquente, mais il peut y en avoir d’autres.
Les requêtes Active Entities sont rattachées aux comptes publicitaires et comportent trois paramètres de requête obligatoires : entity, start_time et end_time.
twurl -H ads-api.x.com "/11/stats/accounts/18ce54d4x5t/active_entities?entity=PROMOTED_TWEET&start_time=2019-03-05T00:00:00Z&end_time=2019-03-06T00:00:00Z"
Les valeurs suivantes pour entity sont prises en charge : CAMPAIGN, FUNDING_INSTRUMENT, LINE_ITEM, MEDIA_CREATIVE, PROMOTED_ACCOUNT et PROMOTED_TWEET. Cela reflète les types d’entités que nos endpoints d’analyse prennent en charge.
Les valeurs start_time et end_time doivent être exprimées au format ISO 8601 et indiquer quelles tranches horaires interroger. Elles doivent être exprimées en heures pleines.
Cet endpoint prend également en charge trois paramètres optionnels qui peuvent être utilisés pour filtrer les résultats : funding_instrument_ids, campaign_ids et line_item_ids. Ceux-ci fonctionnent à tous les niveaux de la hiérarchie publicitaire et avec n’importe quelle valeur entity spécifiée.
La réponse Active Entities pour la requête ci-dessus est affichée ci-dessous.
data contient un objet pour chaque entité devant être incluse dans une requête d’analytics ultérieure. Vous ne devez pas demander des analytics pour des identifiants en dehors de cet ensemble.
Chaque objet comporte quatre champs : entity_id, activity_start_time, activity_end_time et placements. Les heures de début et de fin d’activité représentent l’intervalle de temps auquel s’appliquent les événements de modification de l’entité associée et déterminent donc les dates qui doivent être spécifiées dans les requêtes d’analytics ultérieures. Le tableau placements peut contenir les valeurs suivantes : ALL_ON_TWITTER, PUBLISHER_NETWORK, SPOTLIGHT et TREND. Il indique quels emplacements doivent être demandés pour l’identifiant d’entité donné.
L’endpoint Active Entities doit déterminer la manière dont les requêtes d’analytics sont effectuées. Les directives d’utilisation suivantes sont rédigées pour prendre en charge la synchronisation des analytics, afin de permettre aux partenaires de garder leurs magasins de données synchronisés avec Twitter. En d’autres termes, elles décrivent comment effectuer des synchronisations en arrière-plan planifiées à intervalles réguliers.
Il y a deux décisions qu’un développeur doit prendre.
- À quelle fréquence demander des informations sur les entités actives et, par conséquent, à quelle fréquence récupérer les analytics.
- Comment utiliser les heures de début et de fin d’activité pour déterminer les valeurs
start_timeetend_timede la requête d’analytics.
- Effectuez la requête Active Entities.
- Divisez la réponse par placement. Un groupe pour
ALL_ON_TWITTER, un pourPUBLISHER_NETWORK, un pourSPOTLIGHTet un pourTREND. - Pour chaque groupe de placement, procédez comme suit.
- Extrayez les id d’entité.
- Déterminez les valeurs
start_timeetend_timepour l’analytics.- Trouvez la valeur minimale de
activity_start_time. Arrondissez cette valeur à la valeur inférieure la plus proche. - Trouvez la valeur maximale de
activity_end_time. Arrondissez cette valeur à la valeur supérieure la plus proche.
- Trouvez la valeur minimale de
- Effectuez la ou les requêtes d’analytics.
- Regroupez les id d’entité par lots de 20.
- Utilisez les valeurs
start_timeetend_timede l’étape 3b. - Indiquez la valeur de
placementappropriée.
- Écrivez dans votre stockage de données.
start_time de la requête actuelle soit égal au end_time de la requête précédente.
Remarque : Une fenêtre temporelle ne doit être demandée qu’une seule fois. Demander une fenêtre temporelle plus d’une fois entraînera des requêtes d’analyse inutiles. (Exception ci‑dessous.)
Étant donné la manière dont les événements de modification sont stockés, les quatre requêtes Active Entities ci‑dessus interrogent toutes le même bucket horaire, ce qui est nécessaire pour ce cas d’utilisation. Cependant, après l’heure en cours, ce bucket horaire ne doit plus être interrogé.
Nous recommandons l’approche suivante pour gérer les heures de début et de fin d’activité. Dans tous les objets de la réponse Active Entities, recherchez la valeur minimale de
activity_start_time et la valeur maximale de activity_end_time. Modifiez ces valeurs en arrondissant l’heure minimale de début d’activité à l’inférieur et l’heure maximale de fin d’activité au supérieur. Plus précisément, définissez les horodatages avec les heures, les minutes et les secondes à zéro pour les deux, puis ajoutez un jour à l’heure de fin, comme illustré dans le tableau suivant. Ce sont ces heures de début et de fin qui doivent être spécifiées dans les requêtes d’analytics ultérieures.
Remarque : Il est important d’inclure les horodatages avec les heures, les minutes et les secondes définies à zéro. Sinon, si seule la date est transmise, nous supposerons que vous demandez des analytics commençant et se terminant à minuit dans le fuseau horaire du compte publicitaire, ce qui peut ne pas être souhaitable. Par exemple, si l’heure minimale de début d’activité est 2019-02-28T01:30:07Z et que l’horodatage est omis pour un compte publicitaire avec un décalage horaire de -08:00:00, la requête d’analytics ne prendra pas en compte les changements intervenus entre 01:30 et 08:00.
Autrement, si vous préférez demander des analytics uniquement pour la fenêtre temporelle d’activité renvoyée, sans l’étendre à des jours complets, vous pouvez le faire. En suivant cette approche, les heures de début et de fin dérivées seraient respectivement 2019-03-04T20:00:00Z et 2019-03-05T15:00:00Z. (Notez que de tels intervalles ne sont pas acceptés si vous spécifiez une granularité
DAY dans la requête d’analytics.)
Cette section montre comment utiliser Active Entities conjointement avec l’endpoint d’analytics synchrone. (Les réponses ont été légèrement modifiées pour plus de lisibilité.) Dans cet exemple, l’endpoint Active Entities est appelé au début de chaque heure, chaque requête portant sur l’heure précédente. La réponse détermine la façon dont l’endpoint d’analytics synchrone est utilisé.
La première requête Active Entities est effectuée à 03:00:00. La réponse indique que les métriques du line item dvcz7 ont changé et que ces événements de modification s’appliquent à l’intervalle compris entre 02:02:55 et 02:28:12.
start_time et end_time pour l’analytics sont définies respectivement sur 2019-02-11T00:00:00Z et 2019-02-12T00:00:00Z. Nous constatons que le troisième élément de chacun des tableaux de métriques ci-dessous est non nul, comme nous nous y attendions d’après les informations sur les entités actives.
- Créez le job à l’aide de l’endpoint POST stats/jobs/accounts/:account_id.
- Effectuez des requêtes à intervalles réguliers vers l’endpoint GET stats/jobs/accounts/:account_id pour déterminer si le job a terminé son traitement.
- Une fois que le job a terminé son traitement, téléchargez le fichier de données.
- Décompressez le fichier de données.
segmentation_type lors de la création du job.
Cette section illustre comment utiliser les endpoints d’analyses asynchrones.
Commencez par créer un job en utilisant l’endpoint POST stats/jobs/accounts/:account_id. L’exemple ci‑dessous demande des métriques d’engagement — telles que les impressions, les likes, les clics, etc. — pour un élément de campagne spécifique sur une période d’une semaine. (Notez que la plage temporelle demandée va jusqu’au 20 mars sans l’inclure, car l’horodatage est défini à minuit.)
id et id_str.
Ensuite, vous devez vérifier si le job que vous avez créé en utilisant l’id_str de la réponse précédente a terminé son traitement, comme indiqué par "status": "SUCCESS" dans la réponse. Cela signifie que les données sont prêtes à être téléchargées. Le champ url contient le lien de téléchargement.
job_ids pour vérifier l’état de plusieurs tâches à la fois en spécifiant jusqu’à 200 identifiants de tâche.
Ensuite, téléchargez le fichier de données en utilisant la valeur url indiquée.
https://ads-api.x.com/stats/accounts/:account_id/reach/campaigns
GET https://ads-api.x.com/12/stats/accounts/18ce54d4x5t/reach/campaigns?campaign_ids=8fgzf&start_time=2017-05-19&end_time=2017-05-26
URL de la ressource
https://ads-api.x.com/stats/accounts/:account_id/reach/funding_instruments
end_time - start_time) est autorisé.
https://ads-api.x.com/12/stats/accounts/:account_id
- Les valeurs
start_timeetend_timeindiquent quelles tranches horaires interroger. - Le tableau
datarenvoyé contiendra un objet pour chaque entité devant être incluse dans les requêtes d’analytics suivantes. - IMPORTANT : les dates à spécifier dans les requêtes d’analytics suivantes doivent être déterminées à partir des valeurs
activity_start_timeetactivity_end_time.- Ces valeurs représentent les plages horaires auxquelles les événements de modification stockés s’appliquent. Elles sont renvoyées pour chaque entité.
end_time - start_time) de 90 jours est autorisée.
https://ads-api.x.com/12/stats/accounts/:account_id/active_entities
GET https://ads-api.x.com/12/stats/accounts/18ce54d4x5t/active_entities?entity=PROMOTED_TWEET&start_time=2019-02-28&end_time=2019-03-01