Estrategias para el procesamiento por lotes

Cuando se agrupan informes agregables, es importante optimizar las estrategias de agrupación para no exceder los límites de privacidad. A continuación, se incluyen algunas estrategias recomendadas para enviar lotes de informes al servicio de agregación.

Recopila informes

Cuando recopiles informes para incluirlos en un lote, ten en cuenta lo siguiente:

Reintentos de carga de informes

Nota: Los criterios de reintento están sujetos a cambios. En ese caso, se actualizará la información de esta sección.

En las plataformas web y de SO, la plataforma intentará enviar el informe tres veces, pero, si no se envía después del tercer intento, no se enviará. El valor original de scheduled_report_time se conserva sin importar cuándo se pueda enviar el informe. El cronograma de reintentos varía según la plataforma:

  • Un navegador web enviará informes cuando esté en línea. Si el informe no se envía, se esperarán cinco minutos para el segundo reintento y, luego, 15 minutos para el tercero. Si el navegador se desconecta, el siguiente reintento se realizará un minuto después de que vuelva a estar en línea. No hay una demora máxima para enviar informes en la Web. Esto significa que, si el navegador se desconecta, sin importar hace cuánto se generó el informe, una vez que el navegador vuelva a estar en línea, intentará enviar el informe de acuerdo con la política de reintentos.
  • Un teléfono Android tiene una conexión de red estable. Por lo tanto, ejecutará el trabajo para enviar informes una vez por hora. Esto significa que, si no se puede enviar un informe, se volverá a intentar enviarlo la hora siguiente y, luego, la hora posterior. Si el dispositivo no tiene conexión, volverá a intentar enviar el informe con el próximo trabajo de informes que se ejecute después de que el dispositivo se vuelva a conectar a la red. El retraso máximo es de 28 días, lo que significa que el dispositivo no enviará un informe que se haya generado hace más de 28 días.

Espera los informes

Se recomienda esperar los informes que llegan tarde cuando se recopilan informes para el procesamiento por lotes. Para determinar si los informes son tardíos, se puede verificar el valor de scheduled_report_time en comparación con el momento en que se recibió el informe. La diferencia de tiempo entre esos informes te ayudará a determinar cuánto tiempo deberías esperar a que lleguen los informes tardíos. Por ejemplo, a medida que se recopilan los informes retrasados, verifica el campo scheduled_report_time y anota la demora en horas a medida que se reciben el 90%, el 95% y el 99% de los informes. Esos datos se pueden usar para determinar cuánto tiempo esperar los informes que llegan tarde. Los informes agregados instantáneos se pueden usar para reducir las probabilidades de que se retrasen los informes.

En la siguiente imagen, se muestran los informes que llegan tarde y se almacenan en los lotes correspondientes según la hora programada del informe. El lote T representa scheduled_report_time, y T+X representa el tiempo de espera de los informes retrasados. Esto genera un informe de resumen que incluye la mayoría de los informes que se incluyen en el lote y que corresponden a la hora programada del informe.

Los informes se almacenan en los lotes correspondientes según la hora programada del informe.
Los informes se almacenan en los lotes correspondientes según la hora programada del informe.

Contabilidad de informes agregables

El Servicio de agregación mantiene una regla de"sin duplicados". Esta regla exige que todos los informes agregables con el mismo ID compartido se incluyan en el mismo lote.

Después de recopilar los informes, se deben agrupar de manera que todos los informes con el mismo ID compartido formen parte de un lote.

Si un informe ya se procesó en otro lote, el procesamiento puede generar un error de agotamiento del presupuesto de privacidad. El procesamiento por lotes correcto de los informes ayuda a evitar que se rechacen lotes debido a la regla de "sin duplicados".

Un ID compartido es una clave que se genera para cada informe con el objetivo de hacer un seguimiento de la contabilidad de los informes agregables. El ID compartido garantiza que los informes con el mismo ID compartido contribuyan a un solo informe de resumen. Esto significa que todos los informes que se asignan a un mismo ID compartido deben incluirse en un solo lote. Por ejemplo, si el informe X y el informe Y tienen el mismo ID compartido, deben incluirse en el mismo lote para evitar que se descarten informes por duplicación.

En la siguiente imagen, se muestran los componentes de shared_info que se combinan con hash para generar un ID compartido.

