Reglas basadas en programación

Supervisa el estado los anuncios mediante comprobaciones a intervalos establecidos para asegurarte de que cumplan con los criterios de evaluation_spec. Para las reglas basadas en programación, se requiere el campo adicional 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

Especificación de programación

El campo schedule_spec de una regla determina con qué frecuencia quieres que se ejecute. Este intervalo se denota en el campo schedule_type.

Tipo de programación Descripción

DAILY

Ejecuta la regla a medianoche en la zona horaria de la cuenta publicitaria.

HOURLY

Ejecuta la regla al comienzo de cada hora.

SEMI_HOURLY

Ejecuta la regla al comienzo de cada media hora.

CUSTOM (Ejemplo)

Ejecuta la regla según programaciones personalizadas.

Si el valor de schedule_type es CUSTOM, también debes especificar la lista de programaciones personalizadas o momentos en los que la regla debería ejecutarse.

En la lista schedule, cada especificación individual puede estar compuesta por una combinación de los siguientes campos. El único requisito es que debe haber al menos un valor de start_minute o days 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, utilizará end_minute para determinar el intervalo de tiempo para ejecutar la regla. Si no se establece, la regla se ejecutará con el valor 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, utilizará start_minute para determinar 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 deber 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, de end_minute.

Para obtener más información sobre cómo utilizar las programaciones del tipo CUSTOM, consulta Programación avanzada.

A continuación se muestra un ejemplo de evaluation_spec. Esta regla se aplica a todos los objetos de la lista inicial de identificadores que han tenido más de 10000 impresiones en los últimos siete días. En este caso, no es necesario el filtro entity_type, ya que se ha definido una lista estática de objetos iniciales mediante el filtro id sin prefijo.

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

A continuación se muestra otro ejemplo. Esta regla se aplica a todos los conjuntos de anuncios de campañas publicitarias con los identificadores 101, 102, 103 que utilizan únicamente presupuestos totales y que se han creado en las últimas 48 horas. En este caso, no es necesario el filtro time_preset, ya que no hay filtros de insights.

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

A continuación se muestra un ejemplo de execution_spec. Esta regla incrementa un 10 % el presupuesto de todos los objetos coincidentes, con un límite máximo de ejecución de cinco veces. Esto quiere decir que el presupuesto individual de cada objeto que podría ser potencialmente coincidente solo podrá incrementarse un 10 % un máximo de cinco veces.

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

A continuación se muestra otro ejemplo. Esta regla pone en pausa todos los objetos coincidentes y envía un correo electrónico a una lista de usuarios.

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