Programación avanzada

En este documento, se proporcionan ejemplos del schedule_type de CUSTOM en más detalle.

Tal como se hace referencia en la documentación principal:

Si schedule_type se configuró como CUSTOM, debes especificar la lista de programaciones personalizadas o los horarios en los que la regla se debe ejecutar. En la lista schedule, cada especificación individual puede estar compuesta por una combinación de los siguientes campos, con el único requisito que al menos un start_minute de days debe existir en cada entrada.

Campo Descripción

start_minute

Tiempo en minutos después de las 0:00 h. Debe ser múltiplo de 30 minutos. Si se configura sin un end_minute, determinará el horario exacto en el que se ejecutará la regla. En caso contrario, se utilizará end_minute para determinar el intervalo en el que se ejecutará la regla. Si no se configura, la regla se ejecutará SEMI_HOURLY por cada día especificado en days.

end_minute

Tiempo en minutos después de las 0:00 h. Debe ser un múltiplo de 30 minutos y ser posterior al start_minute. Si se configura, se utilizará el start_minute para determinar el intervalo en el que se ejecutará la regla. Si el end_minute es igual al start_minute, también determinará el horario exacto en el que se ejecutará la regla.

days

Lista de días en los que se ejecutará la regla. Cada día deberá estar representado con un valor de 0-6. 0 es el domingo, 1 es el lunes, y así sucesivamente hasta 6, que es el sábado. Si no se configura, la regla se ejecutará los 7 días de la semana en función del start_minute y, si existe, el end_minute.

Aquí puedes ver un ejemplo de uso de la programación avanzada para programar la regla a fin de que se ejecute todos los días a las 10 a. m. Al omitir days, automáticamente inferimos que esta especificación de programación se aplicará a todos los días.

curl \
-F 'name=Test Advanced Scheduling Rule' \
-F 'schedule_spec={
     "schedule_type": "CUSTOM",
     "schedule": [
       {
         "start_minute": 600,
       }
     ]
   }' \
-F 'evaluation_spec={
     ...
   }' \
-F 'execution_spec={
     ...
   }' \
-F "access_token=<ACCESS_TOKEN>" \
https://graph.facebook.com/<VERSION>/<AD_ACCOUNT_ID>/adrules_library

Ejemplo:

Aquí hay un ejemplo de una regla que se ejecuta cada 30 minutos solo los fines de semana. Al omitir start_minute, inferimos que la regla se ejecutará como SEMI_HOURLY los días especificados.

curl \
-F 'name=Test Advanced Scheduling Rule' \
-F 'schedule_spec={
     "schedule_type": "CUSTOM",
     "schedule": [
       {
         "days": [0, 6]
       }
     ]
   }' \
-F 'evaluation_spec={
     ...
   }' \
-F 'execution_spec={
     ...
   }' \
-F "access_token=<ACCESS_TOKEN>" \
https://graph.facebook.com/<VERSION>/<AD_ACCOUNT_ID>/adrules_library

Aquí hay un ejemplo de una regla que solo se ejecuta los miércoles a las 2 a. m. Al omitir end_minute, inferimos que la regla solo se ejecuta en un horario específico, en lugar de un intervalo de horas.

curl \
-F 'name=Test Advanced Scheduling Rule' \
-F 'schedule_spec={
     "schedule_type": "CUSTOM",
     "schedule": [
       {
         "start_minute": 120,
         "days": [3]
       }
     ]
   }' \
-F 'evaluation_spec={
     ...
   }' \
-F 'execution_spec={
     ...
   }' \
-F "access_token=<ACCESS_TOKEN>" \
https://graph.facebook.com/<VERSION>/<AD_ACCOUNT_ID>/adrules_library

Cada programación individual se calcula independientemente como OR respecto de las otras programaciones. Aquí hay un ejemplo de una regla que se ejecuta todo el día durante los días de semana, pero solo de 12 a 1 p. m los fines de semana. Al tener un end_minute, ahora miramos el intervalo de tiempo de start_minute a end_minute.

curl \
-F 'name=Test Advanced Scheduling Rule' \
-F 'schedule_spec={
     "schedule_type": "CUSTOM",
     "schedule": [
       {
         "days": [1, 2, 3, 4, 5]
       },
       {
         "start_minute": 720,
         "end_minute": 780,
         "days": [0, 6]
       }
     ]
   }' \
-F 'evaluation_spec={
     ...
   }' \
-F 'execution_spec={
     ...
   }' \
-F "access_token=<ACCESS_TOKEN>" \
https://graph.facebook.com/<VERSION>/<AD_ACCOUNT_ID>/adrules_library

Ten en cuenta que al no especificar days en la segunda especificación de programación, también trabajaremos de manera equivalente, ya que la primera especificación incluye de 12 a 1 p. m. los días de semana.