실시간으로 광고 상태를 모니터링합니다. 트리거 기반 규칙은 관련 광고 개체의 메타데이터 또는 인사이트 데이터가 변경되는 즉시 평가됩니다. 메타데이터 변경 사항의 대기 시간은 일반적으로 몇 초이며 인사이트 변경 사항의 대기 시간은 일반적으로 몇 분 이내입니다(현재 p99는 약 7.5분).
트리거 기반 규칙은 항상 실시간으로 확인되므로 schedule_spec
은 지원되지 않습니다.
현재 트리거 기반 규칙은 API에서만 제공되고 광고 관리자를 통해서는 액세스할 수 없습니다.
trigger
개체는 규칙 평가 방법을 정의합니다. 모든 트리거 유형은 METADATA_CREATION
을 제외하고 트리거 field
가 필요합니다. 트리거 기반 규칙은 이 필드가 변경되는 경우에만 상태를 확인합니다.
트리거 기반 규칙은 trigger
를 하나만 가질 수 있습니다. 여러 지표에 대한 조건이나 제약이 있는 경우 나머지는 filters
로 추가할 수 있습니다.
filters
필드는 일정 기반 규칙에서와 동일한 방식으로 사용됩니다. 트리거 기반 규칙은 trigger
와 모든 filters
가 비교를 충족하는 경우에만 평가를 통과합니다. 따라서 한 필드를 변경했을 때 나머지 한 필드가 변경된다면 트리거와 필터는 상호 교환이 가능합니다. 예를 들어 cost_per_mobile_app_install
> X
AND spent
> Y
일 때 규칙이 트리거되기 원하는 경우 cost_per_mobile_app_install
와 spent
중에서 하나를 트리거로 사용하고 나머지를 필터로 사용할 수 있습니다. 왜냐하면 이 두 필드는 종속 관계이기 때문입니다.
trigger
개체는 evaluation_spec
에 속하고 다음과 같은 구조를 따릅니다.
트리거 개체 키 | 설명 |
---|---|
| 트리거 기반 규칙의 유형입니다. 현재 지원되는 옵션은 다음과 같습니다.
|
| 기본 필드입니다. |
| 기본 필터 값입니다. |
| 기본 필터 연산자입니다. |
다음과 같이 4가지 방법으로 트리거되는 광고 규칙을 만들 수 있습니다.
METADATA_CREATION
또는 METADATA_UPDATE
STATS_MILESTONE
또는 STATS_CHANGE
이 규칙은 광고 개체가 생성되는 시점을 모니터링하는 데 사용됩니다. trigger
사양 내에서 type
만 필수입니다. 필터의 경우 모니터링하고자 하는 entity_type
을 지정합니다.
모든 광고가 특정 목표에 따라 생성되는지 모니터링하기 위한 메타데이터 생성 규칙의 예시는 다음과 같습니다. APP_INSTALLS
목표로 설정된 광고 캠페인 밑에서 새로운 광고가 생성될 때마다 핑이 전송됩니다.
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"
이 규칙은 광고 개체의 메타데이터가 변경되는 시점을 모니터링하는 데 사용됩니다. 지원되는 메타데이터 필드의 리스트를 참조하세요. trigger
사양 내에서 field
는 필수이고 value
와 operator
는 선택 사항입니다.
값과 관계없이 필드의 변경에 관심이 있는 경우 field
옵션만 지정하면 됩니다. 광고 세트의 일일 예산이 변경될 때마다 Facebook 알림을 보내는 예시는 다음과 같습니다.
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"
이벤트의 하위 세트에만 관심이 있는 경우 operator
및 value
옵션을 제공하여 trigger
조건을 세분화할 수 있습니다. 광고 세트의 일일 예산이 변경되고 1,000을 초과했을 경우 알림을 받는 예시는 다음과 같습니다.
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"
STATS_MILESTONE
이 type
일 경우, field
가 filters
배열에 있는 조건과 일치하는 개체에 대해 value
의 배수에 도달하는 경우 evaluation_spec
이 트리거됩니다.
이 특정 규칙 유형의 경우, 트리거 operator
는 EQUAL
이 되어야 하고 time_preset
필터는 값이 LIFETIME
이어야 합니다.
더 제한적인 지원되는 필드 세트가 있습니다. 아래에 나와 있지 않은 필드는 트리거 field
로 지원되지 않지만 filters
리스트에서 여전히 필터로 사용될 수 있습니다. 또한 field
에 따라 트리거의 value
에 필요한 최솟값이 있습니다.
지원되는 트리거 필드 값 | 최솟값 |
---|---|
| 1000 |
| 1000 |
| 1000 |
| 10 |
| 10 |
| 1000(센트) |
| 5 |
| 1 |
| 1 |
| 1 |
| 1 |
| 1 |
| 1 |
| 1 |
| 1 |
| 1 |
| 1 |
| 1 |
| 1 |
| 1 |
| 1 |
| 1 |
| 1 |
| 1 |
| 1 |
| 1 |
| 1 |
| 1 |
| 1 |
| 1 |
| 1 |
| 1 |
| 1 |
| 1 |
| 1 |
| 1 |
| 1 |
| 1 |
| 1 |
| 1 |
| 1 |
| 1 |
| 1 |
| 1 |
| 1 |
| 1 |
| 1 |
| 1 |
| 1 |
| 1 |
누군가가 게시물에 댓글을 작성할 때마다 핑을 보내는 통계 마일스톤 규칙의 예시는 다음과 같습니다.
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
STATS_CHANGE
를 트리거 type
으로 사용하면 트리거와 모든 필터의 논리적 AND
가 주어진 time_preset
에서 false
에서 true
로 평가될 때 execution_spec
이 트리거됩니다.
그 이후의 논리적 AND
평가도 true인 경우, execution_spec
이 실행되지 않습니다. 그러나 논리적 AND
의 평가가 true
에서 false
로 변경되면 다시 true
로 변경되었을 때 execution_spec
이 실행됩니다.
이 특정 규칙 유형의 경우, 트리거 operator
는 GREATER_THAN
, LESS_THAN
, IN_RANGE
또는 NOT_IN_RANGE
가 될 수 있습니다.
통계 변경 규칙의 예시는 다음과 같습니다. 광고가 5,000명이 넘는 사람에게 도달하고 최근 3일 동안 구매당 10달러를 초과할 경우 광고를 일시 중단합니다.
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
DELIVERY_INSIGHTS_CHANGE
를 트리거 type
으로 사용하면 evaluation_spec
에서 정의된 모든 필터가 true
로 평가되고evaluation_spec
에 정의된 트리거가 false
에서 true
로 변경되면 규칙이 트리거됩니다.
이후의 평가에서 필터와 트리거가 계속 true
로 평가되는 경우 규칙은 다시 트리거되지 않습니다.
실행 유형 PING_ENDPOINT
를 사용하려면 Webhooks를 통해 앱에 대한 구독을 설정해야 합니다. 콜백 URL, Facebook 앱 및 Webhooks를 설정하여 규칙 API로부터 알림을 받으세요.
Webhooks 가이드를 참조하여 인증 중에 챌린지 및 응답을 처리할 수 있는 콜백 URL을 만듭니다. 이 콜백 URL은 규칙이 트리거될 때 전송된 데이터 구조를 처리합니다.
{ 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', } }], }], }
current_value
필드는 JSON 인코딩 문자열입니다. 값은 큰따옴표로 묶은 문자열, 숫자 또는 [
(왼쪽 괄호)로 시작해서 ]
(오른쪽 괄호)로 끝나는 배열이 될 수 있습니다.
ads_rules_engine
Webhooks를 앱에 추가콜백 URL이 인증을 위한 챌린지와 응답을 처리하고 나면 규칙이 트리거될 때 이를 앱에 등록합니다.
ad_rules_engine
을 선택합니다.또는 그래프 API에서 사용자 액세스 토큰이 아니라 앱 액세스 토큰을 사용하여 이 작업을 수행할 수도 있습니다.
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"
APP_ID/subscriptions
에 대한 자세한 내용은 구독 참고 자료를 참조하세요.