進階排程

本文件針對 CUSTOMschedule_type 提供更詳細的範例。

引用自主要文件

如果 schedule_typeCUSTOM,您也必須指定自訂排程清單,或規則執行的時間。在 schedule 清單中,每個規格都可以是由下列欄位組合而成,唯一的要求是每個項目中必須至少有 start_minutedays 其中一項。

欄位 說明

start_minute

午夜 12:00 之後的分鐘數。必須是 30 分鐘的倍數。如果設定此欄位,但沒有 end_minute,這會決定執行規則的確切時間。否則,就會使用 end_minute 來決定執行規則的時間範圍。如果沒有設定此欄位,則會在 days 中指定的每天 SEMI_HOURLY 執行規則。

end_minute

午夜 12:00 之後的分鐘數。必須是 30 分鐘的倍數,並且在 start_minute 之後。如果設定此欄位,就會使用 start_minute 來決定執行規則的時間範圍。如果 end_minutestart_minute 相同,也是決定執行規則的確切時間。

days

執行規則的天數清單。每一天都必須是 0-6 的值。0 是星期日,1 是星期一,……,6 是星期六。如果沒有設定此欄位,則會依據 start_minute 和(如果存在)end_minute,在所有 7 天執行規則。

以下是使用「進階排程」來安排在每天上午 10 點執行規則的範例。若省略 days,我們會自動推斷此排程規格將套用於每一天。

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

範例

以下是只在週末每 30 分鐘執行一次的規則範例。若省略 start_minute,我們會推斷規則在指定日期的 SEMI_HOURLY 執行。

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

以下是只在週三凌晨 2 點執行的規則範例。若省略 end_minute,我們會推斷規則僅在一個特定時間執行,而不是在某個時間範圍內執行。

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

每個排程都是以 OR 搭配其他排程獨立運算。以下規則範例是在工作日全天執行,但在週末只從中午 12 點到下午 1 點執行。因為這裡有 end_minute,我們現在會看從 start_minuteend_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

請注意,不在第二個排程規格中指定 days,運作方式也一樣,因為第一個規格包含工作日的中午 12 點到下午 1 點。