VI | EN
Message us on Messenger
Developer resources

Change history of an account — Facebook API

Ad Account Activities · call it through Quantri360 with one API key for your own accounts / assets that you connected and authorized — 360 handles request signing and refreshing the authorization you granted.

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 fields chỉ nhận được event_type + event_time — gần như vô dụng; luôn xin object_id, actor_name, extra_data.
  • Số tiền trong extra_data cùng đơn vị với ngân sách (đơn vị nhỏ nhất, VND = đồng) — gọi thật khớp daily_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

NameInTypeSampleDescription
AuthorizationheaderheaderBearer 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_idquerystringact_123456789 hoặc 1234567890Tà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

NameInTypeRequiredSampleDescription
versionpathstringYesv25.0
account_idpathstringYes5924809560908319Id tài khoản quảng cáo (số, không có act_).
fieldsquerystringNoevent_time,event_type,translated_event_type,object_id,object_name,object_type,actor_id,actor_name,application_name,extra_data,date_time_in_timezoneTrường cần lấy. Không gửi = chỉ event_type, event_time.
sincequerystringNo2026-10-28Từ thời điểm (YYYY-MM-DD hoặc unix giây).
untilquerystringNo2026-10-29Đến thời điểm.
limitqueryintNo50Số sự kiện mỗi trang.
afterquerystringNoCon 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)

NameTypeSampleDescription
dataobject[]Sự kiện, mới nhất trước.
event_timestring2026-10-28T03:20:20+0000ISO 8601 giờ UTC (`+0000`) — cộng 7 giờ ra giờ Việt Nam.
date_time_in_timezonestring28/10/2026 lúc 10:20Chuỗ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_typestringupdate_campaign_budgetMã 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_typestringĐã cập nhật ngân sách chiến dịchMô tả theo ngôn ngữ của người ủy quyền.
object_id / object_namestring120250025975490254Đối tượng bị thay đổi.
object_typestringCAMPAIGN_GROUPTê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_namestringNgườ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_namestringPower EditorCô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_datastring (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

  1. Sign up for Partner
  2. Enable a data type of the Quảng cáo (Marketing API) group on the platform page
  3. Create an API key (tick the Facebook channel)
  4. Call it as in the examples above