Ad Account Activities
GET/{version}/act_{account_id}/activitiesVia 360: GET https://partner.quantri360.com/v1/facebook/{version}/act_{account_id}/activities
Coming soon. This API already runs in production through 360 and pricing is being finalised — you can read the docs and prepare your integration now.
Description
Lịch sử thay đổi của tài khoản quảng cáo: ai (người / ứng dụng) đã bật tắt, đổi ngân sách, tạo, sửa chiến dịch / nhóm / quảng cáo, lúc nào, giá trị cũ → mới. Dùng để truy vết "vì sao chiến dịch dừng / ngân sách đổi", đối soát thao tác của nhân viên hoặc công cụ tự động.
- Đường dẫn có
act_<id>→ 360 tự chọn token tài khoản. - Không gửi
fieldschỉ nhận đượcevent_type+event_time— gần như vô dụng; luôn xinobject_id,actor_name,extra_data. - Số tiền trong
extra_datacùng đơn vị với ngân sách (đơn vị nhỏ nhất, VND = đồng) — gọi thật khớpdaily_budget: "96050"của chiến dịch. - Có tên người thao tác — xử lý như dữ liệu cá nhân.
Request
Endpoint
GET https://partner.quantri360.com/v1/facebook/{version}/act_{account_id}/activities
Authentication & shop
| Name | In | Type | Sample | Description |
|---|---|---|---|---|
| Authorization | header | header | Bearer q360_live_ab12cd34_… | Khóa API của brand (tạo ở mục API key). Bắt buộc với mọi request. Brand suy từ key — không truyền mã brand. |
| platform_shop_id | query | string | act_123456789 hoặc 1234567890 | Tài sản Facebook brand đã nối với 360: tài khoản quảng cáo (act_<id> hoặc <id>), Page id hoặc Pixel id — lấy ở GET /v1/platforms. Có thể bỏ khi đường dẫn đã chứa act_<id> / page id của brand. |
Request parameters
| Name | In | Type | Required | Sample | Description |
|---|---|---|---|---|---|
| version | path | string | Yes | v25.0 | |
| account_id | path | string | Yes | 5924809560908319 | Id tài khoản quảng cáo (số, không có act_). |
| fields | query | string | No | event_time,event_type,translated_event_type,object_id,object_name,object_type,actor_id,actor_name,application_name,extra_data,date_time_in_timezone | Trường cần lấy. Không gửi = chỉ event_type, event_time. |
| since | query | string | No | 2026-10-28 | Từ thời điểm (YYYY-MM-DD hoặc unix giây). |
| until | query | string | No | 2026-10-29 | Đến thời điểm. |
| limit | query | int | No | 50 | Số sự kiện mỗi trang. |
| after | query | string | No | Con trỏ trang kế. |
Pagination
Lặp khi có paging.next: thêm after = paging.cursors.after. Ở đây paging.cursors chỉ có after; trang cuối không có paging.
Request examples
curl -s "https://partner.quantri360.com/v1/facebook/v25.0/act_5924809560908319/activities?fields=event_time%2Cevent_type%2Ctranslated_event_type%2Cobject_id%2Cobject_name%2Cobject_type%2Cactor_name%2Capplication_name%2Cextra_data&since=2026-10-28&until=2026-10-29&limit=50" \ -H "Authorization: Bearer $KEY"
Python
import requests
KEY = "q360_live_..." # khóa API của brand
r = requests.get(
"https://partner.quantri360.com/v1/facebook/v25.0/act_5924809560908319/activities",
params={
"fields": "event_time,event_type,translated_event_type,object_id,object_name,object_type,actor_name,application_name,extra_data",
"since": "2026-10-28",
"until": "2026-10-29",
"limit": 50
},
headers={"Authorization": f"Bearer {KEY}"},
timeout=60,
)
print(r.status_code)
print(r.json())Node.js
const KEY = 'q360_live_...'; // khóa API của brand
const url = new URL('https://partner.quantri360.com/v1/facebook/v25.0/act_5924809560908319/activities');
for (const [k, v] of Object.entries({"fields":"event_time,event_type,translated_event_type,object_id,object_name,object_type,actor_name,application_name,extra_data","since":"2026-10-28","until":"2026-10-29","limit":50})) url.searchParams.set(k, typeof v === 'object' ? JSON.stringify(v) : String(v));
const r = await fetch(url, {
method: 'GET',
headers: { Authorization: `Bearer ${KEY}` },
});
console.log(r.status, await r.json());PHP
<?php $key = 'q360_live_...'; // khóa API của brand $url = 'https://partner.quantri360.com/v1/facebook/v25.0/act_5924809560908319/activities' . '?' . http_build_query(['fields' => 'event_time,event_type,translated_event_type,object_id,object_name,object_type,actor_name,application_name,extra_data', 'since' => '2026-10-28', 'until' => '2026-10-29', 'limit' => 50]); $ch = curl_init($url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_HTTPHEADER, ['Authorization: Bearer ' . $key]); $res = curl_exec($ch); $status = curl_getinfo($ch, CURLINFO_HTTP_CODE); curl_close($ch); echo $status, "\n", $res;
Response
Response fields (as returned by Facebook)
| Name | Type | Sample | Description |
|---|---|---|---|
| data | object[] | Sự kiện, mới nhất trước. | |
| event_time | string | 2026-10-28T03:20:20+0000 | ISO 8601 giờ UTC (`+0000`) — cộng 7 giờ ra giờ Việt Nam. |
| date_time_in_timezone | string | 28/10/2026 lúc 10:20 | Chuỗi hiển thị theo múi giờ tài khoản và ngôn ngữ của người ủy quyền — chỉ để hiển thị. |
| event_type | string | update_campaign_budget | Mã sự kiện: update_campaign_run_status · update_campaign_budget · update_ad_run_status · first_delivery_event · create_ad · update_ad_set_budget … |
| translated_event_type | string | Đã cập nhật ngân sách chiến dịch | Mô tả theo ngôn ngữ của người ủy quyền. |
| object_id / object_name | string | 120250025975490254 | Đối tượng bị thay đổi. |
| object_type | string | CAMPAIGN_GROUP | Tên cũ của Meta: `CAMPAIGN_GROUP` = chiến dịch, `CAMPAIGN` = nhóm quảng cáo, `ADGROUP` = quảng cáo; `ACCOUNT` = tài khoản. |
| actor_id / actor_name | string | Người thực hiện (tài khoản Facebook). Thông tin cá nhân — không hiển thị công khai. | |
| application_name | string | Power Editor | Công cụ thực hiện: `Power Editor` (Trình quản lý quảng cáo), tên app khi thay đổi qua API… |
| extra_data | string (JSON) | CHUỖI JSON giá trị cũ / mới — phải parse lần nữa. Ngân sách: `{"old_value":{"type":"payment_amount","currency":"VND","old_value":496050,…},"new_value":{…,"new_value":96050}}`; trạng thái: `{"run_status":{"old_value":17,"new_value":1},"old_value":"Đang chờ xử lý","new_value":"Hoạt động"}`. |
Response sample
{
"data": [
{
"event_time": "2026-10-28T03:20:37+0000",
"event_type": "update_campaign_run_status",
"translated_event_type": "Đã cập nhật trạng thái chiến dịch",
"object_id": "120250025975490254",
"object_name": "Chiến dịch mẫu",
"object_type": "CAMPAIGN_GROUP",
"actor_id": "100000000000001",
"actor_name": "Nguyễn Văn A",
"application_name": "Power Editor",
"extra_data": "{\"run_status\":{\"old_value\":17,\"new_value\":1},\"old_value\":\"\\u0110ang ch\\u1edd x\\u1eed l\\u00fd\",\"new_value\":\"Ho\\u1ea1t \\u0111\\u1ed9ng\",\"type\":\"run_status\"}",
"date_time_in_timezone": "28/10/2026 lúc 10:20"
},
{
"event_time": "2026-10-28T03:20:20+0000",
"event_type": "update_campaign_budget",
"translated_event_type": "Đã cập nhật ngân sách chiến dịch",
"object_id": "120250025975490254",
"object_name": "Chiến dịch mẫu",
"object_type": "CAMPAIGN_GROUP",
"actor_id": "100000000000001",
"actor_name": "Nguyễn Văn A",
"application_name": "Power Editor",
"extra_data": "{\"old_value\":{\"type\":\"payment_amount\",\"currency\":\"VND\",\"old_value\":496050,\"additional_type\":\"status_string\",\"additional_value\":\"H\\u00e0ng ng\\u00e0y\"},\"new_value\":{\"type\":\"payment_amount\",\"currency\":\"VND\",\"new_value\":96050,\"additional_type\":\"status_string\",\"additional_value\":\"H\\u00e0ng ng\\u00e0y\"},\"type\":\"composite_data\"}",
"date_time_in_timezone": "28/10/2026 lúc 10:20"
}
]
}
Get started
- Sign up for Partner
- Enable a data type of the Quảng cáo (Marketing API) group on the platform page
- Create an API key (tick the Facebook channel)
- Call it as in the examples above