Introducción
Las métricas de analítica ayudan a socios y anunciantes a comprender el rendimiento del contenido que promocionan en X. Esto incluye información como impresiones, clics, visualizaciones de vídeo e inversión publicitaria. Además, los socios y anunciantes pueden obtener métricas detalladas para varios segmentos de las audiencias a las que llegan. La Ads API admite dos formas de recuperar métricas detalladas de rendimiento de campaña: de manera sincrónica y asincrónica. Con las llamadas de analítica sincrónicas, las métricas solicitadas se devuelven en la respuesta. Con los endpoints de analítica asincrónicos, las métricas solicitadas están disponibles en un archivo de resultados descargable después de que la “tarea” (“job”) asociada haya terminado de procesarse. El endpoint sincrónico admite rangos de tiempo cortos y es ideal para optimizaciones de campaña en tiempo real. Los endpoints asincrónicos admiten rangos de tiempo mucho más largos y, por lo tanto, están pensados para obtener muchos más datos, ideales para generar informes o realizar cargas históricas de datos.Detalles
Sincrónico vs. asincrónico
- Esto se refiere al número máximo de trabajos que pueden estar en estado de procesamiento en un momento dado.
Casos de uso
- Optimización en tiempo real: usar métricas de rendimiento para actualizar campañas activas
- Sincronización: sincronizaciones periódicas en segundo plano
- Incorporación de cuentas nuevas: completar datos históricos
Opciones de solicitud
- Entities: el tipo de entidad, así como hasta 20 id de entidad para las que quieres solicitar analytics
- Intervalo de tiempo: las horas de inicio y fin, expresadas en ISO 8601
- Nota: se deben expresar en horas completas
- Grupos de métricas: uno o más conjuntos de métricas relacionadas (consulta Métricas y segmentación para ver una lista de métricas dentro de cada grupo de métricas)
- Granularidad: especifica el nivel de agregación en el que se deben devolver las métricas
- Placement: determina si las métricas se extraen para anuncios que se publicaron dentro o fuera de X
- Nota: solo se puede especificar un único valor de placement por solicitud
start_time y end_time para especificar un intervalo de tiempo. Estos valores deben alinearse con la granularidad especificada de la siguiente manera:
TOTAL: especifica cualquier intervalo de tiempo (dentro de los límites del endpoint)DAY: tanto la hora de inicio como la hora de fin deben alinearse con la medianoche en la zona horaria de la cuentaHOUR: especifica cualquier intervalo de tiempo (dentro de los límites del endpoint)
start_time=2019-01-01T00:00:00Z y end_time=2019-01-02T00:00:00Z devolverá métricas de analytics correspondientes a un solo día (no dos), ya que este intervalo de tiempo solo cubre un período de 24 horas.
Segmentación
Disponible solo a través de nuestros endpoints de analytics asíncronos, la segmentación permite a los socios y anunciantes obtener métricas desglosadas por valores de segmentación específicos. Para solicitar métricas segmentadas, usa el parámetro de solicitud segmentation_type. Para obtener más detalles sobre las opciones de segmentación, consulta Métricas y segmentación.
Preguntas frecuentes
- Asegúrate de haber solicitado datos para todas las ubicaciones:
ALL_ON_TWITTERyPUBLISHER_NETWORK,SPOTLIGHTyTREND. - Recuerda que las horas de finalización en la Ads API son exclusivas; en la interfaz de Ads son inclusivas.
- Tan pronto como las métricas de informes están disponibles, puedes recuperarlas. Están disponibles casi en tiempo real. Sin embargo, estos primeros resultados son estimaciones y, como resultado, es de esperar que cambien. Las métricas se finalizan después de 24 horas, con la excepción de los datos de gasto.
- Las métricas de gasto generalmente se consideran finales dentro de los 3 días posteriores al evento. Sin embargo, procesamos datos de facturación hasta 14 días a partir de la fecha del evento (por ejemplo, para filtrado de spam).
- Usa el endpoint Active Entities
null?
- Es probable que la campaña no se haya entregado durante el período de tiempo solicitado.
- Usa el endpoint Active Entities para determinar para qué entidades y para qué período de tiempo debes recuperar analytics.
null mientras que la interfaz muestra ceros?
- La interfaz decide mostrar estos valores como ceros, pero los valores son equivalentes.
- Admitimos los siguientes valores de ubicación en analytics:
ALL_ON_TWITTERyPUBLISHER_NETWORK,SPOTLIGHTyTREND(es decir, la X Audience Platform)
- Sí. El estado de la entidad no afecta la disponibilidad de las métricas de analytics.
- No se espera que los datos segmentados se sumen al 100 % de los datos no segmentados, debido a cómo se obtiene esta información.
- No admitimos la segmentación múltiple.
Mejores prácticas
Limitación de frecuencia y reintentos
- En las solicitudes sujetas a limitación de frecuencia (aquellas que devuelven un código de estado
HTTP 429), debes inspeccionar el encabezadox-rate-limit-resety reintentar solo en o después del momento indicado. - En las solicitudes que resulten en un código de estado
HTTP 503 Service Unavailable, debes inspeccionar el encabezadoretry-aftery reintentar solo después del momento indicado. - A las aplicaciones que no respeten los tiempos indicados para los reintentos se les podría revocar o restringir el acceso a la Ads API sin previo aviso.
Métricas de Analytics en pocas palabras
- Todas las métricas de Analytics quedan bloqueadas y no se modificarán después de 24 horas, con la excepción de
billed_charge_local_micro. - La métrica
billed_charge_local_microes una estimación durante un máximo de 3 días después de que se devuelven los datos. - Después de 24 horas, esta métrica puede disminuir debido a créditos por exceso de gasto (anuncios servidos después del
end_timeindicado) y por eventos facturables que se determinan como no válidos (junk). Esta métrica cambia mínimamente después de 24 horas. - Consulta Analytics para obtener más información.
Obtención de datos en tiempo real, no segmentados
- Proporciona siempre tanto un
start_timecomo unend_time. - No extraigas datos de ninguna entidad con más de 7 días de antigüedad.
- Solicita datos (idealmente) con granularidad
HOUR, ya que siempre puedes agregar y consolidar métricas para obtener granularidadDAYyTOTAL. - Solicita datos (idealmente) a nivel de
line_itemsypromoted_tweets, ya que siempre puedes agregar y consolidar estas métricas para obtener totales en toda la jerarquía de entidades de publicidad (es decir, para los niveles de campaña, instrumento de financiación o cuenta). - Guarda y almacena los valores de las métricas de analítica en tu sistema (localmente).
- No consultes de forma repetida datos con más de 30 días de antigüedad. Estos datos no cambiarán y deben almacenarse localmente.
- Todos los datos no segmentados son en tiempo real y los datos deberían estar disponibles en cuestión de segundos después de que se produzca un evento.
- Agrupa las métricas de conversión y las métricas que no son de conversión en solicitudes separadas.
Obtención de datos segmentados
- Consulta las pautas indicadas arriba para “Fetching Real-time, Non-segmented Data”. A continuación se ofrece asesoramiento adicional.
- Para la mayoría de los tipos de datos segmentados, es posible que los datos no estén completos durante un máximo de 1 hora en determinados momentos. Los datos segmentados por
INTERESTSpueden retrasarse hasta 12 horas. - No se espera que los datos segmentados se agreguen al 100 % de los datos no segmentados, debido a la forma en que se obtiene esta información.
Obtención de datos históricos
- Al realizar una carga histórica de datos (es decir, al agregar una nueva cuenta de anunciante), es posible que debas realizar varias solicitudes en intervalos más pequeños de
start_timeyend_time. - Limita tus consultas a ventanas de fechas de 30 días.
- Limita la velocidad de estas solicitudes y distribúyelas en el tiempo para no agotar tus límites de tasa para estas consultas.
Ejemplo
fetch_stats) en nuestro repositorio de GitHub, ads-platform-tools.
Métricas por objetivo
ENGAGEMENTS
ENGAGEMENT y BILLING. MEDIA también es aplicable si se utiliza contenido multimedia en los creativos.
WEBSITE_CLICKS y WEBSITE_CONVERSIONS
ENGAGEMENT, BILLING y WEB_CONVERSION. MEDIA también es aplicable si se utiliza contenido multimedia en los creativos.
APP_INSTALLS y APP_ENGAGEMENTS
ENGAGEMENT, BILLING, MOBILE_CONVERSION y LIFE_TIME_VALUE_MOBILE_CONVERSION. MEDIA y VIDEO también aplican si se utiliza una app card con medios o video en los creativos.
FOLLOWERS
ENGAGEMENT y BILLING. MEDIA también es aplicable si se utiliza contenido multimedia en las creatividades.
LEAD_GENERATION
Grupos de métricas relevantes: ENGAGEMENT y BILLING. MEDIA también es aplicable si se utiliza contenido multimedia en los creativos.
VIDEO_VIEWS
ENGAGEMENT, BILLING y VIDEO.
VIDEO_VIEWS_PREROLL
ENGAGEMENT, BILLING y VIDEO.
Métricas y segmentación
*Algunas métricas de la familia de métricas
ENGAGEMENT no están disponibles a nivel de ACCOUNT ni de FUNDING_INSTRUMENT. Consulta la sección ENGAGEMENT para más detalles.
Métricas disponibles por grupo de métricas
ENGAGEMENT
BILLING
VIDEO
video_total_views dentro del grupo de métricas VIDEO informará todas las visualizaciones en las que el video haya estado al menos un 50 % visible en pantalla durante 2 segundos, según el estándar MRC.
Nuestra definición original de visualización de video (100 % del video visible en pantalla durante al menos 3 segundos) seguirá estando disponible como una nueva métrica video_3s100pct_views en el grupo de métricas VIDEO. Para seguir pujando y que el cobro se realice según la definición original de visualización, usa la nueva bid_unit VIEW_3S_100PCT.
MEDIA
WEB_CONVERSION
MOBILE_CONVERSION
LIFE_TIME_VALUE_MOBILE_CONVERSION
Segmentación
MEDIA_CREATIVE u ORGANIC_TWEET.
Algunos tipos de segmentación requieren que se incluyan parámetros adicionales. Se documentan a continuación.
Al segmentar por CITIES o POSTAL_CODES, la API solo devolverá ubicaciones objetivo. La segmentación por región y zona metropolitana devolverá tanto ubicaciones objetivo como no objetivo.
Métricas derivadas
metric sin llaves es una métrica que devuelven los endpoints de analytics de la Ads API. Cualquier nombre entre {llaves} indica una métrica derivada para esa categoría.
INTERACCIONES
WEBSITE_CLICKS
APP_INSTALLS y APP_ENGAGEMENTS
SEGUIDORES
GENERACIÓN_DE_LEADS
VIDEO_VIEWS
IMPRESIONES_CALIFICADAS
PERSONALIZADO
placement_type de PROMOTED_ACCOUNT, consulta el objetivo FOLLOWERS anterior. Para todos los demás emplazamientos con este objetivo, consulta ENGAGEMENTS para ver las métricas derivadas correspondientes.
Guías
Entidades activas
Introducción
Datos
Endpoint
Request
entity, start_time y 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"
Se admiten los siguientes valores para entity: CAMPAIGN, FUNDING_INSTRUMENT, LINE_ITEM, MEDIA_CREATIVE, PROMOTED_ACCOUNT y PROMOTED_TWEET. Esto refleja los tipos de entidades que admiten nuestros endpoints de analítica.
Los valores de start_time y end_time deben expresarse en formato ISO 8601 y especificar qué intervalos horarios se van a consultar. Estos deben expresarse en horas completas.
Este endpoint también admite tres parámetros opcionales que se pueden usar para filtrar los resultados: funding_instrument_ids, campaign_ids y line_item_ids. Estos funcionan en todos los niveles de la jerarquía de anuncios y con cualquier tipo de entity especificado.
Respuesta
data incluye un objeto por cada entidad que debe incluirse en una solicitud de analytics posterior. No debes solicitar analytics para id fuera de este conjunto.
Cada objeto incluye cuatro campos: entity_id, activity_start_time, activity_end_time y placements. Los tiempos de inicio y fin de la actividad representan el intervalo de tiempo al que se aplican los eventos de cambio de la entidad asociada y, por lo tanto, determinan las fechas que deben especificarse en solicitudes de analytics posteriores. La array placements puede incluir los siguientes valores: ALL_ON_TWITTER, PUBLISHER_NETWORK, SPOTLIGHT y TREND. Indica qué ubicaciones deben solicitarse para el id de entidad dado.
Uso
- Con qué frecuencia solicitar información de entidades activas y, por lo tanto, con qué frecuencia obtener analíticas.
- Cómo usar las horas de inicio y fin de la actividad para determinar los valores de
start_timeyend_timede la solicitud de analíticas.
Resumen
- Realiza la solicitud a Active Entities.
- Divide la respuesta por
placement. Un grupo paraALL_ON_TWITTER, uno paraPUBLISHER_NETWORK, uno paraSPOTLIGHTy uno paraTREND. - Para cada grupo de
placement, haz lo siguiente.- Extrae los id de las entidades.
- Determina los valores de
start_timeyend_timede analítica.- Encuentra el valor mínimo de
activity_start_time. Redondea este valor hacia abajo. - Encuentra el valor máximo de
activity_end_time. Redondea este valor hacia arriba.
- Encuentra el valor mínimo de
- Realiza las solicitudes de analítica.
- Agrupa los id de las entidades en lotes de 20.
- Utiliza los valores de
start_timeyend_timedel paso 3b. - Especifica el valor de
placementapropiado.
- Escribe en tu almacén de datos.
Frecuencia
start_time de la solicitud actual sea igual al end_time de la solicitud anterior.
Nota: Una ventana de tiempo solo debe solicitarse una vez. Solicitar una ventana de tiempo más de una vez generará solicitudes de analíticas innecesarias. (Excepción a continuación).
Dada la forma en que se almacenan los eventos de cambio, las cuatro solicitudes de Active Entities anteriores consultan el mismo segmento horario, lo cual es necesario para este caso de uso. Sin embargo, después de la hora actual, ya no se debe consultar este segmento horario.
Tiempos de actividad
activity_start_time y el valor máximo de activity_end_time. Modifica estos valores redondeando hacia abajo la hora mínima de inicio de la actividad y redondeando hacia arriba la hora máxima de fin de la actividad. En concreto, establece en cero los componentes de hora, minuto y segundo de ambos timestamps y suma un día a la hora de finalización, como se ilustra en la tabla siguiente. Estos son los tiempos de inicio y fin que se deben especificar en las solicitudes de analíticas posteriores.
Nota: Es importante incluir los timestamps con las horas, minutos y segundos establecidos en cero. De lo contrario, si solo se pasa la fecha, asumiremos que estás solicitando analíticas que empiezan y terminan a medianoche en la zona horaria de la cuenta de anuncios, lo cual puede no ser lo deseable. Por ejemplo, si la hora mínima de inicio de actividad es 2019-02-28T01:30:07Z y se omite el timestamp para una cuenta de anuncios con un desplazamiento de -08:00:00, la solicitud de analíticas no incluirá los cambios que se produjeron entre las 01:30 y las 08:00.
De forma alternativa, si prefieres solicitar analíticas solo para la ventana de tiempo de actividad devuelta sin ampliarla a días completos, puedes hacerlo. Con este enfoque, los tiempos de inicio y fin derivados serían 2019-03-04T20:00:00Z y 2019-03-05T15:00:00Z, respectivamente. (Ten en cuenta que rangos como estos no se aceptan si especificas granularidad
DAY en la solicitud de analíticas.)
Ejemplo
start_time y end_time se establecen en 2019-02-11T00:00:00Z y 2019-02-12T00:00:00Z, respectivamente. Vemos que el tercer elemento de cada uno de los arreglos de métricas que se muestran a continuación es distinto de cero, tal como esperábamos según la información de entidades activas.
Guía asíncrona
Referencia de la API
Analítica asíncrona
Introducción
Uso
- Crea el job utilizando el endpoint POST stats/jobs/accounts/:account_id.
- Realiza solicitudes a intervalos regulares al endpoint GET stats/jobs/accounts/:account_id para determinar si el job ha terminado de procesarse.
- Una vez que el job haya terminado de procesarse, descarga el archivo de datos.
- Descomprime el archivo de datos.
segmentation_type al crear el job.
Ejemplo
id e id_str.
A continuación, debes comprobar si el job que has creado usando el id_str de la respuesta anterior ha terminado de procesarse, tal como se indica con "status": "SUCCESS" en la respuesta. Esto significa que los datos ya están listos para descargarse. El campo url contiene el enlace de descarga.
job_ids para consultar el estado de varios trabajos simultáneamente, especificando hasta 200 IDs de trabajo.
A continuación, descarga el archivo de datos usando el valor url indicado.
Alcance y frecuencia promedio
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
https://ads-api.x.com/stats/accounts/:account_id/reach/funding_instruments
Ejemplo de respuesta
Analítica sincrónica
end_time - start_time).
https://ads-api.x.com/12/stats/accounts/:account_id
Ejemplo de solicitud
Ejemplo de respuesta
Entidades activas
- Los valores de
start_timeyend_timeespecifican qué bloques horarios se deben consultar. - El array
datadevuelto incluirá un objeto por cada entidad que deba incluirse en solicitudes de analítica posteriores. - IMPORTANTE: Las fechas que deben especificarse en las solicitudes de analítica posteriores deben determinarse en función de los valores
activity_start_timeyactivity_end_time.- Estos valores representan los rangos de tiempo a los que se aplican los eventos de cambio almacenados. Esto se devuelve por entidad.
end_time - start_time) de 90 días.
https://ads-api.x.com/12/stats/accounts/:account_id/active_entities
Ejemplo de solicitud
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