Regole dell'inserzione basate sull'attivazione

Monitora lo stato delle tue inserzioni in tempo reale. Una regola basata sull'attivazione viene valutata non appena i metadati o gli insight degli oggetti pubblicitari pertinenti vengono modificati. La latenza per le modifiche dei metadati è solitamente di pochi secondi e la latenza per le modifiche degli insight è solitamente di pochi minuti (il p99 attuale è di circa 7,5 minuti).

Per le regole basate sull'attivazione, schedule_spec non è supportato, poiché sono sempre controllate in tempo reale.

Al momento le regole basate sull'attivazione sono disponibili solo nell'API, non sono accessibili tramite Gestione inserzioni.

Oggetto di attivazione

L'oggetto trigger definisce come viene valutata una regola. Tutti i tipi di attivazione richiedono un field di attivazione, ad eccezione di METADATA_CREATION. Una regola basata sull'attivazione controlla le sue condizioni solo quando questo campo viene modificato.

Una regola basata sull'attivazione può avere solo un trigger. Se hai condizioni o limitazioni su più metriche, puoi aggiungere quelle rimanenti come filters.

Il campo filters viene usato nello stesso modo in cui viene usato nelle regole basate sulla programmazione. Una regola basata sull'attivazione supera la valutazione quando il trigger e tutti i filters soddisfano i confronti. Quindi un'attivazione e un filtro sono intercambiabili se la modifica di un campo porta alla modifica dell'altro. Ad esempio, se vuoi che una regola si attivi quando cost_per_mobile_app_install > X E spent > Y, puoi usare cost_per_mobile_app_install o spent come attivazione e l'altro come uno dei filtri, perché questi due campi sono dipendenti l'uno dall'altro.

L'oggetto trigger appartiene a evaluation_spec e segue la struttura seguente:

Chiavi oggetti di attivazione Descrizione

type

Il tipo di regola basata sull'attivazione. Le opzioni attualmente supportate sono:

METADATA_CREATION: si attiva quando viene creato un oggetto pubblicitario

METADATA_UPDATE: si attiva quando il field dei metadati viene aggiornato

STATS_CHANGE: si attiva quando il field degli insight cambia per soddisfare il confronto

STATS_MILESTONE: si attiva quando il field degli insight raggiunge un multiplo del value

field

Il campo sottostante. Non in uso per METADATA_CREATION

value

Il valore del filtro sottostante. Non in uso per METADATA_CREATION. Facoltativo per METADATA_UPDATE.

operator

L'operatore del filtro sottostante. Non in uso per METADATA_CREATION. Facoltativo per METADATA_UPDATE.

Puoi creare regole dell'inserzione attivate in quattro modi diversi:

  • Correlate ai metadati: METADATA_CREATION o METADATA_UPDATE
  • Correlate agli insight: STATS_MILESTONE o STATS_CHANGE

Regole di attivazione correlate ai metadati

Regola per la creazione dei metadati

Questa regola viene usata per monitorare quando viene creato un oggetto pubblicitario. Nella specifica trigger è richiesto solo type. Per i filtri, specifica l'entity_type che desideri monitorare.

Ecco un esempio di una regola per la creazione di metadati per monitorare la creazione di tutte le inserzioni che rientrano in un determinato obiettivo. Ogni volta che viene creata una nuova inserzione in una campagna pubblicitaria con obiettivo APP_INSTALLS, viene inviato un ping.

curl -i -X POST \
-F 'name=Metadata Creation Example 1' \
-F 'evaluation_spec={
      "evaluation_type" : "TRIGGER",
      "trigger" : {
        "type": "METADATA_CREATION",
      },
      "filters" : [
       {
         "field": "entity_type",
         "value": "AD",
         "operator": "EQUAL",
       },
       {
         "field": "campaign.objective",
         "value": ["APP_INSTALLS"],
         "operator": "IN",
       },
     ]
   }' \
-F 'execution_spec={
      "execution_type": "PING_ENDPOINT"
   }' \
-F "access_token=<ACCESS_TOKEN>" \
"https://graph.facebook.com/<VERSION>/<AD_ACCOUNT_ID>/adrules_library"

Regola per l'aggiornamento dei metadati

Questa regola viene usata per monitorare quando vengono modificati i metadati di un oggetto pubblicitario. Consulta la lista di campi dei metadati supportati. Nella specifica trigger, field è obbligatorio, mentre value e operator sono facoltativi.

Se ti interessa la modifica di un campo, qualunque sia il suo valore, devi specificare solo l'opzione field. Ecco un esempio per la ricezione di una notifica Facebook ogni volta che il budget giornaliero di un gruppo di inserzioni viene modificato.

