Compartir a través de


Fuentes de informes masivas

Las fuentes de informes masivas le permiten sincronizar grandes conjuntos de datos de nuestro sistema con su sistema de informes propietario para que todos los datos se encuentren de forma centralizada. La sincronización de nuestros datos le facilita aprovechar sus propias herramientas de análisis, administrar la facturación y los pagos, y proporcionar informes o paneles personalizados a los anunciantes y publicadores en todos sus datos. Puede automatizar la extracción de estos datos de forma coherente para mantener los datos actualizados.

Las fuentes de informes masivas son diferentes de los informes estándar, ya que permiten extraer de forma eficaz datos más detallados en todos los anunciantes y publicadores, al tiempo que se garantiza que todos los datos están actualizados.

Tipos de fuentes de informes masivas

En esta sección se proporciona información sobre las distintas categorías de fuentes de informes masivas que están disponibles en la plataforma.

Fuente de análisis de red

Esta fuente de informes en masa le ofrece amplios datos sobre el rendimiento de compra y venta de la red.

Para obtener una lista de las columnas disponibles, vaya a Fuente de Network Analytics.

Fuente clicktrackers

Puede usar Click Trackers para realizar un seguimiento de los clics de los usuarios en las creatividades que sirven los servidores de anuncios de terceros (es decir, no servidos por Xandr). Esta fuente de informes proporciona datos sobre esos clics externos.

  • Cada fila devuelta es para un evento de un solo clic.
  • Para obtener una lista de las columnas disponibles, vaya a Fuente clicktrackers.

Recuperación de una fuente de informes masiva

Las fuentes de informes se crearon para que pueda extraer automáticamente los datos actualizados cada hora o cada día y volcar esos datos en el almacenamiento de datos. Hay tres pasos principales para sincronizar los datos de informes de Xandr:

  1. Use el servicio de informes para solicitar una fuente de informes para una hora o día específica. Tenga en cuenta que el servicio de informes impone varias restricciones para limitar el tamaño de los datos y el tiempo posterior al procesamiento:
    • No se pueden agregar filtros ni pedidos.
    • start_date y end_date deben pasarse y deben estar dentro de las 24 horas entre sí.
    • start_date debe estar dentro de los últimos 30 días.
  2. Use el servicio lookup para hacer referencia a datos como nombres de objetos y códigos. Para la mayoría de los tipos de objeto, la fuente de informes masiva solo devuelve identificadores. Puede usar el servicio de búsqueda para asignar identificadores a, por ejemplo, nombres, códigos, descripciones y estados.
  3. Inspección de las notificaciones de nueva disponibilidad de datos

Consulte el ejemplo siguiente para obtener un tutorial detallado de este procedimiento.

Ejemplos

Solicitud de una fuente de informes de análisis de red

Solicite una fuente de informes mediante el servicio de informes. Tenga en cuenta que Reporting Service impone varias restricciones en las fuentes de informes para limitar el tamaño de los datos y el tiempo posterior al procesamiento:

  • No se pueden agregar filtros ni pedidos.
  • start_date y end_date deben pasarse y deben estar dentro de las 24 horas entre sí.
  • start_date debe estar dentro de los últimos 30 días.

En primer lugar, cree la solicitud JSON para la network_analytics fuente de informes.

Nota:

report_type debe establecerse en "network_analytics_feed".

$ cat report_feed

{
 "report":
    {
    "report_type" : "network_analytics_feed",
    "columns":[
       "advertiser_currency",
       "advertiser_id",
       "booked_revenue_adv_curr",
       "buyer_member_id",
       "clicks",
       "creative_id",
       "geo_country",
       "imps",
       "imp_type",
       "insertion_order_id",
       "line_item_id",
       "media_cost",
       "media_type",
       "pixel_id",
       "placement_id",
       "post_click_convs",
       "post_view_convs",
       "ppm",
       "profit",
       "publisher_currency",
       "publisher_id",
       "pub_rule_id",
       "seller_member_id",
       "seller_type",
       "site_id",
       "size",
       "total_convs",
       "total_network_rpm",
       "total_publisher_rpm"
    ],
    "row_per":[
       "line_item_id",
       "advertiser_id",
       "buyer_type",
       "seller_type",
       "bid_type",
       "size",
       "geo_country",
       "content_category_id",
       "placement_id"
    ],
    "start_date": "2011-07-30 00:00:00",
    "end_date": "2011-07-31 00:00:00",
    "format": "csv"
  }
}

$ curl -b cookies -c cookies -X POST -d @report_feed 'https://api.appnexus.com/report'

{
   "response":{
      "status":"OK",
      "report_id": "91281567ba7b36ef66be08cc4e637c8f",
      "dbg_info": {
         ...
      }
   }
}

Una vez generado el informe, consulte el servicio de informes para obtener una dirección URL que use para descargar el informe en un archivo.

