Saltar al contenido principal

Introducción

Enterprise Los enriquecimientos de Enterprise son metadatos adicionales incluidos en la carga útil de la respuesta de algunas de las API de datos. Solo están disponibles con planes de suscripción de pago. La siguiente tabla ofrece una breve descripción de cada enriquecimiento:
Enriquecimiento:Descripción:
Expanded and Enhanced URLsExpande automáticamente las URL acortadas (por ejemplo, bitly) que se incluyen en el cuerpo de una Publicación y proporciona metadatos HTML de Title y Description de la página de destino.
Matching rules objectIndica qué regla o reglas coincidieron con las Publicaciones recibidas. El objeto devuelve la etiqueta de la regla (rule tag) y el id de la regla (rule id) en el objeto de respuesta.
Poll metadataIndica la presencia de una encuesta en una Publicación, incluye la lista de opciones de la encuesta y también incluye tanto la duración de la encuesta como el momento de vencimiento.
Profile geoDatos derivados de la ubicación del perfil de usuario, incluidas las coordenadas [longitud, latitud] (cuando es posible) y los metadatos del lugar relacionado.

URLs expandidas y mejoradas

El enriquecimiento de URLs expandidas y mejoradas expande automáticamente las URLs acortadas que se incluyen en el cuerpo de una Publicación e incluye la URL resultante como metadatos dentro del payload. Además, este enriquecimiento también proporciona metadatos de la página HTML a partir del title y la description de la página de destino. Detalles importantes:
  • Para resolver un enlace acortado, nuestro sistema envía solicitudes HTTP HEAD a la URL proporcionada y sigue cualquier redirección hasta llegar a la URL final. Esta URL final (NO el contenido de la propia página) se incluye después en el payload de la respuesta.
  • El enriquecimiento de URL añade entre 5 y 10 segundos de latencia a los streams en tiempo real
  • Para las solicitudes realizadas a la Full Archive Search API, los datos de enriquecimiento de URL expandida solo están disponibles para Publicaciones con una antigüedad igual o inferior a 13 meses.
  • El enriquecimiento de URL no está disponible para enlaces a Publicaciones (incluidos los Tweets citados), enlaces de Moments y enlaces a perfiles que se incluyan dentro de una Publicación.   

Carga útil de la Publicación

El enriquecimiento de URL expandida y mejorada se encuentra dentro del objeto entities de la carga útil de la Publicación, específicamente en el objeto entitites.urls.unwound. Proporciona los siguientes campos de metadatos:
  • URL expandida - unwound.url
  • Estado HTTP de la URL expandida - unwound.status
  • Título HTML de la URL expandida - límite de 300 caracteres - unwound.title
  • Descripción HTML de la URL expandida - límite de 1000 caracteres - unwound.description
Este es un ejemplo de un objeto entities con el enriquecimiento de URL:
"entities": {
    "hashtags": [

    ],
    "urls": [
      {
        "url": "https:\/\/t.co\/HkTkwFq8UT",
        "expanded_url": "http:\/\/bit.ly\/2wYTb9y",
        "display_url": "bit.ly\/2wYTb9y",
        "unwound": {
          "url": "https:\/\/www.forbes.com\/sites\/laurencebradford\/2016\/12\/08\/11-websites-to-learn-to-code-for-free-in-2017\/",
          "status": 200,
          "title": "11 Websites To Learn To Code For Free In 2017",
          "description": "It\u2019s totally possible to learn to code for free...but what are the best resources to achieve that? Here are 11 websites where you can get started."
        },
        "indices": [
          10,
          33
        ]
      }
    ],
    "user_mentions": [

    ],
    "symbols": [

    ]
  },
**Este es un ejemplo de un objeto entities que contiene un enlace a una Publicación que no está enriquecido: **
"entities": {
  "urls": [{
    "url": "https://t.co/SywNbZdDmb",
    "expanded_url": "https://x.com/XDevelopers/status/1050118621198921728",
    "display_url": "x.com/XDevelopers/s…",
     "indices": [
        142,
        165
     ]
   }
  ]
}

Operadores de filtrado

Los siguientes operadores filtrarán y proporcionarán una coincidencia tokenizada en los campos relacionados con los metadatos de la URL: url:
  • Ejemplo: “url:tennis”
  • Coincidencia tokenizada en cualquier URL expandida que incluya la palabra tennis
  • También se puede usar como un filtro para incluir o excluir enlaces de un sitio web específico usando algo como “url:npr.org”
url_title:
  • Ejemplo: “url_title:tennis”
  • Coincidencia tokenizada en cualquier título HTML de una URL expandida que incluya la palabra tennis
  • Coincide con los datos del título HTML incluidos en el payload, que están limitados a 300 caracteres.
url_description:
  • Ejemplo: “url_description:tennis”
  • Coincidencia tokenizada en cualquier descripción HTML de una URL expandida que incluya la palabra tennis
  • Coincide con la descripción HTML incluida en el payload, que está limitada a 1000 caracteres.  

