Licitadores: solución de problemas de cargas de BSS
Puede usar los métodos de este tema para diagnosticar cualquier problema con la carga de datos del segmento.
Diferentes fases del servicio de segmento de Batch
En esta sección se describen las fases de carga, para que pueda comprender dónde pueden producirse problemas.
Inicio: dirección URL de carga de solicitudes e identificador de trabajo
En esta fase, los clientes solicitan una dirección URL de carga y un identificador de trabajo. Esta fase agota el tiempo de espera en 5 minutos. Si los trabajos se bloquean en esta fase, indica que los clientes solicitaron la dirección URL, pero no pudieron cargar nada dentro del tiempo asignado.
Cargar
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 identificadores de segmento e identificadores de usuario. Si un registro contiene identificadores de usuario o segmento 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.
Terminación
En esta fase, los datos del archivo se cargan correctamente en la plataforma y están disponibles para la segmentación.
Posibles errores de carga
Intento de 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 segmentos 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 producirse cuando:
Ha alcanzado uno de sus cuatro límites de carga:
- bytes diarios,
- bytes por hora,
- líneas diarias, o
- líneas por hora
Intento de superar el límite de carga de bytes diario
{"response":{"status":"ERROR","error_code":"RATE_LIMIT_EXCEEDED","errors":["Member exceeds maximum allowed bytes per day"]}}
Intento de 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"]}}
Intento de superar el límite de carga de líneas diarias
{"response":{"status":"ERROR","error_code":"RATE_LIMIT_EXCEEDED","errors":["Member exceeds maximum allowed number of lines per day"]}}
Intento de 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"]}}
Ha cancelado la carga.
La fase de carga supera los 90 minutos.
Superación del tiempo máximo para cargar
{"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 un valor de "1"
, con los 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 en el archivo cargado. -
"failed with an illegal number of fields"
indica que el número de campos de unsegment_fields
bloque no coincidía con lo que se definió en la configuración de segmentos por lotes (para obtener más información, vea Configuración inicial de la cuenta de BSS).
En este caso, la configuración espera que se definan tres campos en el bloque: SEG_ID
, VALUE
, , EXPIRATION
, pero el analizador solo encontró dos campos: SEG_ID
y VALUE
, lo que muestra un error.
ejemplo de num_invalid_format y error_log_lines
"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 member_id
el 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 batch_segment_upload_job
objeto, consulte Campos JSON.
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. Para ver objetos adicionales, anexe uno de estos objetos a la llamada API:
&start_element=101
&sort=last_modified.desc
Puede obtener más información sobre la paginación en nuestro Portal de documentación aquí.
Si sigue experimentando problemas técnicos, puede enviar una solicitud en nuestro Portal de soporte al cliente. No olvide incluir el identificador de trabajo en la solicitud de soporte técnico.
Campos JSON
Http (método) | 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 |
---|---|---|
batch_segment_upload_job |
objeto | Se trata de un objeto cuyos campos contienen metadatos que describen el trabajo de carga y procesamiento. Si usa la API impbus, se trata de una matriz que contiene un solo objeto. Consulte Trabajo de carga de segmentos por lotes para obtener más información. |
id |
Entero | Este es el identificador del batch_segment_upload_job objeto asociado a esta solicitud. Valor predeterminado: número generado automáticamente. |
status |
string | Estado de la llamada API; Las llamadas correctas devuelven "OK" . |
Trabajo de carga de segmentos por lotes
Cuando se solicita el estado del trabajo de procesamiento, el sistema devuelve un batch_segment_upload_job
objeto (si es un proveedor de datos, se trata de 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 |
---|---|---|
completed_time |
date | Hora a la que se completó el procesamiento de archivos. |
created_on |
date | Fecha de creación de este objeto. |
error_code |
Entero | Si "phase": "error" es , este código de error describe el tipo de error encontrado. Tenga en cuenta que un código de error solo se mostrará aquí si se produjo un error con la carga, validación o procesamiento del propio archivo (es decir, no incluye el formato no válido o errores de segmento no válidos). Los errores comunes se deben a archivos ilegibles y superan los límites de objetos definidos. Devuelve null si no se encontró ningún error. |
error_log_lines |
string | Cadena que contiene líneas separadas por líneas nuevas. 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 líneas |
id |
Entero | 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. |
last_modified |
date | La fecha de modificación más reciente de este objeto (normalmente a través de POST ). |
member_id |
Entero | Su id. de miembro. Obligatorio en: PUT , POST |
num_inactive_segment |
Entero | Número de segmentos inactivos en el archivo. Desduplicado. |
num_invalid_format |
Entero | Número de líneas cargadas que contienen errores de formato. Esto depende de la configuración de formato de archivo determinada. Las líneas duplicadas también se considerarán un formato no válido. |
num_invalid_segment |
Entero | Número de segmentos no válidos en el archivo. Desduplicado. |
num_invalid_timestamp |
Entero | Número de marcas de tiempo no válidas en el archivo. |
num_invalid_user |
Entero | Recuento de líneas de entrada únicas que tienen un usuario no válido o inexistente. |
num_other_error |
Entero | Se trata de un valor de marcador de posición que no está actualmente en uso. |
num_past_expiration |
Entero | Número de segmentos expirados en el archivo. Desduplicado. |
num_unauth_segment |
Entero | Número de segmentos en el archivo al que no está autorizado el acceso. Desduplicado. |
num_valid |
Entero | Número de líneas válidas en el archivo cargado. Cada combinación de usuario/segmento se considera 1 línea. |
num_valid_user |
Entero | Recuento de líneas de entrada únicas que tienen un identificador de usuario válido. |
percent_complete |
Entero | Porcentaje del procesamiento que se ha completado, dado el actual phase en el momento de la solicitud. |
phase |
enumeración | Estado de procesamiento actual. Devuelve uno de los valores siguientes: - error - starting - uploading - validating - processing - completed |
segment_log_lines |
string | Cadena que contiene líneas separadas por líneas nuevas que constan del identificador de segmento y el número de usuarios agregados o quitados correctamente. Este campo tiene como valor predeterminado 200 líneas. El formato es added: SEG_ID:COUNT SEG_ID:COUNT ... removed: SEG_ID:COUNT ... donde SEG_ID es el identificador de segmento y COUNT es el número de usuarios agregados o quitados correctamente.
SEG_ID:COUNT los pares se ordenan por COUNT (descendente). Ejemplo: added: 15889133:386221 15547290:186227 removed: 15889278:369734 15889206:255307 15889179:232831 |
start_time |
date | Hora a la que comenzó la carga de archivos. |
time_to_process |
decimal | El tiempo que tardó en procesar el archivo de segmento, en minutos. |
upload_url |
string | Dirección URL donde cargará el archivo de datos del segmento. |
uploaded_time |
date | Hora a la que se cargó el archivo asociado a este identificador de trabajo. |
validated_time |
date | Hora a la que se completó la validación de archivos. |