API de plataforma digital: solución de problemas de cargas de BSS

Puede utilizar los métodos de este tema para diagnosticar cualquier problema con la carga de datos de segmento.

Diferentes fases del servicio de segmentos por lotes

En esta sección se describen las fases de la carga, para que pueda comprender dónde pueden estar ocurriendo problemas.

Inicio: URL de carga de solicitud e id. de trabajo

En esta fase, los clientes solicitan una URL de carga y un id. de trabajo. Esta fase se agota en 5 minutos. Si los trabajos están atascados en esta fase, indica que los clientes solicitaron la dirección URL, pero no pudieron cargar nada en el tiempo asignado.

Cargando

En esta fase, los clientes cargan el archivo en la dirección URL especificada. Se recomienda no superar una carga por minuto. Si los clientes tienen más de 200 trabajos esperando ser procesados en un momento dado, se les prohibirá cargar trabajos adicionales.

Validación y procesamiento

Una vez que los clientes cargan el archivo, el procesamiento del archivo se produce en la siguiente fase donde se lleva a cabo la validación de los ID de segmento y los ID de usuario. Si un registro contiene ID de segmento o usuario no válidos, la plataforma no procesa el registro. Cuando los clientes comprueben el estado del trabajo, podrán ver estadísticas sobre el número de usuarios no válidos.

Finalización

En esta fase, los datos del archivo se cargan correctamente en la plataforma y están disponibles para su segmentación.

Posibles errores de carga

Intentando cargar un archivo de más de 0,5 GB

{"response":{"status":"ERROR","error_code":"FILESIZE_LIMIT_EXCEEDED","errors":["Member exceeds maximum byte size allowed for a file"]}}

Código de error en el trabajo de carga de segmento por lotes

""batch_segment_upload_job": {
      "phase": "error",
      "start_time": "2015-08-13 18:40:32",
      "uploaded_time": null,
      "validated_time": null,
      "completed_time": null,
      "error_code": "uploading-error",
      "time_to_process": "0.00",
      "percent_complete": 0,
      "num_valid": 0,
      "num_invalid_format": 0,
      "num_valid_user": 0,
      "num_invalid_user": 0,
      "num_invalid_segment": 0,
      "num_invalid_timestamp": 0,
      "num_unauth_segment": 0,
      "num_past_expiration": 0,
      "num_inactive_segment": 0,
      "num_other_error": 0,
      "error_log_lines": null,
      "segment_log_lines": null,
      "id": 11661553,
      "job_id": "Pm3oCUf5CSVKIOt4mAqOzdt6K3qInj1431542432",
      "member_id": 958,
      "created_on": "2015-05-13 18:40:32",
      "last_modified": "2015-05-13 18:40:33"
    }