Códigos de estado HTTP

El enriquecimiento de URL ampliada también proporciona el código de estado HTTP de la URL final que intentamos expandir. En condiciones normales, este será un valor 200. Otros valores de la serie 400 indican problemas al resolver la URL. Se pueden devolver varios códigos de estado cuando se intenta expandir una URL. Durante el proceso de expansión de una URL, si recibimos una redirección, la seguiremos indefinidamente hasta que:
  • Alcancemos un código de la serie 200 (éxito)
  • Alcancemos un código que no sea de redirección (errores)
  • Se agote el tiempo de espera porque la URL final no pudo resolverse en un tiempo razonable (devuelve un 408 - tiempo de espera agotado)
  • Se produzca algún tipo de excepción  
Si se produce una excepción, usamos la siguiente asignación entre causas y códigos de estado devueltos:
MotivoCódigo de estado devuelto
Excepciones SSL403 (Forbidden/Prohibido)
Expansión no permitida por la URL405
Socket Timeout408 (Timeout/Tiempo de espera agotado)
Unknown Host Exception404 (Not Found/No encontrado)
Unsupported Operation404 (Not Found/No encontrado)
Connect Exception404 (Not Found/No encontrado)
Illegal Argument400 (Bad Request/Solicitud incorrecta)
Todo lo demás400 (Bad Request/Solicitud incorrecta)

Reglas de coincidencia

El enriquecimiento de reglas de coincidencia es un objeto de metadatos que indica qué regla o reglas coincidieron con las Publicaciones recibidas. Esto se usa con mayor frecuencia con el stream de PowerTrack. La coincidencia se realizará mediante una búsqueda de coincidencias exactas de los términos contenidos en una regla, analizando el contenido de la actividad con y sin puntuación. La coincidencia no distingue mayúsculas de minúsculas. Cuando se detecte que el contenido incluye todos los términos definidos en la regla, habrá un objeto matching_rules a nivel raíz que indicará la(s) regla(s) que dieron lugar a la coincidencia. PowerTrack Las Publicaciones entregadas a través de PowerTrack (en tiempo real, Replay e Historical) contendrán el objeto matching_rules de la siguiente manera:
"matching_rules": [{
        "tag": null,
        "id": 907728589029646336,
        "id_str": "907728589029646336"
    }]
En PowerTrack, el objeto matching_rules refleja todas las reglas que hayan coincidido con el resultado en cuestión. En otras palabras, si más de una regla coincide con una Publicación determinada, esta solo se entregará una vez, pero el elemento matching_rules incluirá todas las reglas que coincidieron.

Metadatos de encuesta

Los metadatos de encuesta son un enriquecimiento gratuito disponible en todos los productos (APIs en tiempo real e históricas) dentro de las cargas útiles de formato nativo enriquecido. Los metadatos indican la presencia de la encuesta en una Publicación, incluyen la lista de opciones de la encuesta e incluyen tanto la duración de la encuesta como la hora de expiración. Este enriquecimiento facilita identificar la presencia de una encuesta y permite la representación correcta de una Publicación con encuesta para su visualización.
Detalles importantes:
  • Disponible en todas las APIs empresariales (PowerTrack, Replay, Search, Historical PowerTrack)
    • Nota: Para Replay y Historical PowerTrack, estos metadatos estuvieron disponibles por primera vez el 22/02/17.
  • No incluye información de votos ni resultados de encuestas
  • Actualmente no es compatible con filtros ni operadores
  • Disponible solo en formato nativo enriquecido
    • El formato nativo enriquecido es una configuración controlada por el usuario que se puede cambiar en cualquier momento a través de la consola: Select a Product (PowerTrack, Replay, Search) > Settings tab > Output Format (Leave data in its original format)

Carga útil de la Publicación

La Publicación con encuesta contendrá los siguientes metadatos en el objeto “entities.polls” de la carga útil:
  • Un array “options” con hasta cuatro opciones que incluyen la posición (1-4) y el texto de la opción
  • Fecha de expiración de la encuesta
  • Duración de la encuesta
Consulta la carga útil de ejemplo a continuación como referencia adicional.

Ejemplo de payload

A continuación se muestra un fragmento del payload en formato nativo enriquecido que destaca los metadatos agregados de la encuesta:
"entities":{
          "hashtags":[],
          "urls":[],
          "user_mentions":[],
          "symbols":[],
          "polls":[
             {
                "options":[
                   {
                      "position":1,
                      "text":"The better answer"
                   },
                   {
                      "position":2,
                      "text":"The best answer"
                   }
                ],
                "end_datetime":"Sat Feb 04 15:33:11 +0000 2017",
                "duration_minutes":1440
             }
          ]
       },

Geo del perfil

Introducción