$ curl -b cookies -c cookies 'https://api.appnexus.com/report?id=91281567ba7b36ef66be08cc4e637c8f'

{
   "response": {
      "status": "OK",
      "report": {
         ...
         "created_on": "2011-08-01 19:13:35",
         "data": null,
         "url": "report-download?id=91281567ba7b36ef66be08cc4e637c8f"
      },
      "execution_status": "ready"
      }
   }
}

A continuación, realice otra GET llamada con la dirección URL de descarga. Al especificar el archivo en el que se va a guardar, asegúrese de usar la extensión de archivo del formato especificado en el inicial POST. Si no especificó un "format" objeto en su inicial POST, el formato es "csv" de forma predeterminada.

$ curl -b cookies -c cookies 'https://api.appnexus.com/report-download?id=91281567ba7b36ef66be08cc4e637c8f' > /temp/report_download.csv

Coincidencia de identificadores con nombres de objeto y datos de referencia

Para la mayoría de los tipos de objeto, la fuente de informes devuelve solo identificadores. Puede usar lookup service para asignar identificadores a, por ejemplo, nombres, códigos, descripciones y estados.

Asegúrese de que los datos están actualizados

Para sincronizar los datos, debe saber cuándo cargar nuevas horas o días de datos en la base de datos local. Para facilitar esto, proporcionamos un servicio de estado de fuente para notificarle cuando haya nuevas horas de datos de informes disponibles o se hayan cambiado las horas anteriores.

Nota:

El servicio de estado de fuente solo funciona con la fuente de Network Analytics. No funciona con la fuente Clicktrackers.

Se recomienda almacenar un registro local de cuando extrajo por última vez una hora o día de datos de informes. Para ello, cree una tabla de base de datos con el esquema siguiente:

reporting_ymdh last_synchronized
2011-07-01 00:00:00 2011-07-01 01:23:13
2011-07-01 01:00:00 2011-07-01 02:19:54

reporting_ymdh es la hora (o el día) o los datos de informes que se han sincronizado con la base de datos local.

last_synchronized es la marca de tiempo de la última vez que extrajo datos de informes para reporting_ymdh en la base de datos local. Este campo debe establecerse mediante la created_on marca de tiempo devuelta en la respuesta del informe.

A continuación, puede comparar las horas que ya ha extraído con las horas disponibles a través del servicio de estado de fuente. (Una vez más, tenga en cuenta que esto solo funciona con la fuente de Network Analytics). También puede comparar la hora a la que extrajo por última vez una hora o un día de datos con la last_run marca de tiempo de esa hora. Si last_run es mayor que la última vez que sincronizó esa hora, hemos actualizado esa hora de datos y debe volver a cargarlos en la base de datos.

Ejemplo

Supongamos que desea sincronizar el día anterior de los datos en un plazo de 15 minutos después de que los datos de informes estén disponibles o cambien. Si va a sincronizar datos para 2011-07-01 en la zona horaria EST, debe esperar hasta que las horas 2011-07-01 05:00 a 2011-07-02 04:00 estén disponibles.

En este caso, debe configurar un proceso para sondear el servicio de estado de fuente cada 15 minutos para comprobar si todas las horas del día anterior están disponibles en los informes. Realizaría la siguiente llamada:

> curl -b cookies -c cookies -X GET 'https://api.appnexus.com/feed-status?type=network_analytics_feed'
{
  "response": {
    "status": "OK",
    "num_elements": 44,
    "start_element": 0,
    "hours": [
      ...
      {
        "hour": "2011-07-01 05:00:00",
        "last_run": "2011-07-01 06:16:28"
      },
      {
        "hour": "2011-07-01 06:00:00",
        "last_run": "2011-07-01 07:14:36"
      },
      ...
    ]
    ...
}

La hours matriz contiene una lista de horas que están disponibles actualmente en los informes de los últimos 5 días, junto con la hora en que terminamos de agregar esa hora de datos. En ocasiones, es necesario corregir las horas de datos que ya están disponibles en los informes. Si esto ocurre, la last_run marca de tiempo se actualizará para la hora de datos modificada.

En cada respuesta, el proceso debe analizar la respuesta JSON y comprobar si las horas 2011-07-01 05:00 a 2011-07-02 04:00 están disponibles. Cuando se devuelven todas las horas, el proceso solicitaría una fuente de informes para el día anterior, 2011-07-01 en este caso. La respuesta de Reporting Service contiene una created_on marca de tiempo de cuando ejecutó el informe:

{
  "response": {
    "status": "OK",
    "report": {
      ...
      "created_on": "2011-07-02 01:13:35",
      ...
    },
    ...
  }
}

Registraría la marca de tiempo en la created_on base de datos como la hora last_synchronized para 2011-07-01:

reporting_ymd last_synchronized
2011-07-01 00:00:00 2011-07-02 01:13:35