Los siguientes errores pueden ocurrir cuando:

  1. Has alcanzado uno de sus cuatro límites de carga:

    • Daily Bytes,
    • Bytes por hora,
    • líneas diarias, o
    • Líneas horarias

    Intentar superar el límite de carga diaria de bytes

    {"response":{"status":"ERROR","error_code":"RATE_LIMIT_EXCEEDED","errors":["Member
                      exceeds maximum allowed bytes per day"]}}
    

    Intentando superar el límite de carga de bytes por hora

    {"response":{"status":"ERROR","error_code":"RATE_LIMIT_EXCEEDED","errors":["Member
                      exceeds maximum allowed bytes per hour"]}}
    

    Intentando superar el límite de carga diaria de líneas

    {"response":{"status":"ERROR","error_code":"RATE_LIMIT_EXCEEDED","errors":["Member
                      exceeds maximum allowed number of lines per day"]}} 
    

    Intentando superar el límite de carga de líneas por hora

    {"response":{"status":"ERROR","error_code":"RATE_LIMIT_EXCEEDED","errors":["Member
                      exceeds maximum allowed number of lines per hour"]}}
    
  2. Has cancelado la carga.

  3. La fase de carga supera los 90 minutos. Superación del tiempo máximo de carga

    {"response":{"status":"ERROR","error_code":"RATE_LIMIT_EXCEEDED","errors":["Maximum
                      upload time exceeded"]}}
    

Posibles errores de procesamiento

Formato no válido

Si el valor del num_invalid_format campo es mayor que "0", compruebe los valores del error_log_lines campo.

En el ejemplo siguiente, el num_invalid_format campo muestra el valor , "1"con detalles proporcionados en el error_log_lines campo.

En el error_log_lines campo:

  • num_invalid_format Indica que se produjo un problema al analizar una línea del archivo cargado.
  • "failed with an illegal number of fields" indica que el número de campos de un segment_fields bloque no coincide con lo que se definió en la configuración de segmento por lotes (para obtener más información, consulte Configuración inicial de la cuenta BSS).

En este caso, la configuración espera que se definan tres campos en el bloque: , VALUE, EXPIRATION, pero el analizador solo encontró dos camposSEG_ID, SEG_IDy VALUE, mostrando así un error.

num_invalid_format y error_log_lines ejemplo

"batch_segment_upload_job": {
phase": "completed",
"error_code": null,
"time_to_process": "0.01",
"percent_complete": 100,
"num_valid": 0,
"num_invalid_format": 1,
"num_valid_user": 0,
"num_invalid_user": 0,
"num_invalid_segment": 0,
"num_invalid_timestamp": 0,
"num_unauth_segment": 0,
"num_past_expiration": 0,
"num_inactive_segment": 0,
"num_other_error": 0,
"error_log_lines": "num_invalid_format-WINDOWSADID-USER-ID;SEG_ID:VALUE~9 failed with an illegal number of fields",
"segment_log_lines": null,
"start_time": "2015-08-13 18:40:32",
"uploaded_time": "2015-08-13 18:42:32",
"validated_time": "2015-08-13 18:42:32",
"completed_time": "2015-08-13 18:42:33",
"id": 123412341234,
"job_id": "Pm3oCUf5CSVKIOt4mAqOzdt6K3qInj1431542432",
"member_id": 958,
"created_on": "2015-08-13 18:40:32",
"last_modified": "2015-08-13 18:42:33"
}

Ver el historial de carga de archivos

Para ver los metadatos sobre todas las cargas de archivos de segmento en los últimos 30 días, realice una GET llamada al servicio con lo member_id especificado en la cadena de consulta. La respuesta JSON incluirá una matriz de batch_segment_upload_job objetos.

Para obtener más información sobre los campos específicos del objeto, vea Campos batch_segment_upload_jobJSON.

Nota:

El historial de carga de archivos solo está disponible durante los últimos 30 días.

$ curl -b cookies 'https://api.appnexus.com/batch-segment?member_id=456'

{
   "response" : {
      "batch_segment_upload_job" : [
         {
           "phase": "completed",
            "start_time": "2012-05-22 16:48:55",
            "uploaded_time": "2012-05-22 16:48:56",
            "validated_time": "2012-05-22 16:49:01",
            "completed_time": "2012-05-22 16:49:01",
            "error_code": null,
            "time_to_process": "0.04",
            "percent_complete": 100,
            "num_valid": 0,
            "num_invalid_format": 0,
            "num_invalid_user": 2,
            "num_invalid_segment": 0,
            "num_unauth_segment": 1,
            "num_past_expiration": 0,
            "num_inactive_segment": 0,
            "num_other_error": 0,
            "error_log_lines": " \n\nnum_unauth_segment-4013681496264948522;5013:0,5014:1550\nnum_invalid_user-7652266028043224430;5848:0,5849:1440,5850:1440\nnum_invalid_user-8802117132500293405;5851:0,5847:-1",
            "id": 98,
            "job_id": "T1v98eIOlCZndeLGSXD0nrs57L8ES11337705335",
            "member_id": 456,
            "created_on": "2012-05-22 16:48:55",
            "last_modified": "2012-05-22 16:49:01"
         },
     ...
    }
  }
}

Nota:

Nuestra API limita las respuestas a 100 objetos a través de la paginación. Puede ver objetos adicionales anexando uno de estos a la llamada API:

  • &start_element=101
  • &sort=last_modified.desc

Puede leer más sobre paginación en nuestro Portal de documentación aquí.

Si sigues teniendo problemas técnicos, puedes enviar una solicitud en nuestro Portal de soporte técnico al cliente de Microsoft Advertising. No olvide incluir el identificador del trabajo en la solicitud de soporte técnico.

Campos JSON

Método HTTP Endpoint Description
GET https://api.appnexus.com/batch-segment/meta Use esta llamada para averiguar por qué campos puede filtrar y ordenar.
Fields Tipo Descripción
id Entero Es el identificador del batch_segment_upload_job objeto asociado a esta solicitud.

Valor predeterminado: un número generado automáticamente.
status string El estado de la llamada API; Llamadas correctas Return "OK".
batch_segment_upload_job objeto Se trata de un objeto cuyos campos contienen metadatos que describen el trabajo de carga y procesamiento. Si está utilizando la API de Impbus, esta será una matriz que contiene un solo objeto. Consulte Trabajo de carga de segmentos por lotes para obtener más información.

Trabajo de carga de segmento por lotes

Cuando solicita el estado del trabajo de procesamiento, el sistema devuelve un batch_segment_upload_job objeto (si es un proveedor de datos, será una matriz que contiene un solo objeto). En función de la solicitud que realice al servicio, contendrá algunos o todos los metadatos siguientes.

Nota:

La mayoría de los metadatos solo estarán presentes cuando "phase": "completed".

Fields Tipo Descripción
upload_url string La dirección URL donde cargará el archivo de datos de segmentos.
phase enumeración El estado de procesamiento actual.

Devuelve uno de los siguientes valores:
- error
- starting
- uploading
- validating
- processing
- completed
start_time date Hora en la que se inició la carga de archivos.
uploaded_time date La hora en que se cargó el archivo asociado con este id. de trabajo.
validated_time date La hora en que se completó la validación del archivo.
completed_time date La hora en que se completó el procesamiento del archivo.
error_code Entero Si "phase": "error", este código de error describe el tipo de error encontrado. Ten en cuenta que un código de error solo se mostrará aquí si se ha producido un error con la carga, validación o procesamiento del propio archivo (es decir, no incluye errores de formato no válido o de segmento no válido). Los errores comunes se producen por archivos ilegibles y por la superación de los límites de objetos definidos.

Devuelva null si no se encontraron errores.
time_to_process decimal El tiempo que se tardó en procesar el archivo de segmento, en minutos.
percent_complete Entero El porcentaje del procesamiento que se ha completado, dada la fase actual en el momento de la solicitud.
num_valid Entero El número de líneas válidas en el archivo cargado. Cada combinación de usuario/segmento se considera de 1 línea.
num_invalid_format Entero El número de líneas cargadas que contienen errores de formato. Esto depende de la configuración particular del formato de archivo. Las líneas duplicadas también se considerarán un formato no válido.
num_valid_user Entero Recuento de líneas de entrada únicas que tienen un identificador de usuario válido.
num_invalid_user Entero Recuento de líneas de entrada únicas que tienen un usuario no válido o inexistente.
num_invalid_segment Entero El número de segmentos no válidos en el archivo. Desduplicado.
num_invalid_timestamp Entero El número de marcas de tiempo no válidas en el archivo.
num_unauth_segment Entero El número de segmentos del archivo a los que no está autorizado acceder. Desduplicado.
num_past_expiration Entero El número de segmentos expirados en el archivo. Desduplicado.
num_inactive_segment Entero El número de segmentos inactivos en el archivo. Desduplicado.
num_other_error Entero Se trata de un valor de marcador de posición que no está en uso actualmente.
error_log_lines string Cadena que contiene líneas separadas por nueva línea. Cada línea muestra un error de validación o el motivo de un error al cargar el archivo.

Puede elegir cuántas líneas aparecen en este campo.

Valor predeterminado: 200 lines
segment_log_lines string Cadena que contiene líneas separadas por nueva línea y que consta del Id. de segmento y el número de usuarios agregados o quitados correctamente. Este campo tiene como valor predeterminado .200 lines
Se agrega el formato: SEG_ID:COUNT SEG_ID:COUNT ... removed: SEG_ID:COUNT ... donde SEG_ID es el ID de segmento y COUNT es el número de usuarios agregados o eliminados correctamente. SEG_ID:COUNT Los pares se ordenan por COUNT (descendente).

Ejemplo:
added:15889133:38622115547290:186227removed:15889278:36973415889206:25530715889179:232831
id Entero El identificador único de este objeto.
job_id string Cadena de caracteres alfanuméricos que identifica de forma única el trabajo de procesamiento asociado a este archivo.
member_id Entero Su ID de miembro.

Requerido el: PUT, POST
created_on date Fecha de creación de este objeto.
last_modified date La fecha de modificación más reciente de este objeto (normalmente a través POSTde ).