curl -i -X POST \
-F 'name=Metadata Update Example 1' \
-F 'evaluation_spec={
      "evaluation_type" : "TRIGGER",
      "trigger" : {
        "type": "METADATA_UPDATE",
        "field": "daily_budget",
      },
      "filters" : [
       {
         "field": "entity_type",
         "value": "ADSET",
         "operator": "EQUAL",
       },
     ]
   }' \
-F 'execution_spec={
      "execution_type": "NOTIFICATION"
   }' \
-F "access_token=<ACCESS_TOKEN>" \
"https://graph.facebook.com/<VERSION>/<AD_ACCOUNT_ID>/adrules_library"

Se ti interessa solo un sottoinsieme di eventi, puoi fornire le opzioni operator e value per perfezionare la condizione trigger. Ecco un esempio per ricevere una notifica quando il budget giornaliero di un gruppo di inserzioni viene modificato e supera 1000:

curl -i -X POST \
-F 'name=Metadata Update Example 2' \
-F 'evaluation_spec={
      "evaluation_type" : "TRIGGER",
      "trigger" : {
        "type": "METADATA_UPDATE",
        "field": "daily_budget",
        "value": 1000,
        "operator": "GREATER_THAN"
      },
      "filters" : [
       {
         "field": "entity_type",
         "value": "ADSET",
         "operator": "EQUAL",
       },
     ]
   }' \
-F 'execution_spec={
      "execution_type": "PING_ENDPOINT"
   }' \
-F "access_token=<ACCESS_TOKEN>" \
"https://graph.facebook.com/<VERSION>/<AD_ACCOUNT_ID>/adrules_library"

Regole di attivazione correlate agli insight

Regola per gli obiettivi delle statistiche

Con STATS_MILESTONE come type, evaluation_spec si attiva quando field raggiunge un multiplo del value per gli oggetti corrispondenti alle condizioni nell'array filters.

Per questo tipo specifico di regola, l'operator di attivazione deve essere EQUAL e il filtro time_preset deve avere il valore di LIFETIME.

Esiste un insieme più restrittivo di campi supportati. Qualsiasi campo non elencato sotto non è supportato come field di attivazione, ma può essere comunque utilizzato come filtro nella lista di filters. Inoltre, ci sono valori minimi obbligatori per il value di attivazione in base al field.

Valori dei campi di attivazione supportati Valore minimo

impressions

1000

unique_impressions

1000

reach

1000

clicks

10

unique_clicks

10

spent

1000 (centesimi)

results

5

app_custom_event

1

app_custom_event_fb_mobile_achievement_unlocked

1

app_custom_event_fb_mobile_activate_app

1

app_custom_event_fb_mobile_add_payment_info

1

app_custom_event_fb_mobile_add_to_cart

1

app_custom_event_fb_mobile_add_to_wishlist

1

app_custom_event_fb_mobile_complete_registration

1

app_custom_event_fb_mobile_content_view

1

app_custom_event_fb_mobile_initiated_checkout

1

app_custom_event_fb_mobile_level_achieved

1

app_custom_event_fb_mobile_purchase

1

app_custom_event_fb_mobile_rate

1

app_custom_event_fb_mobile_search

1

app_custom_event_fb_mobile_spent_credits

1

app_custom_event_fb_mobile_tutorial_completion

1

app_custom_event_other

1

leadgen

1

like

1

link_click

1

mobile_app_install

1

offsite_conversion

1

offsite_conversion_add_to_cart

1

offsite_conversion_checkout

1

offsite_conversion_fb_pixel_add_payment_info

1

offsite_conversion_fb_pixel_add_to_cart

1

offsite_conversion_fb_pixel_add_to_wishlist

1

offsite_conversion_fb_pixel_complete_registration

1

offsite_conversion_fb_pixel_initiate_checkout

1

offsite_conversion_fb_pixel_lead

1

offsite_conversion_fb_pixel_other

1

offsite_conversion_fb_pixel_purchase

1

offsite_conversion_fb_pixel_search

1

offsite_conversion_fb_pixel_view_content

1

offsite_engagement

1

post

1

post_comment

1

post_engagement

1

post_like

1

post_reaction

1

view_content

1

video_play

1

video_view

1

vote

1

Ecco un esempio di regola di obiettivo delle statistiche, che invia un ping ogni volta che qualcuno commenta il tuo post:

curl \
-F 'name=Rule 1' \
-F 'evaluation_spec={
      "evaluation_type" : "TRIGGER",
      "trigger" : {
        "type": "STATS_MILESTONE",
        "field": "post_comment",
        "value": 1,
        "operator": "EQUAL"
      },
      "filters" : [
       {
         "field": "entity_type",
         "value": "CAMPAIGN",
         "operator": "EQUAL",
       },
       {
         "field": "time_preset",
         "value": "LIFETIME",
         "operator": "EQUAL",
       },
     ]
   }' \
-F 'execution_spec={
      "execution_type": "PING_ENDPOINT"
   }' \
-F "access_token=<ACCESS_TOKEN>" \
https://graph.facebook.com/<VERSION>/<AD_ACCOUNT_ID>/adrules_library

Regola di modifica delle statistiche

Quando usi STATS_CHANGE come type di attivazione, execution_spec viene attivata quando l'AND logico dell'attivazione e tutti i filtri sono valutati da false a true in un dato time_preset.

Se sono true anche le valutazioni successive dell'AND logico, l'execution_specnon viene eseguita. Tuttavia, se la valutazione dell'AND logico cambia da true a false, l'execution_spec viene eseguita quando torna a true.

Per questo tipo specifico di regola, l'operator di attivazione può essere GREATER_THAN, LESS_THAN, IN_RANGE o NOT_IN_RANGE.

Di seguito è riportato un esempio di regola di modifica delle statistiche. Ogni volta che un'inserzione ha raggiunto più di 5000 persone e supera 10 $ per acquisto negli ultimi 3 giorni, mettila in pausa.

curl \
-F 'name=Rule 1' \
-F 'evaluation_spec={
      "evaluation_type" : "TRIGGER",
      "trigger" : {
        "type": "STATS_CHANGE",
        "field": "cost_per_purchase_fb",
        "value": 1000,
        "operator": "GREATER_THAN",
      },
      "filters" : [
       {
         "field": "entity_type",
         "value": "AD",
         "operator": "EQUAL"
       },
       {
         "field": "time_preset",
         "value": "LAST_3_DAYS",
         "operator": "EQUAL"
       },
       {
         "field": "reach",
         "value": 5000,
         "operator": "GREATER_THAN"
       }
     ]
   }' \
-F 'execution_spec={
      "execution_type": "PAUSE"
   }' \
-F "access_token=<ACCESS_TOKEN>" \
https://graph.facebook.com/<VERSION>/<AD_ACCOUNT_ID>/adrules_library

Regole di modifica degli insight sulla pubblicazione (beta)

Quando usi DELIVERY_INSIGHTS_CHANGE come type di attivazione, la regola viene attivata quando tutti i filtri definiti in evaluation_spec vengono valutati come truee l'attivazione definita in evaluation_spec cambia da false a true.

Nelle valutazioni successive, se i filtri e l'attivazione continuano a essere valutati come true, la regola non viene attivata di nuovo.

Configurazione webhook

Per usare il tipo di esecuzione PING_ENDPOINT, devi configurare un'iscrizione per la tua app tramite webhook. Configura un URL di callback, un'app Facebook e webhook per ricevere notifiche dall'API Rules:

Passaggio 1: configura un URL di callback

Consulta la Guida ai webhook e crea un URL di callback che possa gestire la challenge e la response durante la verifica. L'URL di callback gestisce la struttura dei dati inviata quando viene attivata una regola:

{
  object: 'application',
  entry: [{
    id: '<APPLICATION_ID>',
    time: 1468938744,
    changes: [{
      field: 'ads_rules_engine',
      value: {
        'rule_id': 1234,
        'object_id': 5678,
        'object_type': 'ADSET',
        'trigger_type': 'STATS_CHANGE',
        'trigger_field': 'COST_PER_LINK_CLICK',
        'current_value': '15.8',
      }
    }],
  }],
}

Il campo current_value è una stringa con codifica JSON. Il suo valore può essere una stringa tra virgolette doppie, un numero o un array e inizia con [ (parentesi di apertura) e finisce con ] (parentesi di chiusura).

Passaggio 2: aggiungi il webhook ads_rules_engine alla tua app

Quando l'URL di callback gestisce la challenge e la response per la verifica, registralo nella tua app quando viene attivata una regola:

  • Crea una nuova app Facebook o usa una esistente.
  • Aggiungi il prodotto Webhooks.
  • Crea una nuova iscrizione per un'app e seleziona ad_rules_engine.

In alternativa, questa operazione può essere eseguita tramite l'API Graph, utilizzando un token d'accesso dell'app e non un token d'accesso dell'utente:

curl \
-F "object=application" \
-F "callback_url=<CALLBACK_URL>" \
-F "fields=ads_rules_engine" \
-F "verify_token=<VERIFY_TOKEN>" \
-F "access_token=<APP_ACCESS_TOKEN>" \
"https://graph.facebook.com/<VERSION>/<APP_ID>/subscriptions"

Consulta il riferimento alle iscrizioni per dettagli su APP_ID/subscriptions.