Install
openclaw skills install @thinhbuiii/ent-meta-ads-reportKéo báo cáo chỉ số Meta Ads (Facebook/Instagram) qua Graph API. READ-ONLY: insights, campaign, account, kiểm tra hạn token.
openclaw skills install @thinhbuiii/ent-meta-ads-reportKéo chỉ số báo cáo quảng cáo Meta qua Graph API chính thức bằng HTTP (curl) — không cần SDK.
⚠️ Tuyệt đối READ-ONLY. Skill này CHỈ đọc dữ liệu (insights + danh sách campaign/account). KHÔNG có bất kỳ lệnh tạo/sửa/tắt/xóa ads nào. Không bao giờ gọi POST/DELETE tới Graph API.
| Biến | Bắt buộc | Mô tả |
|---|---|---|
META_ACCESS_TOKEN | ✅ | Meta access token (User token hoặc System User token), quyền ads_read |
META_AD_ACCOUNT_ID | ✅ | Ad account ID dạng số (không có prefix act_), ví dụ 123456789 |
Lưu ý bảo mật:
env của gateway (instance OpenClaw của bạn), không commit vào script.curl -G --data-urlencode "access_token=$META_ACCESS_TOKEN".developers.facebook.com/tools/explorerads_read (+ ads_management nếu cần)Chuyển sang long-lived (~60 ngày):
curl -G "https://graph.facebook.com/v21.0/oauth/access_token" \
--data-urlencode "grant_type=fb_exchange_token" \
--data-urlencode "client_id={APP_ID}" \
--data-urlencode "client_secret={APP_SECRET}" \
--data-urlencode "fb_exchange_token={SHORT_LIVED_TOKEN}"
Token cá nhân long-lived hết hạn sau ~60 ngày → phải đăng nhập lại lấy token mới (không tự gia hạn hoàn toàn được vì cần phiên đăng nhập). Nên tự kiểm tra hạn bằng
debug_tokenvà cảnh báo trước <14 ngày.
1. Kiểm tra token & hạn dùng
curl -s -G "https://graph.facebook.com/v21.0/debug_token" \
--data-urlencode "input_token=$META_ACCESS_TOKEN" \
--data-urlencode "access_token=$META_ACCESS_TOKEN"
Đọc data.is_valid và data.expires_at (epoch giây). Nếu hết hạn <14 ngày → cảnh báo người dùng đăng nhập lại.
2. Thông tin ad account
curl -s -G "https://graph.facebook.com/v21.0/act_$META_AD_ACCOUNT_ID" \
--data-urlencode "fields=name,account_status,currency,timezone_name,amount_spent,balance,spend_cap" \
--data-urlencode "access_token=$META_ACCESS_TOKEN"
3. Danh sách campaign
curl -s -G "https://graph.facebook.com/v21.0/act_$META_AD_ACCOUNT_ID/campaigns" \
--data-urlencode "fields=id,name,status,objective,daily_budget,lifetime_budget" \
--data-urlencode "limit=100" \
--data-urlencode "access_token=$META_ACCESS_TOKEN"
4. Báo cáo tổng (account-level) theo preset
curl -s -G "https://graph.facebook.com/v21.0/act_$META_AD_ACCOUNT_ID/insights" \
--data-urlencode "fields=spend,impressions,clicks,reach,cpc,cpm,ctr,actions,action_values" \
--data-urlencode "date_preset=last_7d" \
--data-urlencode "access_token=$META_ACCESS_TOKEN"
5. Báo cáo theo khoảng ngày tùy chỉnh
curl -s -G "https://graph.facebook.com/v21.0/act_$META_AD_ACCOUNT_ID/insights" \
--data-urlencode "fields=spend,impressions,clicks,reach,actions,action_values" \
--data-urlencode 'time_range={"since":"2026-01-01","until":"2026-01-31"}' \
--data-urlencode "access_token=$META_ACCESS_TOKEN"
6. Báo cáo từng CAMPAIGN (kèm objective)
curl -s -G "https://graph.facebook.com/v21.0/act_$META_AD_ACCOUNT_ID/insights" \
--data-urlencode "fields=campaign_name,campaign_id,objective,spend,impressions,clicks,reach,frequency,cpc,cpm,ctr,actions,action_values" \
--data-urlencode "level=campaign" \
--data-urlencode "date_preset=last_7d" \
--data-urlencode "access_token=$META_ACCESS_TOKEN"
7. Báo cáo từng ngày (time_increment=1)
curl -s -G "https://graph.facebook.com/v21.0/act_$META_AD_ACCOUNT_ID/insights" \
--data-urlencode "fields=spend,impressions,clicks,ctr,actions,action_values" \
--data-urlencode "time_increment=1" \
--data-urlencode "date_preset=last_7d" \
--data-urlencode "access_token=$META_ACCESS_TOKEN"
8. Breakdown (tuổi / giới tính / vị trí)
curl -s -G "https://graph.facebook.com/v21.0/act_$META_AD_ACCOUNT_ID/insights" \
--data-urlencode "fields=spend,impressions,clicks,cpc" \
--data-urlencode "breakdowns=age,gender" \
--data-urlencode "date_preset=last_7d" \
--data-urlencode "access_token=$META_ACCESS_TOKEN"
9. Liệt kê các ad account user sở hữu (để biết ID nào kéo được)
curl -s -G "https://graph.facebook.com/v21.0/me/adaccounts" \
--data-urlencode "fields=name,account_id,account_status,currency" \
--data-urlencode "limit=200" \
--data-urlencode "access_token=$META_ACCESS_TOKEN"
spend (chi phí) · impressions · clicks · reach · frequency · cpc · cpm · ctr · actions (hành động/chuyển đổi) · action_values (giá trị chuyển đổi → tính ROAS).
ROAS = action_values / spend.
Ánh xạ objective → action_type kết quả chính (KHÔNG lấy bừa lead cho mọi camp):
OUTCOME_ENGAGEMENT / MESSAGES → onsite_conversion.messaging_conversation_started_7d = "tin nhắn mở chat". (KHÔNG dùng lead/onsite_web_lead.)OUTCOME_SALES / PURCHASES → omni_purchase = "lượt mua" (khớp cột Ads Manager; tránh purchase/onsite_conversion.purchase hay trống).OUTCOME_LEADS / LEAD_GENERATION → lead hoặc onsite_conversion.lead = "lead điền form".OUTCOME_TRAFFIC → link_click / outbound_click = "lượt click".LIVE) → tương tác chính là post_comment (lượt bình luận).error.code 190 (token) / 200 (permission) → lấy token mới / kiểm tra quyền.curl -G --data-urlencode.paging.next → gọi tiếp URL đó tới khi hết.act_ khi gọi bằng ad account ID.