La optimización de la cuota es imperativa para cualquier aplicación que use la API de Display & Video 360. La optimización del uso de cuotas mejora el rendimiento, ya que optimiza las solicitudes a la API y te ayuda a evitar errores que se muestran cuando se superan los límites de frecuencia establecidos.
En esta página, se detallan las prácticas recomendadas generales y se destacan las funciones complementarias de la API de Display & Video 360 que pueden ayudarte a reducir el uso de la cuota.
Realizar solicitudes simultáneas a varios anunciantes
La mayoría de los métodos de la API de Display & Video 360 especifican un anunciante en la URL. Además de la cuota para todo el proyecto, se aplican límites de frecuencia"por anunciante por proyecto" más restrictivos a estos métodos cuando se realizan llamadas que especifican el mismo anunciante.
Para realizar optimizaciones en función de esta cuota, limita las solicitudes simultáneas a aquellas que especifican diferentes anunciantes.
Utiliza los parámetros filter
y orderBy
.
Usa los métodos list
en lugar de get
cuando recuperes varios recursos.
Sin embargo, las llamadas a list
pueden consumir una gran cantidad de cuota debido a los límites de tamaño de la página. Si solo necesitas recuperar un subconjunto de la respuesta de la lista completa, puedes optimizar el uso de la cuota. Para ello, aprovecha los parámetros opcionales filter
y orderBy
.
El parámetro filter
te permite restringir los recursos recuperados por la llamada list
a aquellos cuyas propiedades cumplen con determinadas expresiones. Este parámetro es útil cuando se intenta recuperar lo siguiente:
- Un recurso específico con un ID desconocido, pero con propiedades conocidas Si buscas un recurso específico, puedes filtrar la lista que se muestra por propiedades conocidas del recurso deseado. Los ejemplos incluyen filtrar líneas de pedido por un
displayName
conocido, creatividades por lacreativeType
esperada y fuentes de inventario según lasexchange
relevantes. - Recursos asociados. Los recursos de Display & Video 360 suelen estar asociados entre sí. Puedes usar filtros para restringir los recursos que se muestran a aquellos que tienen una relación específica con otro. Por ejemplo, recuperar todos los pedidos de inserción en un
campaignId
específico y todas las creatividades asignadas a una línea de pedido. - Solo los recursos que tienen propiedades prácticas. Las funciones de la API te permiten verificar con facilidad el estado de los recursos y reaccionar de manera programática. Con los filtros, puedes usar llamadas a
list
para obtener solo los recursos en los que se necesita una acción. Los ejemplos incluyen recuperar todas las líneas de pedido que muestran un determinadolineItemWarningMessage
accionable, todos los pedidos de inserción que se actualizaron desde una fecha y hora determinada o todas las creatividades que tienen un errorapprovalStatus
.
El parámetro orderBy
te permite ordenar los recursos recuperados por propiedades específicas, ascendente o descendente. orderBy
, en especial cuando se usa junto con filter
, se puede usar para limitar la cantidad de páginas que se deben recorrer antes de encontrar un recurso específico. También te permite obtener con facilidad los límites inferior y superior de una lista de recursos. Por ejemplo, ordenar por updateTime
te permitiría encontrar con rapidez las líneas de pedido o los pedidos de inserción más recientes de un anunciante.
Usa funciones masivas y de todos los recursos
La API de Display & Video 360 ofrece una serie de funciones masivas y de todos los recursos que ejecutan muchas acciones con una sola solicitud. Entre los ejemplos de este tipo de funciones, se incluyen los siguientes:
- Edición masiva de sitios que pertenecen a un solo canal. Los canales pueden tener miles de sitios asignados. En lugar de administrar la lista de sitios de un canal con solicitudes individuales
create
odelete
, puedes usar una sola solicitudbulkEdit
oreplace
para agregar y quitar varios sitios o reemplazar todo el contenido de un canal, respectivamente. - Administrar el paquete de segmentación completo de un anunciante El paquete de segmentación de un recurso se asigna en varios tipos de segmentación. Las funciones de segmentación a nivel de recurso, como
listAssignedTargetingOptions
yeditAssignedTargetingOptions
en el servicioadvertisers
, te permiten recuperar, crear y quitar la segmentación en varios tipos de segmentación en una sola solicitud. Esto reduce el costo de la cuota de configuración del paquete de segmentación de un anunciante en una sola solicitud. - Configurar la misma restricción de segmentación en varias líneas de pedido Si necesitas realizar los mismos cambios de segmentación en varias líneas de pedido a la vez, puedes hacerlo con una sola solicitud
advertisers.lineItems.bulkEditAssignedTargetingOptions
. - Activar o detener varias líneas de pedido. Las líneas de pedido deben activarse después de crearse antes de que comiencen a publicarse. Si creas varias líneas de pedido seguidas con rapidez, puedes activarlas todas con una sola solicitud
advertisers.lineItems.bulkUpdate
. Se puede usar el mismo método para pausar varias líneas de pedido y evitar que se publiquen.
Almacena en caché y verifica los IDs que se usan con frecuencia
Muchas operaciones de la API de Display & Video 360 requieren el uso de IDs de recursos que se recuperan a través de la API, incluidos los IDs de opciones de segmentación y los IDs de público de Google, entre otros. Para evitar recuperar los ID de la API en cada uso, te recomendamos que los almacenes de forma local.
Sin embargo, algunos recursos pueden quedar obsoletos, borrarse o dejar de estar disponibles para su uso. Si intentas usar los ID de estos recursos, es posible que se muestre un error. Por lo tanto, te recomendamos que verifiques todos los IDs almacenados en caché semanalmente
con el método adecuado get
o list
filtrado para confirmar que aún se pueda
recuperar y que tenga el estado esperado.
Implementa una retirada exponencial para operaciones de larga duración
Mientras realizas el sondeo para ver si finaliza una operación de larga duración, como una tarea de descarga de SDF, usa una estrategia de retirada exponencial para reducir la frecuencia y la cantidad total de solicitudes enviadas.
La retirada exponencial es una estrategia estándar de manejo de errores para aplicaciones de red en la que el cliente vuelve a intentar las solicitudes de forma periódica durante un período cada vez mayor. Si se la utiliza de forma correcta, la retirada exponencial aumenta la eficiencia del uso del ancho de banda, reduce la cantidad de solicitudes necesarias para obtener una respuesta correcta y maximiza la capacidad de procesamiento de solicitudes en entornos simultáneos.
Puedes encontrar la estrategia de retirada exponencial implementada con las bibliotecas cliente en nuestros ejemplos de códigos de descarga de SDF. El flujo paso a paso para implementar una retirada exponencial simple es el siguiente:
- Realiza una solicitud
sdfdownloadtasks.operations.get
a la API. - Recupera el objeto de operación.
- Si el campo
done
no es verdadero, significa que debes reintentar la solicitud. - Esperar 5 segundos + una cantidad aleatoria de milisegundos y reintentar la solicitud.
- Si el campo
- Recupera el objeto de operación.
- Si el campo
done
no es verdadero, significa que debes reintentar la solicitud. - Esperar 10 segundos + una cantidad aleatoria de milisegundos y reintentar la solicitud.
- Si el campo
- Recupera el objeto de operación.
- Si el campo
done
no es verdadero, significa que debes reintentar la solicitud. - Esperar 20 segundos + una cantidad aleatoria de milisegundos y reintentar la solicitud.
- Si el campo
- Recupera el objeto de operación.
- Si el campo
done
no es verdadero, significa que debes reintentar la solicitud. - Esperar 40 segundos + una cantidad aleatoria de milisegundos y reintentar la solicitud.
- Si el campo
- Recupera el objeto de operación.
- Si el campo
done
no es verdadero, significa que debes reintentar la solicitud. - Esperar 80 segundos + una cantidad aleatoria de milisegundos y reintentar la solicitud.
- Si el campo
- Continúa este patrón hasta que se actualice el objeto de consulta o se alcance un tiempo máximo transcurrido.