Programmazione avanzata

Questo documento riporta degli esempi più dettagliati per lo schedule_typeCUSTOM.

Come indicato nella documentazione principale:

Se lo schedule_type è CUSTOM, è necessario specificare anche la lista delle programmazioni personalizzate o gli orari in cui verrà eseguita la regola. Nella lista schedule, ogni singola specifica può essere composta da una combinazione dei seguenti campi, con l'unico requisito che almeno uno tra start_minute o days sia presente in ogni voce.

Campo Descrizione

start_minute

Ora in minuti dopo le ore 00:00. Deve essere un multiplo di 30 minuti. Se questo parametro è impostato e non è indicato end_minute, il valore determinerà l'ora esatta in cui eseguire la regola. In caso contrario, la presenza di end_minute indicherebbe l'intervallo di tempo per eseguire la regola. Se questo parametro non è impostato, la regola verrà eseguita SEMI_HOURLY per ogni giorno specificato in days.

end_minute

Ora in minuti dopo le ore 00:00. Deve essere un multiplo di 30 minuti e successivo a start_minute. Se questo parametro è impostato, con start_minute determinerà l'intervallo di tempo per eseguire la regola. Se end_minute coincide con start_minute, questo parametro determina anche l'ora esatta in cui eseguire la regola.

days

Lista di giorni in cui eseguire la regola. Ogni giorno deve essere un valore compreso nell'intervallo 0-6. 0 è domenica, 1 è lunedì e così via, fino a 6 che indica il sabato. Se questo parametro non è impostato, la regola viene eseguita in tutti e 7 i giorni in base al valore indicato per start_minute e, se presente, end_minute.

Di seguito è riportato un esempio di utilizzo della programmazione avanzata per programmare l'esecuzione della regola ogni giorno alle 10 del mattino. Omettendo days, si evince automaticamente che questa specifica di programmazione si applica a tutti i giorni.

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

Esempio

Di seguito è riportato un esempio di una regola che viene eseguita ogni 30 minuti solo nei weekend. Omettendo start_minute, si evince che la regola debba essere eseguita SEMI_HOURLY nei giorni specificati.

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

Di seguito è riportato un esempio di una regola che viene eseguita solo il mercoledì alle ore 2:00. Omettendo end_minute, si evince che la regola viene eseguita solo in un orario specifico e non in un intervallo di orari.

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

Ogni singola programmazione viene calcolata in modo indipendente come un OR con le altre programmazioni. Di seguito è riportato un esempio di una regola che viene eseguita tutto il giorno nei giorni feriali, ma solo dalle ore 12:00 alle ore 13:00 nei weekend. Indicando end_minute qui, il valore che ci interessa è l'intervallo di tempo che intercorre tra start_minute e 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

Lo stesso risultato si ottiene anche non indicando days nella seconda specifica di programmazione, poiché la prima specifica include dalle ore 12:00 alle ore 13:00 nei giorni feriali.