排期类规则

按指定时间间隔检查广告,查看广告是否符合 evaluation_spec 的条件,以此监控广告状态。对于排期类规则,您还必须添加 schedule_spec

curl \
-F 'name=Rule 1' \
-F 'evaluation_spec={
    ...
   }' \
-F 'execution_spec={
    ...
   }' \
-F 'schedule_spec={
     "schedule_type": "DAILY"
   }' \

-F "access_token=<ACCESS_TOKEN>" \
https://graph.facebook.com/<VERSION>/<AD_ACCOUNT_ID>/adrules_library

排期参数

规则的 schedule_spec 决定了您希望此规则运行的频次。时间间隔通过 schedule_type 字段来表示。

排期类型 描述

DAILY

在广告账户所在时区的午夜运行规则。

HOURLY

每小时开始时运行规则。

SEMI_HOURLY

每半小时开始时运行规则。

CUSTOM示例

根据自定义时间运行规则。

如果 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(如有)运行规则。

如要详细了解如何使用 CUSTOM 排期类型,请参阅高级排期

以下是 evaluation_spec 的一个示例。在这个示例中,我们会为过去 7 天内展示次数超过 10000 的初始编号列表中的所有对象应用本规则。在这种情况下,我们不需要 entity_type 筛选条件,因为我们之前使用不带前缀的 id 筛选条件定义了初始对象的静态列表。

curl \
-F 'name=Rule 1' \
-F 'schedule_spec={
    ...
   }' \
-F 'evaluation_spec={
      "evaluation_type" : "SCHEDULE",
      "filters" : [
       {
         "field": "time_preset",
         "value": "LAST_7_DAYS",
         "operator": "EQUAL"
       },
       {
         "field": "effective_status",
         "value": ["ACTIVE"],
         "operator": "IN"
       },
       {
         "field": "id",
         "value": [101, 102, 103],
         "operator": "IN"
       },
       {
         "field": "impressions",
         "value": 10000,
         "operator": "GREATER_THAN"
       }
     ]
   }' \
-F 'execution_spec={
    ...
   }' \
-F "access_token=<ACCESS_TOKEN>" \
https://graph.facebook.com/<VERSION>/<AD_ACCOUNT_ID>/adrules_library

以下是第二个示例。在这个示例中,我们为编号为 101, 102, 103 的广告系列下的所有广告组应用本规则。这些广告系列仅使用了总预算,且创建时间不到 48 小时。在这种情况下,我们不需要使用 time_preset 筛选条件,因为没有成效分析筛选条件。

curl \
-F 'name=Rule 1' \
-F 'schedule_spec={
    ...
   }' \
-F 'evaluation_spec={
      "evaluation_type" : "SCHEDULE",
      "filters" : [
       {
         "field": "entity_type",
         "value": "ADSET",
         "operator": "EQUAL"
       },
       {
         "field": "campaign.id",
         "value": [101, 102, 103],
         "operator": "IN"
       },
       {
         "field": "budget_reset_period",
         "value": ["LIFETIME"],
         "operator": "IN"
       },
       {
         "field": "hours_since_creation",
         "value": 48,
         "operator": "LESS_THAN"
       },
     ]
   }' \
-F 'execution_spec={
    ...
   }' \
-F "access_token=<ACCESS_TOKEN>" \
https://graph.facebook.com/<VERSION>/<AD_ACCOUNT_ID>/adrules_library

以下是 execution_spec 的一个示例。示例中,本规则将为所有匹配的对象增加 10% 的预算,并将执行次数限制为 5 次。这意味着,对于每个可能匹配的对象,其预算只能增加 10%,且最多增加 5 次。

curl \
-F 'name=Rule 1' \
-F 'schedule_spec={
    ...
   }' \
-F 'evaluation_spec={
    ...
   }' \
-F 'execution_spec={
     "execution_type": "CHANGE_BUDGET",
     "execution_options": [
       {
         "field": "change_spec",
         "value": {
           "amount": 10,
           "unit": "PERCENTAGE"
         },
         "operator": "EQUAL"
       },
       {
         "field": "execution_count_limit",
         "value": 5,
         "operator": "EQUAL"
       }
     ]
   }' \
-F "access_token=<ACCESS_TOKEN>" \
https://graph.facebook.com/<VERSION>/<AD_ACCOUNT_ID>/adrules_library

以下是第二个示例。示例中,本规则将暂停所有匹配的对象,并向一组用户发送邮件。

curl \
-F 'name=Rule 1' \
-F 'schedule_spec={
    ...
   }' \
-F 'evaluation_spec={
    ...
   }' \
-F 'execution_spec={
     "execution_type": "PAUSE",
     "execution_options": [
       {
         "field": "user_ids",
         "value": [1001, 1002],
         "operator": "EQUAL"
       }
     ]
   }' \
-F "access_token=<ACCESS_TOKEN>" \
https://graph.facebook.com/<VERSION>/<AD_ACCOUNT_ID>/adrules_library