高级排期

本文档更详细地提供了当 schedule_typeCUSTOM 时的示例。

以下内容参考了主文档

如果 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 是周六。如未设置此字段,系统将在全部 7 天根据 start_minute 以及 end_minute(如有)运行规则。

以下示例使用高级排期功能来安排规则在每天上午 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 点。