Reglas basadas en programación

Supervisa el estado de tus anuncios revisándolos en un intervalo establecido para comprobar que cumplan con el criterio evaluation_spec. Se requiere un schedule_spec adicional para las reglas basadas en programación.

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

Especificaciones del calendario

La schedule_spec de una regla determina con qué frecuencia deseas ejecutarla. Especificamos este intervalo en el campo schedule_type.

Tipo de programación Descripción

DAILY

Ejecuta la regla a la medianoche de 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 en horarios personalizados.

Si schedule_type se configuró como CUSTOM, también deberás especificar la lista de programaciones personalizadas o los horarios en los que la regla se debe ejecutar.

En la lista schedule, cada especificación individual puede estar compuesta por una combinación de los siguientes campos. El único requisito es que exista al menos un valor de start_minute o days en cada entrada.

Campo Descripción

start_minute

Tiempo en minutos después de las 0:00 h. Debe ser múltiplo de 30 minutos. Si se configura sin un end_minute, determinará el horario exacto en el que se ejecutará la regla. En caso contrario, se utilizará end_minute para determinar el intervalo en el que se ejecutará la regla. Si no se configura, la regla se ejecutará SEMI_HOURLY por cada día en days.

end_minute

Tiempo en minutos después de las 0:00 h. Debe ser un múltiplo de 30 minutos después de start_minute. Si se configura, utilizará start_minute para determinar el intervalo en el que se ejecutará la regla. Si end_minute es igual a start_minute, también determinará el horario exacto en el que se ejecutará la regla.

days

Lista de días en los que se ejecutará la regla. Cada día deberá estar representado con un valor de 0-6. 0 representa al domingo, 1 representa al lunes, y así sucesivamente hasta 6, que representa al sábado. Si no se configura, la regla se ejecutará los 7 días de la semana en función del start_minute y, si existe, el end_minute.

Para obtener más información sobre cómo utilizar los tipos de programación CUSTOM, consulta Programación avanzada.

Este es un ejemplo de evaluation_spec. Esta regla se aplica a todos los objetos de la lista inicial de identificadores que, en los últimos 7 días, obtuvieron más de 10000 impresiones. En este caso, no necesitamos el filtro entity_type, ya que definimos una lista estática de objetos iniciales utilizando un 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

Este es otro ejemplo. Esta regla se aplica a todos los conjuntos de anuncios de las campañas publicitarias con los identificadores 101, 102, 103, que solo utilizan presupuestos totales y que se crearon en las últimas 48 horas. En este caso, no necesitamos un filtro time_preset, ya que no hay filtros de estadísticas.

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

Este es un ejemplo de execution_spec. Esta regla aumenta el presupuesto de todos los objetos coincidentes en un 10%, con un límite de ejecución máximo de 5 veces. Esto significa que, por cada objeto que podría ser una coincidencia parcial, solo podrá haber un aumento individual del 10% en el presupuesto un máximo de 5 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

Este es otro ejemplo. Esta regla 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