Muestra los componentes de shared_info que se combinan con hash para generar un ID compartido.
Muestra los componentes de shared_info que se combinan con hash para generar un ID compartido.

En la siguiente imagen, se muestra cómo dos informes diferentes pueden tener el mismo ID compartido:

Se muestra cómo dos informes diferentes pueden tener el mismo ID compartido.
Se muestra cómo dos informes diferentes pueden tener el mismo ID compartido.

Nota: scheduled_report_time se trunca por hora y source_registration_time se trunca por día. Además, report_id no se usa en la creación de IDs compartidos. Es posible que la granularidad temporal se actualice en el futuro.

Informes duplicados dentro de lotes

El campo shared_info de un informe agregado contiene un UUID en el campo report_id, que se usa para identificar informes duplicados dentro de un lote. Si hay más de un informe con el mismo report_id en un lote, solo se agregará el primer informe, y los demás se considerarán duplicados y se descartarán de forma silenciosa. La agregación continuará con normalidad y no se enviarán errores. Si bien no es obligatorio, las plataformas de tecnología publicitaria pueden esperar ver algunas mejoras en el rendimiento si filtran los informes duplicados con los mismos IDs de informes antes de la agregación.

El report_id es único para cada informe.

Informes duplicados en lotes

A cada informe se le asigna un ID compartido, que es un ID generado a partir de los datos combinados que provienen del campo shared_info del informe. Varios informes pueden tener el mismo ID compartido, y cada lote puede contener varios IDs compartidos. Todos los informes con el mismo ID compartido deben incluirse en el mismo lote. Si los informes con el mismo ID compartido terminan en varios lotes, solo se aceptará el primer lote y los demás se rechazarán como duplicados. Para evitar esto, los lotes se deben crear de forma adecuada.

En la siguiente imagen, se muestra un ejemplo en el que los informes con el mismo ID compartido en todos los lotes pueden provocar que falle el lote posterior. En la imagen, puedes ver que dos o más informes con el mismo ID compartido e679aa se agrupan en diferentes lotes, el lote 1 y el lote 2. Dado que el presupuesto para todos los informes con el ID compartido e679aa se consume durante la generación del informe de resumen del lote 1, no se permite el lote 2 y se produce un error.

Se muestra un ejemplo en el que los informes con el mismo ID compartido en todos los lotes pueden provocar que el lote posterior falle.
Se muestra un ejemplo en el que los informes con el mismo ID compartido en todos los lotes pueden hacer que falle el lote posterior.

Informes por lotes

A continuación, se indican las formas recomendadas de agrupar los informes para evitar duplicados y optimizar la contabilización de los informes agregados.

Lotes por anunciante

Nota: Esta estrategia solo se recomienda para la agregación de informes de atribución.

Private Aggregation no tiene un campo attribution_destination, que es el anunciante. Se recomienda que agrupes los informes por anunciante, es decir, que incluyas los informes que pertenecen a un solo anunciante en el mismo lote, para evitar alcanzar el límite de cuentas de informes agregables para cada lote. El anunciante es un campo que se considera en la generación de IDs compartidos, por lo que los informes con el mismo anunciante también podrían tener el mismo ID compartido, lo que requeriría que estén en el mismo lote para evitar errores.

Agrupa por hora

Se recomienda tener en cuenta la hora programada del informe (shared_info.scheduled_report_time) cuando se agrupan los informes. La hora del informe programado se trunca a la hora en la generación del ID compartido, por lo que, como mínimo, los informes deben agruparse en lotes en intervalos de horas. Esto significa que todos los informes con la hora del informe programado dentro de la misma hora deben incluirse en el mismo lote para evitar tener informes con el mismo ID compartido en varios lotes, lo que generará errores en el trabajo.

Frecuencia y ruido de los lotes

Se recomienda tener en cuenta el impacto del ruido en la frecuencia con la que se procesan los informes agregables. Si los informes agregables se procesan por lotes con mayor frecuencia (por ejemplo, una vez por hora), se incluirán menos eventos de conversión y el ruido tendrá un mayor impacto relativo. Si se reduce la frecuencia y los informes se procesan una vez a la semana, el ruido tendrá un impacto relativo menor. Para comprender mejor el impacto del ruido en los lotes, experimenta con Noise Lab.