Programación avanzada

En este documento se proporcionan ejemplos del valor CUSTOM de schedule_type más detallados.

Como se indica en la documentación principal:

Si el valor de schedule_type es CUSTOM, también debes especificar la lista de programaciones personalizadas o momentos en los que la regla se ejecutará. En la lista schedule, cada especificación individual puede estar compuesta por una combinación de los siguientes campos, con el único requisito de que al menos start_minute o days exista en cada entrada.

Campo Descripción

start_minute

Hora en minutos después de las 12:00. Debe ser un múltiplo de 30 minutos. Si se establece y no hay ningún valor de end_minute, determinará la hora exacta en que se debe ejecutar la regla. En caso contrario, determinará con end_minute el intervalo de tiempo para ejecutar la regla. Si no se establece, la regla ejecutará SEMI_HOURLY para cada día especificado en days.

end_minute

Hora en minutos después de las 12:00. Debe ser un múltiplo de 30 minutos y ser posterior al valor de start_minute. Si se establece, determinará con start_minute el intervalo de tiempo para ejecutar la regla. Si el valor de end_minute es el mismo que el de start_minute, también determinará la hora exacta para ejecutar la regla.

days

Lista de días para ejecutar la regla. Cada día debe ser 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 establece, la regla se ejecutará los siete días en función de start_minute y, si existe, end_minute.

A continuación se incluye un ejemplo de cómo utilizar la programación avanzada para programar la regla con el objetivo de que se ejecute todos los días a las 10:00. Al omitir el campo days, inferimos automáticamente 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

A continuación se incluye un ejemplo de una regla que se ejecuta cada 30 minutos solo los fines de semana. Al omitir el campo start_minute, inferimos la regla para ejecutarla 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

A continuación se incluye un ejemplo de una regla que solo se ejecuta los miércoles a las 2:00. Al omitir el campo end_minute, inferimos que la regla solo se ejecuta en un momento específico en lugar de en 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 de manera independiente como un operador OR con las otras programaciones. A continuación se incluye un ejemplo de una regla que se ejecuta todo el día de lunes a viernes, pero solo de 12:00 a 13:00 los fines de semana. Al haber un valor de end_minute aquí, ahora comprobamos el intervalo de tiempo desde start_minute hasta 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, aunque no indiques days en la segunda especificación de programación, funcionará de forma equivalente, ya que la primera especificación incluye de 12:00 a 13:00 de lunes a viernes.