Muchos perfiles de usuario en X incluyen información pública de ubicación proporcionada por el propio usuario. Estos datos se devuelven como una cadena normal en user.location (consulta el Diccionario de datos del objeto User). El enriquecimiento Profile Geo agrega datos geográficos estructurados relevantes para el valor de user.location mediante la geocodificación y la normalización de las cadenas de ubicación cuando es posible. Tanto las coordenadas de latitud/longitud como los metadatos de lugares relacionados se agregan a user.derived.locations solo cuando se incluyen como parte del payload de la Publicación en los productos enterprise de la API. Estos datos están disponibles cuando se usa el formato nativo enriquecido y se pueden filtrar con una combinación de reglas de PowerTrack.
Nota: Parte de los datos geográficos auxiliares utilizados para crear el enriquecimiento Profile Geo provienen de GeoNames.org y son utilizados por X bajo la Licencia Creative Commons Attribution 3.0.
Los datos de Profile Geo se incluirán en las APIs de PowerTrack, Replay, Volume Stream, Search y Historical PowerTrack de X.

Datos de Profile Geo

Enriched native field nameExample valueDescription
user.derived.locations.countryUnited StatesEl país del usuario que creó la Publicación.
user.derived.locations.country_codeUSUn código de país ISO-3166 de dos letras que corresponde al país del usuario que creó la Publicación.
user.derived.locations.localityBirminghamLa localidad (generalmente la ciudad) del usuario que creó la Publicación.
user.derived.locations.regionAlabamaLa región (generalmente estado/provincia) del usuario que creó la Publicación.
user.derived.locations.sub_regionJefferson CountyLa subregión (generalmente el condado) del usuario que creó la Publicación.
user.derived.locations.full_nameBirmingham, Alabama, United StatesEl nombre completo (sin incluir la subregión) del lugar de origen del usuario que creó la Publicación.
User.derived.locations.geoSee BelowUn array que incluye un valor de latitud/longitud para una coordenada que corresponde a la ubicación de menor granularidad del usuario que creó la Publicación.
Las APIs Historical PowerTrack, Search y PowerTrack admiten el filtrado basado en los datos de Profile Geo. Consulta la documentación del producto correspondiente para obtener más detalles sobre qué operadores están disponibles para filtrar datos de Profile Geo.

Ejemplo de payload

{
    "user": {
        "derived": {
            "locations": \[
                {
                    "country": "United States",
                    "country_code": "US",
                    "locality": "Birmingham",
                    "region": "Alabama",
                    "sub_region": "Jefferson County",
                    "full_name": "Birmingham, Alabama, United States",
                    "geo": {
                        "coordinates": \[
                            -86.80249,
                            33.52066
                        \],
                        "type": "point"
                    }
                }
            \]
        }
    }
}

Limitations

  • El enriquecimiento Profile Geo intenta determinar la mejor opción para el lugar geográfico descrito en la cadena de ubicación del perfil. El resultado puede no ser preciso en todos los casos debido a factores como la existencia de varios lugares con nombres similares o nombres ambiguos.
  • Si no se proporciona un valor en el campo de ubicación del perfil de un usuario (actor.location), no intentaremos realizar una clasificación.
  • Nivel de precisión: si un Profile Geo Enrichment solo se puede determinar con suficiente confianza a nivel de país o región, las geografías de nivel inferior como subRegion y locality se omitirán del payload.
  • El enriquecimiento Profile Geo proporciona coordenadas de latitud/longitud (un único punto) que corresponden al Nivel de precisión de los resultados del enriquecimiento. Estas coordenadas representan el centro geográfico de la ubicación resultante del enriquecimiento. Por ejemplo, si el Nivel de precisión es a nivel de país, entonces esas coordenadas se establecen en el centro geográfico de ese país.
  • Los operadores de PowerTrack proporcionados para propiedades de dirección (locality/region/country/country code) son intencionalmente granulares para permitir muchas combinaciones de reglas. Cuando intentes dirigirte a una ubicación específica que comparte nombre con otra ubicación, considera combinar reglas de dirección. Por ejemplo, lo siguiente evitaría coincidencias para “San Francisco, Philippines”: profile_locality:”San Francisco” profile_region:California. Al crear reglas que apunten a campos individuales de Profile Geo, ten en cuenta que cada nivel adicional de granularidad limitará los resultados que veas. En algunos casos, cuando intentes ver datos de una ciudad, es posible que prefieras basarte únicamente en una regla de región cuando la región tenga una superposición significativa con la ciudad; por ejemplo, la ciudad de Zúrich, Suiza, se puede segmentar de forma efectiva junto con las áreas circundantes con profile_region:”Zurich”.
  • Uso con Publicaciones con Geo nativo: el enriquecimiento Profile Geo proporciona un tipo alternativo de información geográfica para una Publicación, diferente del valor geo nativo en el payload. Estos dos tipos de información geográfica se pueden combinar para capturar todas las Publicaciones posibles relacionadas con un área determinada (en función de los datos geográficos disponibles), aunque no son conceptualmente equivalentes.