Giám sát trạng thái của quảng cáo theo thời gian thực. Quy tắc dựa trên yếu tố kích hoạt được đánh giá ngay khi có thay đổi về siêu dữ liệu hoặc thông tin chi tiết của đối tượng quảng cáo liên quan. Độ trễ cho thay đổi về siêu dữ liệu thường là vài giây và độ trễ cho thay đổi về thông tin chi tiết thường là vài phút (p99 hiện tại là khoảng 7,5 phút).
Quy tắc dựa trên yếu tố kích hoạt không hỗ trợ schedule_spec
vì quy tắc này luôn được kiểm tra theo thời gian thực.
Hiện tại, Quy tắc dựa trên yếu tố kích hoạt chỉ có trong API, mà không truy cập được qua Trình quản lý quảng cáo.
Đối tượng trigger
xác định cách đánh giá quy tắc. Mọi loại yếu tố kích hoạt đều cần có field
yếu tố kích hoạt, trừ METADATA_CREATION
. Quy tắc dựa trên yếu tố kích hoạt chỉ kiểm tra điều kiện của quy tắc khi trường này có thay đổi.
Quy tắc dựa trên yếu tố kích hoạt chỉ được có 1 trigger
. Nếu có điều kiện hoặc giới hạn đối với nhiều số liệu, bạn có thể thêm các trường còn lại làm filters
.
Cách dùng trường filters
cũng giống như trong Quy tắc dựa trên lịch chạy. Quy tắc dựa trên yếu tố kích hoạt chỉ vượt qua đánh giá khi trigger
và tất cả filters
thỏa mãn các phép so sánh. Vì vậy, yếu tố kích hoạt và bộ lọc có thể thay thế cho nhau nếu sự thay đổi của trường này dẫn đến sự thay đổi của trường kia. Ví dụ: nếu muốn một quy tắc kích hoạt khi cost_per_mobile_app_install
> X
VÀ spent
> Y
, bạn có thể dùng cost_per_mobile_app_install
hoặc spent
làm yếu tố kích hoạt và trường còn lại làm một trong các bộ lọc, vì 2 trường đó phụ thuộc vào nhau.
Đối tượng trigger
thuộc evaluation_spec
và có cấu trúc như sau:
Khóa đối tượng yếu tố kích hoạt | Mô tả |
---|---|
| Loại Quy tắc dựa trên yếu tố kích hoạt. Sau đây là các tùy chọn hiện được hỗ trợ:
|
| Trường cơ bản. Không dùng cho |
| Giá trị bộ lọc cơ bản. Không dùng cho |
| Toán tử bộ lọc cơ bản. Không dùng cho |
Bạn có thể tạo Quy tắc quảng cáo được kích hoạt theo 4 cách khác nhau:
METADATA_CREATION
hoặc METADATA_UPDATE
STATS_MILESTONE
hoặc STATS_CHANGE
Quy tắc này dùng để giám sát khi có đối tượng quảng cáo được tạo. Quy cách trigger
chỉ cần có type
. Đối với bộ lọc, hãy chỉ định entity_type
mà bạn muốn giám sát.
Sau đây là ví dụ về quy tắc tạo siêu dữ liệu để giám sát việc tạo tất cả quảng cáo thuộc một mục tiêu nhất định. Mỗi khi có quảng cáo mới được tạo trong chiến dịch quảng cáo có mục tiêu là APP_INSTALLS
, hệ thống sẽ gửi 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"
Quy tắc này dùng để giám sát khi có thay đổi về siêu dữ liệu của đối tượng quảng cáo. Hãy xem danh sách các trường siêu dữ liệu được hỗ trợ. Trong quy cách trigger
, field
là bắt buộc, còn value
và operator
là không bắt buộc.
Nếu quan tâm đến sự thay đổi của một trường, bất kể giá trị của trường đó, bạn chỉ cần chỉ định tùy chọn field
. Sau đây là ví dụ về Thông báo trên Facebook mà bạn nhận được mỗi khi có thay đổi về ngân sách hàng ngày của nhóm quảng cáo.
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"
Nếu chỉ quan tâm đến một nhóm nhỏ sự kiện, bạn có thể cung cấp tùy chọn operator
và value
để tinh chỉnh điều kiện trigger
. Sau đây là ví dụ về thông báo bạn nhận được khi ngân sách hàng ngày của nhóm quảng cáo thay đổi và vượt quá 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"
Khi type
là STATS_MILESTONE
, evaluation_spec
sẽ kích hoạt khi field
đạt đến bội số của value
cho các đối tượng thỏa mãn điều kiện trong mảng filters
.
Đối với loại quy tắc cụ thể này, operator
của yếu tố kích hoạt phải là EQUAL
và bộ lọc time_preset
phải có giá trị là LIFETIME
.
Nhóm trường được hỗ trợ bị hạn chế hơn. Bất kỳ trường nào không có ở bên dưới sẽ không được hỗ trợ làm field
yếu tố kích hoạt, nhưng vẫn có thể dùng làm bộ lọc trong danh sách filters
. Ngoài ra, value
của yếu tố kích hoạt sẽ có giá trị tối thiểu bắt buộc tùy thuộc vào field
.
Giá trị trường yếu tố kích hoạt được hỗ trợ | Giá trị tối thiểu |
---|---|
| 1.000 |
| 1.000 |
| 1.000 |
| 10 |
| 10 |
| 1.000 (xu) |
| 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 |
Sau đây là ví dụ về quy tắc liên quan đến mốc số liệu thống kê để gửi ping mỗi khi có ai đó bình luận về bài viết của bạn:
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
Khi dùng STATS_CHANGE
làm type
yếu tố kích hoạt, execution_spec
sẽ được kích hoạt khi AND
logic của yếu tố kích hoạt và tất cả bộ lọc được đánh giá từ false
thành true
trong time_preset
cụ thể.
Nếu đánh giá tiếp theo đối với AND
logic cũng là true, execution_spec
sẽ không thực thi. Tuy nhiên, nếu đánh giá AND
logic thay đổi từ true
thành false
, execution_spec
sẽ thực thi khi đánh giá thay đổi lại thành true
.
Đối với loại quy tắc cụ thể này, operator
của yếu tố kích hoạt có thể là GREATER_THAN
, LESS_THAN
, IN_RANGE
hoặc NOT_IN_RANGE
.
Sau đây là ví dụ về quy tắc thay đổi số liệu thống kê. Mỗi khi một quảng cáo tiếp cận được hơn 5.000 người và chi phí trên mỗi lượt mua là hơn 10 USD trong 3 ngày qua, hãy tạm dừng quảng cáo này.
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
Khi dùng DELIVERY_INSIGHTS_CHANGE
làm type
yếu tố kích hoạt, quy tắc sẽ được kích hoạt khi tất cả bộ lọc có trong evaluation_spec
được đánh giá là true
, và yếu tố kích hoạt có trong evaluation_spec
vừa thay đổi từ false
thành true
.
Nếu bộ lọc và yếu tố kích hoạt vẫn được đánh giá là true
trong những lần đánh giá tiếp theo, quy tắc sẽ không được kích hoạt lại.
Để sử dụng loại thực thi PING_ENDPOINT
, bạn cần thiết lập gói đăng ký cho ứng dụng của mình qua Webhooks. Hãy thiết lập URL gọi lại, Ứng dụng trên Facebook và Webhooks để nhận thông báo từ API Quy tắc:
Hãy xem Hướng dẫn về Webhooks và tạo một URL gọi lại có thể xử lý thử thách cũng như phản hồi trong quá trình xác minh. URL gọi lại này sẽ xử lý cấu trúc dữ liệu được gửi khi có quy tắc được kích hoạt:
{ 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', } }], }], }
Trường current_value
là chuỗi được mã hóa JSON. Giá trị của trường này có thể là một chuỗi trong dấu ngoặc kép, một số hoặc một mảng bắt đầu bằng [
(dấu ngoặc vuông mở) và kết thúc bằng ]
(dấu ngoặc vuông đóng).
ads_rules_engine
vào ứng dụng của bạnSau khi URL gọi lại xử lý thử thách cũng như phản hồi để xác minh, hãy đăng ký URL này trong ứng dụng của bạn khi có quy tắc được kích hoạt:
ad_rules_engine
.Hoặc bạn có thể thực hiện việc này qua API Đồ thị, sử dụng mã truy cập Ứng dụng chứ không phải mã truy cập dành cho người dùng:
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"
Hãy xem Tài liệu tham khảo về gói đăng ký để biết chi tiết về APP_ID/subscriptions
.